aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/amba/pl08x.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/amba/pl08x.h')
-rw-r--r--include/linux/amba/pl08x.h43
1 files changed, 20 insertions, 23 deletions
diff --git a/include/linux/amba/pl08x.h b/include/linux/amba/pl08x.h
index 5b87b6aac3f8..3111385b8ca7 100644
--- a/include/linux/amba/pl08x.h
+++ b/include/linux/amba/pl08x.h
@@ -12,7 +12,6 @@
12 * 12 *
13 * Please credit ARM.com 13 * Please credit ARM.com
14 * Documentation: ARM DDI 0196D 14 * Documentation: ARM DDI 0196D
15 *
16 */ 15 */
17 16
18#ifndef AMBA_PL08X_H 17#ifndef AMBA_PL08X_H
@@ -55,8 +54,8 @@ enum {
55 * @circular_buffer: whether the buffer passed in is circular and 54 * @circular_buffer: whether the buffer passed in is circular and
56 * shall simply be looped round round (like a record baby round 55 * shall simply be looped round round (like a record baby round
57 * round round round) 56 * round round round)
58 * @single: the device connected to this channel will request single 57 * @single: the device connected to this channel will request single DMA
59 * DMA transfers, not bursts. (Bursts are default.) 58 * transfers, not bursts. (Bursts are default.)
60 * @periph_buses: the device connected to this channel is accessible via 59 * @periph_buses: the device connected to this channel is accessible via
61 * these buses (use PL08X_AHB1 | PL08X_AHB2). 60 * these buses (use PL08X_AHB1 | PL08X_AHB2).
62 */ 61 */
@@ -78,8 +77,7 @@ struct pl08x_channel_data {
78 * @addr: current address 77 * @addr: current address
79 * @maxwidth: the maximum width of a transfer on this bus 78 * @maxwidth: the maximum width of a transfer on this bus
80 * @buswidth: the width of this bus in bytes: 1, 2 or 4 79 * @buswidth: the width of this bus in bytes: 1, 2 or 4
81 * @fill_bytes: bytes required to fill to the next bus memory 80 * @fill_bytes: bytes required to fill to the next bus memory boundary
82 * boundary
83 */ 81 */
84struct pl08x_bus_data { 82struct pl08x_bus_data {
85 dma_addr_t addr; 83 dma_addr_t addr;
@@ -92,10 +90,10 @@ struct pl08x_bus_data {
92 * struct pl08x_phy_chan - holder for the physical channels 90 * struct pl08x_phy_chan - holder for the physical channels
93 * @id: physical index to this channel 91 * @id: physical index to this channel
94 * @lock: a lock to use when altering an instance of this struct 92 * @lock: a lock to use when altering an instance of this struct
95 * @signal: the physical signal (aka channel) serving this 93 * @signal: the physical signal (aka channel) serving this physical channel
96 * physical channel right now 94 * right now
97 * @serving: the virtual channel currently being served by this 95 * @serving: the virtual channel currently being served by this physical
98 * physical channel 96 * channel
99 */ 97 */
100struct pl08x_phy_chan { 98struct pl08x_phy_chan {
101 unsigned int id; 99 unsigned int id;
@@ -119,7 +117,6 @@ struct pl08x_txd {
119 size_t len; 117 size_t len;
120 dma_addr_t llis_bus; 118 dma_addr_t llis_bus;
121 struct pl08x_lli *llis_va; 119 struct pl08x_lli *llis_va;
122 bool active;
123 /* Default cctl value for LLIs */ 120 /* Default cctl value for LLIs */
124 u32 cctl; 121 u32 cctl;
125 /* 122 /*
@@ -130,8 +127,8 @@ struct pl08x_txd {
130}; 127};
131 128
132/** 129/**
133 * struct pl08x_dma_chan_state - holds the PL08x specific virtual 130 * struct pl08x_dma_chan_state - holds the PL08x specific virtual channel
134 * channel states 131 * states
135 * @PL08X_CHAN_IDLE: the channel is idle 132 * @PL08X_CHAN_IDLE: the channel is idle
136 * @PL08X_CHAN_RUNNING: the channel has allocated a physical transport 133 * @PL08X_CHAN_RUNNING: the channel has allocated a physical transport
137 * channel and is running a transfer on it 134 * channel and is running a transfer on it
@@ -152,7 +149,7 @@ enum pl08x_dma_chan_state {
152 * @chan: wrappped abstract channel 149 * @chan: wrappped abstract channel
153 * @phychan: the physical channel utilized by this channel, if there is one 150 * @phychan: the physical channel utilized by this channel, if there is one
154 * @phychan_hold: if non-zero, hold on to the physical channel even if we 151 * @phychan_hold: if non-zero, hold on to the physical channel even if we
155 * have no pending entries 152 * have no pending entries
156 * @tasklet: tasklet scheduled by the IRQ to handle actual work etc 153 * @tasklet: tasklet scheduled by the IRQ to handle actual work etc
157 * @name: name of channel 154 * @name: name of channel
158 * @cd: channel platform data 155 * @cd: channel platform data
@@ -166,8 +163,8 @@ enum pl08x_dma_chan_state {
166 * @host: a pointer to the host (internal use) 163 * @host: a pointer to the host (internal use)
167 * @state: whether the channel is idle, paused, running etc 164 * @state: whether the channel is idle, paused, running etc
168 * @slave: whether this channel is a device (slave) or for memcpy 165 * @slave: whether this channel is a device (slave) or for memcpy
169 * @waiting: a TX descriptor on this channel which is waiting for 166 * @waiting: a TX descriptor on this channel which is waiting for a physical
170 * a physical channel to become available 167 * channel to become available
171 */ 168 */
172struct pl08x_dma_chan { 169struct pl08x_dma_chan {
173 struct dma_chan chan; 170 struct dma_chan chan;
@@ -189,16 +186,16 @@ struct pl08x_dma_chan {
189}; 186};
190 187
191/** 188/**
192 * struct pl08x_platform_data - the platform configuration for the 189 * struct pl08x_platform_data - the platform configuration for the PL08x
193 * PL08x PrimeCells. 190 * PrimeCells.
194 * @slave_channels: the channels defined for the different devices on the 191 * @slave_channels: the channels defined for the different devices on the
195 * platform, all inclusive, including multiplexed channels. The available 192 * platform, all inclusive, including multiplexed channels. The available
196 * physical channels will be multiplexed around these signals as they 193 * physical channels will be multiplexed around these signals as they are
197 * are requested, just enumerate all possible channels. 194 * requested, just enumerate all possible channels.
198 * @get_signal: request a physical signal to be used for a DMA 195 * @get_signal: request a physical signal to be used for a DMA transfer
199 * transfer immediately: if there is some multiplexing or similar blocking 196 * immediately: if there is some multiplexing or similar blocking the use
200 * the use of the channel the transfer can be denied by returning 197 * of the channel the transfer can be denied by returning less than zero,
201 * less than zero, else it returns the allocated signal number 198 * else it returns the allocated signal number
202 * @put_signal: indicate to the platform that this physical signal is not 199 * @put_signal: indicate to the platform that this physical signal is not
203 * running any DMA transfer and multiplexing can be recycled 200 * running any DMA transfer and multiplexing can be recycled
204 * @lli_buses: buses which LLIs can be fetched from: PL08X_AHB1 | PL08X_AHB2 201 * @lli_buses: buses which LLIs can be fetched from: PL08X_AHB1 | PL08X_AHB2