packages: clean up the package folder
[openwrt/svn-archive/archive.git] / package / kernel / lantiq / ltq-hcd / src / ifxusb_plat.h
1 /*****************************************************************************
2 ** FILE NAME : ifxusb_plat.h
3 ** PROJECT : IFX USB sub-system V3
4 ** MODULES : IFX USB sub-system Host and Device driver
5 ** SRC VERSION : 3.2
6 ** DATE : 1/Jan/2011
7 ** AUTHOR : Chen, Howard
8 ** DESCRIPTION : This file contains the Platform Specific constants, interfaces
9 ** (functions and macros).
10 ** FUNCTIONS :
11 ** COMPILER : gcc
12 ** REFERENCE : Synopsys DWC-OTG Driver 2.7
13 ** COPYRIGHT : Copyright (c) 2010
14 ** LANTIQ DEUTSCHLAND GMBH,
15 ** Am Campeon 3, 85579 Neubiberg, Germany
16 **
17 ** This program is free software; you can redistribute it and/or modify
18 ** it under the terms of the GNU General Public License as published by
19 ** the Free Software Foundation; either version 2 of the License, or
20 ** (at your option) any later version.
21 **
22 ** Version Control Section **
23 ** $Author$
24 ** $Date$
25 ** $Revisions$
26 ** $Log$ Revision history
27 *****************************************************************************/
28
29 /*
30 * This file contains code fragments from Synopsys HS OTG Linux Software Driver.
31 * For this code the following notice is applicable:
32 *
33 * ==========================================================================
34 *
35 * Synopsys HS OTG Linux Software Driver and documentation (hereinafter,
36 * "Software") is an Unsupported proprietary work of Synopsys, Inc. unless
37 * otherwise expressly agreed to in writing between Synopsys and you.
38 *
39 * The Software IS NOT an item of Licensed Software or Licensed Product under
40 * any End User Software License Agreement or Agreement for Licensed Product
41 * with Synopsys or any supplement thereto. You are permitted to use and
42 * redistribute this Software in source and binary forms, with or without
43 * modification, provided that redistributions of source code must retain this
44 * notice. You may not view, use, disclose, copy or distribute this file or
45 * any information contained herein except pursuant to this license grant from
46 * Synopsys. If you do not agree with this notice, including the disclaimer
47 * below, then you are not authorized to use the Software.
48 *
49 * THIS SOFTWARE IS BEING DISTRIBUTED BY SYNOPSYS SOLELY ON AN "AS IS" BASIS
50 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
51 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
52 * ARE HEREBY DISCLAIMED. IN NO EVENT SHALL SYNOPSYS BE LIABLE FOR ANY DIRECT,
53 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
54 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
55 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
56 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
57 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
58 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
59 * DAMAGE.
60 * ========================================================================== */
61
62
63 /*!
64 \defgroup IFXUSB_PLATEFORM_DEFINITION Platform Specific constants, interfaces (functions and macros).
65 \ingroup IFXUSB_DRIVER_V3
66 \brief Maintain plateform specific definitions and macros in this file.
67 Each plateform has its own definition zone.
68 */
69
70 /*!
71 \defgroup IFXUSB_PLATEFORM_MEM_ADDR Definition of memory address and size and default parameters
72 \ingroup IFXUSB_PLATEFORM_DEFINITION
73 */
74
75 /*!
76 \defgroup IFXUSB_DBG_ROUTINE Routines for debug message
77 \ingroup IFXUSB_PLATEFORM_DEFINITION
78 */
79
80
81 /*! \file ifxusb_plat.h
82 \ingroup IFXUSB_DRIVER_V3
83 \brief This file contains the Platform Specific constants, interfaces (functions and macros).
84 */
85
86 #if !defined(__IFXUSB_PLAT_H__)
87 #define __IFXUSB_PLAT_H__
88
89
90 #include <linux/types.h>
91 #include <linux/slab.h>
92 #include <linux/list.h>
93 #include <linux/delay.h>
94 #include <asm/io.h>
95
96
97 #define IFXUSB_IOMEM_SIZE 0x00001000
98 #define IFXUSB_FIFOMEM_SIZE 0x00010000
99 #define IFXUSB_FIFODBG_SIZE 0x00020000
100
101
102
103 /*!
104 \addtogroup IFXUSB_PLATEFORM_MEM_ADDR
105 */
106 /*@{*/
107 #if defined(__UEIP__)
108 #if defined(__IS_TWINPASS__) || defined(__IS_DANUBE__)
109 #define IFXUSB_IRQ 62
110 #define IFXUSB_IOMEM_BASE 0x1e101000
111 #define IFXUSB_FIFOMEM_BASE 0x1e120000
112 #define IFXUSB_FIFODBG_BASE 0x1e140000
113 #define IFXUSB_OC_IRQ 159
114
115 #ifndef DANUBE_RCU_BASE_ADDR
116 #define DANUBE_RCU_BASE_ADDR (0xBF203000)
117 #endif
118
119 #ifndef DANUBE_CGU
120 #define DANUBE_CGU (0xBF103000)
121 #endif
122 #ifndef DANUBE_CGU_IFCCR
123 #define DANUBE_CGU_IFCCR ((volatile unsigned long *)(DANUBE_CGU+ 0x0018))
124 #endif
125 #ifndef DANUBE_PMU
126 #define DANUBE_PMU (KSEG1+0x1F102000)
127 #endif
128 #ifndef DANUBE_PMU_PWDCR
129 #define DANUBE_PMU_PWDCR ((volatile unsigned long *)(DANUBE_PMU+0x001C))
130 #endif
131
132 #ifndef DANUBE_GPIO_P0_OUT
133 #define DANUBE_GPIO_P0_OUT (0xBF103000+0x10)
134 #define DANUBE_GPIO_P0_DIR (0xBF103000+0x18)
135 #define DANUBE_GPIO_P0_ALTSEL0 (0xBF103000+0x1C)
136 #define DANUBE_GPIO_P0_ALTSEL1 (0xBF103000+0x20)
137 #define DANUBE_GPIO_P0_OD (0xBF103000+0x24)
138 #define DANUBE_GPIO_P0_PUDSEL (0xBF103000+0x2C)
139 #define DANUBE_GPIO_P0_PUDEN (0xBF103000+0x30)
140 #define DANUBE_GPIO_P1_OUT (0xBF103000+0x40)
141 #define DANUBE_GPIO_P1_DIR (0xBF103000+0x48)
142 #define DANUBE_GPIO_P1_ALTSEL0 (0xBF103000+0x4C)
143 #define DANUBE_GPIO_P1_ALTSEL1 (0xBF103000+0x50)
144 #define DANUBE_GPIO_P1_OD (0xBF103000+0x54)
145 #define DANUBE_GPIO_P1_PUDSEL (0xBF103000+0x5C)
146 #define DANUBE_GPIO_P1_PUDEN (0xBF103000+0x60)
147 #endif
148
149 #define DANUBE_RCU_USBCFG ((volatile unsigned long *)(DANUBE_RCU_BASE_ADDR + 0x18))
150 #define DANUBE_RCU_RESET ((volatile unsigned long *)(DANUBE_RCU_BASE_ADDR + 0x10))
151 #define DANUBE_USBCFG_HDSEL_BIT 11 // 0:host, 1:device
152 #define DANUBE_USBCFG_HOST_END_BIT 10 // 0:little_end, 1:big_end
153 #define DANUBE_USBCFG_SLV_END_BIT 9 // 0:little_end, 1:big_end
154
155 #define default_param_dma_burst_size 4
156
157 #define default_param_speed IFXUSB_PARAM_SPEED_HIGH
158
159 #define default_param_max_transfer_size -1 //(Max, hwcfg)
160 #define default_param_max_packet_count -1 //(Max, hwcfg)
161 #define default_param_phy_utmi_width 16
162
163 #define default_param_turn_around_time_hs 4
164 #define default_param_turn_around_time_fs 4
165 #define default_param_timeout_cal_hs -1 //(NoChange)
166 #define default_param_timeout_cal_fs -1 //(NoChange)
167
168 #define default_param_data_fifo_size -1 //(Max, hwcfg)
169
170 #ifdef __IS_HOST__
171 #define default_param_host_channels -1 //(Max, hwcfg)
172 #define default_param_rx_fifo_size 640
173 #define default_param_nperio_tx_fifo_size 640
174 #define default_param_perio_tx_fifo_size 768
175 #endif //__IS_HOST__
176
177 #ifdef __IS_DEVICE__
178 #ifdef __DED_INTR__
179 // #define default_param_rx_fifo_size 1024
180 // #define default_param_nperio_tx_fifo_size 1016
181 // #define default_param_perio_tx_fifo_size_01 8
182 #define default_param_rx_fifo_size 1008
183 #define default_param_nperio_tx_fifo_size 1008
184 #define default_param_perio_tx_fifo_size_01 32
185 #else
186 #define default_param_rx_fifo_size 1024
187 #define default_param_nperio_tx_fifo_size 1024
188 #define default_param_perio_tx_fifo_size_01 0
189 #endif
190 #define default_param_perio_tx_fifo_size_02 0
191 #define default_param_perio_tx_fifo_size_03 0
192 #define default_param_perio_tx_fifo_size_04 0
193 #define default_param_perio_tx_fifo_size_05 0
194 #define default_param_perio_tx_fifo_size_06 0
195 #define default_param_perio_tx_fifo_size_07 0
196 #define default_param_perio_tx_fifo_size_08 0
197 #define default_param_perio_tx_fifo_size_09 0
198 #define default_param_perio_tx_fifo_size_10 0
199 #define default_param_perio_tx_fifo_size_11 0
200 #define default_param_perio_tx_fifo_size_12 0
201 #define default_param_perio_tx_fifo_size_13 0
202 #define default_param_perio_tx_fifo_size_14 0
203 #define default_param_perio_tx_fifo_size_15 0
204 #endif //__IS_DEVICE__
205
206 #elif defined(__IS_AMAZON_SE__)
207 //#include <asm/amazon_se/amazon_se.h>
208 //#include <asm/amazon_se/irq.h>
209
210 #define IFXUSB_IRQ 39
211 #define IFXUSB_IOMEM_BASE 0x1e101000
212 #define IFXUSB_FIFOMEM_BASE 0x1e120000
213 #define IFXUSB_FIFODBG_BASE 0x1e140000
214 #define IFXUSB_OC_IRQ 20
215
216 #ifndef AMAZON_SE_RCU_BASE_ADDR
217 #define AMAZON_SE_RCU_BASE_ADDR (0xBF203000)
218 #endif
219 #define AMAZON_SE_RCU_USBCFG ((volatile unsigned long *)(AMAZON_SE_RCU_BASE_ADDR + 0x18))
220 #define AMAZON_SE_RCU_RESET ((volatile unsigned long *)(AMAZON_SE_RCU_BASE_ADDR + 0x10))
221 #define AMAZON_SE_USBCFG_HDSEL_BIT 11 // 0:host, 1:device
222 #define AMAZON_SE_USBCFG_HOST_END_BIT 10 // 0:little_end, 1:big_end
223 #define AMAZON_SE_USBCFG_SLV_END_BIT 9 // 0:little_end, 1:big_end
224
225 #ifndef AMAZON_SE_GPIO_P0_OUT
226 #define AMAZON_SE_GPIO_P0_OUT (0xBF103000+0x10)
227 #define AMAZON_SE_GPIO_P0_DIR (0xBF103000+0x18)
228 #define AMAZON_SE_GPIO_P0_ALTSEL0 (0xBF103000+0x1C)
229 #define AMAZON_SE_GPIO_P0_ALTSEL1 (0xBF103000+0x20)
230 #define AMAZON_SE_GPIO_P0_OD (0xBF103000+0x24)
231 #define AMAZON_SE_GPIO_P0_PUDSEL (0xBF103000+0x2C)
232 #define AMAZON_SE_GPIO_P0_PUDEN (0xBF103000+0x30)
233 #define AMAZON_SE_GPIO_P1_OUT (0xBF103000+0x40)
234 #define AMAZON_SE_GPIO_P1_DIR (0xBF103000+0x48)
235 #define AMAZON_SE_GPIO_P1_ALTSEL0 (0xBF103000+0x4C)
236 #define AMAZON_SE_GPIO_P1_ALTSEL1 (0xBF103000+0x50)
237 #define AMAZON_SE_GPIO_P1_OD (0xBF103000+0x54)
238 #define AMAZON_SE_GPIO_P1_PUDSEL (0xBF103000+0x5C)
239 #define AMAZON_SE_GPIO_P1_PUDEN (0xBF103000+0x60)
240 #endif
241
242 #ifndef AMAZON_SE_CGU
243 #define AMAZON_SE_CGU (0xBF103000)
244 #endif
245 #ifndef AMAZON_SE_CGU_IFCCR
246 #define AMAZON_SE_CGU_IFCCR ((volatile unsigned long *)(AMAZON_SE_CGU+ 0x0018))
247 #endif
248 #ifndef AMAZON_SE_PMU
249 #define AMAZON_SE_PMU (KSEG1+0x1F102000)
250 #endif
251 #ifndef AMAZON_SE_PMU_PWDCR
252 #define AMAZON_SE_PMU_PWDCR ((volatile unsigned long *)(AMAZON_SE_PMU+0x001C))
253 #endif
254
255 #define default_param_dma_burst_size 4
256
257 #define default_param_speed IFXUSB_PARAM_SPEED_HIGH
258
259 #define default_param_max_transfer_size -1 //(Max, hwcfg)
260 #define default_param_max_packet_count -1 //(Max, hwcfg)
261 #define default_param_phy_utmi_width 16
262
263 #define default_param_turn_around_time_hs 4 //(NoChange)
264 #define default_param_turn_around_time_fs 4 //(NoChange)
265 #define default_param_timeout_cal_hs -1 //(NoChange)
266 #define default_param_timeout_cal_fs -1 //(NoChange)
267
268 #define default_param_data_fifo_size -1 //(Max, hwcfg)
269
270 #ifdef __IS_HOST__
271 #define default_param_host_channels -1 //(Max, hwcfg)
272 #define default_param_rx_fifo_size 240
273 #define default_param_nperio_tx_fifo_size 240
274 #define default_param_perio_tx_fifo_size 32
275 #endif //__IS_HOST__
276 #ifdef __IS_DEVICE__
277 #ifdef __DED_INTR__
278 // #define default_param_rx_fifo_size 256
279 // #define default_param_nperio_tx_fifo_size 248
280 // #define default_param_perio_tx_fifo_size_01 8
281 #define default_param_rx_fifo_size 240
282 #define default_param_nperio_tx_fifo_size 240
283 #define default_param_perio_tx_fifo_size_01 32
284 #else
285 #define default_param_rx_fifo_size 256
286 #define default_param_nperio_tx_fifo_size 256
287 #define default_param_perio_tx_fifo_size_01 0
288 #endif
289 #define default_param_perio_tx_fifo_size_02 0
290 #define default_param_perio_tx_fifo_size_03 0
291 #define default_param_perio_tx_fifo_size_04 0
292 #define default_param_perio_tx_fifo_size_05 0
293 #define default_param_perio_tx_fifo_size_06 0
294 #define default_param_perio_tx_fifo_size_07 0
295 #define default_param_perio_tx_fifo_size_08 0
296 #define default_param_perio_tx_fifo_size_09 0
297 #define default_param_perio_tx_fifo_size_10 0
298 #define default_param_perio_tx_fifo_size_11 0
299 #define default_param_perio_tx_fifo_size_12 0
300 #define default_param_perio_tx_fifo_size_13 0
301 #define default_param_perio_tx_fifo_size_14 0
302 #define default_param_perio_tx_fifo_size_15 0
303 #endif //__IS_DEVICE__
304
305 #elif defined(__IS_AR9__)
306 #define IFXUSB1_IRQ 62
307 #define IFXUSB1_IOMEM_BASE 0x1E101000
308 #define IFXUSB1_FIFOMEM_BASE 0x1E120000
309 #define IFXUSB1_FIFODBG_BASE 0x1E140000
310
311 #define IFXUSB2_IRQ 91
312 #define IFXUSB2_IOMEM_BASE 0x1E106000
313 #define IFXUSB2_FIFOMEM_BASE 0x1E1E0000
314 #define IFXUSB2_FIFODBG_BASE 0x1E1C0000
315
316 #define IFXUSB_OC_IRQ 68
317
318 #ifndef AR9_RCU_BASE_ADDR
319 #define AR9_RCU_BASE_ADDR (0xBF203000)
320 #endif
321
322 #ifndef AR9_CGU
323 #define AR9_CGU (0xBF103000)
324 #endif
325 #ifndef AR9_CGU_IFCCR
326 #define AR9_CGU_IFCCR ((volatile unsigned long *)(AR9_CGU+ 0x0018))
327 #endif
328
329 #ifndef AR9_PMU
330 #define AR9_PMU (KSEG1+0x1F102000)
331 #endif
332 #ifndef AR9_PMU_PWDCR
333 #define AR9_PMU_PWDCR ((volatile unsigned long *)(AR9_PMU+0x001C))
334 #endif
335
336 #ifndef AR9_GPIO_P0_OUT
337 #define AR9_GPIO_P0_OUT (0xBF103000+0x10)
338 #define AR9_GPIO_P0_DIR (0xBF103000+0x18)
339 #define AR9_GPIO_P0_ALTSEL0 (0xBF103000+0x1C)
340 #define AR9_GPIO_P0_ALTSEL1 (0xBF103000+0x20)
341 #define AR9_GPIO_P0_OD (0xBF103000+0x24)
342 #define AR9_GPIO_P0_PUDSEL (0xBF103000+0x2C)
343 #define AR9_GPIO_P0_PUDEN (0xBF103000+0x30)
344 #define AR9_GPIO_P1_OUT (0xBF103000+0x40)
345 #define AR9_GPIO_P1_DIR (0xBF103000+0x48)
346 #define AR9_GPIO_P1_ALTSEL0 (0xBF103000+0x4C)
347 #define AR9_GPIO_P1_ALTSEL1 (0xBF103000+0x50)
348 #define AR9_GPIO_P1_OD (0xBF103000+0x54)
349 #define AR9_GPIO_P1_PUDSEL (0xBF103000+0x5C)
350 #define AR9_GPIO_P1_PUDEN (0xBF103000+0x60)
351 #endif
352
353 #define AR9_RCU_USB1CFG ((volatile unsigned long *)(AR9_RCU_BASE_ADDR + 0x18))
354 #define AR9_RCU_USB2CFG ((volatile unsigned long *)(AR9_RCU_BASE_ADDR + 0x34))
355 #define AR9_RCU_USBRESET ((volatile unsigned long *)(AR9_RCU_BASE_ADDR + 0x10))
356 #define AR9_USBCFG_ARB 7 //
357 #define AR9_USBCFG_HDSEL_BIT 11 // 0:host, 1:device
358 #define AR9_USBCFG_HOST_END_BIT 10 // 0:little_end, 1:big_end
359 #define AR9_USBCFG_SLV_END_BIT 17 // 0:little_end, 1:big_end
360
361 #define default_param_dma_burst_size 4
362
363 #define default_param_speed IFXUSB_PARAM_SPEED_HIGH
364
365 #define default_param_max_transfer_size -1 //(Max, hwcfg)
366 #define default_param_max_packet_count -1 //(Max, hwcfg)
367 #define default_param_phy_utmi_width 16
368
369 #define default_param_turn_around_time_hs 4 //(NoChange)
370 #define default_param_turn_around_time_fs 4 //(NoChange)
371 #define default_param_timeout_cal_hs -1 //(NoChange)
372 #define default_param_timeout_cal_fs -1 //(NoChange)
373
374 #define default_param_data_fifo_size -1 //(Max, hwcfg)
375
376 #ifdef __IS_HOST__
377 #define default_param_host_channels -1 //(Max, hwcfg)
378 #define default_param_rx_fifo_size 240
379 #define default_param_nperio_tx_fifo_size 240
380 #define default_param_perio_tx_fifo_size 32
381 #endif //__IS_HOST__
382 #ifdef __IS_DEVICE__
383 #ifdef __DED_INTR__
384 // #define default_param_rx_fifo_size 256
385 // #define default_param_nperio_tx_fifo_size 248
386 // #define default_param_perio_tx_fifo_size_01 8
387 #define default_param_rx_fifo_size 240
388 #define default_param_nperio_tx_fifo_size 240
389 #define default_param_perio_tx_fifo_size_01 32
390 #else
391 #define default_param_rx_fifo_size 256
392 #define default_param_nperio_tx_fifo_size 256
393 #define default_param_perio_tx_fifo_size_01 0
394 #endif
395 #define default_param_perio_tx_fifo_size_02 0
396 #define default_param_perio_tx_fifo_size_03 0
397 #define default_param_perio_tx_fifo_size_04 0
398 #define default_param_perio_tx_fifo_size_05 0
399 #define default_param_perio_tx_fifo_size_06 0
400 #define default_param_perio_tx_fifo_size_07 0
401 #define default_param_perio_tx_fifo_size_08 0
402 #define default_param_perio_tx_fifo_size_09 0
403 #define default_param_perio_tx_fifo_size_10 0
404 #define default_param_perio_tx_fifo_size_11 0
405 #define default_param_perio_tx_fifo_size_12 0
406 #define default_param_perio_tx_fifo_size_13 0
407 #define default_param_perio_tx_fifo_size_14 0
408 #define default_param_perio_tx_fifo_size_15 0
409 #endif //__IS_DEVICE__
410
411 #elif defined(__IS_VR9__)
412 #define IFXUSB1_IRQ 62
413 #define IFXUSB1_IOMEM_BASE 0x1E101000
414 #define IFXUSB1_FIFOMEM_BASE 0x1E120000
415 #define IFXUSB1_FIFODBG_BASE 0x1E140000
416
417 #define IFXUSB2_IRQ 91
418 #define IFXUSB2_IOMEM_BASE 0x1E106000
419 #define IFXUSB2_FIFOMEM_BASE 0x1E1E0000
420 #define IFXUSB2_FIFODBG_BASE 0x1E1C0000
421 #define IFXUSB_OC_IRQ 60
422
423 #ifndef IFX_MPS
424 #define IFX_MPS (KSEG1+0x1F107000)
425 #endif
426 #ifndef IFX_MPS_CHIPID
427 #define IFX_MPS_CHIPID ((volatile unsigned long *)(IFX_MPS + 0x0344))
428 #endif
429
430 #ifndef VR9_RCU_BASE_ADDR
431 #define VR9_RCU_BASE_ADDR (0xBF203000)
432 #endif
433
434 #ifndef VR9_CGU
435 #define VR9_CGU (0xBF103000)
436 #endif
437 #ifndef VR9_CGU_IFCCR
438 #define VR9_CGU_IFCCR ((volatile unsigned long *)(VR9_CGU+ 0x0018))
439 #endif
440
441 #ifndef VR9_PMU
442 #define VR9_PMU (KSEG1+0x1F102000)
443 #endif
444 #ifndef VR9_PMU_PWDCR
445 #define VR9_PMU_PWDCR ((volatile unsigned long *)(VR9_PMU+0x001C))
446 #endif
447
448 #ifndef VR9_GPIO_P0_OUT
449 #define VR9_GPIO_P0_OUT (0xBF103000+0x10)
450 #define VR9_GPIO_P0_DIR (0xBF103000+0x18)
451 #define VR9_GPIO_P0_ALTSEL0 (0xBF103000+0x1C)
452 #define VR9_GPIO_P0_ALTSEL1 (0xBF103000+0x20)
453 #define VR9_GPIO_P0_OD (0xBF103000+0x24)
454 #define VR9_GPIO_P0_PUDSEL (0xBF103000+0x2C)
455 #define VR9_GPIO_P0_PUDEN (0xBF103000+0x30)
456 #define VR9_GPIO_P1_OUT (0xBF103000+0x40)
457 #define VR9_GPIO_P1_DIR (0xBF103000+0x48)
458 #define VR9_GPIO_P1_ALTSEL0 (0xBF103000+0x4C)
459 #define VR9_GPIO_P1_ALTSEL1 (0xBF103000+0x50)
460 #define VR9_GPIO_P1_OD (0xBF103000+0x54)
461 #define VR9_GPIO_P1_PUDSEL (0xBF103000+0x5C)
462 #define VR9_GPIO_P1_PUDEN (0xBF103000+0x60)
463 #endif
464
465 #define VR9_RCU_USB1CFG ((volatile unsigned long *)(VR9_RCU_BASE_ADDR + 0x18))
466 #define VR9_RCU_USB2CFG ((volatile unsigned long *)(VR9_RCU_BASE_ADDR + 0x34))
467 #define VR9_RCU_USB_ANA_CFG1A ((volatile unsigned long *)(VR9_RCU_BASE_ADDR + 0x38))
468 #define VR9_RCU_USB_ANA_CFG1B ((volatile unsigned long *)(VR9_RCU_BASE_ADDR + 0x3C))
469 #define VR9_RCU_USBRESET ((volatile unsigned long *)(VR9_RCU_BASE_ADDR + 0x10))
470 #define VR9_RCU_USBRESET2 ((volatile unsigned long *)(VR9_RCU_BASE_ADDR + 0x48))
471 #define VR9_USBCFG_ARB 7 //
472 #define VR9_USBCFG_HDSEL_BIT 11 // 0:host, 1:device
473 #define VR9_USBCFG_HOST_END_BIT 10 // 0:little_end, 1:big_end
474 #define VR9_USBCFG_SLV_END_BIT 9 // 0:little_end, 1:big_end
475
476 // #define default_param_dma_burst_size 4 //(ALL)
477 //WA for AHB
478 #define default_param_dma_burst_size 0 //(ALL)
479 #define default_param_dma_burst_size_n 4 //(ALL)
480
481 #define default_param_speed IFXUSB_PARAM_SPEED_HIGH
482
483 #define default_param_max_transfer_size -1 //(Max, hwcfg)
484 #define default_param_max_packet_count -1 //(Max, hwcfg)
485 #define default_param_phy_utmi_width 16
486
487 #define default_param_turn_around_time_hs 6 //(NoChange) snpsid >= 0x4f54260a
488 #define default_param_turn_around_time_fs 6 //(NoChange) snpsid >= 0x4f54260a
489 #define default_param_timeout_cal_hs -1 //(NoChange)
490 #define default_param_timeout_cal_fs -1 //(NoChange)
491
492 #define default_param_data_fifo_size -1 //(Max, hwcfg)
493
494 #ifdef __IS_HOST__
495 #define default_param_host_channels -1 //(Max, hwcfg)
496 #define default_param_rx_fifo_size 240
497 #define default_param_nperio_tx_fifo_size 240
498 #define default_param_perio_tx_fifo_size 32
499 #endif //__IS_HOST__
500 #ifdef __IS_DEVICE__
501 #if 0
502 #define default_param_rx_fifo_size 256
503 #define default_param_tx_fifo_size_00 -1
504 #define default_param_tx_fifo_size_01 -1
505 #define default_param_tx_fifo_size_02 -1
506 #else
507 #define default_param_rx_fifo_size 256
508 #define default_param_tx_fifo_size_00 32
509 #define default_param_tx_fifo_size_01 200
510 #define default_param_tx_fifo_size_02 8
511 #endif
512 #define default_param_tx_fifo_size_03 -1
513 #define default_param_tx_fifo_size_04 -1
514 #define default_param_tx_fifo_size_05 -1
515 #define default_param_tx_fifo_size_06 -1
516 #define default_param_tx_fifo_size_07 -1
517 #define default_param_tx_fifo_size_08 -1
518 #define default_param_tx_fifo_size_09 -1
519 #define default_param_tx_fifo_size_10 -1
520 #define default_param_tx_fifo_size_11 -1
521 #define default_param_tx_fifo_size_12 -1
522 #define default_param_tx_fifo_size_13 -1
523 #define default_param_tx_fifo_size_14 -1
524 #define default_param_tx_fifo_size_15 -1
525 #define default_param_dma_unalgned_tx -1
526 #define default_param_dma_unalgned_rx -1
527 #define default_param_thr_ctl -1
528 #define default_param_tx_thr_length -1
529 #define default_param_rx_thr_length -1
530 #endif //__IS_DEVICE__
531
532 #elif defined(__IS_AR10__)
533 #define IFXUSB1_IRQ 54
534 #define IFXUSB1_IOMEM_BASE 0x1E101000
535 #define IFXUSB1_FIFOMEM_BASE 0x1E120000
536 #define IFXUSB1_FIFODBG_BASE 0x1E140000
537 #define IFXUSB1_OC_IRQ 60
538
539 #define IFXUSB2_IRQ 83
540 #define IFXUSB2_IOMEM_BASE 0x1E106000
541 #define IFXUSB2_FIFOMEM_BASE 0x1E1E0000
542 #define IFXUSB2_FIFODBG_BASE 0x1E1C0000
543 #define IFXUSB2_OC_IRQ 56
544
545 #ifndef AR10_RCU_BASE_ADDR
546 #define AR10_RCU_BASE_ADDR (0xBF203000)
547 #endif
548 #ifndef AR10_CGU
549 #define AR10_CGU (0xBF103000)
550 #endif
551
552 #ifndef AR10_CGU_IFCCR
553 #define AR10_CGU_IFCCR ((volatile unsigned long *)(AR10_CGU+ 0x0018))
554 #endif
555 #ifndef AR10_PMU
556 #define AR10_PMU (KSEG1+0x1F102000)
557 #endif
558 #ifndef AR10_PMU_PWDCR
559 #define AR10_PMU_PWDCR ((volatile unsigned long *)(AR10_PMU+0x0044))
560 #endif
561
562 #ifndef AR10_GPIO_P0_OUT
563 #define AR10_GPIO_P0_OUT (0xBF103000+0x10)
564 #define AR10_GPIO_P0_DIR (0xBF103000+0x18)
565 #define AR10_GPIO_P0_ALTSEL0 (0xBF103000+0x1C)
566 #define AR10_GPIO_P0_ALTSEL1 (0xBF103000+0x20)
567 #define AR10_GPIO_P0_OD (0xBF103000+0x24)
568 #define AR10_GPIO_P0_PUDSEL (0xBF103000+0x2C)
569 #define AR10_GPIO_P0_PUDEN (0xBF103000+0x30)
570 #define AR10_GPIO_P1_OUT (0xBF103000+0x40)
571 #define AR10_GPIO_P1_DIR (0xBF103000+0x48)
572 #define AR10_GPIO_P1_ALTSEL0 (0xBF103000+0x4C)
573 #define AR10_GPIO_P1_ALTSEL1 (0xBF103000+0x50)
574 #define AR10_GPIO_P1_OD (0xBF103000+0x54)
575 #define AR10_GPIO_P1_PUDSEL (0xBF103000+0x5C)
576 #define AR10_GPIO_P1_PUDEN (0xBF103000+0x60)
577 #endif
578
579 #define AR10_RCU_USB1CFG ((volatile unsigned long *)(AR10_RCU_BASE_ADDR + 0x18))
580 #define AR10_RCU_USB2CFG ((volatile unsigned long *)(AR10_RCU_BASE_ADDR + 0x34))
581 #define AR10_RCU_USB_ANA_CFG1A ((volatile unsigned long *)(AR10_RCU_BASE_ADDR + 0x38))
582 #define AR10_RCU_USB_ANA_CFG1B ((volatile unsigned long *)(AR10_RCU_BASE_ADDR + 0x3C))
583
584 #define AR10_RCU_USBRESET ((volatile unsigned long *)(AR10_RCU_BASE_ADDR + 0x10))
585
586 #define AR10_USBCFG_ARB 7 //
587 #define AR10_USBCFG_HDSEL_BIT 11 // 0:host, 1:device
588 #define AR10_USBCFG_HOST_END_BIT 10 // 0:little_end, 1:big_end
589 #define AR10_USBCFG_SLV_END_BIT 9 // 0:little_end, 1:big_end
590
591 // #define default_param_dma_burst_size 4 //(ALL)
592 //WA for AHB
593 #define default_param_dma_burst_size 0 //(ALL)
594
595 #define default_param_speed IFXUSB_PARAM_SPEED_HIGH
596
597 #define default_param_max_transfer_size -1 //(Max, hwcfg)
598 #define default_param_max_packet_count -1 //(Max, hwcfg)
599 #define default_param_phy_utmi_width 16
600
601 #define default_param_turn_around_time_hs 6 //(NoChange) snpsid >= 0x4f54260a
602 #define default_param_turn_around_time_fs 6 //(NoChange) snpsid >= 0x4f54260a
603 #define default_param_timeout_cal_hs -1 //(NoChange)
604 #define default_param_timeout_cal_fs -1 //(NoChange)
605
606 #define default_param_data_fifo_size -1 //(Max, hwcfg)
607
608 #ifdef __IS_HOST__
609 #define default_param_host_channels -1 //(Max, hwcfg)
610 #define default_param_rx_fifo_size 240
611 #define default_param_nperio_tx_fifo_size 240
612 #define default_param_perio_tx_fifo_size 32
613 #endif //__IS_HOST__
614 #ifdef __IS_DEVICE__
615 #if 0
616 #define default_param_rx_fifo_size 256
617 #define default_param_tx_fifo_size_00 -1
618 #define default_param_tx_fifo_size_01 -1
619 #define default_param_tx_fifo_size_02 -1
620 #else
621 #define default_param_rx_fifo_size 256
622 #define default_param_tx_fifo_size_00 32
623 #define default_param_tx_fifo_size_01 200
624 #define default_param_tx_fifo_size_02 8
625 #endif
626 #define default_param_tx_fifo_size_03 -1
627 #define default_param_tx_fifo_size_04 -1
628 #define default_param_tx_fifo_size_05 -1
629 #define default_param_tx_fifo_size_06 -1
630 #define default_param_tx_fifo_size_07 -1
631 #define default_param_tx_fifo_size_08 -1
632 #define default_param_tx_fifo_size_09 -1
633 #define default_param_tx_fifo_size_10 -1
634 #define default_param_tx_fifo_size_11 -1
635 #define default_param_tx_fifo_size_12 -1
636 #define default_param_tx_fifo_size_13 -1
637 #define default_param_tx_fifo_size_14 -1
638 #define default_param_tx_fifo_size_15 -1
639 #define default_param_dma_unalgned_tx -1
640 #define default_param_dma_unalgned_rx -1
641 #define default_param_thr_ctl -1
642 #define default_param_tx_thr_length -1
643 #define default_param_rx_thr_length -1
644 #endif //__IS_DEVICE__
645 #else // __IS_AR10__
646 #error "Please choose one platform!!"
647 #endif // __IS_VR9__
648
649 #else //UEIP
650 #if defined(__IS_TWINPASS__) || defined(__IS_DANUBE__)
651 #define IFXUSB_IRQ 54
652 #define IFXUSB_IOMEM_BASE 0x1e101000
653 #define IFXUSB_FIFOMEM_BASE 0x1e120000
654 #define IFXUSB_FIFODBG_BASE 0x1e140000
655 #define IFXUSB_OC_IRQ 151
656
657
658 #ifndef DANUBE_RCU_BASE_ADDR
659 #define DANUBE_RCU_BASE_ADDR (0xBF203000)
660 #endif
661
662 #ifndef DANUBE_CGU
663 #define DANUBE_CGU (0xBF103000)
664 #endif
665 #ifndef DANUBE_CGU_IFCCR
666 #define DANUBE_CGU_IFCCR ((volatile unsigned long *)(DANUBE_CGU+ 0x0018))
667 #endif
668 #ifndef DANUBE_PMU
669 #define DANUBE_PMU (KSEG1+0x1F102000)
670 #endif
671 #ifndef DANUBE_PMU_PWDCR
672 #define DANUBE_PMU_PWDCR ((volatile unsigned long *)(DANUBE_PMU+0x001C))
673 #endif
674
675 #ifndef DANUBE_GPIO_P0_OUT
676 #define DANUBE_GPIO_P0_OUT (0xBF103000+0x10)
677 #define DANUBE_GPIO_P0_DIR (0xBF103000+0x18)
678 #define DANUBE_GPIO_P0_ALTSEL0 (0xBF103000+0x1C)
679 #define DANUBE_GPIO_P0_ALTSEL1 (0xBF103000+0x20)
680 #define DANUBE_GPIO_P0_OD (0xBF103000+0x24)
681 #define DANUBE_GPIO_P0_PUDSEL (0xBF103000+0x2C)
682 #define DANUBE_GPIO_P0_PUDEN (0xBF103000+0x30)
683 #define DANUBE_GPIO_P1_OUT (0xBF103000+0x40)
684 #define DANUBE_GPIO_P1_DIR (0xBF103000+0x48)
685 #define DANUBE_GPIO_P1_ALTSEL0 (0xBF103000+0x4C)
686 #define DANUBE_GPIO_P1_ALTSEL1 (0xBF103000+0x50)
687 #define DANUBE_GPIO_P1_OD (0xBF103000+0x54)
688 #define DANUBE_GPIO_P1_PUDSEL (0xBF103000+0x5C)
689 #define DANUBE_GPIO_P1_PUDEN (0xBF103000+0x60)
690 #endif
691
692
693 #define DANUBE_RCU_USBCFG ((volatile unsigned long *)(DANUBE_RCU_BASE_ADDR + 0x18))
694 #define DANUBE_RCU_RESET ((volatile unsigned long *)(DANUBE_RCU_BASE_ADDR + 0x10))
695 #define DANUBE_USBCFG_HDSEL_BIT 11 // 0:host, 1:device
696 #define DANUBE_USBCFG_HOST_END_BIT 10 // 0:little_end, 1:big_end
697 #define DANUBE_USBCFG_SLV_END_BIT 9 // 0:little_end, 1:big_end
698
699 #define default_param_dma_burst_size 4
700
701 #define default_param_speed IFXUSB_PARAM_SPEED_HIGH
702
703 #define default_param_max_transfer_size -1 //(Max, hwcfg)
704 #define default_param_max_packet_count -1 //(Max, hwcfg)
705 #define default_param_phy_utmi_width 16
706
707 #define default_param_turn_around_time_hs 4 //(NoChange)
708 #define default_param_turn_around_time_fs 4 //(NoChange)
709 #define default_param_timeout_cal_hs -1 //(NoChange)
710 #define default_param_timeout_cal_fs -1 //(NoChange)
711
712 #define default_param_data_fifo_size -1 //(Max, hwcfg)
713 #ifdef __IS_HOST__
714 #define default_param_host_channels -1 //(Max, hwcfg)
715 #define default_param_rx_fifo_size 640
716 #define default_param_nperio_tx_fifo_size 640
717 #define default_param_perio_tx_fifo_size 768
718 #endif //__IS_HOST__
719
720 #ifdef __IS_DEVICE__
721 #ifdef __DED_INTR__
722 #define default_param_rx_fifo_size 1024
723 #define default_param_nperio_tx_fifo_size 1016
724 #define default_param_perio_tx_fifo_size_01 8
725 #else
726 #define default_param_rx_fifo_size 1024
727 #define default_param_nperio_tx_fifo_size 1024
728 #define default_param_perio_tx_fifo_size_01 0
729 #endif
730 #define default_param_perio_tx_fifo_size_02 0
731 #define default_param_perio_tx_fifo_size_03 0
732 #define default_param_perio_tx_fifo_size_04 0
733 #define default_param_perio_tx_fifo_size_05 0
734 #define default_param_perio_tx_fifo_size_06 0
735 #define default_param_perio_tx_fifo_size_07 0
736 #define default_param_perio_tx_fifo_size_08 0
737 #define default_param_perio_tx_fifo_size_09 0
738 #define default_param_perio_tx_fifo_size_10 0
739 #define default_param_perio_tx_fifo_size_11 0
740 #define default_param_perio_tx_fifo_size_12 0
741 #define default_param_perio_tx_fifo_size_13 0
742 #define default_param_perio_tx_fifo_size_14 0
743 #define default_param_perio_tx_fifo_size_15 0
744 #endif //__IS_DEVICE__
745
746 #elif defined(__IS_AMAZON_SE__)
747 #include <asm/amazon_se/amazon_se.h>
748 //#include <asm/amazon_se/irq.h>
749
750 #define IFXUSB_IRQ 31
751 #define IFXUSB_IOMEM_BASE 0x1e101000
752 #define IFXUSB_FIFOMEM_BASE 0x1e120000
753 #define IFXUSB_FIFODBG_BASE 0x1e140000
754 #define IFXUSB_OC_IRQ 20
755
756 #define AMAZON_SE_RCU_USBCFG ((volatile unsigned long *)(AMAZON_SE_RCU_BASE_ADDR + 0x18))
757 #define AMAZON_SE_RCU_RESET ((volatile unsigned long *)(AMAZON_SE_RCU_BASE_ADDR + 0x10))
758 #define AMAZON_SE_USBCFG_HDSEL_BIT 11 // 0:host, 1:device
759 #define AMAZON_SE_USBCFG_HOST_END_BIT 10 // 0:little_end, 1:big_end
760 #define AMAZON_SE_USBCFG_SLV_END_BIT 9 // 0:little_end, 1:big_end
761
762 #ifndef AMAZON_SE_GPIO_P0_OUT
763 #define AMAZON_SE_GPIO_P0_OUT (0xBF103000+0x10)
764 #define AMAZON_SE_GPIO_P0_DIR (0xBF103000+0x18)
765 #define AMAZON_SE_GPIO_P0_ALTSEL0 (0xBF103000+0x1C)
766 #define AMAZON_SE_GPIO_P0_ALTSEL1 (0xBF103000+0x20)
767 #define AMAZON_SE_GPIO_P0_OD (0xBF103000+0x24)
768 #define AMAZON_SE_GPIO_P0_PUDSEL (0xBF103000+0x2C)
769 #define AMAZON_SE_GPIO_P0_PUDEN (0xBF103000+0x30)
770 #define AMAZON_SE_GPIO_P1_OUT (0xBF103000+0x40)
771 #define AMAZON_SE_GPIO_P1_DIR (0xBF103000+0x48)
772 #define AMAZON_SE_GPIO_P1_ALTSEL0 (0xBF103000+0x4C)
773 #define AMAZON_SE_GPIO_P1_ALTSEL1 (0xBF103000+0x50)
774 #define AMAZON_SE_GPIO_P1_OD (0xBF103000+0x54)
775 #define AMAZON_SE_GPIO_P1_PUDSEL (0xBF103000+0x5C)
776 #define AMAZON_SE_GPIO_P1_PUDEN (0xBF103000+0x60)
777 #endif
778
779
780 #ifndef AMAZON_SE_CGU
781 #define AMAZON_SE_CGU (0xBF103000)
782 #endif
783 #ifndef AMAZON_SE_CGU_IFCCR
784 #define AMAZON_SE_CGU_IFCCR ((volatile unsigned long *)(AMAZON_SE_CGU+ 0x0018))
785 #endif
786 #ifndef AMAZON_SE_PMU
787 #define AMAZON_SE_PMU (KSEG1+0x1F102000)
788 #endif
789 #ifndef AMAZON_SE_PMU_PWDCR
790 #define AMAZON_SE_PMU_PWDCR ((volatile unsigned long *)(AMAZON_SE_PMU+0x001C))
791 #endif
792
793 #define default_param_dma_burst_size 4
794
795 #define default_param_speed IFXUSB_PARAM_SPEED_HIGH
796
797 #define default_param_max_transfer_size -1 //(Max, hwcfg)
798 #define default_param_max_packet_count -1 //(Max, hwcfg)
799 #define default_param_phy_utmi_width 16
800
801 #define default_param_turn_around_time_hs 4 //(NoChange)
802 #define default_param_turn_around_time_fs 4 //(NoChange)
803 #define default_param_timeout_cal_hs -1 //(NoChange)
804 #define default_param_timeout_cal_fs -1 //(NoChange)
805
806 #define default_param_data_fifo_size -1 //(Max, hwcfg)
807
808 #ifdef __IS_HOST__
809 #define default_param_host_channels -1 //(Max, hwcfg)
810 #define default_param_rx_fifo_size 240
811 #define default_param_nperio_tx_fifo_size 240
812 #define default_param_perio_tx_fifo_size 32
813 #endif //__IS_HOST__
814 #ifdef __IS_DEVICE__
815 #ifdef __DED_INTR__
816 #define default_param_rx_fifo_size 256
817 #define default_param_nperio_tx_fifo_size 248
818 #define default_param_perio_tx_fifo_size_01 8
819 #else
820 #define default_param_rx_fifo_size 256
821 #define default_param_nperio_tx_fifo_size 256
822 #define default_param_perio_tx_fifo_size_01 0
823 #endif
824 #define default_param_perio_tx_fifo_size_02 0
825 #define default_param_perio_tx_fifo_size_03 0
826 #define default_param_perio_tx_fifo_size_04 0
827 #define default_param_perio_tx_fifo_size_05 0
828 #define default_param_perio_tx_fifo_size_06 0
829 #define default_param_perio_tx_fifo_size_07 0
830 #define default_param_perio_tx_fifo_size_08 0
831 #define default_param_perio_tx_fifo_size_09 0
832 #define default_param_perio_tx_fifo_size_10 0
833 #define default_param_perio_tx_fifo_size_11 0
834 #define default_param_perio_tx_fifo_size_12 0
835 #define default_param_perio_tx_fifo_size_13 0
836 #define default_param_perio_tx_fifo_size_14 0
837 #define default_param_perio_tx_fifo_size_15 0
838 #endif //__IS_DEVICE__
839
840 #elif defined(__IS_AR9__)
841 #define IFXUSB1_IRQ 54
842 #define IFXUSB1_IOMEM_BASE 0x1E101000
843 #define IFXUSB1_FIFOMEM_BASE 0x1E120000
844 #define IFXUSB1_FIFODBG_BASE 0x1E140000
845
846 #define IFXUSB2_IRQ 83
847 #define IFXUSB2_IOMEM_BASE 0x1E106000
848 #define IFXUSB2_FIFOMEM_BASE 0x1E1E0000
849 #define IFXUSB2_FIFODBG_BASE 0x1E1C0000
850
851 #define IFXUSB_OC_IRQ 60
852
853 #ifndef AMAZON_S_RCU_BASE_ADDR
854 #define AMAZON_S_RCU_BASE_ADDR (0xBF203000)
855 #endif
856
857 #ifndef AMAZON_S_CGU
858 #define AMAZON_S_CGU (0xBF103000)
859 #endif
860 #ifndef AMAZON_S_CGU_IFCCR
861 #define AMAZON_S_CGU_IFCCR ((volatile unsigned long *)(AMAZON_S_CGU+ 0x0018))
862 #endif
863
864 #ifndef AMAZON_S_PMU
865 #define AMAZON_S_PMU (KSEG1+0x1F102000)
866 #endif
867 #ifndef AMAZON_S_PMU_PWDCR
868 #define AMAZON_S_PMU_PWDCR ((volatile unsigned long *)(AMAZON_S_PMU+0x001C))
869 #endif
870
871 #ifndef AMAZON_S_GPIO_P0_OUT
872 #define AMAZON_S_GPIO_P0_OUT (0xBF103000+0x10)
873 #define AMAZON_S_GPIO_P0_DIR (0xBF103000+0x18)
874 #define AMAZON_S_GPIO_P0_ALTSEL0 (0xBF103000+0x1C)
875 #define AMAZON_S_GPIO_P0_ALTSEL1 (0xBF103000+0x20)
876 #define AMAZON_S_GPIO_P0_OD (0xBF103000+0x24)
877 #define AMAZON_S_GPIO_P0_PUDSEL (0xBF103000+0x2C)
878 #define AMAZON_S_GPIO_P0_PUDEN (0xBF103000+0x30)
879 #define AMAZON_S_GPIO_P1_OUT (0xBF103000+0x40)
880 #define AMAZON_S_GPIO_P1_DIR (0xBF103000+0x48)
881 #define AMAZON_S_GPIO_P1_ALTSEL0 (0xBF103000+0x4C)
882 #define AMAZON_S_GPIO_P1_ALTSEL1 (0xBF103000+0x50)
883 #define AMAZON_S_GPIO_P1_OD (0xBF103000+0x54)
884 #define AMAZON_S_GPIO_P1_PUDSEL (0xBF103000+0x5C)
885 #define AMAZON_S_GPIO_P1_PUDEN (0xBF103000+0x60)
886 #endif
887
888 #define AMAZON_S_RCU_USB1CFG ((volatile unsigned long *)(AMAZON_S_RCU_BASE_ADDR + 0x18))
889 #define AMAZON_S_RCU_USB2CFG ((volatile unsigned long *)(AMAZON_S_RCU_BASE_ADDR + 0x34))
890 #define AMAZON_S_RCU_USBRESET ((volatile unsigned long *)(AMAZON_S_RCU_BASE_ADDR + 0x10))
891 #define AMAZON_S_USBCFG_ARB 7 //
892 #define AMAZON_S_USBCFG_HDSEL_BIT 11 // 0:host, 1:device
893 #define AMAZON_S_USBCFG_HOST_END_BIT 10 // 0:little_end, 1:big_end
894 #define AMAZON_S_USBCFG_SLV_END_BIT 17 // 0:little_end, 1:big_end
895
896 #define default_param_dma_burst_size 4
897
898 #define default_param_speed IFXUSB_PARAM_SPEED_HIGH
899
900 #define default_param_max_transfer_size -1 //(Max, hwcfg)
901 #define default_param_max_packet_count -1 //(Max, hwcfg)
902 #define default_param_phy_utmi_width 16
903
904 #define default_param_turn_around_time_hs 4 //(NoChange)
905 #define default_param_turn_around_time_fs 4 //(NoChange)
906 #define default_param_timeout_cal_hs -1 //(NoChange)
907 #define default_param_timeout_cal_fs -1 //(NoChange)
908
909 #define default_param_data_fifo_size -1 //(Max, hwcfg)
910
911 #ifdef __IS_HOST__
912 #define default_param_host_channels -1 //(Max, hwcfg)
913 #define default_param_rx_fifo_size 240
914 #define default_param_nperio_tx_fifo_size 240
915 #define default_param_perio_tx_fifo_size 32
916 #endif //__IS_HOST__
917 #ifdef __IS_DEVICE__
918 #ifdef __DED_INTR__
919 #define default_param_rx_fifo_size 256
920 #define default_param_nperio_tx_fifo_size 248
921 #define default_param_perio_tx_fifo_size_01 8
922 #else
923 #define default_param_rx_fifo_size 256
924 #define default_param_nperio_tx_fifo_size 256
925 #define default_param_perio_tx_fifo_size_01 0
926 #endif
927 #define default_param_perio_tx_fifo_size_02 0
928 #define default_param_perio_tx_fifo_size_03 0
929 #define default_param_perio_tx_fifo_size_04 0
930 #define default_param_perio_tx_fifo_size_05 0
931 #define default_param_perio_tx_fifo_size_06 0
932 #define default_param_perio_tx_fifo_size_07 0
933 #define default_param_perio_tx_fifo_size_08 0
934 #define default_param_perio_tx_fifo_size_09 0
935 #define default_param_perio_tx_fifo_size_10 0
936 #define default_param_perio_tx_fifo_size_11 0
937 #define default_param_perio_tx_fifo_size_12 0
938 #define default_param_perio_tx_fifo_size_13 0
939 #define default_param_perio_tx_fifo_size_14 0
940 #define default_param_perio_tx_fifo_size_15 0
941 #endif //__IS_DEVICE__
942
943 #elif defined(__IS_VR9__)
944 #define IFXUSB1_IRQ 54
945 #define IFXUSB1_IOMEM_BASE 0x1E101000
946 #define IFXUSB1_FIFOMEM_BASE 0x1E120000
947 #define IFXUSB1_FIFODBG_BASE 0x1E140000
948
949 #define IFXUSB2_IRQ 83
950 #define IFXUSB2_IOMEM_BASE 0x1E106000
951 #define IFXUSB2_FIFOMEM_BASE 0x1E1E0000
952 #define IFXUSB2_FIFODBG_BASE 0x1E1C0000
953 #define IFXUSB_OC_IRQ 68
954
955 #ifndef AMAZON_S_RCU_BASE_ADDR
956 #define AMAZON_S_RCU_BASE_ADDR (0xBF203000)
957 #endif
958
959 #ifndef AMAZON_S_CGU
960 #define AMAZON_S_CGU (0xBF103000)
961 #endif
962 #ifndef AMAZON_S_CGU_IFCCR
963 #define AMAZON_S_CGU_IFCCR ((volatile unsigned long *)(AMAZON_S_CGU+ 0x0018))
964 #endif
965
966 #ifndef AMAZON_S_PMU
967 #define AMAZON_S_PMU (KSEG1+0x1F102000)
968 #endif
969 #ifndef AMAZON_S_PMU_PWDCR
970 #define AMAZON_S_PMU_PWDCR ((volatile unsigned long *)(AMAZON_S_PMU+0x001C))
971 #endif
972
973 #ifndef AMAZON_S_GPIO_P0_OUT
974 #define AMAZON_S_GPIO_P0_OUT (0xBF103000+0x10)
975 #define AMAZON_S_GPIO_P0_DIR (0xBF103000+0x18)
976 #define AMAZON_S_GPIO_P0_ALTSEL0 (0xBF103000+0x1C)
977 #define AMAZON_S_GPIO_P0_ALTSEL1 (0xBF103000+0x20)
978 #define AMAZON_S_GPIO_P0_OD (0xBF103000+0x24)
979 #define AMAZON_S_GPIO_P0_PUDSEL (0xBF103000+0x2C)
980 #define AMAZON_S_GPIO_P0_PUDEN (0xBF103000+0x30)
981 #define AMAZON_S_GPIO_P1_OUT (0xBF103000+0x40)
982 #define AMAZON_S_GPIO_P1_DIR (0xBF103000+0x48)
983 #define AMAZON_S_GPIO_P1_ALTSEL0 (0xBF103000+0x4C)
984 #define AMAZON_S_GPIO_P1_ALTSEL1 (0xBF103000+0x50)
985 #define AMAZON_S_GPIO_P1_OD (0xBF103000+0x54)
986 #define AMAZON_S_GPIO_P1_PUDSEL (0xBF103000+0x5C)
987 #define AMAZON_S_GPIO_P1_PUDEN (0xBF103000+0x60)
988 #endif
989
990 #define AMAZON_S_RCU_USB1CFG ((volatile unsigned long *)(AMAZON_S_RCU_BASE_ADDR + 0x18))
991 #define AMAZON_S_RCU_USB2CFG ((volatile unsigned long *)(AMAZON_S_RCU_BASE_ADDR + 0x34))
992 #define AMAZON_S_RCU_USBRESET ((volatile unsigned long *)(AMAZON_S_RCU_BASE_ADDR + 0x10))
993 #define AMAZON_S_USBCFG_ARB 7 //
994 #define AMAZON_S_USBCFG_HDSEL_BIT 11 // 0:host, 1:device
995 #define AMAZON_S_USBCFG_HOST_END_BIT 10 // 0:little_end, 1:big_end
996 #define AMAZON_S_USBCFG_SLV_END_BIT 17 // 0:little_end, 1:big_end
997
998 #define default_param_dma_burst_size 4 //(ALL)
999
1000 #define default_param_speed IFXUSB_PARAM_SPEED_HIGH
1001
1002 #define default_param_max_transfer_size -1 //(Max, hwcfg)
1003 #define default_param_max_packet_count -1 //(Max, hwcfg)
1004 #define default_param_phy_utmi_width 16
1005
1006 #define default_param_turn_around_time_hs 6 //(NoChange) snpsid >= 0x4f54260a
1007 #define default_param_turn_around_time_fs 6 //(NoChange) snpsid >= 0x4f54260a
1008 #define default_param_timeout_cal_hs -1 //(NoChange)
1009 #define default_param_timeout_cal_fs -1 //(NoChange)
1010
1011 #define default_param_data_fifo_size -1 //(Max, hwcfg)
1012
1013 #ifdef __IS_HOST__
1014 #define default_param_host_channels -1 //(Max, hwcfg)
1015 #define default_param_rx_fifo_size 240
1016 #define default_param_nperio_tx_fifo_size 240
1017 #define default_param_perio_tx_fifo_size 32
1018 #endif //__IS_HOST__
1019 #ifdef __IS_DEVICE__
1020 #define default_param_rx_fifo_size 256
1021 #define default_param_tx_fifo_size_00 -1
1022 #define default_param_tx_fifo_size_01 -1
1023 #define default_param_tx_fifo_size_02 -1
1024 #define default_param_tx_fifo_size_03 -1
1025 #define default_param_tx_fifo_size_04 -1
1026 #define default_param_tx_fifo_size_05 -1
1027 #define default_param_tx_fifo_size_06 -1
1028 #define default_param_tx_fifo_size_07 -1
1029 #define default_param_tx_fifo_size_08 -1
1030 #define default_param_tx_fifo_size_09 -1
1031 #define default_param_tx_fifo_size_10 -1
1032 #define default_param_tx_fifo_size_11 -1
1033 #define default_param_tx_fifo_size_12 -1
1034 #define default_param_tx_fifo_size_13 -1
1035 #define default_param_tx_fifo_size_14 -1
1036 #define default_param_tx_fifo_size_15 -1
1037 #define default_param_dma_unalgned_tx -1
1038 #define default_param_dma_unalgned_rx -1
1039 #define default_param_thr_ctl -1
1040 #define default_param_tx_thr_length -1
1041 #define default_param_rx_thr_length -1
1042 #endif //__IS_DEVICE__
1043 #else // __IS_VR9__
1044 #error "Please choose one platform!!"
1045 #endif // __IS_VR9__
1046 #endif //UEIP
1047
1048 /*@}*//*IFXUSB_PLATEFORM_MEM_ADDR*/
1049
1050 /////////////////////////////////////////////////////////////////////////
1051
1052 #ifdef __IS_HOST__
1053 #if defined(CONFIG_USB_HOST_IFX_FORCE_USB11) || defined(__FORCE_USB11__)
1054 #undef default_param_speed
1055 #define default_param_speed IFXUSB_PARAM_SPEED_FULL
1056 #endif
1057 #endif
1058 #ifdef __IS_DEVICE__
1059 #if !defined(CONFIG_USB_GADGET_DUALSPEED) || defined(__FORCE_USB11__)
1060 #undef default_param_speed
1061 #define default_param_speed IFXUSB_PARAM_SPEED_FULL
1062 #endif
1063 #endif
1064
1065 /////////////////////////////////////////////////////////////////////////
1066
1067 static __inline__ void UDELAY( const uint32_t _usecs )
1068 {
1069 udelay( _usecs );
1070 }
1071
1072 static __inline__ void MDELAY( const uint32_t _msecs )
1073 {
1074 mdelay( _msecs );
1075 }
1076
1077 static __inline__ void SPIN_LOCK( spinlock_t *_lock )
1078 {
1079 spin_lock(_lock);
1080 }
1081
1082 static __inline__ void SPIN_UNLOCK( spinlock_t *_lock )
1083 {
1084 spin_unlock(_lock);
1085 }
1086
1087 #define SPIN_LOCK_IRQSAVE( _l, _f ) \
1088 { \
1089 spin_lock_irqsave(_l,_f); \
1090 }
1091
1092 #define SPIN_UNLOCK_IRQRESTORE( _l,_f ) \
1093 { \
1094 spin_unlock_irqrestore(_l,_f); \
1095 }
1096
1097 /////////////////////////////////////////////////////////////////////////
1098 /*!
1099 \addtogroup IFXUSB_DBG_ROUTINE
1100 */
1101 /*@{*/
1102 #ifdef __IS_HOST__
1103 extern uint32_t h_dbg_lvl;
1104 #endif
1105
1106 #ifdef __IS_DEVICE__
1107 extern uint32_t d_dbg_lvl;
1108 #endif
1109
1110 /*! \brief When debug level has the DBG_CIL bit set, display CIL Debug messages. */
1111 #define DBG_CIL (0x2)
1112 /*! \brief When debug level has the DBG_CILV bit set, display CIL Verbose debug messages */
1113 #define DBG_CILV (0x20)
1114 /*! \brief When debug level has the DBG_PCD bit set, display PCD (Device) debug messages */
1115 #define DBG_PCD (0x4)
1116 /*! \brief When debug level has the DBG_PCDV set, display PCD (Device) Verbose debug messages */
1117 #define DBG_PCDV (0x40)
1118 /*! \brief When debug level has the DBG_HCD bit set, display Host debug messages */
1119 #define DBG_HCD (0x8)
1120 /*! \brief When debug level has the DBG_HCDV bit set, display Verbose Host debug messages */
1121 #define DBG_HCDV (0x80)
1122 /*! \brief When debug level has the DBG_HCD_URB bit set, display enqueued URBs in host mode. */
1123 #define DBG_HCD_URB (0x800)
1124 /*! \brief When debug level has any bit set, display debug messages */
1125 #define DBG_ANY (0xFF)
1126 /*! \brief All debug messages off */
1127 #define DBG_OFF 0
1128
1129 #define DBG_ENTRY (0x8000)
1130
1131 #define IFXUSB "IFXUSB: "
1132
1133 /*!
1134 \fn inline uint32_t SET_DEBUG_LEVEL( const uint32_t _new )
1135 \brief Set the Debug Level variable.
1136 \param _new 32-bit mask of debug level.
1137 \return previous debug level
1138 */
1139 static inline uint32_t SET_DEBUG_LEVEL( const uint32_t _new )
1140 {
1141 #ifdef __IS_HOST__
1142 uint32_t old = h_dbg_lvl;
1143 h_dbg_lvl = _new;
1144 #endif
1145
1146 #ifdef __IS_DEVICE__
1147 uint32_t old = d_dbg_lvl;
1148 d_dbg_lvl = _new;
1149 #endif
1150 return old;
1151 }
1152
1153 #ifdef __DEBUG__
1154 #ifdef __IS_HOST__
1155 # define IFX_DEBUGPL(lvl, x...) do{ if ((lvl)&h_dbg_lvl)printk( KERN_DEBUG IFXUSB x ); }while(0)
1156 # define CHK_DEBUG_LEVEL(level) ((level) & h_dbg_lvl)
1157 #endif
1158
1159 #ifdef __IS_DEVICE__
1160 # define IFX_DEBUGPL(lvl, x...) do{ if ((lvl)&d_dbg_lvl)printk( KERN_DEBUG IFXUSB x ); }while(0)
1161 # define CHK_DEBUG_LEVEL(level) ((level) & d_dbg_lvl)
1162 #endif
1163
1164 # define IFX_DEBUGP(x...) IFX_DEBUGPL(DBG_ANY, x )
1165 #else
1166 # define IFX_DEBUGPL(lvl, x...) do{}while(0)
1167 # define IFX_DEBUGP(x...)
1168 # define CHK_DEBUG_LEVEL(level) (0)
1169 #endif //__DEBUG__
1170
1171 /* Print an Error message. */
1172 #define IFX_ERROR(x...) printk( KERN_ERR IFXUSB x )
1173 /* Print a Warning message. */
1174 #define IFX_WARN(x...) printk( KERN_WARNING IFXUSB x )
1175 /* Print a notice (normal but significant message). */
1176 #define IFX_NOTICE(x...) printk( KERN_NOTICE IFXUSB x )
1177 /* Basic message printing. */
1178 #define IFX_PRINT(x...) printk( KERN_INFO IFXUSB x )
1179
1180 /*@}*//*IFXUSB_DBG_ROUTINE*/
1181
1182
1183 #endif //__IFXUSB_PLAT_H__
1184