/* * Header for the SUDMAC driver * * Copyright (C) 2013 Renesas Solutions Corp. * * This is free software; you can redistribute it and/or modify * it under the terms of version 2 of the GNU General Public License as * published by the Free Software Foundation. */ #ifndef SUDMAC_H #define SUDMAC_H #include <linux/dmaengine.h> #include <linux/shdma-base.h> #include <linux/types.h> /* Used by slave DMA clients to request DMA to/from a specific peripheral */ struct sudmac_slave { struct shdma_slave shdma_slave; /* Set by the platform */ }; /* * Supplied by platforms to specify, how a DMA channel has to be configured for * a certain peripheral */ struct sudmac_slave_config { int slave_id; }; struct sudmac_channel { unsigned long offset; unsigned long config; unsigned long wait; /* The configuable range is 0 to 3 */ unsigned long dint_end_bit; }; struct sudmac_pdata { const struct sudmac_slave_config *slave; int slave_num; const struct sudmac_channel *channel; int channel_num; }; /* Definitions for the sudmac_channel.config */ #define SUDMAC_TX_BUFFER_MODE BIT(0) #define SUDMAC_RX_END_MODE BIT(1) /* Definitions for the sudmac_channel.dint_end_bit */ #define SUDMAC_DMA_BIT_CH0 BIT(0) #define SUDMAC_DMA_BIT_CH1 BIT(1) #endif