add chaos_calmer branch
[15.05/openwrt.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