diff options
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/amba/pl08x.h | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/include/linux/amba/pl08x.h b/include/linux/amba/pl08x.h index 8d9083067d3d..f858651027fd 100644 --- a/include/linux/amba/pl08x.h +++ b/include/linux/amba/pl08x.h | |||
@@ -25,6 +25,12 @@ | |||
25 | struct pl08x_lli; | 25 | struct pl08x_lli; |
26 | struct pl08x_driver_data; | 26 | struct pl08x_driver_data; |
27 | 27 | ||
28 | /* Bitmasks for selecting AHB ports for DMA transfers */ | ||
29 | enum { | ||
30 | PL08X_AHB1 = (1 << 0), | ||
31 | PL08X_AHB2 = (1 << 1) | ||
32 | }; | ||
33 | |||
28 | /** | 34 | /** |
29 | * struct pl08x_channel_data - data structure to pass info between | 35 | * struct pl08x_channel_data - data structure to pass info between |
30 | * platform and PL08x driver regarding channel configuration | 36 | * platform and PL08x driver regarding channel configuration |
@@ -51,6 +57,8 @@ struct pl08x_driver_data; | |||
51 | * round round round) | 57 | * round round round) |
52 | * @single: the device connected to this channel will request single | 58 | * @single: the device connected to this channel will request single |
53 | * DMA transfers, not bursts. (Bursts are default.) | 59 | * DMA transfers, not bursts. (Bursts are default.) |
60 | * @periph_buses: the device connected to this channel is accessible via | ||
61 | * these buses (use PL08X_AHB1 | PL08X_AHB2). | ||
54 | */ | 62 | */ |
55 | struct pl08x_channel_data { | 63 | struct pl08x_channel_data { |
56 | char *bus_id; | 64 | char *bus_id; |
@@ -61,6 +69,7 @@ struct pl08x_channel_data { | |||
61 | dma_addr_t addr; | 69 | dma_addr_t addr; |
62 | bool circular_buffer; | 70 | bool circular_buffer; |
63 | bool single; | 71 | bool single; |
72 | u8 periph_buses; | ||
64 | }; | 73 | }; |
65 | 74 | ||
66 | /** | 75 | /** |
@@ -193,8 +202,8 @@ struct pl08x_dma_chan { | |||
193 | * less than zero, else it returns the allocated signal number | 202 | * less than zero, else it returns the allocated signal number |
194 | * @put_signal: indicate to the platform that this physical signal is not | 203 | * @put_signal: indicate to the platform that this physical signal is not |
195 | * running any DMA transfer and multiplexing can be recycled | 204 | * running any DMA transfer and multiplexing can be recycled |
196 | * @bus_bit_lli: Bit[0] of the address indicated which AHB bus master the | 205 | * @lli_buses: buses which LLIs can be fetched from: PL08X_AHB1 | PL08X_AHB2 |
197 | * LLI addresses are on 0/1 Master 1/2. | 206 | * @mem_buses: buses which memory can be accessed from: PL08X_AHB1 | PL08X_AHB2 |
198 | */ | 207 | */ |
199 | struct pl08x_platform_data { | 208 | struct pl08x_platform_data { |
200 | struct pl08x_channel_data *slave_channels; | 209 | struct pl08x_channel_data *slave_channels; |
@@ -202,6 +211,8 @@ struct pl08x_platform_data { | |||
202 | struct pl08x_channel_data memcpy_channel; | 211 | struct pl08x_channel_data memcpy_channel; |
203 | int (*get_signal)(struct pl08x_dma_chan *); | 212 | int (*get_signal)(struct pl08x_dma_chan *); |
204 | void (*put_signal)(struct pl08x_dma_chan *); | 213 | void (*put_signal)(struct pl08x_dma_chan *); |
214 | u8 lli_buses; | ||
215 | u8 mem_buses; | ||
205 | }; | 216 | }; |
206 | 217 | ||
207 | #ifdef CONFIG_AMBA_PL08X | 218 | #ifdef CONFIG_AMBA_PL08X |