| /* | |
| * 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 |