diff options
Diffstat (limited to 'arch/arm/mach-bcmring/include/csp')
-rw-r--r-- | arch/arm/mach-bcmring/include/csp/cache.h | 35 | ||||
-rw-r--r-- | arch/arm/mach-bcmring/include/csp/delay.h | 36 | ||||
-rw-r--r-- | arch/arm/mach-bcmring/include/csp/dmacHw.h | 596 | ||||
-rw-r--r-- | arch/arm/mach-bcmring/include/csp/errno.h | 32 | ||||
-rw-r--r-- | arch/arm/mach-bcmring/include/csp/intcHw.h | 40 | ||||
-rw-r--r-- | arch/arm/mach-bcmring/include/csp/module.h | 32 | ||||
-rw-r--r-- | arch/arm/mach-bcmring/include/csp/reg.h | 114 | ||||
-rw-r--r-- | arch/arm/mach-bcmring/include/csp/secHw.h | 65 | ||||
-rw-r--r-- | arch/arm/mach-bcmring/include/csp/stdint.h | 30 | ||||
-rw-r--r-- | arch/arm/mach-bcmring/include/csp/string.h | 34 | ||||
-rw-r--r-- | arch/arm/mach-bcmring/include/csp/tmrHw.h | 263 |
11 files changed, 0 insertions, 1277 deletions
diff --git a/arch/arm/mach-bcmring/include/csp/cache.h b/arch/arm/mach-bcmring/include/csp/cache.h deleted file mode 100644 index caa20e59db99..000000000000 --- a/arch/arm/mach-bcmring/include/csp/cache.h +++ /dev/null | |||
@@ -1,35 +0,0 @@ | |||
1 | /***************************************************************************** | ||
2 | * Copyright 2003 - 2008 Broadcom Corporation. All rights reserved. | ||
3 | * | ||
4 | * Unless you and Broadcom execute a separate written software license | ||
5 | * agreement governing use of this software, this software is licensed to you | ||
6 | * under the terms of the GNU General Public License version 2, available at | ||
7 | * http://www.broadcom.com/licenses/GPLv2.php (the "GPL"). | ||
8 | * | ||
9 | * Notwithstanding the above, under no circumstances may you combine this | ||
10 | * software in any way with any other Broadcom software provided under a | ||
11 | * license other than the GPL, without Broadcom's express prior written | ||
12 | * consent. | ||
13 | *****************************************************************************/ | ||
14 | |||
15 | #ifndef CSP_CACHE_H | ||
16 | #define CSP_CACHE_H | ||
17 | |||
18 | /* ---- Include Files ---------------------------------------------------- */ | ||
19 | |||
20 | #include <csp/stdint.h> | ||
21 | |||
22 | /* ---- Public Constants and Types --------------------------------------- */ | ||
23 | |||
24 | #if defined(__KERNEL__) && !defined(STANDALONE) | ||
25 | #include <asm/cacheflush.h> | ||
26 | |||
27 | #define CSP_CACHE_FLUSH_ALL flush_cache_all() | ||
28 | |||
29 | #else | ||
30 | |||
31 | #define CSP_CACHE_FLUSH_ALL | ||
32 | |||
33 | #endif | ||
34 | |||
35 | #endif /* CSP_CACHE_H */ | ||
diff --git a/arch/arm/mach-bcmring/include/csp/delay.h b/arch/arm/mach-bcmring/include/csp/delay.h deleted file mode 100644 index 8b3d80367293..000000000000 --- a/arch/arm/mach-bcmring/include/csp/delay.h +++ /dev/null | |||
@@ -1,36 +0,0 @@ | |||
1 | /***************************************************************************** | ||
2 | * Copyright 2003 - 2008 Broadcom Corporation. All rights reserved. | ||
3 | * | ||
4 | * Unless you and Broadcom execute a separate written software license | ||
5 | * agreement governing use of this software, this software is licensed to you | ||
6 | * under the terms of the GNU General Public License version 2, available at | ||
7 | * http://www.broadcom.com/licenses/GPLv2.php (the "GPL"). | ||
8 | * | ||
9 | * Notwithstanding the above, under no circumstances may you combine this | ||
10 | * software in any way with any other Broadcom software provided under a | ||
11 | * license other than the GPL, without Broadcom's express prior written | ||
12 | * consent. | ||
13 | *****************************************************************************/ | ||
14 | |||
15 | |||
16 | #ifndef CSP_DELAY_H | ||
17 | #define CSP_DELAY_H | ||
18 | |||
19 | /* ---- Include Files ---------------------------------------------------- */ | ||
20 | |||
21 | /* Some CSP routines require use of the following delay routines. Use the OS */ | ||
22 | /* version if available, otherwise use a CSP specific definition. */ | ||
23 | /* void udelay(unsigned long usecs); */ | ||
24 | /* void mdelay(unsigned long msecs); */ | ||
25 | |||
26 | #if defined(__KERNEL__) && !defined(STANDALONE) | ||
27 | #include <linux/delay.h> | ||
28 | #else | ||
29 | #include <mach/csp/delay.h> | ||
30 | #endif | ||
31 | |||
32 | /* ---- Public Constants and Types --------------------------------------- */ | ||
33 | /* ---- Public Variable Externs ------------------------------------------ */ | ||
34 | /* ---- Public Function Prototypes --------------------------------------- */ | ||
35 | |||
36 | #endif /* CSP_DELAY_H */ | ||
diff --git a/arch/arm/mach-bcmring/include/csp/dmacHw.h b/arch/arm/mach-bcmring/include/csp/dmacHw.h deleted file mode 100644 index e6a1dc484ca7..000000000000 --- a/arch/arm/mach-bcmring/include/csp/dmacHw.h +++ /dev/null | |||
@@ -1,596 +0,0 @@ | |||
1 | /***************************************************************************** | ||
2 | * Copyright 2004 - 2008 Broadcom Corporation. All rights reserved. | ||
3 | * | ||
4 | * Unless you and Broadcom execute a separate written software license | ||
5 | * agreement governing use of this software, this software is licensed to you | ||
6 | * under the terms of the GNU General Public License version 2, available at | ||
7 | * http://www.broadcom.com/licenses/GPLv2.php (the "GPL"). | ||
8 | * | ||
9 | * Notwithstanding the above, under no circumstances may you combine this | ||
10 | * software in any way with any other Broadcom software provided under a | ||
11 | * license other than the GPL, without Broadcom's express prior written | ||
12 | * consent. | ||
13 | *****************************************************************************/ | ||
14 | |||
15 | /****************************************************************************/ | ||
16 | /** | ||
17 | * @file dmacHw.h | ||
18 | * | ||
19 | * @brief API definitions for low level DMA controller driver | ||
20 | * | ||
21 | */ | ||
22 | /****************************************************************************/ | ||
23 | #ifndef _DMACHW_H | ||
24 | #define _DMACHW_H | ||
25 | |||
26 | #include <stddef.h> | ||
27 | |||
28 | #include <csp/stdint.h> | ||
29 | #include <mach/csp/dmacHw_reg.h> | ||
30 | |||
31 | /* Define DMA Channel ID using DMA controller number (m) and channel number (c). | ||
32 | |||
33 | System specific channel ID should be defined as follows | ||
34 | |||
35 | For example: | ||
36 | |||
37 | #include <dmacHw.h> | ||
38 | ... | ||
39 | #define systemHw_LCD_CHANNEL_ID dmacHw_MAKE_CHANNEL_ID(0,5) | ||
40 | #define systemHw_SWITCH_RX_CHANNEL_ID dmacHw_MAKE_CHANNEL_ID(0,0) | ||
41 | #define systemHw_SWITCH_TX_CHANNEL_ID dmacHw_MAKE_CHANNEL_ID(0,1) | ||
42 | #define systemHw_APM_RX_CHANNEL_ID dmacHw_MAKE_CHANNEL_ID(0,3) | ||
43 | #define systemHw_APM_TX_CHANNEL_ID dmacHw_MAKE_CHANNEL_ID(0,4) | ||
44 | ... | ||
45 | #define systemHw_SHARED1_CHANNEL_ID dmacHw_MAKE_CHANNEL_ID(1,4) | ||
46 | #define systemHw_SHARED2_CHANNEL_ID dmacHw_MAKE_CHANNEL_ID(1,5) | ||
47 | #define systemHw_SHARED3_CHANNEL_ID dmacHw_MAKE_CHANNEL_ID(0,6) | ||
48 | ... | ||
49 | */ | ||
50 | #define dmacHw_MAKE_CHANNEL_ID(m, c) (m << 8 | c) | ||
51 | |||
52 | typedef enum { | ||
53 | dmacHw_CHANNEL_PRIORITY_0 = dmacHw_REG_CFG_LO_CH_PRIORITY_0, /* Channel priority 0. Lowest priority DMA channel */ | ||
54 | dmacHw_CHANNEL_PRIORITY_1 = dmacHw_REG_CFG_LO_CH_PRIORITY_1, /* Channel priority 1 */ | ||
55 | dmacHw_CHANNEL_PRIORITY_2 = dmacHw_REG_CFG_LO_CH_PRIORITY_2, /* Channel priority 2 */ | ||
56 | dmacHw_CHANNEL_PRIORITY_3 = dmacHw_REG_CFG_LO_CH_PRIORITY_3, /* Channel priority 3 */ | ||
57 | dmacHw_CHANNEL_PRIORITY_4 = dmacHw_REG_CFG_LO_CH_PRIORITY_4, /* Channel priority 4 */ | ||
58 | dmacHw_CHANNEL_PRIORITY_5 = dmacHw_REG_CFG_LO_CH_PRIORITY_5, /* Channel priority 5 */ | ||
59 | dmacHw_CHANNEL_PRIORITY_6 = dmacHw_REG_CFG_LO_CH_PRIORITY_6, /* Channel priority 6 */ | ||
60 | dmacHw_CHANNEL_PRIORITY_7 = dmacHw_REG_CFG_LO_CH_PRIORITY_7 /* Channel priority 7. Highest priority DMA channel */ | ||
61 | } dmacHw_CHANNEL_PRIORITY_e; | ||
62 | |||
63 | /* Source destination master interface */ | ||
64 | typedef enum { | ||
65 | dmacHw_SRC_MASTER_INTERFACE_1 = dmacHw_REG_CTL_SMS_1, /* Source DMA master interface 1 */ | ||
66 | dmacHw_SRC_MASTER_INTERFACE_2 = dmacHw_REG_CTL_SMS_2, /* Source DMA master interface 2 */ | ||
67 | dmacHw_DST_MASTER_INTERFACE_1 = dmacHw_REG_CTL_DMS_1, /* Destination DMA master interface 1 */ | ||
68 | dmacHw_DST_MASTER_INTERFACE_2 = dmacHw_REG_CTL_DMS_2 /* Destination DMA master interface 2 */ | ||
69 | } dmacHw_MASTER_INTERFACE_e; | ||
70 | |||
71 | typedef enum { | ||
72 | dmacHw_SRC_TRANSACTION_WIDTH_8 = dmacHw_REG_CTL_SRC_TR_WIDTH_8, /* Source 8 bit (1 byte) per transaction */ | ||
73 | dmacHw_SRC_TRANSACTION_WIDTH_16 = dmacHw_REG_CTL_SRC_TR_WIDTH_16, /* Source 16 bit (2 byte) per transaction */ | ||
74 | dmacHw_SRC_TRANSACTION_WIDTH_32 = dmacHw_REG_CTL_SRC_TR_WIDTH_32, /* Source 32 bit (4 byte) per transaction */ | ||
75 | dmacHw_SRC_TRANSACTION_WIDTH_64 = dmacHw_REG_CTL_SRC_TR_WIDTH_64, /* Source 64 bit (8 byte) per transaction */ | ||
76 | dmacHw_DST_TRANSACTION_WIDTH_8 = dmacHw_REG_CTL_DST_TR_WIDTH_8, /* Destination 8 bit (1 byte) per transaction */ | ||
77 | dmacHw_DST_TRANSACTION_WIDTH_16 = dmacHw_REG_CTL_DST_TR_WIDTH_16, /* Destination 16 bit (2 byte) per transaction */ | ||
78 | dmacHw_DST_TRANSACTION_WIDTH_32 = dmacHw_REG_CTL_DST_TR_WIDTH_32, /* Destination 32 bit (4 byte) per transaction */ | ||
79 | dmacHw_DST_TRANSACTION_WIDTH_64 = dmacHw_REG_CTL_DST_TR_WIDTH_64 /* Destination 64 bit (8 byte) per transaction */ | ||
80 | } dmacHw_TRANSACTION_WIDTH_e; | ||
81 | |||
82 | typedef enum { | ||
83 | dmacHw_SRC_BURST_WIDTH_0 = dmacHw_REG_CTL_SRC_MSIZE_0, /* Source No burst */ | ||
84 | dmacHw_SRC_BURST_WIDTH_4 = dmacHw_REG_CTL_SRC_MSIZE_4, /* Source 4 X dmacHw_TRANSACTION_WIDTH_xxx bytes per burst */ | ||
85 | dmacHw_SRC_BURST_WIDTH_8 = dmacHw_REG_CTL_SRC_MSIZE_8, /* Source 8 X dmacHw_TRANSACTION_WIDTH_xxx bytes per burst */ | ||
86 | dmacHw_SRC_BURST_WIDTH_16 = dmacHw_REG_CTL_SRC_MSIZE_16, /* Source 16 X dmacHw_TRANSACTION_WIDTH_xxx bytes per burst */ | ||
87 | dmacHw_DST_BURST_WIDTH_0 = dmacHw_REG_CTL_DST_MSIZE_0, /* Destination No burst */ | ||
88 | dmacHw_DST_BURST_WIDTH_4 = dmacHw_REG_CTL_DST_MSIZE_4, /* Destination 4 X dmacHw_TRANSACTION_WIDTH_xxx bytes per burst */ | ||
89 | dmacHw_DST_BURST_WIDTH_8 = dmacHw_REG_CTL_DST_MSIZE_8, /* Destination 8 X dmacHw_TRANSACTION_WIDTH_xxx bytes per burst */ | ||
90 | dmacHw_DST_BURST_WIDTH_16 = dmacHw_REG_CTL_DST_MSIZE_16 /* Destination 16 X dmacHw_TRANSACTION_WIDTH_xxx bytes per burst */ | ||
91 | } dmacHw_BURST_WIDTH_e; | ||
92 | |||
93 | typedef enum { | ||
94 | dmacHw_TRANSFER_TYPE_MEM_TO_MEM = dmacHw_REG_CTL_TTFC_MM_DMAC, /* Memory to memory transfer */ | ||
95 | dmacHw_TRANSFER_TYPE_PERIPHERAL_TO_MEM = dmacHw_REG_CTL_TTFC_PM_DMAC, /* Peripheral to memory transfer */ | ||
96 | dmacHw_TRANSFER_TYPE_MEM_TO_PERIPHERAL = dmacHw_REG_CTL_TTFC_MP_DMAC, /* Memory to peripheral transfer */ | ||
97 | dmacHw_TRANSFER_TYPE_PERIPHERAL_TO_PERIPHERAL = dmacHw_REG_CTL_TTFC_PP_DMAC /* Peripheral to peripheral transfer */ | ||
98 | } dmacHw_TRANSFER_TYPE_e; | ||
99 | |||
100 | typedef enum { | ||
101 | dmacHw_TRANSFER_MODE_PERREQUEST, /* Block transfer per DMA request */ | ||
102 | dmacHw_TRANSFER_MODE_CONTINUOUS, /* Continuous transfer of streaming data */ | ||
103 | dmacHw_TRANSFER_MODE_PERIODIC /* Periodic transfer of streaming data */ | ||
104 | } dmacHw_TRANSFER_MODE_e; | ||
105 | |||
106 | typedef enum { | ||
107 | dmacHw_SRC_ADDRESS_UPDATE_MODE_INC = dmacHw_REG_CTL_SINC_INC, /* Increment source address after every transaction */ | ||
108 | dmacHw_SRC_ADDRESS_UPDATE_MODE_DEC = dmacHw_REG_CTL_SINC_DEC, /* Decrement source address after every transaction */ | ||
109 | dmacHw_DST_ADDRESS_UPDATE_MODE_INC = dmacHw_REG_CTL_DINC_INC, /* Increment destination address after every transaction */ | ||
110 | dmacHw_DST_ADDRESS_UPDATE_MODE_DEC = dmacHw_REG_CTL_DINC_DEC, /* Decrement destination address after every transaction */ | ||
111 | dmacHw_SRC_ADDRESS_UPDATE_MODE_NC = dmacHw_REG_CTL_SINC_NC, /* No change in source address after every transaction */ | ||
112 | dmacHw_DST_ADDRESS_UPDATE_MODE_NC = dmacHw_REG_CTL_DINC_NC /* No change in destination address after every transaction */ | ||
113 | } dmacHw_ADDRESS_UPDATE_MODE_e; | ||
114 | |||
115 | typedef enum { | ||
116 | dmacHw_FLOW_CONTROL_DMA, /* DMA working as flow controller (default) */ | ||
117 | dmacHw_FLOW_CONTROL_PERIPHERAL /* Peripheral working as flow controller */ | ||
118 | } dmacHw_FLOW_CONTROL_e; | ||
119 | |||
120 | typedef enum { | ||
121 | dmacHw_TRANSFER_STATUS_BUSY, /* DMA Transfer ongoing */ | ||
122 | dmacHw_TRANSFER_STATUS_DONE, /* DMA Transfer completed */ | ||
123 | dmacHw_TRANSFER_STATUS_ERROR /* DMA Transfer error */ | ||
124 | } dmacHw_TRANSFER_STATUS_e; | ||
125 | |||
126 | typedef enum { | ||
127 | dmacHw_INTERRUPT_DISABLE, /* Interrupt disable */ | ||
128 | dmacHw_INTERRUPT_ENABLE /* Interrupt enable */ | ||
129 | } dmacHw_INTERRUPT_e; | ||
130 | |||
131 | typedef enum { | ||
132 | dmacHw_INTERRUPT_STATUS_NONE = 0x0, /* No DMA interrupt */ | ||
133 | dmacHw_INTERRUPT_STATUS_TRANS = 0x1, /* End of DMA transfer interrupt */ | ||
134 | dmacHw_INTERRUPT_STATUS_BLOCK = 0x2, /* End of block transfer interrupt */ | ||
135 | dmacHw_INTERRUPT_STATUS_ERROR = 0x4 /* Error interrupt */ | ||
136 | } dmacHw_INTERRUPT_STATUS_e; | ||
137 | |||
138 | typedef enum { | ||
139 | dmacHw_CONTROLLER_ATTRIB_CHANNEL_NUM, /* Number of DMA channel */ | ||
140 | dmacHw_CONTROLLER_ATTRIB_CHANNEL_MAX_BLOCK_SIZE, /* Maximum channel burst size */ | ||
141 | dmacHw_CONTROLLER_ATTRIB_MASTER_INTF_NUM, /* Number of DMA master interface */ | ||
142 | dmacHw_CONTROLLER_ATTRIB_CHANNEL_BUS_WIDTH, /* Channel Data bus width */ | ||
143 | dmacHw_CONTROLLER_ATTRIB_CHANNEL_FIFO_SIZE /* Channel FIFO size */ | ||
144 | } dmacHw_CONTROLLER_ATTRIB_e; | ||
145 | |||
146 | typedef unsigned long dmacHw_HANDLE_t; /* DMA channel handle */ | ||
147 | typedef uint32_t dmacHw_ID_t; /* DMA channel Id. Must be created using | ||
148 | "dmacHw_MAKE_CHANNEL_ID" macro | ||
149 | */ | ||
150 | /* DMA channel configuration parameters */ | ||
151 | typedef struct { | ||
152 | uint32_t srcPeripheralPort; /* Source peripheral port */ | ||
153 | uint32_t dstPeripheralPort; /* Destination peripheral port */ | ||
154 | uint32_t srcStatusRegisterAddress; /* Source status register address */ | ||
155 | uint32_t dstStatusRegisterAddress; /* Destination status register address of type */ | ||
156 | |||
157 | uint32_t srcGatherWidth; /* Number of bytes gathered before successive gather opearation */ | ||
158 | uint32_t srcGatherJump; /* Number of bytes jumpped before successive gather opearation */ | ||
159 | uint32_t dstScatterWidth; /* Number of bytes sacattered before successive scatter opearation */ | ||
160 | uint32_t dstScatterJump; /* Number of bytes jumpped before successive scatter opearation */ | ||
161 | uint32_t maxDataPerBlock; /* Maximum number of bytes to be transferred per block/descrptor. | ||
162 | 0 = Maximum possible. | ||
163 | */ | ||
164 | |||
165 | dmacHw_ADDRESS_UPDATE_MODE_e srcUpdate; /* Source address update mode */ | ||
166 | dmacHw_ADDRESS_UPDATE_MODE_e dstUpdate; /* Destination address update mode */ | ||
167 | dmacHw_TRANSFER_TYPE_e transferType; /* DMA transfer type */ | ||
168 | dmacHw_TRANSFER_MODE_e transferMode; /* DMA transfer mode */ | ||
169 | dmacHw_MASTER_INTERFACE_e srcMasterInterface; /* DMA source interface */ | ||
170 | dmacHw_MASTER_INTERFACE_e dstMasterInterface; /* DMA destination interface */ | ||
171 | dmacHw_TRANSACTION_WIDTH_e srcMaxTransactionWidth; /* Source transaction width */ | ||
172 | dmacHw_TRANSACTION_WIDTH_e dstMaxTransactionWidth; /* Destination transaction width */ | ||
173 | dmacHw_BURST_WIDTH_e srcMaxBurstWidth; /* Source burst width */ | ||
174 | dmacHw_BURST_WIDTH_e dstMaxBurstWidth; /* Destination burst width */ | ||
175 | dmacHw_INTERRUPT_e blockTransferInterrupt; /* Block trsnafer interrupt */ | ||
176 | dmacHw_INTERRUPT_e completeTransferInterrupt; /* Complete DMA trsnafer interrupt */ | ||
177 | dmacHw_INTERRUPT_e errorInterrupt; /* Error interrupt */ | ||
178 | dmacHw_CHANNEL_PRIORITY_e channelPriority; /* Channel priority */ | ||
179 | dmacHw_FLOW_CONTROL_e flowControler; /* Data flow controller */ | ||
180 | } dmacHw_CONFIG_t; | ||
181 | |||
182 | /****************************************************************************/ | ||
183 | /** | ||
184 | * @brief Initializes DMA | ||
185 | * | ||
186 | * This function initializes DMA CSP driver | ||
187 | * | ||
188 | * @note | ||
189 | * Must be called before using any DMA channel | ||
190 | */ | ||
191 | /****************************************************************************/ | ||
192 | void dmacHw_initDma(void); | ||
193 | |||
194 | /****************************************************************************/ | ||
195 | /** | ||
196 | * @brief Exit function for DMA | ||
197 | * | ||
198 | * This function isolates DMA from the system | ||
199 | * | ||
200 | */ | ||
201 | /****************************************************************************/ | ||
202 | void dmacHw_exitDma(void); | ||
203 | |||
204 | /****************************************************************************/ | ||
205 | /** | ||
206 | * @brief Gets a handle to a DMA channel | ||
207 | * | ||
208 | * This function returns a handle, representing a control block of a particular DMA channel | ||
209 | * | ||
210 | * @return -1 - On Failure | ||
211 | * handle - On Success, representing a channel control block | ||
212 | * | ||
213 | * @note | ||
214 | * None Channel ID must be created using "dmacHw_MAKE_CHANNEL_ID" macro | ||
215 | */ | ||
216 | /****************************************************************************/ | ||
217 | dmacHw_HANDLE_t dmacHw_getChannelHandle(dmacHw_ID_t channelId /* [ IN ] DMA Channel Id */ | ||
218 | ); | ||
219 | |||
220 | /****************************************************************************/ | ||
221 | /** | ||
222 | * @brief Initializes a DMA channel for use | ||
223 | * | ||
224 | * This function initializes and resets a DMA channel for use | ||
225 | * | ||
226 | * @return -1 - On Failure | ||
227 | * 0 - On Success | ||
228 | * | ||
229 | * @note | ||
230 | * None | ||
231 | */ | ||
232 | /****************************************************************************/ | ||
233 | int dmacHw_initChannel(dmacHw_HANDLE_t handle /* [ IN ] DMA Channel handle */ | ||
234 | ); | ||
235 | |||
236 | /****************************************************************************/ | ||
237 | /** | ||
238 | * @brief Estimates number of descriptor needed to perform certain DMA transfer | ||
239 | * | ||
240 | * | ||
241 | * @return On failure : -1 | ||
242 | * On success : Number of descriptor count | ||
243 | * | ||
244 | * | ||
245 | */ | ||
246 | /****************************************************************************/ | ||
247 | int dmacHw_calculateDescriptorCount(dmacHw_CONFIG_t *pConfig, /* [ IN ] Configuration settings */ | ||
248 | void *pSrcAddr, /* [ IN ] Source (Peripheral/Memory) address */ | ||
249 | void *pDstAddr, /* [ IN ] Destination (Peripheral/Memory) address */ | ||
250 | size_t dataLen /* [ IN ] Data length in bytes */ | ||
251 | ); | ||
252 | |||
253 | /****************************************************************************/ | ||
254 | /** | ||
255 | * @brief Initializes descriptor ring | ||
256 | * | ||
257 | * This function will initializes the descriptor ring of a DMA channel | ||
258 | * | ||
259 | * | ||
260 | * @return -1 - On failure | ||
261 | * 0 - On success | ||
262 | * @note | ||
263 | * - "len" parameter should be obtained from "dmacHw_descriptorLen" | ||
264 | * - Descriptor buffer MUST be 32 bit aligned and uncached as it | ||
265 | * is accessed by ARM and DMA | ||
266 | */ | ||
267 | /****************************************************************************/ | ||
268 | int dmacHw_initDescriptor(void *pDescriptorVirt, /* [ IN ] Virtual address of uncahced buffer allocated to form descriptor ring */ | ||
269 | uint32_t descriptorPhyAddr, /* [ IN ] Physical address of pDescriptorVirt (descriptor buffer) */ | ||
270 | uint32_t len, /* [ IN ] Size of the pBuf */ | ||
271 | uint32_t num /* [ IN ] Number of descriptor in the ring */ | ||
272 | ); | ||
273 | |||
274 | /****************************************************************************/ | ||
275 | /** | ||
276 | * @brief Finds amount of memory required to form a descriptor ring | ||
277 | * | ||
278 | * | ||
279 | * @return Number of bytes required to form a descriptor ring | ||
280 | * | ||
281 | * | ||
282 | * @note | ||
283 | * None | ||
284 | */ | ||
285 | /****************************************************************************/ | ||
286 | uint32_t dmacHw_descriptorLen(uint32_t descCnt /* [ IN ] Number of descriptor in the ring */ | ||
287 | ); | ||
288 | |||
289 | /****************************************************************************/ | ||
290 | /** | ||
291 | * @brief Configure DMA channel | ||
292 | * | ||
293 | * @return 0 : On success | ||
294 | * -1 : On failure | ||
295 | */ | ||
296 | /****************************************************************************/ | ||
297 | int dmacHw_configChannel(dmacHw_HANDLE_t handle, /* [ IN ] DMA Channel handle */ | ||
298 | dmacHw_CONFIG_t *pConfig /* [ IN ] Configuration settings */ | ||
299 | ); | ||
300 | |||
301 | /****************************************************************************/ | ||
302 | /** | ||
303 | * @brief Set descriptors for known data length | ||
304 | * | ||
305 | * When DMA has to work as a flow controller, this function prepares the | ||
306 | * descriptor chain to transfer data | ||
307 | * | ||
308 | * from: | ||
309 | * - Memory to memory | ||
310 | * - Peripheral to memory | ||
311 | * - Memory to Peripheral | ||
312 | * - Peripheral to Peripheral | ||
313 | * | ||
314 | * @return -1 - On failure | ||
315 | * 0 - On success | ||
316 | * | ||
317 | */ | ||
318 | /****************************************************************************/ | ||
319 | int dmacHw_setDataDescriptor(dmacHw_CONFIG_t *pConfig, /* [ IN ] Configuration settings */ | ||
320 | void *pDescriptor, /* [ IN ] Descriptor buffer */ | ||
321 | void *pSrcAddr, /* [ IN ] Source (Peripheral/Memory) address */ | ||
322 | void *pDstAddr, /* [ IN ] Destination (Peripheral/Memory) address */ | ||
323 | size_t dataLen /* [ IN ] Length in bytes */ | ||
324 | ); | ||
325 | |||
326 | /****************************************************************************/ | ||
327 | /** | ||
328 | * @brief Indicates whether DMA transfer is in progress or completed | ||
329 | * | ||
330 | * @return DMA transfer status | ||
331 | * dmacHw_TRANSFER_STATUS_BUSY: DMA Transfer ongoing | ||
332 | * dmacHw_TRANSFER_STATUS_DONE: DMA Transfer completed | ||
333 | * dmacHw_TRANSFER_STATUS_ERROR: DMA Transfer error | ||
334 | * | ||
335 | */ | ||
336 | /****************************************************************************/ | ||
337 | dmacHw_TRANSFER_STATUS_e dmacHw_transferCompleted(dmacHw_HANDLE_t handle /* [ IN ] DMA Channel handle */ | ||
338 | ); | ||
339 | |||
340 | /****************************************************************************/ | ||
341 | /** | ||
342 | * @brief Set descriptor carrying control information | ||
343 | * | ||
344 | * This function will be used to send specific control information to the device | ||
345 | * using the DMA channel | ||
346 | * | ||
347 | * | ||
348 | * @return -1 - On failure | ||
349 | * 0 - On success | ||
350 | * | ||
351 | * @note | ||
352 | * None | ||
353 | */ | ||
354 | /****************************************************************************/ | ||
355 | int dmacHw_setControlDescriptor(dmacHw_CONFIG_t *pConfig, /* [ IN ] Configuration settings */ | ||
356 | void *pDescriptor, /* [ IN ] Descriptor buffer */ | ||
357 | uint32_t ctlAddress, /* [ IN ] Address of the device control register */ | ||
358 | uint32_t control /* [ IN ] Device control information */ | ||
359 | ); | ||
360 | |||
361 | /****************************************************************************/ | ||
362 | /** | ||
363 | * @brief Read data DMA transferred to memory | ||
364 | * | ||
365 | * This function will read data that has been DMAed to memory while transferring from: | ||
366 | * - Memory to memory | ||
367 | * - Peripheral to memory | ||
368 | * | ||
369 | * @return 0 - No more data is available to read | ||
370 | * 1 - More data might be available to read | ||
371 | * | ||
372 | */ | ||
373 | /****************************************************************************/ | ||
374 | int dmacHw_readTransferredData(dmacHw_HANDLE_t handle, /* [ IN ] DMA Channel handle */ | ||
375 | dmacHw_CONFIG_t *pConfig, /* [ IN ] Configuration settings */ | ||
376 | void *pDescriptor, /* [ IN ] Descriptor buffer */ | ||
377 | void **ppBbuf, /* [ OUT ] Data received */ | ||
378 | size_t *pLlen /* [ OUT ] Length of the data received */ | ||
379 | ); | ||
380 | |||
381 | /****************************************************************************/ | ||
382 | /** | ||
383 | * @brief Prepares descriptor ring, when source peripheral working as a flow controller | ||
384 | * | ||
385 | * This function will form the descriptor ring by allocating buffers, when source peripheral | ||
386 | * has to work as a flow controller to transfer data from: | ||
387 | * - Peripheral to memory. | ||
388 | * | ||
389 | * @return -1 - On failure | ||
390 | * 0 - On success | ||
391 | * | ||
392 | * | ||
393 | * @note | ||
394 | * None | ||
395 | */ | ||
396 | /****************************************************************************/ | ||
397 | int dmacHw_setVariableDataDescriptor(dmacHw_HANDLE_t handle, /* [ IN ] DMA Channel handle */ | ||
398 | dmacHw_CONFIG_t *pConfig, /* [ IN ] Configuration settings */ | ||
399 | void *pDescriptor, /* [ IN ] Descriptor buffer */ | ||
400 | uint32_t srcAddr, /* [ IN ] Source peripheral address */ | ||
401 | void *(*fpAlloc) (int len), /* [ IN ] Function pointer that provides destination memory */ | ||
402 | int len, /* [ IN ] Number of bytes "fpAlloc" will allocate for destination */ | ||
403 | int num /* [ IN ] Number of descriptor to set */ | ||
404 | ); | ||
405 | |||
406 | /****************************************************************************/ | ||
407 | /** | ||
408 | * @brief Program channel register to initiate transfer | ||
409 | * | ||
410 | * @return void | ||
411 | * | ||
412 | * | ||
413 | * @note | ||
414 | * - Descriptor buffer MUST ALWAYS be flushed before calling this function | ||
415 | * - This function should also be called from ISR to program the channel with | ||
416 | * pending descriptors | ||
417 | */ | ||
418 | /****************************************************************************/ | ||
419 | void dmacHw_initiateTransfer(dmacHw_HANDLE_t handle, /* [ IN ] DMA Channel handle */ | ||
420 | dmacHw_CONFIG_t *pConfig, /* [ IN ] Configuration settings */ | ||
421 | void *pDescriptor /* [ IN ] Descriptor buffer */ | ||
422 | ); | ||
423 | |||
424 | /****************************************************************************/ | ||
425 | /** | ||
426 | * @brief Resets descriptor control information | ||
427 | * | ||
428 | * @return void | ||
429 | */ | ||
430 | /****************************************************************************/ | ||
431 | void dmacHw_resetDescriptorControl(void *pDescriptor /* [ IN ] Descriptor buffer */ | ||
432 | ); | ||
433 | |||
434 | /****************************************************************************/ | ||
435 | /** | ||
436 | * @brief Program channel register to stop transfer | ||
437 | * | ||
438 | * Ensures the channel is not doing any transfer after calling this function | ||
439 | * | ||
440 | * @return void | ||
441 | * | ||
442 | */ | ||
443 | /****************************************************************************/ | ||
444 | void dmacHw_stopTransfer(dmacHw_HANDLE_t handle /* [ IN ] DMA Channel handle */ | ||
445 | ); | ||
446 | |||
447 | /****************************************************************************/ | ||
448 | /** | ||
449 | * @brief Check the existence of pending descriptor | ||
450 | * | ||
451 | * This function confirmes if there is any pending descriptor in the chain | ||
452 | * to program the channel | ||
453 | * | ||
454 | * @return 1 : Channel need to be programmed with pending descriptor | ||
455 | * 0 : No more pending descriptor to programe the channel | ||
456 | * | ||
457 | * @note | ||
458 | * - This function should be called from ISR in case there are pending | ||
459 | * descriptor to program the channel. | ||
460 | * | ||
461 | * Example: | ||
462 | * | ||
463 | * dmac_isr () | ||
464 | * { | ||
465 | * ... | ||
466 | * if (dmacHw_descriptorPending (handle)) | ||
467 | * { | ||
468 | * dmacHw_initiateTransfer (handle); | ||
469 | * } | ||
470 | * } | ||
471 | * | ||
472 | */ | ||
473 | /****************************************************************************/ | ||
474 | uint32_t dmacHw_descriptorPending(dmacHw_HANDLE_t handle, /* [ IN ] DMA Channel handle */ | ||
475 | void *pDescriptor /* [ IN ] Descriptor buffer */ | ||
476 | ); | ||
477 | |||
478 | /****************************************************************************/ | ||
479 | /** | ||
480 | * @brief Deallocates source or destination memory, allocated | ||
481 | * | ||
482 | * This function can be called to deallocate data memory that was DMAed successfully | ||
483 | * | ||
484 | * @return -1 - On failure | ||
485 | * 0 - On success | ||
486 | * | ||
487 | * @note | ||
488 | * This function will be called ONLY, when source OR destination address is pointing | ||
489 | * to dynamic memory | ||
490 | */ | ||
491 | /****************************************************************************/ | ||
492 | int dmacHw_freeMem(dmacHw_CONFIG_t *pConfig, /* [ IN ] Configuration settings */ | ||
493 | void *pDescriptor, /* [ IN ] Descriptor buffer */ | ||
494 | void (*fpFree) (void *) /* [ IN ] Function pointer to free data memory */ | ||
495 | ); | ||
496 | |||
497 | /****************************************************************************/ | ||
498 | /** | ||
499 | * @brief Clears the interrupt | ||
500 | * | ||
501 | * This function clears the DMA channel specific interrupt | ||
502 | * | ||
503 | * @return N/A | ||
504 | * | ||
505 | * @note | ||
506 | * Must be called under the context of ISR | ||
507 | */ | ||
508 | /****************************************************************************/ | ||
509 | void dmacHw_clearInterrupt(dmacHw_HANDLE_t handle /* [ IN ] DMA Channel handle */ | ||
510 | ); | ||
511 | |||
512 | /****************************************************************************/ | ||
513 | /** | ||
514 | * @brief Returns the cause of channel specific DMA interrupt | ||
515 | * | ||
516 | * This function returns the cause of interrupt | ||
517 | * | ||
518 | * @return Interrupt status, each bit representing a specific type of interrupt | ||
519 | * of type dmacHw_INTERRUPT_STATUS_e | ||
520 | * @note | ||
521 | * This function should be called under the context of ISR | ||
522 | */ | ||
523 | /****************************************************************************/ | ||
524 | dmacHw_INTERRUPT_STATUS_e dmacHw_getInterruptStatus(dmacHw_HANDLE_t handle /* [ IN ] DMA Channel handle */ | ||
525 | ); | ||
526 | |||
527 | /****************************************************************************/ | ||
528 | /** | ||
529 | * @brief Indentifies a DMA channel causing interrupt | ||
530 | * | ||
531 | * This functions returns a channel causing interrupt of type dmacHw_INTERRUPT_STATUS_e | ||
532 | * | ||
533 | * @return NULL : No channel causing DMA interrupt | ||
534 | * ! NULL : Handle to a channel causing DMA interrupt | ||
535 | * @note | ||
536 | * dmacHw_clearInterrupt() must be called with a valid handle after calling this function | ||
537 | */ | ||
538 | /****************************************************************************/ | ||
539 | dmacHw_HANDLE_t dmacHw_getInterruptSource(void); | ||
540 | |||
541 | /****************************************************************************/ | ||
542 | /** | ||
543 | * @brief Sets channel specific user data | ||
544 | * | ||
545 | * This function associates user data to a specific DMA channel | ||
546 | * | ||
547 | */ | ||
548 | /****************************************************************************/ | ||
549 | void dmacHw_setChannelUserData(dmacHw_HANDLE_t handle, /* [ IN ] DMA Channel handle */ | ||
550 | void *userData /* [ IN ] User data */ | ||
551 | ); | ||
552 | |||
553 | /****************************************************************************/ | ||
554 | /** | ||
555 | * @brief Gets channel specific user data | ||
556 | * | ||
557 | * This function returns user data specific to a DMA channel | ||
558 | * | ||
559 | * @return user data | ||
560 | */ | ||
561 | /****************************************************************************/ | ||
562 | void *dmacHw_getChannelUserData(dmacHw_HANDLE_t handle /* [ IN ] DMA Channel handle */ | ||
563 | ); | ||
564 | |||
565 | /****************************************************************************/ | ||
566 | /** | ||
567 | * @brief Displays channel specific registers and other control parameters | ||
568 | * | ||
569 | * | ||
570 | * @return void | ||
571 | * | ||
572 | * @note | ||
573 | * None | ||
574 | */ | ||
575 | /****************************************************************************/ | ||
576 | void dmacHw_printDebugInfo(dmacHw_HANDLE_t handle, /* [ IN ] DMA Channel handle */ | ||
577 | void *pDescriptor, /* [ IN ] Descriptor buffer */ | ||
578 | int (*fpPrint) (const char *, ...) /* [ IN ] Print callback function */ | ||
579 | ); | ||
580 | |||
581 | /****************************************************************************/ | ||
582 | /** | ||
583 | * @brief Provides DMA controller attributes | ||
584 | * | ||
585 | * | ||
586 | * @return DMA controller attributes | ||
587 | * | ||
588 | * @note | ||
589 | * None | ||
590 | */ | ||
591 | /****************************************************************************/ | ||
592 | uint32_t dmacHw_getDmaControllerAttribute(dmacHw_HANDLE_t handle, /* [ IN ] DMA Channel handle */ | ||
593 | dmacHw_CONTROLLER_ATTRIB_e attr /* [ IN ] DMA Controller attribute of type dmacHw_CONTROLLER_ATTRIB_e */ | ||
594 | ); | ||
595 | |||
596 | #endif /* _DMACHW_H */ | ||
diff --git a/arch/arm/mach-bcmring/include/csp/errno.h b/arch/arm/mach-bcmring/include/csp/errno.h deleted file mode 100644 index 51357dd5b666..000000000000 --- a/arch/arm/mach-bcmring/include/csp/errno.h +++ /dev/null | |||
@@ -1,32 +0,0 @@ | |||
1 | /***************************************************************************** | ||
2 | * Copyright 2003 - 2008 Broadcom Corporation. All rights reserved. | ||
3 | * | ||
4 | * Unless you and Broadcom execute a separate written software license | ||
5 | * agreement governing use of this software, this software is licensed to you | ||
6 | * under the terms of the GNU General Public License version 2, available at | ||
7 | * http://www.broadcom.com/licenses/GPLv2.php (the "GPL"). | ||
8 | * | ||
9 | * Notwithstanding the above, under no circumstances may you combine this | ||
10 | * software in any way with any other Broadcom software provided under a | ||
11 | * license other than the GPL, without Broadcom's express prior written | ||
12 | * consent. | ||
13 | *****************************************************************************/ | ||
14 | |||
15 | #ifndef CSP_ERRNO_H | ||
16 | #define CSP_ERRNO_H | ||
17 | |||
18 | /* ---- Include Files ---------------------------------------------------- */ | ||
19 | |||
20 | #if defined(__KERNEL__) | ||
21 | #include <linux/errno.h> | ||
22 | #elif defined(CSP_SIMULATION) | ||
23 | #include <asm-generic/errno.h> | ||
24 | #else | ||
25 | #include <errno.h> | ||
26 | #endif | ||
27 | |||
28 | /* ---- Public Constants and Types --------------------------------------- */ | ||
29 | /* ---- Public Variable Externs ------------------------------------------ */ | ||
30 | /* ---- Public Function Prototypes --------------------------------------- */ | ||
31 | |||
32 | #endif /* CSP_ERRNO_H */ | ||
diff --git a/arch/arm/mach-bcmring/include/csp/intcHw.h b/arch/arm/mach-bcmring/include/csp/intcHw.h deleted file mode 100644 index 1c639c8ee08f..000000000000 --- a/arch/arm/mach-bcmring/include/csp/intcHw.h +++ /dev/null | |||
@@ -1,40 +0,0 @@ | |||
1 | /***************************************************************************** | ||
2 | * Copyright 2003 - 2008 Broadcom Corporation. All rights reserved. | ||
3 | * | ||
4 | * Unless you and Broadcom execute a separate written software license | ||
5 | * agreement governing use of this software, this software is licensed to you | ||
6 | * under the terms of the GNU General Public License version 2, available at | ||
7 | * http://www.broadcom.com/licenses/GPLv2.php (the "GPL"). | ||
8 | * | ||
9 | * Notwithstanding the above, under no circumstances may you combine this | ||
10 | * software in any way with any other Broadcom software provided under a | ||
11 | * license other than the GPL, without Broadcom's express prior written | ||
12 | * consent. | ||
13 | *****************************************************************************/ | ||
14 | |||
15 | |||
16 | /****************************************************************************/ | ||
17 | /** | ||
18 | * @file intcHw.h | ||
19 | * | ||
20 | * @brief generic interrupt controller API | ||
21 | * | ||
22 | * @note | ||
23 | * None | ||
24 | */ | ||
25 | /****************************************************************************/ | ||
26 | |||
27 | #ifndef _INTCHW_H | ||
28 | #define _INTCHW_H | ||
29 | |||
30 | /* ---- Include Files ---------------------------------------------------- */ | ||
31 | #include <mach/csp/intcHw_reg.h> | ||
32 | |||
33 | /* ---- Public Constants and Types --------------------------------------- */ | ||
34 | /* ---- Public Variable Externs ------------------------------------------ */ | ||
35 | /* ---- Public Function Prototypes --------------------------------------- */ | ||
36 | static inline void intcHw_irq_disable(void *basep, uint32_t mask); | ||
37 | static inline void intcHw_irq_enable(void *basep, uint32_t mask); | ||
38 | |||
39 | #endif /* _INTCHW_H */ | ||
40 | |||
diff --git a/arch/arm/mach-bcmring/include/csp/module.h b/arch/arm/mach-bcmring/include/csp/module.h deleted file mode 100644 index c30d2a5975a6..000000000000 --- a/arch/arm/mach-bcmring/include/csp/module.h +++ /dev/null | |||
@@ -1,32 +0,0 @@ | |||
1 | /***************************************************************************** | ||
2 | * Copyright 2003 - 2008 Broadcom Corporation. All rights reserved. | ||
3 | * | ||
4 | * Unless you and Broadcom execute a separate written software license | ||
5 | * agreement governing use of this software, this software is licensed to you | ||
6 | * under the terms of the GNU General Public License version 2, available at | ||
7 | * http://www.broadcom.com/licenses/GPLv2.php (the "GPL"). | ||
8 | * | ||
9 | * Notwithstanding the above, under no circumstances may you combine this | ||
10 | * software in any way with any other Broadcom software provided under a | ||
11 | * license other than the GPL, without Broadcom's express prior written | ||
12 | * consent. | ||
13 | *****************************************************************************/ | ||
14 | |||
15 | |||
16 | #ifndef CSP_MODULE_H | ||
17 | #define CSP_MODULE_H | ||
18 | |||
19 | /* ---- Include Files ---------------------------------------------------- */ | ||
20 | |||
21 | #ifdef __KERNEL__ | ||
22 | #include <linux/module.h> | ||
23 | #else | ||
24 | #define EXPORT_SYMBOL(symbol) | ||
25 | #endif | ||
26 | |||
27 | /* ---- Public Constants and Types --------------------------------------- */ | ||
28 | /* ---- Public Variable Externs ------------------------------------------ */ | ||
29 | /* ---- Public Function Prototypes --------------------------------------- */ | ||
30 | |||
31 | |||
32 | #endif /* CSP_MODULE_H */ | ||
diff --git a/arch/arm/mach-bcmring/include/csp/reg.h b/arch/arm/mach-bcmring/include/csp/reg.h deleted file mode 100644 index 56654d23c3d7..000000000000 --- a/arch/arm/mach-bcmring/include/csp/reg.h +++ /dev/null | |||
@@ -1,114 +0,0 @@ | |||
1 | /***************************************************************************** | ||
2 | * Copyright 2003 - 2008 Broadcom Corporation. All rights reserved. | ||
3 | * | ||
4 | * Unless you and Broadcom execute a separate written software license | ||
5 | * agreement governing use of this software, this software is licensed to you | ||
6 | * under the terms of the GNU General Public License version 2, available at | ||
7 | * http://www.broadcom.com/licenses/GPLv2.php (the "GPL"). | ||
8 | * | ||
9 | * Notwithstanding the above, under no circumstances may you combine this | ||
10 | * software in any way with any other Broadcom software provided under a | ||
11 | * license other than the GPL, without Broadcom's express prior written | ||
12 | * consent. | ||
13 | *****************************************************************************/ | ||
14 | |||
15 | /****************************************************************************/ | ||
16 | /** | ||
17 | * @file reg.h | ||
18 | * | ||
19 | * @brief Generic register definitions used in CSP | ||
20 | */ | ||
21 | /****************************************************************************/ | ||
22 | |||
23 | #ifndef CSP_REG_H | ||
24 | #define CSP_REG_H | ||
25 | |||
26 | /* ---- Include Files ---------------------------------------------------- */ | ||
27 | |||
28 | #include <csp/stdint.h> | ||
29 | |||
30 | /* ---- Public Constants and Types --------------------------------------- */ | ||
31 | |||
32 | #define __REG32(x) (*((volatile uint32_t *)(x))) | ||
33 | #define __REG16(x) (*((volatile uint16_t *)(x))) | ||
34 | #define __REG8(x) (*((volatile uint8_t *) (x))) | ||
35 | |||
36 | /* Macros used to define a sequence of reserved registers. The start / end */ | ||
37 | /* are byte offsets in the particular register definition, with the "end" */ | ||
38 | /* being the offset of the next un-reserved register. E.g. if offsets */ | ||
39 | /* 0x10 through to 0x1f are reserved, then this reserved area could be */ | ||
40 | /* specified as follows. */ | ||
41 | /* typedef struct */ | ||
42 | /* { */ | ||
43 | /* uint32_t reg1; offset 0x00 */ | ||
44 | /* uint32_t reg2; offset 0x04 */ | ||
45 | /* uint32_t reg3; offset 0x08 */ | ||
46 | /* uint32_t reg4; offset 0x0c */ | ||
47 | /* REG32_RSVD(0x10, 0x20); */ | ||
48 | /* uint32_t reg5; offset 0x20 */ | ||
49 | /* ... */ | ||
50 | /* } EXAMPLE_REG_t; */ | ||
51 | #define REG8_RSVD(start, end) uint8_t rsvd_##start[(end - start) / sizeof(uint8_t)] | ||
52 | #define REG16_RSVD(start, end) uint16_t rsvd_##start[(end - start) / sizeof(uint16_t)] | ||
53 | #define REG32_RSVD(start, end) uint32_t rsvd_##start[(end - start) / sizeof(uint32_t)] | ||
54 | |||
55 | /* ---- Public Variable Externs ------------------------------------------ */ | ||
56 | /* ---- Public Function Prototypes --------------------------------------- */ | ||
57 | |||
58 | /* Note: When protecting multiple statements, the REG_LOCAL_IRQ_SAVE and */ | ||
59 | /* REG_LOCAL_IRQ_RESTORE must be enclosed in { } to allow the */ | ||
60 | /* flags variable to be declared locally. */ | ||
61 | /* e.g. */ | ||
62 | /* statement1; */ | ||
63 | /* { */ | ||
64 | /* REG_LOCAL_IRQ_SAVE; */ | ||
65 | /* <multiple statements here> */ | ||
66 | /* REG_LOCAL_IRQ_RESTORE; */ | ||
67 | /* } */ | ||
68 | /* statement2; */ | ||
69 | /* */ | ||
70 | |||
71 | #if defined(__KERNEL__) && !defined(STANDALONE) | ||
72 | #include <mach/hardware.h> | ||
73 | #include <linux/interrupt.h> | ||
74 | |||
75 | #define REG_LOCAL_IRQ_SAVE HW_DECLARE_SPINLOCK(reg32) \ | ||
76 | unsigned long flags; HW_IRQ_SAVE(reg32, flags) | ||
77 | |||
78 | #define REG_LOCAL_IRQ_RESTORE HW_IRQ_RESTORE(reg32, flags) | ||
79 | |||
80 | #else | ||
81 | |||
82 | #define REG_LOCAL_IRQ_SAVE | ||
83 | #define REG_LOCAL_IRQ_RESTORE | ||
84 | |||
85 | #endif | ||
86 | |||
87 | static inline void reg32_modify_and(volatile uint32_t *reg, uint32_t value) | ||
88 | { | ||
89 | REG_LOCAL_IRQ_SAVE; | ||
90 | *reg &= value; | ||
91 | REG_LOCAL_IRQ_RESTORE; | ||
92 | } | ||
93 | |||
94 | static inline void reg32_modify_or(volatile uint32_t *reg, uint32_t value) | ||
95 | { | ||
96 | REG_LOCAL_IRQ_SAVE; | ||
97 | *reg |= value; | ||
98 | REG_LOCAL_IRQ_RESTORE; | ||
99 | } | ||
100 | |||
101 | static inline void reg32_modify_mask(volatile uint32_t *reg, uint32_t mask, | ||
102 | uint32_t value) | ||
103 | { | ||
104 | REG_LOCAL_IRQ_SAVE; | ||
105 | *reg = (*reg & mask) | value; | ||
106 | REG_LOCAL_IRQ_RESTORE; | ||
107 | } | ||
108 | |||
109 | static inline void reg32_write(volatile uint32_t *reg, uint32_t value) | ||
110 | { | ||
111 | *reg = value; | ||
112 | } | ||
113 | |||
114 | #endif /* CSP_REG_H */ | ||
diff --git a/arch/arm/mach-bcmring/include/csp/secHw.h b/arch/arm/mach-bcmring/include/csp/secHw.h deleted file mode 100644 index b9d7e0732dfc..000000000000 --- a/arch/arm/mach-bcmring/include/csp/secHw.h +++ /dev/null | |||
@@ -1,65 +0,0 @@ | |||
1 | /***************************************************************************** | ||
2 | * Copyright 2004 - 2008 Broadcom Corporation. All rights reserved. | ||
3 | * | ||
4 | * Unless you and Broadcom execute a separate written software license | ||
5 | * agreement governing use of this software, this software is licensed to you | ||
6 | * under the terms of the GNU General Public License version 2, available at | ||
7 | * http://www.broadcom.com/licenses/GPLv2.php (the "GPL"). | ||
8 | * | ||
9 | * Notwithstanding the above, under no circumstances may you combine this | ||
10 | * software in any way with any other Broadcom software provided under a | ||
11 | * license other than the GPL, without Broadcom's express prior written | ||
12 | * consent. | ||
13 | *****************************************************************************/ | ||
14 | |||
15 | /****************************************************************************/ | ||
16 | /** | ||
17 | * @file secHw.h | ||
18 | * | ||
19 | * @brief Definitions for accessing low level security features | ||
20 | * | ||
21 | */ | ||
22 | /****************************************************************************/ | ||
23 | #ifndef SECHW_H | ||
24 | #define SECHW_H | ||
25 | |||
26 | typedef void (*secHw_FUNC_t) (void); | ||
27 | |||
28 | typedef enum { | ||
29 | secHw_MODE_SECURE = 0x0, /* Switches processor into secure mode */ | ||
30 | secHw_MODE_NONSECURE = 0x1 /* Switches processor into non-secure mode */ | ||
31 | } secHw_MODE; | ||
32 | |||
33 | /****************************************************************************/ | ||
34 | /** | ||
35 | * @brief Requesting to execute the function in secure mode | ||
36 | * | ||
37 | * This function requests the given function to run in secure mode | ||
38 | * | ||
39 | */ | ||
40 | /****************************************************************************/ | ||
41 | void secHw_RunSecure(secHw_FUNC_t /* Function to run in secure mode */ | ||
42 | ); | ||
43 | |||
44 | /****************************************************************************/ | ||
45 | /** | ||
46 | * @brief Sets the mode | ||
47 | * | ||
48 | * his function sets the processor mode (secure/non-secure) | ||
49 | * | ||
50 | */ | ||
51 | /****************************************************************************/ | ||
52 | void secHw_SetMode(secHw_MODE /* Processor mode */ | ||
53 | ); | ||
54 | |||
55 | /****************************************************************************/ | ||
56 | /** | ||
57 | * @brief Get the current mode | ||
58 | * | ||
59 | * This function retieves the processor mode (secure/non-secure) | ||
60 | * | ||
61 | */ | ||
62 | /****************************************************************************/ | ||
63 | void secHw_GetMode(secHw_MODE *); | ||
64 | |||
65 | #endif /* SECHW_H */ | ||
diff --git a/arch/arm/mach-bcmring/include/csp/stdint.h b/arch/arm/mach-bcmring/include/csp/stdint.h deleted file mode 100644 index 3a8718bbf700..000000000000 --- a/arch/arm/mach-bcmring/include/csp/stdint.h +++ /dev/null | |||
@@ -1,30 +0,0 @@ | |||
1 | /***************************************************************************** | ||
2 | * Copyright 2003 - 2008 Broadcom Corporation. All rights reserved. | ||
3 | * | ||
4 | * Unless you and Broadcom execute a separate written software license | ||
5 | * agreement governing use of this software, this software is licensed to you | ||
6 | * under the terms of the GNU General Public License version 2, available at | ||
7 | * http://www.broadcom.com/licenses/GPLv2.php (the "GPL"). | ||
8 | * | ||
9 | * Notwithstanding the above, under no circumstances may you combine this | ||
10 | * software in any way with any other Broadcom software provided under a | ||
11 | * license other than the GPL, without Broadcom's express prior written | ||
12 | * consent. | ||
13 | *****************************************************************************/ | ||
14 | |||
15 | #ifndef CSP_STDINT_H | ||
16 | #define CSP_STDINT_H | ||
17 | |||
18 | /* ---- Include Files ---------------------------------------------------- */ | ||
19 | |||
20 | #ifdef __KERNEL__ | ||
21 | #include <linux/types.h> | ||
22 | #else | ||
23 | #include <stdint.h> | ||
24 | #endif | ||
25 | |||
26 | /* ---- Public Constants and Types --------------------------------------- */ | ||
27 | /* ---- Public Variable Externs ------------------------------------------ */ | ||
28 | /* ---- Public Function Prototypes --------------------------------------- */ | ||
29 | |||
30 | #endif /* CSP_STDINT_H */ | ||
diff --git a/arch/arm/mach-bcmring/include/csp/string.h b/arch/arm/mach-bcmring/include/csp/string.h deleted file mode 100644 index ad9e4005f141..000000000000 --- a/arch/arm/mach-bcmring/include/csp/string.h +++ /dev/null | |||
@@ -1,34 +0,0 @@ | |||
1 | /***************************************************************************** | ||
2 | * Copyright 2003 - 2008 Broadcom Corporation. All rights reserved. | ||
3 | * | ||
4 | * Unless you and Broadcom execute a separate written software license | ||
5 | * agreement governing use of this software, this software is licensed to you | ||
6 | * under the terms of the GNU General Public License version 2, available at | ||
7 | * http://www.broadcom.com/licenses/GPLv2.php (the "GPL"). | ||
8 | * | ||
9 | * Notwithstanding the above, under no circumstances may you combine this | ||
10 | * software in any way with any other Broadcom software provided under a | ||
11 | * license other than the GPL, without Broadcom's express prior written | ||
12 | * consent. | ||
13 | *****************************************************************************/ | ||
14 | |||
15 | |||
16 | |||
17 | #ifndef CSP_STRING_H | ||
18 | #define CSP_STRING_H | ||
19 | |||
20 | /* ---- Include Files ---------------------------------------------------- */ | ||
21 | |||
22 | #ifdef __KERNEL__ | ||
23 | #include <linux/string.h> | ||
24 | #else | ||
25 | #include <string.h> | ||
26 | #endif | ||
27 | |||
28 | /* ---- Public Constants and Types --------------------------------------- */ | ||
29 | /* ---- Public Variable Externs ------------------------------------------ */ | ||
30 | /* ---- Public Function Prototypes --------------------------------------- */ | ||
31 | |||
32 | |||
33 | #endif /* CSP_STRING_H */ | ||
34 | |||
diff --git a/arch/arm/mach-bcmring/include/csp/tmrHw.h b/arch/arm/mach-bcmring/include/csp/tmrHw.h deleted file mode 100644 index 2cbb530db8ea..000000000000 --- a/arch/arm/mach-bcmring/include/csp/tmrHw.h +++ /dev/null | |||
@@ -1,263 +0,0 @@ | |||
1 | /***************************************************************************** | ||
2 | * Copyright 2004 - 2008 Broadcom Corporation. All rights reserved. | ||
3 | * | ||
4 | * Unless you and Broadcom execute a separate written software license | ||
5 | * agreement governing use of this software, this software is licensed to you | ||
6 | * under the terms of the GNU General Public License version 2, available at | ||
7 | * http://www.broadcom.com/licenses/GPLv2.php (the "GPL"). | ||
8 | * | ||
9 | * Notwithstanding the above, under no circumstances may you combine this | ||
10 | * software in any way with any other Broadcom software provided under a | ||
11 | * license other than the GPL, without Broadcom's express prior written | ||
12 | * consent. | ||
13 | *****************************************************************************/ | ||
14 | |||
15 | /****************************************************************************/ | ||
16 | /** | ||
17 | * @file tmrHw.h | ||
18 | * | ||
19 | * @brief API definitions for low level Timer driver | ||
20 | * | ||
21 | */ | ||
22 | /****************************************************************************/ | ||
23 | #ifndef _TMRHW_H | ||
24 | #define _TMRHW_H | ||
25 | |||
26 | #include <csp/stdint.h> | ||
27 | |||
28 | typedef uint32_t tmrHw_ID_t; /* Timer ID */ | ||
29 | typedef uint32_t tmrHw_COUNT_t; /* Timer count */ | ||
30 | typedef uint32_t tmrHw_INTERVAL_t; /* Timer interval */ | ||
31 | typedef uint32_t tmrHw_RATE_t; /* Timer event (count/interrupt) rate */ | ||
32 | |||
33 | typedef enum { | ||
34 | tmrHw_INTERRUPT_STATUS_SET, /* Interrupted */ | ||
35 | tmrHw_INTERRUPT_STATUS_UNSET /* No Interrupt */ | ||
36 | } tmrHw_INTERRUPT_STATUS_e; | ||
37 | |||
38 | typedef enum { | ||
39 | tmrHw_CAPABILITY_CLOCK, /* Clock speed in HHz */ | ||
40 | tmrHw_CAPABILITY_RESOLUTION /* Timer resolution in bits */ | ||
41 | } tmrHw_CAPABILITY_e; | ||
42 | |||
43 | /****************************************************************************/ | ||
44 | /** | ||
45 | * @brief Get timer capability | ||
46 | * | ||
47 | * This function returns various capabilities/attributes of a timer | ||
48 | * | ||
49 | * @return Numeric capability | ||
50 | * | ||
51 | */ | ||
52 | /****************************************************************************/ | ||
53 | uint32_t tmrHw_getTimerCapability(tmrHw_ID_t timerId, /* [ IN ] Timer Id */ | ||
54 | tmrHw_CAPABILITY_e capability /* [ IN ] Timer capability */ | ||
55 | ); | ||
56 | |||
57 | /****************************************************************************/ | ||
58 | /** | ||
59 | * @brief Configures a periodic timer in terms of timer interrupt rate | ||
60 | * | ||
61 | * This function initializes a periodic timer to generate specific number of | ||
62 | * timer interrupt per second | ||
63 | * | ||
64 | * @return On success: Effective timer frequency | ||
65 | * On failure: 0 | ||
66 | * | ||
67 | */ | ||
68 | /****************************************************************************/ | ||
69 | tmrHw_RATE_t tmrHw_setPeriodicTimerRate(tmrHw_ID_t timerId, /* [ IN ] Timer Id */ | ||
70 | tmrHw_RATE_t rate /* [ IN ] Number of timer interrupt per second */ | ||
71 | ); | ||
72 | |||
73 | /****************************************************************************/ | ||
74 | /** | ||
75 | * @brief Configures a periodic timer to generate timer interrupt after | ||
76 | * certain time interval | ||
77 | * | ||
78 | * This function initializes a periodic timer to generate timer interrupt | ||
79 | * after every time interval in millisecond | ||
80 | * | ||
81 | * @return On success: Effective interval set in mili-second | ||
82 | * On failure: 0 | ||
83 | * | ||
84 | */ | ||
85 | /****************************************************************************/ | ||
86 | tmrHw_INTERVAL_t tmrHw_setPeriodicTimerInterval(tmrHw_ID_t timerId, /* [ IN ] Timer Id */ | ||
87 | tmrHw_INTERVAL_t msec /* [ IN ] Interval in mili-second */ | ||
88 | ); | ||
89 | |||
90 | /****************************************************************************/ | ||
91 | /** | ||
92 | * @brief Configures a periodic timer to generate timer interrupt just once | ||
93 | * after certain time interval | ||
94 | * | ||
95 | * This function initializes a periodic timer to generate a single ticks after | ||
96 | * certain time interval in millisecond | ||
97 | * | ||
98 | * @return On success: Effective interval set in mili-second | ||
99 | * On failure: 0 | ||
100 | * | ||
101 | */ | ||
102 | /****************************************************************************/ | ||
103 | tmrHw_INTERVAL_t tmrHw_setOneshotTimerInterval(tmrHw_ID_t timerId, /* [ IN ] Timer Id */ | ||
104 | tmrHw_INTERVAL_t msec /* [ IN ] Interval in mili-second */ | ||
105 | ); | ||
106 | |||
107 | /****************************************************************************/ | ||
108 | /** | ||
109 | * @brief Configures a timer to run as a free running timer | ||
110 | * | ||
111 | * This function initializes a timer to run as a free running timer | ||
112 | * | ||
113 | * @return Timer resolution (count / sec) | ||
114 | * | ||
115 | */ | ||
116 | /****************************************************************************/ | ||
117 | tmrHw_RATE_t tmrHw_setFreeRunningTimer(tmrHw_ID_t timerId, /* [ IN ] Timer Id */ | ||
118 | uint32_t divider /* [ IN ] Dividing the clock frequency */ | ||
119 | ) __attribute__ ((section(".aramtext"))); | ||
120 | |||
121 | /****************************************************************************/ | ||
122 | /** | ||
123 | * @brief Starts a timer | ||
124 | * | ||
125 | * This function starts a preconfigured timer | ||
126 | * | ||
127 | * @return -1 - On Failure | ||
128 | * 0 - On Success | ||
129 | */ | ||
130 | /****************************************************************************/ | ||
131 | int tmrHw_startTimer(tmrHw_ID_t timerId /* [ IN ] Timer id */ | ||
132 | ) __attribute__ ((section(".aramtext"))); | ||
133 | |||
134 | /****************************************************************************/ | ||
135 | /** | ||
136 | * @brief Stops a timer | ||
137 | * | ||
138 | * This function stops a running timer | ||
139 | * | ||
140 | * @return -1 - On Failure | ||
141 | * 0 - On Success | ||
142 | */ | ||
143 | /****************************************************************************/ | ||
144 | int tmrHw_stopTimer(tmrHw_ID_t timerId /* [ IN ] Timer id */ | ||
145 | ); | ||
146 | |||
147 | /****************************************************************************/ | ||
148 | /** | ||
149 | * @brief Gets current timer count | ||
150 | * | ||
151 | * This function returns the current timer value | ||
152 | * | ||
153 | * @return Current downcounting timer value | ||
154 | * | ||
155 | */ | ||
156 | /****************************************************************************/ | ||
157 | tmrHw_COUNT_t tmrHw_GetCurrentCount(tmrHw_ID_t timerId /* [ IN ] Timer id */ | ||
158 | ) __attribute__ ((section(".aramtext"))); | ||
159 | |||
160 | /****************************************************************************/ | ||
161 | /** | ||
162 | * @brief Gets timer count rate | ||
163 | * | ||
164 | * This function returns the number of counts per second | ||
165 | * | ||
166 | * @return Count rate | ||
167 | * | ||
168 | */ | ||
169 | /****************************************************************************/ | ||
170 | tmrHw_RATE_t tmrHw_getCountRate(tmrHw_ID_t timerId /* [ IN ] Timer id */ | ||
171 | ) __attribute__ ((section(".aramtext"))); | ||
172 | |||
173 | /****************************************************************************/ | ||
174 | /** | ||
175 | * @brief Enables timer interrupt | ||
176 | * | ||
177 | * This function enables the timer interrupt | ||
178 | * | ||
179 | * @return N/A | ||
180 | * | ||
181 | */ | ||
182 | /****************************************************************************/ | ||
183 | void tmrHw_enableInterrupt(tmrHw_ID_t timerId /* [ IN ] Timer id */ | ||
184 | ); | ||
185 | |||
186 | /****************************************************************************/ | ||
187 | /** | ||
188 | * @brief Disables timer interrupt | ||
189 | * | ||
190 | * This function disable the timer interrupt | ||
191 | * | ||
192 | * @return N/A | ||
193 | */ | ||
194 | /****************************************************************************/ | ||
195 | void tmrHw_disableInterrupt(tmrHw_ID_t timerId /* [ IN ] Timer id */ | ||
196 | ); | ||
197 | |||
198 | /****************************************************************************/ | ||
199 | /** | ||
200 | * @brief Clears the interrupt | ||
201 | * | ||
202 | * This function clears the timer interrupt | ||
203 | * | ||
204 | * @return N/A | ||
205 | * | ||
206 | * @note | ||
207 | * Must be called under the context of ISR | ||
208 | */ | ||
209 | /****************************************************************************/ | ||
210 | void tmrHw_clearInterrupt(tmrHw_ID_t timerId /* [ IN ] Timer id */ | ||
211 | ); | ||
212 | |||
213 | /****************************************************************************/ | ||
214 | /** | ||
215 | * @brief Gets the interrupt status | ||
216 | * | ||
217 | * This function returns timer interrupt status | ||
218 | * | ||
219 | * @return Interrupt status | ||
220 | */ | ||
221 | /****************************************************************************/ | ||
222 | tmrHw_INTERRUPT_STATUS_e tmrHw_getInterruptStatus(tmrHw_ID_t timerId /* [ IN ] Timer id */ | ||
223 | ); | ||
224 | |||
225 | /****************************************************************************/ | ||
226 | /** | ||
227 | * @brief Indentifies a timer causing interrupt | ||
228 | * | ||
229 | * This functions returns a timer causing interrupt | ||
230 | * | ||
231 | * @return 0xFFFFFFFF : No timer causing an interrupt | ||
232 | * ! 0xFFFFFFFF : timer causing an interrupt | ||
233 | * @note | ||
234 | * tmrHw_clearIntrrupt() must be called with a valid timer id after calling this function | ||
235 | */ | ||
236 | /****************************************************************************/ | ||
237 | tmrHw_ID_t tmrHw_getInterruptSource(void); | ||
238 | |||
239 | /****************************************************************************/ | ||
240 | /** | ||
241 | * @brief Displays specific timer registers | ||
242 | * | ||
243 | * | ||
244 | * @return void | ||
245 | * | ||
246 | */ | ||
247 | /****************************************************************************/ | ||
248 | void tmrHw_printDebugInfo(tmrHw_ID_t timerId, /* [ IN ] Timer id */ | ||
249 | int (*fpPrint) (const char *, ...) /* [ IN ] Print callback function */ | ||
250 | ); | ||
251 | |||
252 | /****************************************************************************/ | ||
253 | /** | ||
254 | * @brief Use a timer to perform a busy wait delay for a number of usecs. | ||
255 | * | ||
256 | * @return N/A | ||
257 | */ | ||
258 | /****************************************************************************/ | ||
259 | void tmrHw_udelay(tmrHw_ID_t timerId, /* [ IN ] Timer id */ | ||
260 | unsigned long usecs /* [ IN ] usec to delay */ | ||
261 | ) __attribute__ ((section(".aramtext"))); | ||
262 | |||
263 | #endif /* _TMRHW_H */ | ||