mediatek: add support for the new MT7623 Arm SoC
[openwrt.git] / target / linux / mediatek / patches / 0068-SDK_compat.patch
1 From 4c48177826502673737609ffa04b66051a1e0f75 Mon Sep 17 00:00:00 2001
2 From: John Crispin <blogic@openwrt.org>
3 Date: Sat, 27 Jun 2015 17:05:12 +0200
4 Subject: [PATCH 68/76] SDK_compat
5
6 ---
7  arch/arm/include/asm/mach/mt_irq.h         |  174 ++++++++
8  arch/arm/include/asm/rt2880/mt_irq.h       |  174 ++++++++
9  arch/arm/include/asm/rt2880/rt_mmap.h      |   58 +++
10  arch/arm/include/asm/rt2880/surfboardint.h |   42 ++
11  arch/arm/include/asm/rt2880/x_define_irq.h |  160 +++++++
12  arch/arm/mach-mediatek/mediatek.c          |  186 ++++++++
13  arch/arm/mach-mediatek/mt_reg_base.h       |  640 ++++++++++++++++++++++++++++
14  arch/arm/mach-mediatek/rt_mmap.h           |   58 +++
15  8 files changed, 1492 insertions(+)
16  create mode 100644 arch/arm/include/asm/mach/mt_irq.h
17  create mode 100644 arch/arm/include/asm/rt2880/mt_irq.h
18  create mode 100644 arch/arm/include/asm/rt2880/rt_mmap.h
19  create mode 100644 arch/arm/include/asm/rt2880/surfboardint.h
20  create mode 100644 arch/arm/include/asm/rt2880/x_define_irq.h
21  create mode 100644 arch/arm/mach-mediatek/mt_reg_base.h
22  create mode 100644 arch/arm/mach-mediatek/rt_mmap.h
23
24 diff --git a/arch/arm/include/asm/mach/mt_irq.h b/arch/arm/include/asm/mach/mt_irq.h
25 new file mode 100644
26 index 0000000..ff265e0
27 --- /dev/null
28 +++ b/arch/arm/include/asm/mach/mt_irq.h
29 @@ -0,0 +1,174 @@
30 +#ifndef __MT_IRQ_H
31 +#define __MT_IRQ_H
32 +
33 +#define GIC_PRIVATE_SIGNALS     (32)
34 +#define NR_GIC_SGI              (16)
35 +#define NR_GIC_PPI              (16)
36 +#define GIC_PPI_OFFSET          (27)
37 +#define MT_NR_PPI               (5)
38 +#define MT_NR_SPI               (224)
39 +#define NR_MT_IRQ_LINE          (GIC_PPI_OFFSET + MT_NR_PPI + MT_NR_SPI)
40 +
41 +#define MT65xx_EDGE_SENSITIVE 0
42 +#define MT65xx_LEVEL_SENSITIVE 1
43 +
44 +#define MT65xx_POLARITY_LOW   0
45 +#define MT65xx_POLARITY_HIGH  1
46 +
47 +#define GIC_PPI_GLOBAL_TIMER      (GIC_PPI_OFFSET + 0)
48 +#define GIC_PPI_LEGACY_FIQ        (GIC_PPI_OFFSET + 1)
49 +#define GIC_PPI_PRIVATE_TIMER     (GIC_PPI_OFFSET + 2)
50 +#define GIC_PPI_NS_PRIVATE_TIMER  (GIC_PPI_OFFSET + 3)
51 +#define GIC_PPI_LEGACY_IRQ        (GIC_PPI_OFFSET + 4)
52 +
53 +#define MT_BTIF_IRQ_ID                  (GIC_PRIVATE_SIGNALS + 50)
54 +#define MT_DMA_BTIF_TX_IRQ_ID              (GIC_PRIVATE_SIGNALS + 71)
55 +#define MT_DMA_BTIF_RX_IRQ_ID              (GIC_PRIVATE_SIGNALS + 72)
56 +
57 +#if !defined(CONFIG_MT8127_FPGA)
58 +
59 +#if !defined(__ASSEMBLY__)
60 +#define X_DEFINE_IRQ(__name, __num, __pol, __sens)  __name = __num,
61 +enum 
62 +{
63 +#include "x_define_irq.h"
64 +};
65 +#undef X_DEFINE_IRQ
66 +#define MT6582_AHB_SLAVE_HIF_IRQ_ID         WF_HIF_IRQ_ID /* FIXME */
67 +
68 +#endif
69 +
70 +#else
71 +
72 +#define MT6582_USB0_IRQ_ID                  (GIC_PRIVATE_SIGNALS + 32)
73 +#define MT6582_USB1_IRQ_ID                                     (GIC_PRIVATE_SIGNALS + 33)
74 +#define MT_PTP_THERM_IRQ_ID                  (GIC_PRIVATE_SIGNALS + 38)
75 +#define MT_MSDC0_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 39)
76 +#define MT_MSDC1_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 40)
77 +//#define MT_MSDC2_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 41) //6582 take off
78 +//#define MT_MSDC3_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 42) //6582 take off
79 +#define MT6582_AP_HIF_IRQ_ID                (GIC_PRIVATE_SIGNALS + 43)
80 +#define MT_I2C0_IRQ_ID                  (GIC_PRIVATE_SIGNALS + 44)
81 +#define MT_I2C1_IRQ_ID                  (GIC_PRIVATE_SIGNALS + 45)
82 +#define MT_I2C2_IRQ_ID                  (GIC_PRIVATE_SIGNALS + 46)
83 +#define MT_UART1_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 51)
84 +#define MT_UART2_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 52)
85 +#define MT_UART3_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 53)
86 +#define MT_UART4_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 54)
87 +#define MT_NFIECC_IRQ_ID                    (GIC_PRIVATE_SIGNALS + 55)
88 +#define MT_NFI_IRQ_ID                       (GIC_PRIVATE_SIGNALS + 56)
89 +#define MT_GDMA1_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 57)
90 +#define MT_GDMA2_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 58)
91 +#define MT_DMA_UART0_TX_IRQ_ID              (GIC_PRIVATE_SIGNALS + 63)
92 +#define MT_DMA_UART0_RX_IRQ_ID              (GIC_PRIVATE_SIGNALS + 64)
93 +#define MT_DMA_UART1_TX_IRQ_ID              (GIC_PRIVATE_SIGNALS + 65)
94 +#define MT_DMA_UART1_RX_IRQ_ID              (GIC_PRIVATE_SIGNALS + 66)
95 +#define MT_DMA_UART2_TX_IRQ_ID              (GIC_PRIVATE_SIGNALS + 67)
96 +#define MT_DMA_UART2_RX_IRQ_ID              (GIC_PRIVATE_SIGNALS + 68)
97 +#define MT6582_SPI1_IRQ_ID                  (GIC_PRIVATE_SIGNALS + 78)
98 +//#define MT_MSDC4_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 83) //6582 take off
99 +#define MT_PTP_FSM_IRQ_ID                   (GIC_PRIVATE_SIGNALS + 85)
100 +#define MT_WDT_IRQ_ID                       (GIC_PRIVATE_SIGNALS + 88)//TBD:For build pass
101 +#define MT_APARM_DOMAIN_IRQ_ID              (GIC_PRIVATE_SIGNALS + 94)
102 +#define MT_APARM_DECERR_IRQ_ID              (GIC_PRIVATE_SIGNALS + 95)
103 +#if 1 //cliff
104 +#define MT6582_GPT_IRQ_ID                   (GIC_PRIVATE_SIGNALS + 112)//10.2 update
105 +#define MT_EINT_IRQ_ID                      (GIC_PRIVATE_SIGNALS + 113)//10.2 update
106 +#else
107 +#define MT6582_GPT_IRQ_ID                   (GIC_PRIVATE_SIGNALS + 113)//10.2 update
108 +#define MT_EINT_IRQ_ID                      (GIC_PRIVATE_SIGNALS + 116)//10.2 update
109 +#endif
110 +#define MT6582_PMIC_WRAP_IRQ_ID             (GIC_PRIVATE_SIGNALS + 115)//0x80
111 +#define MT_KP_IRQ_ID                   (GIC_PRIVATE_SIGNALS + 116)
112 +#define MT_SPM_IRQ_ID                       (GIC_PRIVATE_SIGNALS + 117)
113 +#define MT_SPM1_IRQ_ID                       (GIC_PRIVATE_SIGNALS + 118)
114 +#define MT_VENC_IRQ_ID                      (GIC_PRIVATE_SIGNALS + 139)
115 +#define MT_VDEC_IRQ_ID                      (GIC_PRIVATE_SIGNALS + 140)
116 +#define CAMERA_ISP_IRQ0_ID                  (GIC_PRIVATE_SIGNALS + 143) // cam_irq_b
117 +#define CAMERA_ISP_IRQ1_ID                  (GIC_PRIVATE_SIGNALS + 144) // cam_irq1_b
118 +#define CAMERA_ISP_IRQ2_ID                  (GIC_PRIVATE_SIGNALS + 145) // cam_irq2_b
119 +//#define CAMERA_ISP_IRQ3_ID                  (GIC_PRIVATE_SIGNALS + 144) // cam_irq3_b 6582 take off
120 +#define MT6582_JPEG_ENC_IRQ_ID              (GIC_PRIVATE_SIGNALS + 141)
121 +//#define MT6582_JPEG_DEC_IRQ_ID              (GIC_PRIVATE_SIGNALS + 148) //6582 take off
122 +/* Not sure and comments for early porting */
123 +#define MT_EINT_DIRECT0_IRQ_ID              (GIC_PRIVATE_SIGNALS + 121)
124 +
125 +#if 0
126 +#define MT_MFG_IRQ_GP_ID                     (GIC_PRIVATE_SIGNALS + 170)
127 +#define MT_MFG_IRQ_GPMMU_ID                  (GIC_PRIVATE_SIGNALS + 171)
128 +#define MT_MFG_IRQ_PP0_ID                    (GIC_PRIVATE_SIGNALS + 172)
129 +#define MT_MFG_IRQ_PPMMU0_ID                 (GIC_PRIVATE_SIGNALS + 173)
130 +#define MT_MFG_IRQ_PP1_ID                    (GIC_PRIVATE_SIGNALS + 174)
131 +#define MT_MFG_IRQ_PPMMU1_ID                 (GIC_PRIVATE_SIGNALS + 175)
132 +#else
133 +#define MT_MFG_IRQ0_ID                     (GIC_PRIVATE_SIGNALS + 170)
134 +#define MT_MFG_IRQ1_ID                     (GIC_PRIVATE_SIGNALS + 171)
135 +#define MT_MFG_IRQ2_ID                     (GIC_PRIVATE_SIGNALS + 172)
136 +#define MT_MFG_IRQ3_ID                     (GIC_PRIVATE_SIGNALS + 173)
137 +#define MT_MFG_IRQ4_ID                     (GIC_PRIVATE_SIGNALS + 174)
138 +#define MT_MFG_IRQ5_ID                     (GIC_PRIVATE_SIGNALS + 175)
139 +#define MT_MFG_IRQ6_ID                     (GIC_PRIVATE_SIGNALS + 176)
140 +#define MT_MFG_IRQ7_ID                     (GIC_PRIVATE_SIGNALS + 177)
141 +#define MT_MFG_IRQ8_ID                     (GIC_PRIVATE_SIGNALS + 178)
142 +#define MT_MFG_IRQ9_ID                     (GIC_PRIVATE_SIGNALS + 179)
143 +#define MT_MFG_IRQ10_ID                    (GIC_PRIVATE_SIGNALS + 180)
144 +#endif
145 +
146 +
147 +#if 0
148 +#define MT6582_DISP_MUTEX_IRQ_ID            (GIC_PRIVATE_SIGNALS + 160)
149 +#define MT6582_DISP_ROT_IRQ_ID              (GIC_PRIVATE_SIGNALS + 161)
150 +#define MT6582_DISP_SCL_IRQ_ID              (GIC_PRIVATE_SIGNALS + 162)
151 +#define MT6582_DISP_OVL_IRQ_ID              (GIC_PRIVATE_SIGNALS + 163)
152 +#define MT6582_DISP_WDMA0_IRQ_ID            (GIC_PRIVATE_SIGNALS + 164)
153 +#define MT6582_DISP_WDMA1_IRQ_ID            (GIC_PRIVATE_SIGNALS + 165)
154 +#define MT6582_DISP_RDMA0_IRQ_ID            (GIC_PRIVATE_SIGNALS + 166)
155 +#define MT6582_DISP_RDMA1_IRQ_ID            (GIC_PRIVATE_SIGNALS + 167)
156 +#define MT6582_DISP_BLS_IRQ_ID              (GIC_PRIVATE_SIGNALS + 168)
157 +#define MT6582_DISP_COLOR_IRQ_ID            (GIC_PRIVATE_SIGNALS + 169)
158 +#define MT6582_DISP_TDSHP_IRQ_ID            (GIC_PRIVATE_SIGNALS + 170)
159 +#define MT6582_DISP_DBI_IRQ_ID              (GIC_PRIVATE_SIGNALS + 171)
160 +#define MT6582_DISP_DSI_IRQ_ID              (GIC_PRIVATE_SIGNALS + 172)
161 +#define MT6582_DISP_DPI0_IRQ_ID             (GIC_PRIVATE_SIGNALS + 173)
162 +#define MT6582_DISP_DPI1_IRQ_ID             (GIC_PRIVATE_SIGNALS + 174)
163 +#define MT6582_DISP_CMDQ_IRQ_ID             (GIC_PRIVATE_SIGNALS + 176)
164 +#else
165 +#define MT6582_DISP_MDP_RDMA_IRQ_ID       (GIC_PRIVATE_SIGNALS+146)  
166 +#define MT6582_DISP_MDP_RSZ0_IRQ_ID       (GIC_PRIVATE_SIGNALS+147)  
167 +#define MT6582_DISP_MDP_RSZ1_IRQ_ID       (GIC_PRIVATE_SIGNALS+148)  
168 +#define MT6582_DISP_MDP_TDSHP_IRQ_ID      (GIC_PRIVATE_SIGNALS+149)  
169 +#define MT6582_DISP_MDP_WDMA_IRQ_ID       (GIC_PRIVATE_SIGNALS+150)  
170 +#define MT6582_DISP_MDP_WROT_IRQ_ID       (GIC_PRIVATE_SIGNALS+151)  
171 +#define MT6582_DISP_RDMA_IRQ_ID           (GIC_PRIVATE_SIGNALS+152)  
172 +#define MT6582_DISP_OVL_IRQ_ID            (GIC_PRIVATE_SIGNALS+153)  
173 +#define MT6582_DISP_WDMA_IRQ_ID           (GIC_PRIVATE_SIGNALS+154)  
174 +#define MT6582_DISP_BLS_IRQ_ID            (GIC_PRIVATE_SIGNALS+155)  
175 +#define MT6582_DISP_COLOR_IRQ_ID          (GIC_PRIVATE_SIGNALS+156)  
176 +#define MT6582_DISP_DSI_IRQ_ID            (GIC_PRIVATE_SIGNALS+157)  
177 +#define MT6582_DISP_DPI0_IRQ_ID           (GIC_PRIVATE_SIGNALS+158)  
178 +#define MT6582_DISP_CMDQ_IRQ_ID           (GIC_PRIVATE_SIGNALS+159)  
179 +#define MT6582_DISP_CMDQ_SECURE_IRQ_ID    (GIC_PRIVATE_SIGNALS+160)  
180 +#define MT6582_DISP_MUTEX_IRQ_ID          (GIC_PRIVATE_SIGNALS+161)  
181 +#define MT6582_DISP_SMI_LARB0_IRQ_ID      (GIC_PRIVATE_SIGNALS+162)
182 +#define MT_CIRQ_IRQ_ID                      (GIC_PRIVATE_SIGNALS+187)
183 +#endif
184 +#define MT6582_APARM_GPTTIMER_IRQ_LINE      MT6582_GPT_IRQ_ID
185 +
186 +// MT6582 Wifi AHB Slave HIF
187 +#define MT6582_AHB_SLAVE_HIF_IRQ_ID         (GIC_PRIVATE_SIGNALS + 160)
188 +#define MT6582_HIF_PDMA_IRQ_ID              (GIC_PRIVATE_SIGNALS + 59)
189 +
190 +/* These are defined for solving compile errors only. They are not existing on FPGA */
191 +#define TS_IRQ_ID                         (GIC_PRIVATE_SIGNALS + 163)
192 +#define CONN_WDT_IRQ_ID                   (GIC_PRIVATE_SIGNALS + 163)
193 +#define LOWBATTERY_IRQ_ID                 (GIC_PRIVATE_SIGNALS + 163)
194 +#define MD_WDT_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 163)
195 +
196 +#define WF_HIF_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 184)
197 +#define MT_CONN2AP_BTIF_WAKEUP_IRQ_ID    (GIC_PRIVATE_SIGNALS + 185)
198 +#define BT_CVSD_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 186)
199 +
200 +#define CCIF0_AP_IRQ_ID                   (GIC_PRIVATE_SIGNALS + 100)
201 +#endif
202 +
203 +#endif
204 diff --git a/arch/arm/include/asm/rt2880/mt_irq.h b/arch/arm/include/asm/rt2880/mt_irq.h
205 new file mode 100644
206 index 0000000..ff265e0
207 --- /dev/null
208 +++ b/arch/arm/include/asm/rt2880/mt_irq.h
209 @@ -0,0 +1,174 @@
210 +#ifndef __MT_IRQ_H
211 +#define __MT_IRQ_H
212 +
213 +#define GIC_PRIVATE_SIGNALS     (32)
214 +#define NR_GIC_SGI              (16)
215 +#define NR_GIC_PPI              (16)
216 +#define GIC_PPI_OFFSET          (27)
217 +#define MT_NR_PPI               (5)
218 +#define MT_NR_SPI               (224)
219 +#define NR_MT_IRQ_LINE          (GIC_PPI_OFFSET + MT_NR_PPI + MT_NR_SPI)
220 +
221 +#define MT65xx_EDGE_SENSITIVE 0
222 +#define MT65xx_LEVEL_SENSITIVE 1
223 +
224 +#define MT65xx_POLARITY_LOW   0
225 +#define MT65xx_POLARITY_HIGH  1
226 +
227 +#define GIC_PPI_GLOBAL_TIMER      (GIC_PPI_OFFSET + 0)
228 +#define GIC_PPI_LEGACY_FIQ        (GIC_PPI_OFFSET + 1)
229 +#define GIC_PPI_PRIVATE_TIMER     (GIC_PPI_OFFSET + 2)
230 +#define GIC_PPI_NS_PRIVATE_TIMER  (GIC_PPI_OFFSET + 3)
231 +#define GIC_PPI_LEGACY_IRQ        (GIC_PPI_OFFSET + 4)
232 +
233 +#define MT_BTIF_IRQ_ID                  (GIC_PRIVATE_SIGNALS + 50)
234 +#define MT_DMA_BTIF_TX_IRQ_ID              (GIC_PRIVATE_SIGNALS + 71)
235 +#define MT_DMA_BTIF_RX_IRQ_ID              (GIC_PRIVATE_SIGNALS + 72)
236 +
237 +#if !defined(CONFIG_MT8127_FPGA)
238 +
239 +#if !defined(__ASSEMBLY__)
240 +#define X_DEFINE_IRQ(__name, __num, __pol, __sens)  __name = __num,
241 +enum 
242 +{
243 +#include "x_define_irq.h"
244 +};
245 +#undef X_DEFINE_IRQ
246 +#define MT6582_AHB_SLAVE_HIF_IRQ_ID         WF_HIF_IRQ_ID /* FIXME */
247 +
248 +#endif
249 +
250 +#else
251 +
252 +#define MT6582_USB0_IRQ_ID                  (GIC_PRIVATE_SIGNALS + 32)
253 +#define MT6582_USB1_IRQ_ID                                     (GIC_PRIVATE_SIGNALS + 33)
254 +#define MT_PTP_THERM_IRQ_ID                  (GIC_PRIVATE_SIGNALS + 38)
255 +#define MT_MSDC0_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 39)
256 +#define MT_MSDC1_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 40)
257 +//#define MT_MSDC2_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 41) //6582 take off
258 +//#define MT_MSDC3_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 42) //6582 take off
259 +#define MT6582_AP_HIF_IRQ_ID                (GIC_PRIVATE_SIGNALS + 43)
260 +#define MT_I2C0_IRQ_ID                  (GIC_PRIVATE_SIGNALS + 44)
261 +#define MT_I2C1_IRQ_ID                  (GIC_PRIVATE_SIGNALS + 45)
262 +#define MT_I2C2_IRQ_ID                  (GIC_PRIVATE_SIGNALS + 46)
263 +#define MT_UART1_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 51)
264 +#define MT_UART2_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 52)
265 +#define MT_UART3_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 53)
266 +#define MT_UART4_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 54)
267 +#define MT_NFIECC_IRQ_ID                    (GIC_PRIVATE_SIGNALS + 55)
268 +#define MT_NFI_IRQ_ID                       (GIC_PRIVATE_SIGNALS + 56)
269 +#define MT_GDMA1_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 57)
270 +#define MT_GDMA2_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 58)
271 +#define MT_DMA_UART0_TX_IRQ_ID              (GIC_PRIVATE_SIGNALS + 63)
272 +#define MT_DMA_UART0_RX_IRQ_ID              (GIC_PRIVATE_SIGNALS + 64)
273 +#define MT_DMA_UART1_TX_IRQ_ID              (GIC_PRIVATE_SIGNALS + 65)
274 +#define MT_DMA_UART1_RX_IRQ_ID              (GIC_PRIVATE_SIGNALS + 66)
275 +#define MT_DMA_UART2_TX_IRQ_ID              (GIC_PRIVATE_SIGNALS + 67)
276 +#define MT_DMA_UART2_RX_IRQ_ID              (GIC_PRIVATE_SIGNALS + 68)
277 +#define MT6582_SPI1_IRQ_ID                  (GIC_PRIVATE_SIGNALS + 78)
278 +//#define MT_MSDC4_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 83) //6582 take off
279 +#define MT_PTP_FSM_IRQ_ID                   (GIC_PRIVATE_SIGNALS + 85)
280 +#define MT_WDT_IRQ_ID                       (GIC_PRIVATE_SIGNALS + 88)//TBD:For build pass
281 +#define MT_APARM_DOMAIN_IRQ_ID              (GIC_PRIVATE_SIGNALS + 94)
282 +#define MT_APARM_DECERR_IRQ_ID              (GIC_PRIVATE_SIGNALS + 95)
283 +#if 1 //cliff
284 +#define MT6582_GPT_IRQ_ID                   (GIC_PRIVATE_SIGNALS + 112)//10.2 update
285 +#define MT_EINT_IRQ_ID                      (GIC_PRIVATE_SIGNALS + 113)//10.2 update
286 +#else
287 +#define MT6582_GPT_IRQ_ID                   (GIC_PRIVATE_SIGNALS + 113)//10.2 update
288 +#define MT_EINT_IRQ_ID                      (GIC_PRIVATE_SIGNALS + 116)//10.2 update
289 +#endif
290 +#define MT6582_PMIC_WRAP_IRQ_ID             (GIC_PRIVATE_SIGNALS + 115)//0x80
291 +#define MT_KP_IRQ_ID                   (GIC_PRIVATE_SIGNALS + 116)
292 +#define MT_SPM_IRQ_ID                       (GIC_PRIVATE_SIGNALS + 117)
293 +#define MT_SPM1_IRQ_ID                       (GIC_PRIVATE_SIGNALS + 118)
294 +#define MT_VENC_IRQ_ID                      (GIC_PRIVATE_SIGNALS + 139)
295 +#define MT_VDEC_IRQ_ID                      (GIC_PRIVATE_SIGNALS + 140)
296 +#define CAMERA_ISP_IRQ0_ID                  (GIC_PRIVATE_SIGNALS + 143) // cam_irq_b
297 +#define CAMERA_ISP_IRQ1_ID                  (GIC_PRIVATE_SIGNALS + 144) // cam_irq1_b
298 +#define CAMERA_ISP_IRQ2_ID                  (GIC_PRIVATE_SIGNALS + 145) // cam_irq2_b
299 +//#define CAMERA_ISP_IRQ3_ID                  (GIC_PRIVATE_SIGNALS + 144) // cam_irq3_b 6582 take off
300 +#define MT6582_JPEG_ENC_IRQ_ID              (GIC_PRIVATE_SIGNALS + 141)
301 +//#define MT6582_JPEG_DEC_IRQ_ID              (GIC_PRIVATE_SIGNALS + 148) //6582 take off
302 +/* Not sure and comments for early porting */
303 +#define MT_EINT_DIRECT0_IRQ_ID              (GIC_PRIVATE_SIGNALS + 121)
304 +
305 +#if 0
306 +#define MT_MFG_IRQ_GP_ID                     (GIC_PRIVATE_SIGNALS + 170)
307 +#define MT_MFG_IRQ_GPMMU_ID                  (GIC_PRIVATE_SIGNALS + 171)
308 +#define MT_MFG_IRQ_PP0_ID                    (GIC_PRIVATE_SIGNALS + 172)
309 +#define MT_MFG_IRQ_PPMMU0_ID                 (GIC_PRIVATE_SIGNALS + 173)
310 +#define MT_MFG_IRQ_PP1_ID                    (GIC_PRIVATE_SIGNALS + 174)
311 +#define MT_MFG_IRQ_PPMMU1_ID                 (GIC_PRIVATE_SIGNALS + 175)
312 +#else
313 +#define MT_MFG_IRQ0_ID                     (GIC_PRIVATE_SIGNALS + 170)
314 +#define MT_MFG_IRQ1_ID                     (GIC_PRIVATE_SIGNALS + 171)
315 +#define MT_MFG_IRQ2_ID                     (GIC_PRIVATE_SIGNALS + 172)
316 +#define MT_MFG_IRQ3_ID                     (GIC_PRIVATE_SIGNALS + 173)
317 +#define MT_MFG_IRQ4_ID                     (GIC_PRIVATE_SIGNALS + 174)
318 +#define MT_MFG_IRQ5_ID                     (GIC_PRIVATE_SIGNALS + 175)
319 +#define MT_MFG_IRQ6_ID                     (GIC_PRIVATE_SIGNALS + 176)
320 +#define MT_MFG_IRQ7_ID                     (GIC_PRIVATE_SIGNALS + 177)
321 +#define MT_MFG_IRQ8_ID                     (GIC_PRIVATE_SIGNALS + 178)
322 +#define MT_MFG_IRQ9_ID                     (GIC_PRIVATE_SIGNALS + 179)
323 +#define MT_MFG_IRQ10_ID                    (GIC_PRIVATE_SIGNALS + 180)
324 +#endif
325 +
326 +
327 +#if 0
328 +#define MT6582_DISP_MUTEX_IRQ_ID            (GIC_PRIVATE_SIGNALS + 160)
329 +#define MT6582_DISP_ROT_IRQ_ID              (GIC_PRIVATE_SIGNALS + 161)
330 +#define MT6582_DISP_SCL_IRQ_ID              (GIC_PRIVATE_SIGNALS + 162)
331 +#define MT6582_DISP_OVL_IRQ_ID              (GIC_PRIVATE_SIGNALS + 163)
332 +#define MT6582_DISP_WDMA0_IRQ_ID            (GIC_PRIVATE_SIGNALS + 164)
333 +#define MT6582_DISP_WDMA1_IRQ_ID            (GIC_PRIVATE_SIGNALS + 165)
334 +#define MT6582_DISP_RDMA0_IRQ_ID            (GIC_PRIVATE_SIGNALS + 166)
335 +#define MT6582_DISP_RDMA1_IRQ_ID            (GIC_PRIVATE_SIGNALS + 167)
336 +#define MT6582_DISP_BLS_IRQ_ID              (GIC_PRIVATE_SIGNALS + 168)
337 +#define MT6582_DISP_COLOR_IRQ_ID            (GIC_PRIVATE_SIGNALS + 169)
338 +#define MT6582_DISP_TDSHP_IRQ_ID            (GIC_PRIVATE_SIGNALS + 170)
339 +#define MT6582_DISP_DBI_IRQ_ID              (GIC_PRIVATE_SIGNALS + 171)
340 +#define MT6582_DISP_DSI_IRQ_ID              (GIC_PRIVATE_SIGNALS + 172)
341 +#define MT6582_DISP_DPI0_IRQ_ID             (GIC_PRIVATE_SIGNALS + 173)
342 +#define MT6582_DISP_DPI1_IRQ_ID             (GIC_PRIVATE_SIGNALS + 174)
343 +#define MT6582_DISP_CMDQ_IRQ_ID             (GIC_PRIVATE_SIGNALS + 176)
344 +#else
345 +#define MT6582_DISP_MDP_RDMA_IRQ_ID       (GIC_PRIVATE_SIGNALS+146)  
346 +#define MT6582_DISP_MDP_RSZ0_IRQ_ID       (GIC_PRIVATE_SIGNALS+147)  
347 +#define MT6582_DISP_MDP_RSZ1_IRQ_ID       (GIC_PRIVATE_SIGNALS+148)  
348 +#define MT6582_DISP_MDP_TDSHP_IRQ_ID      (GIC_PRIVATE_SIGNALS+149)  
349 +#define MT6582_DISP_MDP_WDMA_IRQ_ID       (GIC_PRIVATE_SIGNALS+150)  
350 +#define MT6582_DISP_MDP_WROT_IRQ_ID       (GIC_PRIVATE_SIGNALS+151)  
351 +#define MT6582_DISP_RDMA_IRQ_ID           (GIC_PRIVATE_SIGNALS+152)  
352 +#define MT6582_DISP_OVL_IRQ_ID            (GIC_PRIVATE_SIGNALS+153)  
353 +#define MT6582_DISP_WDMA_IRQ_ID           (GIC_PRIVATE_SIGNALS+154)  
354 +#define MT6582_DISP_BLS_IRQ_ID            (GIC_PRIVATE_SIGNALS+155)  
355 +#define MT6582_DISP_COLOR_IRQ_ID          (GIC_PRIVATE_SIGNALS+156)  
356 +#define MT6582_DISP_DSI_IRQ_ID            (GIC_PRIVATE_SIGNALS+157)  
357 +#define MT6582_DISP_DPI0_IRQ_ID           (GIC_PRIVATE_SIGNALS+158)  
358 +#define MT6582_DISP_CMDQ_IRQ_ID           (GIC_PRIVATE_SIGNALS+159)  
359 +#define MT6582_DISP_CMDQ_SECURE_IRQ_ID    (GIC_PRIVATE_SIGNALS+160)  
360 +#define MT6582_DISP_MUTEX_IRQ_ID          (GIC_PRIVATE_SIGNALS+161)  
361 +#define MT6582_DISP_SMI_LARB0_IRQ_ID      (GIC_PRIVATE_SIGNALS+162)
362 +#define MT_CIRQ_IRQ_ID                      (GIC_PRIVATE_SIGNALS+187)
363 +#endif
364 +#define MT6582_APARM_GPTTIMER_IRQ_LINE      MT6582_GPT_IRQ_ID
365 +
366 +// MT6582 Wifi AHB Slave HIF
367 +#define MT6582_AHB_SLAVE_HIF_IRQ_ID         (GIC_PRIVATE_SIGNALS + 160)
368 +#define MT6582_HIF_PDMA_IRQ_ID              (GIC_PRIVATE_SIGNALS + 59)
369 +
370 +/* These are defined for solving compile errors only. They are not existing on FPGA */
371 +#define TS_IRQ_ID                         (GIC_PRIVATE_SIGNALS + 163)
372 +#define CONN_WDT_IRQ_ID                   (GIC_PRIVATE_SIGNALS + 163)
373 +#define LOWBATTERY_IRQ_ID                 (GIC_PRIVATE_SIGNALS + 163)
374 +#define MD_WDT_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 163)
375 +
376 +#define WF_HIF_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 184)
377 +#define MT_CONN2AP_BTIF_WAKEUP_IRQ_ID    (GIC_PRIVATE_SIGNALS + 185)
378 +#define BT_CVSD_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 186)
379 +
380 +#define CCIF0_AP_IRQ_ID                   (GIC_PRIVATE_SIGNALS + 100)
381 +#endif
382 +
383 +#endif
384 diff --git a/arch/arm/include/asm/rt2880/rt_mmap.h b/arch/arm/include/asm/rt2880/rt_mmap.h
385 new file mode 100644
386 index 0000000..e86b3bb
387 --- /dev/null
388 +++ b/arch/arm/include/asm/rt2880/rt_mmap.h
389 @@ -0,0 +1,58 @@
390 +#define HIFSYS_BASE                    0xFA000000 //for PCIe/USB
391 +#define ETHDMASYS_BASE                 0xFB000000 //for I2S/PCM/GDMA/HSDMA/FE/GMAC
392 +
393 +#define HIFSYS_PCI_BASE                 0xFA140000
394 +#define HIFSYS_USB_HOST_BASE            0xFA1C0000
395 +#define HIFSYS_USB_HOST2_BASE           0xFA240000
396 +
397 +#define ETHDMASYS_SYSCTL_BASE           0xFB000000
398 +#define ETHDMASYS_RBUS_MATRIXCTL_BASE   0xFB000400
399 +#define ETHDMASYS_I2S_BASE              0xFB000A00
400 +#define ETHDMASYS_PCM_BASE              0xFB002000
401 +#define ETHDMASYS_GDMA_BASE             0xFB002800
402 +#define ETHDMASYS_HS_DMA_BASE           0xFB007000
403 +#define ETHDMASYS_FRAME_ENGINE_BASE     0xFB100000
404 +#define ETHDMASYS_PPE_BASE             0xFB100C00
405 +#define ETHDMASYS_ETH_SW_BASE          0xFB110000
406 +#define ETHDMASYS_CRYPTO_ENGINE_BASE   0xFB240000
407 +
408 +//for backward-compatible
409 +#define RALINK_FRAME_ENGINE_BASE       ETHDMASYS_FRAME_ENGINE_BASE
410 +#define RALINK_PPE_BASE                 ETHDMASYS_PPE_BASE
411 +#define RALINK_SYSCTL_BASE             ETHDMASYS_SYSCTL_BASE
412 +#define RALINK_ETH_SW_BASE             ETHDMASYS_ETH_SW_BASE
413 +#define RALINK_GDMA_BASE      ETHDMASYS_GDMA_BASE
414 +#define RALINK_HS_DMA_BASE    ETHDMASYS_HS_DMA_BASE
415 +#define RALINK_11N_MAC_BASE            0       //unused for rt_rdm usage
416 +
417 +//Reset Control Register
418 +#define RSTCTL_SYS_RST                 (1<<0)
419 +#define RSTCTL_MCM_RST                 (1<<2)
420 +#define RSTCTL_HSDMA_RST               (1<<5)
421 +#define RSTCTL_FE_RST                  (1<<6)
422 +#define RSTCTL_SPDIF_RST               (1<<7)
423 +#define RSTCTL_TIMER_RST               (1<<8)
424 +#define RSTCTL_CIRQ_RST                        (1<<9)
425 +#define RSTCTL_MC_RST                  (1<<10)
426 +#define RSTCTL_PCM_RST                 (1<<11)
427 +#define RSTCTL_GPIO_RST                        (1<<13)
428 +#define RSTCTL_GDMA_RST                        (1<<14)
429 +#define RSTCTL_NAND_RST                        (1<<15)
430 +#define RSTCTL_I2C_RST                 (1<<16)
431 +#define RSTCTL_I2S_RST                 (1<<17)
432 +#define RSTCTL_SPI_RST                 (1<<18)
433 +#define RSTCTL_UART0_RST               (1<<19)
434 +#define RSTCTL_UART1_RST               (1<<20)
435 +#define RSTCTL_UART2_RST               (1<<21)
436 +#define RSTCTL_UPHY_RST                        (1<<22)
437 +#define RSTCTL_ETH_RST                 (1<<23)
438 +#define RSTCTL_PCIE0_RST               (1<<24)
439 +#define RSTCTL_PCIE1_RST               (1<<25)
440 +#define RSTCTL_PCIE2_RST               (1<<26)
441 +#define RSTCTL_AUX_STCK_RST            (1<<28)
442 +#define RSTCTL_CRYPT_RST               (1<<29)
443 +#define RSTCTL_SDXC_RST                        (1<<30)
444 +#define RSTCTL_PWM_RST                 (1<<31)
445 +
446 +//for backward-compatible
447 +#define RALINK_FE_RST                  RSTCTL_FE_RST
448 diff --git a/arch/arm/include/asm/rt2880/surfboardint.h b/arch/arm/include/asm/rt2880/surfboardint.h
449 new file mode 100644
450 index 0000000..4581598
451 --- /dev/null
452 +++ b/arch/arm/include/asm/rt2880/surfboardint.h
453 @@ -0,0 +1,42 @@
454 +#include "mt_irq.h"
455 +
456 +//#define SURFBOARDINT_SYSCTL      0      /* SYSCTL */
457 +#define SURFBOARDINT_FE          MT_FE_ORIG_IRQ_ID     /* FE */
458 +#define SURFBOARDINT_PCM         MT_PCM_IRQ_ID      /* PCM */
459 +//#define SURFBOARDINT_GPIO        6      /* GPIO */
460 +#define SURFBOARDINT_HSGDMA      MT_HSDMA_IRQ_ID      /* HSGDMA */
461 +#define SURFBOARDINT_DMA         MT_GDMA_IRQ_ID      /* DMA */
462 +//#define SURFBOARDINT_PC          9      /* Performance counter */
463 +#define SURFBOARDINT_I2S         MT_I2S_IRQ_ID     /* I2S */
464 +//#define SURFBOARDINT_SPI         11     /* SPI */
465 +//#define SURFBOARDINT_AES         13     /* AES */
466 +//#define SURFBOARDINT_AESENGINE      13     /* AES Engine */
467 +#define SURFBOARDINT_CRYPTO      MT_CRYPTO_IRQ_ID     /* CryptoEngine */
468 +//#define SURFBOARDINT_SDXC        14     /* SDXC */
469 +//#define SURFBOARDINT_ESW         17     /* ESW */
470 +#define SURFBOARDINT_USB0         MT_SSUSB_XHCI0_IRQ_ID     /* USB0 */
471 +#define SURFBOARDINT_USB1         MT_SSUSB_XHCI1_IRQ_ID     /* USB1 */
472 +//#define SURFBOARDINT_UART_LITE1  20     /* UART Lite */
473 +//#define SURFBOARDINT_UART_LITE2  21     /* UART Lite */
474 +//#define SURFBOARDINT_UART_LITE3  22     /* UART Lite */
475 +//#define SURFBOARDINT_UART1       SURFBOARDINT_UART_LITE1
476 +//#define SURFBOARDINT_UART        SURFBOARDINT_UART_LITE2
477 +//#define SURFBOARDINT_WDG         23     /* WDG timer */
478 +//#define SURFBOARDINT_TIMER0      24     /* Timer0 */
479 +//#define SURFBOARDINT_TIMER1      25     /* Timer1 */
480 +//#define SURFBOARDINT_ILL_ACC     35     /* illegal access */
481 +#define RALINK_INT_PCIE0         MT_PCIE0_IRQ_ID     /* PCIE0 */
482 +#define RALINK_INT_PCIE1         MT_PCIE1_IRQ_ID     /* PCIE1 */
483 +#define RALINK_INT_PCIE2         MT_PCIE2_IRQ_ID     /* PCIE2 */
484 +
485 +// Wait for RD to define IRQ source
486 +
487 +//#define RALINK_INT_xxx         MT_CRYPTO_RING0_IRQ_ID     /*  */
488 +//#define RALINK_INT_xxx         MT_CRYPTO_RING1_IRQ_ID     /*  */
489 +//#define RALINK_INT_xxx         MT_CRYPTO_RING2_IRQ_ID     /*  */
490 +//#define RALINK_INT_xxx         MT_FE_PDMA_IRQ_ID     /*  */
491 +//#define RALINK_INT_xxx         MT_FE_QDMA_IRQ_ID     /*  */
492 +//#define RALINK_INT_xxx         MT_PCIE_LINK_DOWN_RST_IRQ_ID     /*  */
493 +
494 +
495 +
496 diff --git a/arch/arm/include/asm/rt2880/x_define_irq.h b/arch/arm/include/asm/rt2880/x_define_irq.h
497 new file mode 100644
498 index 0000000..4b2e669
499 --- /dev/null
500 +++ b/arch/arm/include/asm/rt2880/x_define_irq.h
501 @@ -0,0 +1,160 @@
502 +/*
503 + * This file is generated automatically according to the design of silicon.
504 + * Don't modify it directly.
505 + */
506 +
507 +X_DEFINE_IRQ(MT6582_USB0_IRQ_ID            , 64, L,LEVEL)
508 +X_DEFINE_IRQ(MT6582_USB1_IRQ_ID            , 65, L,LEVEL)
509 +X_DEFINE_IRQ(TS_IRQ_ID                     , 66, L,EDGE)
510 +X_DEFINE_IRQ(TS_BATCH_IRQ_ID               , 67, L,EDGE)
511 +X_DEFINE_IRQ(LOWBATTERY_IRQ_ID             , 68, L,EDGE)
512 +X_DEFINE_IRQ(PWM_IRQ_ID                    , 69, L,LEVEL)
513 +X_DEFINE_IRQ(THERM_CTRL_IRQ_ID             , 70, L,LEVEL)
514 +X_DEFINE_IRQ(MT_MSDC0_IRQ_ID               , 71, L,LEVEL)
515 +X_DEFINE_IRQ(MT_MSDC1_IRQ_ID               , 72, L,LEVEL)
516 +X_DEFINE_IRQ(MT_MSDC2_IRQ_ID               , 73, L,LEVEL)
517 +X_DEFINE_IRQ(MT_MSDC3_IRQ_ID               , 74, L,LEVEL)
518 +X_DEFINE_IRQ(MT_I2C0_IRQ_ID                , 76, L,LEVEL)
519 +X_DEFINE_IRQ(MT_I2C1_IRQ_ID                , 77, L,LEVEL)
520 +X_DEFINE_IRQ(MT_I2C2_IRQ_ID                , 78, L,LEVEL)
521 +X_DEFINE_IRQ(BITF_IRQ_ID                   , 82, L,LEVEL)
522 +X_DEFINE_IRQ(MT_UART1_IRQ_ID               , 83, L,LEVEL)
523 +X_DEFINE_IRQ(MT_UART2_IRQ_ID               , 84, L,LEVEL)
524 +X_DEFINE_IRQ(MT_UART3_IRQ_ID               , 85, L,LEVEL)
525 +X_DEFINE_IRQ(MT_UART4_IRQ_ID               , 86, L,LEVEL)
526 +X_DEFINE_IRQ(MT_NFIECC_IRQ_ID              , 87, L,LEVEL)
527 +X_DEFINE_IRQ(MT_NFI_IRQ_ID                 , 88, L,LEVEL)
528 +X_DEFINE_IRQ(MT_GDMA1_IRQ_ID               , 89, L,LEVEL)
529 +X_DEFINE_IRQ(MT_GDMA2_IRQ_ID               , 90, L,LEVEL)
530 +X_DEFINE_IRQ(MT6582_HIF_PDMA_IRQ_ID        , 91, L,LEVEL)
531 +X_DEFINE_IRQ(AP_DMA_I2C0_IRQ_ID            , 92, L,LEVEL)
532 +X_DEFINE_IRQ(AP_DMA_I2C1_IRQ_ID            , 93, L,LEVEL)
533 +X_DEFINE_IRQ(AP_DMA_I2C2_IRQ_ID            , 94, L,LEVEL)
534 +X_DEFINE_IRQ(MT_DMA_UART0_TX_IRQ_ID        , 95, L,LEVEL)
535 +X_DEFINE_IRQ(MT_DMA_UART0_RX_IRQ_ID        , 96, L,LEVEL)
536 +X_DEFINE_IRQ(MT_DMA_UART1_TX_IRQ_ID        , 97, L,LEVEL)
537 +X_DEFINE_IRQ(MT_DMA_UART1_RX_IRQ_ID        , 98, L,LEVEL)
538 +X_DEFINE_IRQ(MT_DMA_UART2_TX_IRQ_ID        , 99, L,LEVEL)
539 +X_DEFINE_IRQ(MT_DMA_UART2_RX_IRQ_ID        , 100, L,LEVEL)
540 +X_DEFINE_IRQ(MT_DMA_UART3_TX_IRQ_ID        , 101, L,LEVEL)
541 +X_DEFINE_IRQ(MT_DMA_UART3_RX_IRQ_ID        , 102, L,LEVEL)
542 +X_DEFINE_IRQ(AP_DMA_BTIF_TX_IRQ_ID         , 103, L,LEVEL)
543 +X_DEFINE_IRQ(AP_DMA_BTIF_RX_IRQ_ID         , 104, L,LEVEL)
544 +X_DEFINE_IRQ(MT_GCPU_IRQ_ID                , 105, L,LEVEL) 
545 +X_DEFINE_IRQ(MT_GCPU_DMX_IRQ_ID            , 106, L,LEVEL)
546 +X_DEFINE_IRQ(MT_GCPU_MMU_IRQ_ID            , 107, L,LEVEL)
547 +X_DEFINE_IRQ(MT_GCPU_MMU_SEC_IRQ_ID        , 108, L,LEVEL)
548 +X_DEFINE_IRQ(MT_ETHER_NIC_WRAP_IRQ_ID      , 109, L,LEVEL)
549 +X_DEFINE_IRQ(MT6582_SPI1_IRQ_ID            , 110, L,LEVEL)
550 +X_DEFINE_IRQ(MSDC0_WAKEUP_PS_IRQ_ID        , 111, H,EDGE)
551 +X_DEFINE_IRQ(MSDC1_WAKEUP_PS_IRQ_ID        , 112, H,EDGE)
552 +X_DEFINE_IRQ(MSDC2_WAKEUP_PS_IRQ_ID        , 113, H,EDGE)
553 +X_DEFINE_IRQ(MT_CRYPTO_RING0_IRQ_ID        , 114, H,LEVEL)
554 +X_DEFINE_IRQ(MT_CRYPTO_RING1_IRQ_ID        , 115, H,LEVEL)
555 +X_DEFINE_IRQ(MT_CRYPTO_RING2_IRQ_ID        , 116, H,LEVEL)
556 +X_DEFINE_IRQ(MT_PTP_FSM_IRQ_ID             , 117, L,LEVEL)
557 +X_DEFINE_IRQ(BTIF_WAKEUP_IRQ_ID            , 118, L,LEVEL)
558 +X_DEFINE_IRQ(MT_IRRX_IRQ_ID                , 119, L,LEVEL) 
559 +X_DEFINE_IRQ(MT_WDT_IRQ_ID                 , 120, L,EDGE)
560 +X_DEFINE_IRQ(MT_CRYPTO_RING3_IRQ_ID        , 123, H,LEVEL)
561 +X_DEFINE_IRQ(DCC_APARM_IRQ_ID              , 124, L,LEVEL)
562 +X_DEFINE_IRQ(APARM_CTI_IRQ_ID              , 125, L,LEVEL)
563 +X_DEFINE_IRQ(MT_APARM_DOMAIN_IRQ_ID        , 126, L,LEVEL)
564 +X_DEFINE_IRQ(MT_APARM_DECERR_IRQ_ID        , 127, L,LEVEL)
565 +X_DEFINE_IRQ(DOMAIN_ABORT_IRQ_ID0          , 128, L,LEVEL)
566 +X_DEFINE_IRQ(MT_CRYPTO_IRQ_ID              , 129, H,LEVEL)
567 +X_DEFINE_IRQ(MT_HSDMA_IRQ_ID               , 130, H,LEVEL)
568 +X_DEFINE_IRQ(MT_GDMA_IRQ_ID                , 131, H,LEVEL)
569 +X_DEFINE_IRQ(CCIF0_AP_IRQ_ID               , 132, L,LEVEL)
570 +X_DEFINE_IRQ(MT_I2S_IRQ_ID                 , 134, H,LEVEL)
571 +X_DEFINE_IRQ(MT_PCM_IRQ_ID                 , 135, H,LEVEL)
572 +X_DEFINE_IRQ(AFE_MCU_IRQ_ID                , 136, L,LEVEL)
573 +X_DEFINE_IRQ(M4U1_IRQ_ID                   , 138, L,LEVEL)
574 +X_DEFINE_IRQ(M4UL2_IRQ_ID                  , 139, L,LEVEL)
575 +X_DEFINE_IRQ(M4UL2_SEC_IRQ_ID              , 140, L,LEVEL)
576 +X_DEFINE_IRQ(REFRESH_RATE_IRQ_ID           , 141, L,EDGE)
577 +X_DEFINE_IRQ(MT6582_APARM_GPTTIMER_IRQ_LINE, 144, L,LEVEL)
578 +X_DEFINE_IRQ(MT_EINT_IRQ_ID                , 145, H,LEVEL)
579 +X_DEFINE_IRQ(EINT_EVENT_IRQ_ID             , 146, L,LEVEL)
580 +X_DEFINE_IRQ(MT6582_PMIC_WRAP_IRQ_ID       , 147, H,LEVEL)
581 +X_DEFINE_IRQ(MT_KP_IRQ_ID                  , 148, L,EDGE)
582 +X_DEFINE_IRQ(MT_SPM_IRQ_ID                 , 149, L,LEVEL)
583 +X_DEFINE_IRQ(MT_SPM1_IRQ_ID                , 150, L,LEVEL)
584 +X_DEFINE_IRQ(MT_SPM2_IRQ_ID                , 151, L,LEVEL)
585 +X_DEFINE_IRQ(MT_SPM3_IRQ_ID                , 152, L,LEVEL)
586 +X_DEFINE_IRQ(MT_EINT_DIRECT0_IRQ_ID        , 153, H,LEVEL)
587 +X_DEFINE_IRQ(MT_EINT_DIRECT1_IRQ_ID        , 154, H,LEVEL)
588 +X_DEFINE_IRQ(MT_EINT_DIRECT2_IRQ_ID        , 155, H,LEVEL)
589 +X_DEFINE_IRQ(MT_EINT_DIRECT3_IRQ_ID        , 156, H,LEVEL)
590 +X_DEFINE_IRQ(MT_EINT_DIRECT4_IRQ_ID        , 157, H,LEVEL)
591 +X_DEFINE_IRQ(MT_EINT_DIRECT5_IRQ_ID        , 158, H,LEVEL)
592 +X_DEFINE_IRQ(MT_EINT_DIRECT6_IRQ_ID        , 159, H,LEVEL)
593 +X_DEFINE_IRQ(MT_EINT_DIRECT7_IRQ_ID        , 160, H,LEVEL)
594 +X_DEFINE_IRQ(MT_EINT_DIRECT8_IRQ_ID        , 161, H,LEVEL)
595 +X_DEFINE_IRQ(MT_EINT_DIRECT9_IRQ_ID        , 162, H,LEVEL)
596 +X_DEFINE_IRQ(MT_EINT_DIRECT10_IRQ_ID       , 163, H,LEVEL)
597 +X_DEFINE_IRQ(MT_EINT_DIRECT11_IRQ_ID       , 164, H,LEVEL)
598 +X_DEFINE_IRQ(MT_EINT_DIRECT12_IRQ_ID       , 165, H,LEVEL)
599 +X_DEFINE_IRQ(MT_EINT_DIRECT13_IRQ_ID       , 166, H,LEVEL)
600 +X_DEFINE_IRQ(MT_EINT_DIRECT14_IRQ_ID       , 167, H,LEVEL)
601 +X_DEFINE_IRQ(SMI_LARB0_IRQ_ID              , 168, L,LEVEL)
602 +X_DEFINE_IRQ(SMI_LARB1_IRQ_ID              , 169, L,LEVEL)
603 +X_DEFINE_IRQ(SMI_LARB2_IRQ_ID              , 170, L,LEVEL)
604 +X_DEFINE_IRQ(MT_VDEC_IRQ_ID                , 171, L,LEVEL)
605 +X_DEFINE_IRQ(MT_VENC_IRQ_ID                , 172, L,LEVEL)
606 +X_DEFINE_IRQ(MT6582_JPEG_ENC_IRQ_ID        , 173, L,LEVEL)
607 +X_DEFINE_IRQ(SENINF_IRQ_ID                 , 174, L,LEVEL)
608 +X_DEFINE_IRQ(CAMERA_ISP_IRQ0_ID            , 175, L,LEVEL)
609 +X_DEFINE_IRQ(CAMERA_ISP_IRQ1_ID            , 176, L,LEVEL)
610 +X_DEFINE_IRQ(CAMERA_ISP_IRQ2_ID            , 177, L,LEVEL)
611 +X_DEFINE_IRQ(MT6582_DISP_MDP_RDMA_IRQ_ID   , 178, L,LEVEL)
612 +X_DEFINE_IRQ(MT6582_DISP_MDP_RSZ0_IRQ_ID   , 179, L,LEVEL)
613 +X_DEFINE_IRQ(MT6582_DISP_MDP_RSZ1_IRQ_ID   , 180, L,LEVEL)
614 +X_DEFINE_IRQ(MT6582_DISP_MDP_TDSHP_IRQ_ID  , 181, L,LEVEL)
615 +X_DEFINE_IRQ(MT6582_DISP_MDP_WDMA_IRQ_ID   , 182, L,LEVEL)
616 +X_DEFINE_IRQ(MT6582_DISP_MDP_WROT_IRQ_ID   , 183, L,LEVEL)
617 +X_DEFINE_IRQ(MT6582_DISP_RDMA_IRQ_ID       , 184, L,LEVEL)
618 +X_DEFINE_IRQ(MT6582_DISP_OVL_IRQ_ID        , 185, L,LEVEL)
619 +X_DEFINE_IRQ(MT6582_DISP_WDMA_IRQ_ID       , 186, L,LEVEL)
620 +X_DEFINE_IRQ(MT6582_DISP_BLS_IRQ_ID        , 187, L,LEVEL)
621 +X_DEFINE_IRQ(MT6582_DISP_COLOR_IRQ_ID      , 188, L,LEVEL)
622 +X_DEFINE_IRQ(MT6582_DISP_DSI_IRQ_ID        , 189, L,LEVEL)
623 +X_DEFINE_IRQ(MT6582_DISP_DPI0_IRQ_ID       , 190, L,LEVEL)
624 +X_DEFINE_IRQ(MT6582_DISP_CMDQ_IRQ_ID       , 191, L,LEVEL)
625 +X_DEFINE_IRQ(MT6582_DISP_CMDQ_SECURE_IRQ_ID, 192, L,LEVEL)
626 +X_DEFINE_IRQ(MT6582_DISP_MUTEX_IRQ_ID      , 193, L,LEVEL)
627 +X_DEFINE_IRQ(MM_DUMMY0_IRQ_ID              , 194, L,LEVEL)
628 +X_DEFINE_IRQ(MM_DUMMY1_IRQ_ID              , 195, L,LEVEL)
629 +X_DEFINE_IRQ(MT6582_DISP_RDMA1_IRQ_ID      , 196, L,LEVEL)
630 +X_DEFINE_IRQ(MM_DUMMY3_IRQ_ID              , 197, L,LEVEL)
631 +X_DEFINE_IRQ(MM_DUMMY4_IRQ_ID              , 198, L,LEVEL)
632 +X_DEFINE_IRQ(MM_DUMMY5_IRQ_ID              , 199, L,LEVEL)
633 +X_DEFINE_IRQ(MM_DUMMY6_IRQ_ID              , 200, L,LEVEL)
634 +X_DEFINE_IRQ(MM_DUMMY7_IRQ_ID              , 201, L,LEVEL)
635 +X_DEFINE_IRQ(MT_MFG_IRQ0_ID                , 202, L,LEVEL)
636 +X_DEFINE_IRQ(MT_MFG_IRQ1_ID                , 203, L,LEVEL)
637 +X_DEFINE_IRQ(MT_MFG_IRQ2_ID                , 204, L,LEVEL)
638 +X_DEFINE_IRQ(MT_MFG_IRQ3_ID                , 205, L,LEVEL)
639 +X_DEFINE_IRQ(MT_MFG_IRQ4_ID                , 206, L,LEVEL)
640 +X_DEFINE_IRQ(MT_MFG_IRQ5_ID                , 207, L,LEVEL)
641 +X_DEFINE_IRQ(MT_MFG_IRQ6_ID                , 208, L,LEVEL)
642 +X_DEFINE_IRQ(MT_MFG_IRQ7_ID                , 209, L,LEVEL)
643 +X_DEFINE_IRQ(MT_MFG_IRQ8_ID                , 210, L,LEVEL)
644 +X_DEFINE_IRQ(MT_MFG_IRQ9_ID                , 211, L,LEVEL)
645 +X_DEFINE_IRQ(MT_MFG_IRQ10_ID               , 212, L,LEVEL)
646 +X_DEFINE_IRQ(MT_APXGPT_SECURE_IRQ_ID       , 213, L,LEVEL)
647 +X_DEFINE_IRQ(MT_CEC_IRQ_ID                 , 214, L,LEVEL)
648 +X_DEFINE_IRQ(CONN_WDT_IRQ_ID               , 215, L,EDGE)
649 +X_DEFINE_IRQ(WF_HIF_IRQ_ID                 , 216, L,LEVEL)
650 +X_DEFINE_IRQ(MT_CONN2AP_BTIF_WAKEUP_IRQ_ID , 217, L,LEVEL)
651 +X_DEFINE_IRQ(BT_CVSD_IRQ_ID                , 218, L,LEVEL)
652 +X_DEFINE_IRQ(MT_CIRQ_IRQ_ID                , 219, L,LEVEL)
653 +X_DEFINE_IRQ(MT_PCIE_LINK_DOWN_RST_IRQ_ID  , 224, H,EDGE)
654 +X_DEFINE_IRQ(MT_PCIE0_IRQ_ID               , 225, H,LEVEL)
655 +X_DEFINE_IRQ(MT_PCIE1_IRQ_ID               , 226, H,LEVEL)
656 +X_DEFINE_IRQ(MT_PCIE2_IRQ_ID               , 227, H,LEVEL)
657 +X_DEFINE_IRQ(MT_SSUSB_XHCI0_IRQ_ID         , 228, H,LEVEL)
658 +X_DEFINE_IRQ(MT_SSUSB_XHCI1_IRQ_ID         , 229, H,LEVEL)
659 +X_DEFINE_IRQ(MT_FE_PDMA_IRQ_ID             , 230, H,LEVEL)
660 +X_DEFINE_IRQ(MT_FE_QDMA_IRQ_ID             , 231, H,LEVEL)
661 +X_DEFINE_IRQ(MT_FE_ORIG_IRQ_ID             , 232, H,LEVEL)
662 diff --git a/arch/arm/mach-mediatek/mediatek.c b/arch/arm/mach-mediatek/mediatek.c
663 index ab8cf21..c0e373b 100644
664 --- a/arch/arm/mach-mediatek/mediatek.c
665 +++ b/arch/arm/mach-mediatek/mediatek.c
666 @@ -19,6 +19,186 @@
667  #include <linux/of.h>
668  #include <linux/clk-provider.h>
669  #include <linux/clocksource.h>
670 +#include <asm/mach/map.h>
671 +#include "rt_mmap.h"
672 +#include "mt_reg_base.h"
673 +
674 +#define IO_VIRT_TO_PHYS(v) (0x10000000 | ((v) & 0x0fffffff))
675 +
676 +static struct map_desc mt_io_desc[] __initdata =
677 +{
678 +#if !defined(CONFIG_MT8127_FPGA)
679 +    {
680 +        .virtual = INFRA_BASE,
681 +        .pfn = __phys_to_pfn(IO_VIRT_TO_PHYS(INFRA_BASE)),
682 +        .length = (SZ_1M - SZ_4K),
683 +        .type = MT_DEVICE
684 +    },
685 +    /* Skip the mapping of 0xF0130000~0xF013FFFF to protect access from APMCU */
686 +    {
687 +        .virtual = (DEBUGTOP_BASE - SZ_4K),
688 +        .pfn = __phys_to_pfn(IO_VIRT_TO_PHYS((DEBUGTOP_BASE - SZ_4K))),
689 +        .length = (0x30000 + SZ_4K),
690 +        .type = MT_DEVICE
691 +    },
692 +    {
693 +        .virtual = (DEBUGTOP_BASE + 0x40000),
694 +        .pfn = __phys_to_pfn(IO_VIRT_TO_PHYS(DEBUGTOP_BASE + 0x40000)),
695 +        .length = 0xC0000,
696 +        .type = MT_DEVICE
697 +    },            
698 +    {
699 +        .virtual = MCUSYS_CFGREG_BASE,
700 +        .pfn = __phys_to_pfn(IO_VIRT_TO_PHYS(MCUSYS_CFGREG_BASE)),
701 +        .length = SZ_2M,
702 +        .type = MT_DEVICE
703 +    },
704 +    /* //// */
705 +    {
706 +        .virtual = AP_DMA_BASE,
707 +        .pfn = __phys_to_pfn(IO_VIRT_TO_PHYS(AP_DMA_BASE)),
708 +        .length = SZ_2M + SZ_1M,
709 +        .type = MT_DEVICE
710 +    },
711 +    {
712 +        /* virtual 0xF2000000, physical 0x00200000 */
713 +        .virtual = SYSRAM_BASE,
714 +        .pfn = __phys_to_pfn(0x00200000),
715 +        .length = SZ_128K,
716 +        .type = MT_DEVICE
717 +    },
718 +    {
719 +        .virtual = G3D_CONFIG_BASE,
720 +        .pfn = __phys_to_pfn(IO_VIRT_TO_PHYS(G3D_CONFIG_BASE)),
721 +        .length = SZ_128K,
722 +        .type = MT_DEVICE
723 +    },
724 +    {
725 +        .virtual = DISPSYS_BASE,
726 +        .pfn = __phys_to_pfn(IO_VIRT_TO_PHYS(DISPSYS_BASE)),
727 +        .length = SZ_16M,
728 +        .type = MT_DEVICE
729 +    },
730 +    {
731 +        .virtual = IMGSYS_CONFG_BASE,
732 +        .pfn = __phys_to_pfn(IO_VIRT_TO_PHYS(IMGSYS_CONFG_BASE)),
733 +        .length = SZ_16M,
734 +        .type = MT_DEVICE
735 +    },
736 +    {
737 +        .virtual = VDEC_GCON_BASE,
738 +        .pfn = __phys_to_pfn(IO_VIRT_TO_PHYS(VDEC_GCON_BASE)),
739 +        .length = SZ_16M,
740 +        .type = MT_DEVICE
741 +    },
742 +    {
743 +        /* virtual 0xF7000000, physical 0x08000000 */
744 +        .virtual = DEVINFO_BASE,
745 +        .pfn = __phys_to_pfn(0x08000000),
746 +        .length = SZ_64K,
747 +        .type = MT_DEVICE
748 +    },
749 +    {
750 +        .virtual = CONN_BTSYS_PKV_BASE,
751 +        .pfn = __phys_to_pfn(IO_VIRT_TO_PHYS(CONN_BTSYS_PKV_BASE)),
752 +        .length = SZ_1M,
753 +        .type = MT_DEVICE
754 +    },
755 +    {
756 +        /* virtual 0xF9000000, physical 0x00100000 */
757 +        .virtual = INTER_SRAM,
758 +        .pfn = __phys_to_pfn(0x00100000),
759 +        .length = SZ_64K,
760 +        .type = MT_DEVICE
761 +    },
762 +    {
763 +        .virtual = HIFSYS_BASE,
764 +        .pfn = __phys_to_pfn(IO_VIRT_TO_PHYS(HIFSYS_BASE)),
765 +        .length = SZ_16M,
766 +        .type = MT_DEVICE
767 +    },
768 +    {
769 +        .virtual = ETHDMASYS_BASE,
770 +        .pfn = __phys_to_pfn(IO_VIRT_TO_PHYS(ETHDMASYS_BASE)),
771 +        .length = SZ_16M,
772 +        .type = MT_DEVICE
773 +    },
774 +#if 0
775 +    {
776 +        .virtual = BDP_DISPSYS_BASE,
777 +        .pfn = __phys_to_pfn(IO_VIRT_TO_PHYS(BDP_DISPSYS_BASE)),
778 +        .length = SZ_32K + SZ_16K,
779 +        .type = MT_DEVICE
780 +    },
781 +#endif
782 +#else
783 +    {
784 +        .virtual = INFRA_BASE,
785 +        .pfn = __phys_to_pfn(IO_VIRT_TO_PHYS(INFRA_BASE)),
786 +        .length = SZ_4M,
787 +        .type = MT_DEVICE
788 +    },
789 +    {
790 +        .virtual = AP_DMA_BASE,
791 +        .pfn = __phys_to_pfn(IO_VIRT_TO_PHYS(AP_DMA_BASE)),
792 +        .length = SZ_2M + SZ_1M,
793 +        .type = MT_DEVICE
794 +    },
795 +    #if 0
796 +    {
797 +        .virtual = MMSYS1_CONFIG_BASE,
798 +        .pfn = __phys_to_pfn(IO_VIRT_TO_PHYS(MMSYS1_CONFIG_BASE)),
799 +        .length = SZ_16M,
800 +        .type = MT_DEVICE
801 +    },
802 +    #endif
803 +    {
804 +        /* From: 0xF2000000 to 0xF2020000*/
805 +        .virtual = SYSRAM_BASE,
806 +        .pfn = __phys_to_pfn(0x00200000),
807 +        .length = SZ_128K,
808 +        .type = MT_DEVICE
809 +    },    
810 +    {
811 +        .virtual = DISPSYS_BASE,
812 +        .pfn = __phys_to_pfn(IO_VIRT_TO_PHYS(DISPSYS_BASE)),
813 +        .length = SZ_16M,
814 +        .type = MT_DEVICE
815 +    },
816 +    {
817 +        .virtual = IMGSYS_CONFG_BASE,
818 +        .pfn = __phys_to_pfn(IO_VIRT_TO_PHYS(IMGSYS_CONFG_BASE)),
819 +        .length = SZ_16M,
820 +        .type = MT_DEVICE
821 +    },
822 +    /* G3DSYS */
823 +    {
824 +        .virtual = G3D_CONFIG_BASE,
825 +        .pfn = __phys_to_pfn(IO_VIRT_TO_PHYS(G3D_CONFIG_BASE)),
826 +        .length = SZ_4K,
827 +        .type = MT_DEVICE
828 +    },
829 +    {
830 +        .virtual = DEVINFO_BASE,
831 +        .pfn = __phys_to_pfn(0x08000000),
832 +        .length = SZ_64K,
833 +        .type = MT_DEVICE
834 +    },
835 +    {
836 +        .virtual = MALI_BASE,
837 +        .pfn = __phys_to_pfn(IO_VIRT_TO_PHYS(MALI_BASE)),
838 +        .length = SZ_64K,
839 +        .type = MT_DEVICE
840 +    },
841 +    {
842 +        .virtual = INTER_SRAM,
843 +        .pfn = __phys_to_pfn(0x00100000),
844 +        .length = SZ_64K,
845 +        .type = MT_DEVICE
846 +    },
847 +#endif
848 +};
849 +
850  
851  
852  #define GPT6_CON_MT65xx 0x10008060
853 @@ -55,7 +235,13 @@ static const char * const mediatek_board_dt_compat[] = {
854         NULL,
855  };
856  
857 +void __init mt_map_io(void)
858 +{
859 +    iotable_init(mt_io_desc, ARRAY_SIZE(mt_io_desc));
860 +}
861 +
862  DT_MACHINE_START(MEDIATEK_DT, "Mediatek Cortex-A7 (Device Tree)")
863         .dt_compat      = mediatek_board_dt_compat,
864         .init_time      = mediatek_timer_init,
865 +       .map_io         = mt_map_io,
866  MACHINE_END
867 diff --git a/arch/arm/mach-mediatek/mt_reg_base.h b/arch/arm/mach-mediatek/mt_reg_base.h
868 new file mode 100644
869 index 0000000..cf2bb9e
870 --- /dev/null
871 +++ b/arch/arm/mach-mediatek/mt_reg_base.h
872 @@ -0,0 +1,640 @@
873 +/*
874 + * This file is generated automatically according to the design of silicon.
875 + * Don't modify it directly.
876 + */
877 +
878 +#ifndef __MT_REG_BASE
879 +#define __MT_REG_BASE
880 +
881 +#if !defined(CONFIG_MT8127_FPGA)
882 +
883 +// APB Module cksys
884 +#define INFRA_BASE (0xF0000000)
885 +
886 +// APB Module infracfg_ao
887 +#define INFRACFG_AO_BASE (0xF0001000)
888 +
889 +// APB Module fhctl
890 +#define FHCTL_BASE (0xF0002000)
891 +
892 +// APB Module pericfg
893 +#define PERICFG_BASE (0xF0003000)
894 +
895 +// APB Module dramc
896 +#define DRAMC0_BASE (0xF0004000)
897 +
898 +// APB Module gpio
899 +#define GPIO_BASE (0xF0005000)
900 +
901 +// APB Module sleep
902 +#define SPM_BASE (0xF0006000)
903 +
904 +// APB Module toprgu
905 +#define TOPRGU_BASE (0xF0007000)
906 +#define AP_RGU_BASE TOPRGU_BASE
907 +
908 +// APB Module apxgpt
909 +#define APMCU_GPTIMER_BASE (0xF0008000)
910 +
911 +// APB Module rsvd
912 +#define RSVD_BASE (0xF0009000)
913 +
914 +// APB Module sej
915 +#define HACC_BASE (0xF000A000)
916 +
917 +// APB Module ap_cirq_eint
918 +#define AP_CIRQ_EINT (0xF000B000)
919 +
920 +// APB Module ap_cirq_eint
921 +#define EINT_BASE (0xF000B000)
922 +
923 +// APB Module smi
924 +#define SMI1_BASE (0xF000C000)
925 +
926 +// APB Module pmic_wrap
927 +#define PWRAP_BASE (0xF000D000)
928 +
929 +// APB Module device_apc_ao
930 +#define DEVAPC_AO_BASE (0xF000E000)
931 +
932 +// APB Module ddrphy
933 +#define DDRPHY_BASE (0xF000F000)
934 +
935 +// APB Module vencpll
936 +#define VENCPLL_BASE (0xF000F000)
937 +
938 +// APB Module mipi_tx_config
939 +#define MIPI_CONFIG_BASE (0xF0010000)
940 +
941 +// APB Module LVDS ANA
942 +#define LVDS_ANA_BASE (0xF0010400)
943 +
944 +// APB Module mipi_rx_ana
945 +#define MIPI_RX_ANA_BASE (0xF0215000)
946 +
947 +// APB Module kp
948 +#define KP_BASE (0xF0011000)
949 +
950 +// APB Module dbgapb
951 +#define DEBUGTOP_BASE (0xF0100000)
952 +
953 +// APB Module mcucfg
954 +#define MCUSYS_CFGREG_BASE (0xF0200000)
955 +
956 +// APB Module infracfg
957 +#define INFRACFG_BASE (0xF0201000)
958 +
959 +// APB Module sramrom
960 +#define SRAMROM_BASE (0xF0202000)
961 +
962 +// APB Module emi
963 +#define EMI_BASE (0xF0203000)
964 +
965 +// APB Module sys_cirq
966 +#define SYS_CIRQ_BASE (0xF0204000)
967 +
968 +// APB Module m4u
969 +#define SMI_MMU_TOP_BASE (0xF0205000)
970 +
971 +// APB Module nb_mmu
972 +#define NB_MMU0_BASE (0xF0205200)
973 +
974 +// APB Module nb_mmu
975 +#define NB_MMU1_BASE (0xF0205800)
976 +
977 +// APB Module efusec
978 +#define EFUSEC_BASE (0xF0206000)
979 +
980 +// APB Module device_apc
981 +#define DEVAPC_BASE (0xF0207000)
982 +
983 +// APB Module mcu_biu_cfg
984 +#define MCU_BIU_BASE (0xF0208000)
985 +
986 +// APB Module apmixed
987 +#define APMIXEDSYS_BASE (0xF0209000)
988 +
989 +// APB Module ccif
990 +#define AP_CCIF_BASE (0xF020A000)
991 +
992 +// APB Module ccif
993 +#define MD_CCIF_BASE (0xF020B000)
994 +
995 +// APB Module gpio1
996 +#define GPIO1_BASE (0xF020C000)
997 +
998 +// APB Module infra_mbist
999 +#define INFRA_TOP_MBIST_CTRL_BASE (0xF020D000)
1000 +
1001 +// APB Module dramc_conf_nao
1002 +#define DRAMC_NAO_BASE (0xF020E000)
1003 +
1004 +// APB Module trng
1005 +#define TRNG_BASE (0xF020F000)
1006 +
1007 +// APB Module ca9
1008 +#define CORTEXA7MP_BASE (0xF0210000)
1009 +
1010 +// APB Module ap_dma
1011 +#define AP_DMA_BASE (0xF1000000)
1012 +
1013 +// APB Module auxadc
1014 +#define AUXADC_BASE (0xF1001000)
1015 +
1016 +// APB Module uart
1017 +#define UART1_BASE (0xF1002000)
1018 +
1019 +// APB Module uart
1020 +#define UART2_BASE (0xF1003000)
1021 +
1022 +// APB Module uart
1023 +#define UART3_BASE (0xF1004000)
1024 +
1025 +// APB Module uart
1026 +#define UART4_BASE (0xF1005000)
1027 +
1028 +// APB Module pwm
1029 +#define PWM_BASE (0xF1006000)
1030 +
1031 +// APB Module i2c
1032 +#define I2C0_BASE (0xF1007000)
1033 +
1034 +// APB Module i2c
1035 +#define I2C1_BASE (0xF1008000)
1036 +
1037 +// APB Module i2c
1038 +#define I2C2_BASE (0xF1009000)
1039 +
1040 +// APB Module spi
1041 +#define SPI0_BASE (0xF100A000)
1042 +#define SPI1_BASE (0xF100A000)
1043 +
1044 +// APB Module therm_ctrl
1045 +#define THERMAL_BASE (0xF100B000)
1046 +
1047 +// APB Module btif
1048 +#define BTIF_BASE (0xF100C000)
1049 +
1050 +// APB Module nfi
1051 +#define NFI_BASE (0xF100D000)
1052 +
1053 +// APB Module nfiecc_16bit
1054 +#define NFIECC_BASE (0xF100E000)
1055 +
1056 +// APB Module nli_arb
1057 +#define NLI_ARB_BASE (0xF100F000)
1058 +
1059 +// APB Module peri_pwrap_bridge
1060 +#define PERI_PWRAP_BRIDGE_BASE (0xF1017000)
1061 +
1062 +// APB Module usb2
1063 +#define USB_BASE (0xF1200000)
1064 +#define USB1_BASE   (0xF1270000)
1065 +
1066 +// APB Module usb_sif
1067 +#define USB_SIF_BASE (0xF1210000)
1068 +
1069 +// APB Module msdc
1070 +#define MSDC_0_BASE (0xF1230000)
1071 +
1072 +// APB Module msdc
1073 +#define MSDC_1_BASE (0xF1240000)
1074 +
1075 +// APB Module msdc
1076 +#define MSDC_2_BASE (0xF1250000)
1077 +
1078 +// APB Module msdc
1079 +#define MSDC_3_BASE (0xF12C0000)
1080 +
1081 +// APB Module wcn_ahb
1082 +#define WCN_AHB_BASE (0xF1260000)
1083 +
1084 +// ARB Module ethernet
1085 +#define ETHERNET_BASE (0xF1280000)
1086 +// APB Module mfg_top
1087 +#define G3D_CONFIG_BASE (0xF3000000)
1088 +
1089 +// APB Module mali
1090 +#define MALI_BASE (0xF3040000)
1091 +
1092 +// APB Module mali_tb_cmd
1093 +#define MALI_TB_BASE (0xF301f000)
1094 +
1095 +// APB Module mmsys_config
1096 +#define DISPSYS_BASE (0xF4000000)
1097 +
1098 +// APB Module mdp_rdma
1099 +#define MDP_RDMA_BASE (0xF4001000)
1100 +
1101 +// APB Module mdp_rsz
1102 +#define MDP_RSZ0_BASE (0xF4002000)
1103 +
1104 +// APB Module mdp_rsz
1105 +#define MDP_RSZ1_BASE (0xF4003000)
1106 +
1107 +// APB Module disp_wdma
1108 +#define MDP_WDMA_BASE (0xF4004000)
1109 +
1110 +// APB Module disp_wdma
1111 +#define WDMA1_BASE (0xF4004000)
1112 +
1113 +// APB Module mdp_wrot
1114 +#define MDP_WROT_BASE (0xF4005000)
1115 +
1116 +// APB Module mdp_tdshp
1117 +#define MDP_TDSHP_BASE (0xF4006000)
1118 +
1119 +// APB Module ovl
1120 +#define DISP_OVL_BASE (0xF4007000)
1121 +
1122 +// APB Module ovl
1123 +#define OVL0_BASE (0xF4007000)
1124 +
1125 +// APB Module ovl
1126 +#define OVL1_BASE (0xF4007000)
1127 +
1128 +// APB Module disp_rdma
1129 +#define DISP_RDMA_BASE (0xF4008000)
1130 +
1131 +// APB Module disp_rdma
1132 +#define R_DMA1_BASE (0xF4008000)
1133 +
1134 +// APB Module disp_rdma
1135 +#define R_DMA0_BASE (0xF4008000)
1136 +
1137 +// APB Module disp_wdma
1138 +#define DISP_WDMA_BASE (0xF4009000)
1139 +
1140 +// APB Module disp_wdma
1141 +#define WDMA0_BASE (0xF4009000)
1142 +
1143 +// APB Module disp_bls
1144 +#define DISP_BLS_BASE (0xF400A000)
1145 +
1146 +// APB Module disp_color_config
1147 +#define DISP_COLOR_BASE (0xF400B000)
1148 +
1149 +// APB Module dsi
1150 +#define DSI_BASE (0xF400C000)
1151 +
1152 +// APB Module disp_dpi
1153 +#define DPI_BASE (0xF400D000)
1154 +
1155 +// APB Module disp_mutex
1156 +#define MMSYS_MUTEX_BASE (0xF400E000)
1157 +
1158 +// APB Module mm_cmdq
1159 +#define MMSYS_CMDQ_BASE (0xF400F000)
1160 +
1161 +#define DPI1_BASE (0xF4014000)
1162 +
1163 +
1164 +// APB Module smi_larb
1165 +#define SMI_LARB0_BASE (0xF4010000)
1166 +
1167 +// APB Module smi
1168 +#define SMI_BASE (0xF4011000)
1169 +
1170 +// LVDS TX 
1171 +#define LVDS_TX_BASE (0xF4016200)
1172 +
1173 +// APB Module smi_larb
1174 +#define SMILARB2_BASE (0xF5001000)
1175 +
1176 +// APB Module smi_larb
1177 +#define SMI_LARB3_BASE (0xF5001000)
1178 +
1179 +// APB Module mmu
1180 +#define SMI_LARB3_MMU_BASE (0xF5001800)
1181 +
1182 +// APB Module smi_larb
1183 +#define SMI_LARB4_BASE (0xF5002000)
1184 +
1185 +// APB Module fake_eng
1186 +#define FAKE_ENG_BASE (0xF5002000)
1187 +
1188 +// APB Module mmu
1189 +#define SMI_LARB4_MMU_BASE (0xF5002800)
1190 +
1191 +// APB Module smi
1192 +#define VENC_BASE (0xF5009000)
1193 +
1194 +// APB Module jpgenc
1195 +#define JPGENC_BASE (0xF500A000)
1196 +
1197 +// APB Module vdecsys_config
1198 +#define VDEC_GCON_BASE (0xF6000000)
1199 +
1200 +// APB Module smi_larb
1201 +#define SMI_LARB1_BASE (0xF6010000)
1202 +
1203 +// APB Module mmu
1204 +#define SMI_LARB1_MMU_BASE (0xF6010800)
1205 +
1206 +// APB Module vdtop
1207 +#define VDEC_BASE (0xF6020000)
1208 +
1209 +// APB Module vdtop
1210 +#define VDTOP_BASE (0xF6020000)
1211 +
1212 +// APB Module vld
1213 +#define VLD_BASE (0xF6021000)
1214 +
1215 +// APB Module vld_top
1216 +#define VLD_TOP_BASE (0xF6021800)
1217 +
1218 +// APB Module mc
1219 +#define MC_BASE (0xF6022000)
1220 +
1221 +// APB Module avc_vld
1222 +#define AVC_VLD_BASE (0xF6023000)
1223 +
1224 +// APB Module avc_mv
1225 +#define AVC_MV_BASE (0xF6024000)
1226 +
1227 +// APB Module vdec_pp
1228 +#define VDEC_PP_BASE (0xF6025000)
1229 +
1230 +// APB Module vp8_vld
1231 +#define VP8_VLD_BASE (0xF6026800)
1232 +
1233 +// APB Module vp6
1234 +#define VP6_BASE (0xF6027000)
1235 +
1236 +// APB Module vld2
1237 +#define VLD2_BASE (0xF6027800)
1238 +
1239 +// APB Module mc_vmmu
1240 +#define MC_VMMU_BASE (0xF6028000)
1241 +
1242 +// APB Module pp_vmmu
1243 +#define PP_VMMU_BASE (0xF6029000)
1244 +
1245 +// APB Module imgsys
1246 +#define IMGSYS_CONFG_BASE (0xF5000000)
1247 +
1248 +// APB Module cam
1249 +#define CAMINF_BASE (0xF5000000)
1250 +
1251 +// APB Module csi2
1252 +#define CSI2_BASE (0xF5000000)
1253 +
1254 +// APB Module seninf
1255 +#define SENINF_BASE (0xF5000000)
1256 +
1257 +// APB Module seninf_tg
1258 +#define SENINF_TG_BASE (0xF5000000)
1259 +
1260 +// APB Module seninf_top
1261 +#define SENINF_TOP_BASE (0xF5000000)
1262 +
1263 +// APB Module mipi_rx_config
1264 +#define MIPI_RX_CONFIG_BASE (0xF500C000)
1265 +
1266 +// APB Module scam
1267 +#define SCAM_BASE (0xF5008000)
1268 +
1269 +// APB Module ncsi2
1270 +#define NCSI2_BASE (0xF5008000)
1271 +
1272 +// APB Module ccir656
1273 +#define CCIR656_BASE (0xF5000000)
1274 +
1275 +// APB Module n3d_ctl
1276 +#define N3D_CTL_BASE (0xF5000000)
1277 +
1278 +// APB Module fdvt
1279 +#define FDVT_BASE (0xF500B000)
1280 +
1281 +// APB Module audiosys
1282 +#define AUDIO_BASE (0xF1221000)
1283 +#define AUDIO_REG_BASE (0xF1220000)
1284 +
1285 +// CONNSYS
1286 +#define CONN_BTSYS_PKV_BASE (0xF8000000)
1287 +#define CONN_BTSYS_TIMCON_BASE (0xF8010000)
1288 +#define CONN_BTSYS_RF_CONTROL_BASE (0xF8020000)
1289 +#define CONN_BTSYS_MODEM_BASE (0xF8030000)
1290 +#define CONN_BTSYS_BT_CONFIG_BASE (0xF8040000)
1291 +#define CONN_MCU_CONFIG_BASE (0xF8070000)
1292 +#define CONN_TOP_CR_BASE (0xF80B0000)
1293 +#define CONN_HIF_CR_BASE (0xF80F0000)
1294 +
1295 +/*
1296 + * Addresses below are added manually.
1297 + * They cannot be mapped via IO_VIRT_TO_PHYS().
1298 + */
1299 +
1300 +#define GIC_CPU_BASE (CORTEXA7MP_BASE + 0x2000)
1301 +#define GIC_DIST_BASE (CORTEXA7MP_BASE + 0x1000)
1302 +#define SYSRAM_BASE 0xF2000000  /* L2 cache shared RAM */
1303 +#define DEVINFO_BASE 0xF7000000
1304 +#define INTER_SRAM 0xF9000000
1305 +
1306 +#else 
1307 +
1308 +#define SMI_MMU_TOP_BASE            0xF0205000
1309 +#define SMILARB2_BASE               0xF5001000
1310 +
1311 +/* on-chip SRAM */
1312 +#define INTER_SRAM                  0xF9000000
1313 +
1314 +/* infrasys */
1315 +//#define TOPRGU_BASE                 0xF0000000
1316 +#define INFRA_BASE                  0xF0000000
1317 +#define INFRACFG_BASE               0xF0001000
1318 +#define INFRACFG_AO_BASE            0xF0001000
1319 +#define FHCTL_BASE                  0xF0002000
1320 +#define PERICFG_BASE                0xF0003000
1321 +#define DRAMC0_BASE                 0xF0004000
1322 +#define DDRPHY_BASE                 0xF000F000
1323 +#define DRAMC_NAO_BASE              0xF020E000
1324 +#define GPIO_BASE                   0xF0005000
1325 +#define GPIO1_BASE                  0xF020C000
1326 +#define TOPSM_BASE                  0xF0006000
1327 +#define SPM_BASE                    0xF0006000
1328 +#define TOPRGU_BASE                 0xF0007000
1329 +#define AP_RGU_BASE                 TOPRGU_BASE
1330 +#define APMCU_GPTIMER_BASE          0xF0008000
1331 +#define HACC_BASE                   0xF000A000
1332 +#define AP_CIRQ_EINT                0xF000B000
1333 +#define SMI1_BASE                   0xF000C000
1334 +#define MIPI_CONFIG_BASE            0xF0010000
1335 +// APB Module LVDS ANA
1336 +#define LVDS_ANA_BASE (0xF0010400)
1337 +
1338 +
1339 +#define KP_BASE                     0xF0011000
1340 +#if 0
1341 +#define DEVICE_APC_0_BASE           0xF0010000
1342 +#define DEVICE_APC_1_BASE           0xF0011000
1343 +#define DEVICE_APC_2_BASE           0xF0012000
1344 +#define DEVICE_APC_3_BASE           0xF0013000
1345 +#define DEVICE_APC_4_BASE           0xF0014000
1346 +#define SMI0_BASE                   0xF0208000
1347 +#endif
1348 +#define EINT_BASE                   0xF000B000
1349 +
1350 +
1351 +#define DEBUGTOP_BASE               0xF0100000
1352 +#define MCUSYS_CFGREG_BASE          0xF0200000
1353 +#define SRAMROM_BASE                0xF0202000
1354 +#define EMI_BASE                    0xF0203000
1355 +#define EFUSEC_BASE                 0xF0206000
1356 +#define MCU_BIU_BASE                0xF0208000
1357 +#define APMIXED_BASE                0xF0209000
1358 +#define APMIXEDSYS_BASE             0xF0209000
1359 +#define AP_CCIF_BASE                0xF020A000
1360 +#define MD_CCIF_BASE                0xF020B000
1361 +#define INFRA_TOP_MBIST_CTRL_BASE   0xF020D000
1362 +#define DRAMC_NAO_BASE              0xF020E000
1363 +#define CORTEXA7MP_BASE             0xF0210000
1364 +#define GIC_CPU_BASE    (CORTEXA7MP_BASE + 0x2000)
1365 +#define GIC_DIST_BASE   (CORTEXA7MP_BASE + 0x1000)
1366 +//#define SMI_LARB_BASE             0xF0211000
1367 +//#define MCUSYS_AVS_BASE           0xF0212000
1368 +
1369 +/* perisys */
1370 +/*avalaible*/
1371 +#define AP_DMA_BASE                 0xF1000000
1372 +#define AUXADC_BASE                 0xF1001000
1373 +#define UART1_BASE                  0xF1002000
1374 +#define UART2_BASE                  0xF1003000
1375 +#define UART3_BASE                  0xF1004000
1376 +#define UART4_BASE                  0xF1005000
1377 +#define PWM_BASE                    0xF1006000
1378 +#define I2C0_BASE                   0xF1007000
1379 +#define I2C1_BASE                   0xF1008000
1380 +#define I2C2_BASE                   0xF1009000
1381 +#define SPI0_BASE                   0xF100A000
1382 +#define BTIF_BASE                   (0xF100C000)
1383 +#define NFI_BASE                    0xF100D000
1384 +#define NFIECC_BASE                 0xF100E000
1385 +#define NLI_ARB_BASE                0xF100F000
1386 +#define I2C3_BASE                   0xF1010000 //FIXME 6582 take off
1387 +#define SPI1_BASE                   0xF100A000 
1388 +#define THERMAL_BASE                0xF100B000
1389 +
1390 +// APB Module pmic_wrap
1391 +#define PWRAP_BASE (0xF000D000)
1392 +
1393 +#if 0
1394 +//#define IRDA_BASE                 0xF1007000
1395 +#define I2C4_BASE                   0xF1014000
1396 +#define I2CDUAL_BASE                0xF1015000
1397 +#define ACCDET_BASE                 0xF1016000
1398 +#define AP_HIF_BASE                 0xF1017000
1399 +#define MD_HIF_BASE                 0xF1018000
1400 +#define GCPU_BASE                   0xF101B000
1401 +#define GCPU_NS_BASE                0xF01C000
1402 +#define GCPU_MMU_BASE               0xF01D000
1403 +#define SATA_BASE                   0xF01E000
1404 +#define CEC_BASE                    0xF01F000
1405 +//#define SPI1_BASE                 0xF1022000
1406 +#endif
1407 +
1408 +#define USB1_BASE                   0xF1270000
1409 +#define USB2_BASE                   0xF1200000
1410 +#define USB_BASE                    0xF1200000
1411 +#define USB_SIF_BASE                0xF1210000
1412 +//#define USB3_BASE                 0xF1220000
1413 +#define MSDC_0_BASE                 0xF1230000
1414 +#define MSDC_1_BASE                 0xF1240000
1415 +#define MSDC_2_BASE                 0xF1250000
1416 +#define MSDC_3_BASE                 0xF12C0000
1417 +#define MSDC_4_BASE                 0xF1270000
1418 +//#define ETHERNET_BASE             0xF1290000
1419 +
1420 +//#define ETB_BASE                  0xF0111000
1421 +//#define ETM_BASE                  0xF017C000
1422 +
1423 +
1424 +/* SMI common subsystem */
1425 +#define SYSRAM_BASE                 0xF2000000
1426 +#define AUDIO_REG_BASE              0xF2030000
1427 +#define MFG_AXI_BASE                0xF2060000
1428 +#define CONN_MCU_CONFIG_BASE       0xF8070000
1429 +#define AUDIO_BASE                  0xF1200000 //0xF2071000
1430 +#define MMSYS1_CONFIG_BASE          0xF2080000
1431 +#define SMI_LARB0_BASE              0xF2081000
1432 +// APB Module smi
1433 +#define SMI_BASE (0xF4011000)
1434 +#define SMI_LARB1_BASE              0xF2082000
1435 +#define SMI_LARB2_BASE              0xF2083000
1436 +#define VDEC_GCON_BASE              0xF6000000 //0xF4000000
1437 +#define VDEC_BASE                   0xF4020000
1438 +#define VENC_TOP_BASE               0xF7000000
1439 +#define VENC_BASE                   0xF7002000
1440 +#define JPGENC_BASE                 0xF500A000
1441 +#define R_DMA0_BASE                 0xF2086000
1442 +#define R_DMA1_BASE                 0xF2087000
1443 +#define VDO_ROT0_BASE               0xF2088000
1444 +#define RGB_ROT0_BASE               0xF2089000
1445 +#define VDO_ROT1_BASE               0xF208A000
1446 +#define RGB_ROT1_BASE               0xF208B000
1447 +//#define DPI_BASE                    0xF208C000
1448 +#define BRZ_BASE                    0xF208D000
1449 +#define JPG_DMA_BASE                0xF208E000
1450 +#define OVL_DMA_BASE                0xF208F000
1451 +#define CSI2_BASE                   0xF2092000
1452 +#define CRZ_BASE                    0xF2093000
1453 +#define VRZ0_BASE                   0xF2094000
1454 +#define IMGPROC_BASE                0xF2095000
1455 +#define EIS_BASE                    0xF2096000
1456 +#define SPI_BASE                    0xF2097000
1457 +#define SCAM_BASE                   0xF2098000
1458 +#define PRZ0_BASE                   0xF2099000
1459 +#define PRZ1_BASE                   0xF209A000
1460 +#define JPG_CODEC_BASE              0xF209B000
1461 +//#define DSI_BASE                    0xF209C000
1462 +#define TVC_BASE                    0xF209D000
1463 +#define TVE_BASE                    0xF209E000
1464 +#define TV_ROT_BASE                 0xF209F000
1465 +#define RGB_ROT2_BASE               0xF20A0000
1466 +//#define LCD_BASE                    0xF20A1000
1467 +#define FD_BASE                     0xF20A2000
1468 +#define MIPI_CONFG_BASE             0xF20A3000
1469 +#define VRZ1_BASE                   0xF20A4000
1470 +#define MMSYS2_CONFG_BASE           0xF20C0000
1471 +#define SMI_LARB3_BASE              0xF20C1000
1472 +#define MFG_APB_BASE                0xF20C4000
1473 +#define G2D_BASE                    0xF20C6000
1474 +
1475 +#define DISPSYS_BASE                           0xF4000000
1476 +#define ROT_BASE                                       0xF4001000
1477 +#define SCL_BASE                                       0xF4002000
1478 +#define OVL_BASE                                       0xF4007000
1479 +#define WDMA0_BASE                                     0xF4009000
1480 +#define WDMA1_BASE                                     0xF4005000
1481 +#define RDMA0_BASE                                     0xF4008000
1482 +//#define RDMA1_BASE                                   0xF4007000
1483 +#define BLS_BASE                                       0xF400A000
1484 +//#define GAMMA_BASE                                   0xF400000
1485 +#define COLOR_BASE                                     0xF400B000
1486 +#define TDSHP_BASE                                     0xF4006000
1487 +#define LCD_BASE                                       0xF4012000// only exist on FPGA
1488 +#define DSI_BASE                                       0xF400C000
1489 +#define DPI_BASE                                       0xF400D000
1490 +
1491 +#define DPI1_BASE                                0xF4014000
1492 +
1493 +// LVDS TX 
1494 +#define LVDS_TX_BASE (0xF4016200)
1495 +
1496 +#define SMILARB1_BASE                          0xF4010000
1497 +#define DISP_MUTEX_BASE                                0xF400E000
1498 +#define DISP_CMDQ_BASE                         0xF400F000
1499 +
1500 +/* imgsys */
1501 +#define IMGSYS_CONFG_BASE           0xF5000000
1502 +#define CAMINF_BASE                 IMGSYS_CONFG_BASE
1503 +
1504 +/* G3DSYS */
1505 +#define G3D_CONFIG_BASE             0xF3000000
1506 +#define MALI_BASE                   0xF3040000
1507 +
1508 +#define DEVINFO_BASE                0xF8000000
1509 +
1510 +#endif
1511 +
1512 +#endif
1513 diff --git a/arch/arm/mach-mediatek/rt_mmap.h b/arch/arm/mach-mediatek/rt_mmap.h
1514 new file mode 100644
1515 index 0000000..e86b3bb
1516 --- /dev/null
1517 +++ b/arch/arm/mach-mediatek/rt_mmap.h
1518 @@ -0,0 +1,58 @@
1519 +#define HIFSYS_BASE                    0xFA000000 //for PCIe/USB
1520 +#define ETHDMASYS_BASE                 0xFB000000 //for I2S/PCM/GDMA/HSDMA/FE/GMAC
1521 +
1522 +#define HIFSYS_PCI_BASE                 0xFA140000
1523 +#define HIFSYS_USB_HOST_BASE            0xFA1C0000
1524 +#define HIFSYS_USB_HOST2_BASE           0xFA240000
1525 +
1526 +#define ETHDMASYS_SYSCTL_BASE           0xFB000000
1527 +#define ETHDMASYS_RBUS_MATRIXCTL_BASE   0xFB000400
1528 +#define ETHDMASYS_I2S_BASE              0xFB000A00
1529 +#define ETHDMASYS_PCM_BASE              0xFB002000
1530 +#define ETHDMASYS_GDMA_BASE             0xFB002800
1531 +#define ETHDMASYS_HS_DMA_BASE           0xFB007000
1532 +#define ETHDMASYS_FRAME_ENGINE_BASE     0xFB100000
1533 +#define ETHDMASYS_PPE_BASE             0xFB100C00
1534 +#define ETHDMASYS_ETH_SW_BASE          0xFB110000
1535 +#define ETHDMASYS_CRYPTO_ENGINE_BASE   0xFB240000
1536 +
1537 +//for backward-compatible
1538 +#define RALINK_FRAME_ENGINE_BASE       ETHDMASYS_FRAME_ENGINE_BASE
1539 +#define RALINK_PPE_BASE                 ETHDMASYS_PPE_BASE
1540 +#define RALINK_SYSCTL_BASE             ETHDMASYS_SYSCTL_BASE
1541 +#define RALINK_ETH_SW_BASE             ETHDMASYS_ETH_SW_BASE
1542 +#define RALINK_GDMA_BASE      ETHDMASYS_GDMA_BASE
1543 +#define RALINK_HS_DMA_BASE    ETHDMASYS_HS_DMA_BASE
1544 +#define RALINK_11N_MAC_BASE            0       //unused for rt_rdm usage
1545 +
1546 +//Reset Control Register
1547 +#define RSTCTL_SYS_RST                 (1<<0)
1548 +#define RSTCTL_MCM_RST                 (1<<2)
1549 +#define RSTCTL_HSDMA_RST               (1<<5)
1550 +#define RSTCTL_FE_RST                  (1<<6)
1551 +#define RSTCTL_SPDIF_RST               (1<<7)
1552 +#define RSTCTL_TIMER_RST               (1<<8)
1553 +#define RSTCTL_CIRQ_RST                        (1<<9)
1554 +#define RSTCTL_MC_RST                  (1<<10)
1555 +#define RSTCTL_PCM_RST                 (1<<11)
1556 +#define RSTCTL_GPIO_RST                        (1<<13)
1557 +#define RSTCTL_GDMA_RST                        (1<<14)
1558 +#define RSTCTL_NAND_RST                        (1<<15)
1559 +#define RSTCTL_I2C_RST                 (1<<16)
1560 +#define RSTCTL_I2S_RST                 (1<<17)
1561 +#define RSTCTL_SPI_RST                 (1<<18)
1562 +#define RSTCTL_UART0_RST               (1<<19)
1563 +#define RSTCTL_UART1_RST               (1<<20)
1564 +#define RSTCTL_UART2_RST               (1<<21)
1565 +#define RSTCTL_UPHY_RST                        (1<<22)
1566 +#define RSTCTL_ETH_RST                 (1<<23)
1567 +#define RSTCTL_PCIE0_RST               (1<<24)
1568 +#define RSTCTL_PCIE1_RST               (1<<25)
1569 +#define RSTCTL_PCIE2_RST               (1<<26)
1570 +#define RSTCTL_AUX_STCK_RST            (1<<28)
1571 +#define RSTCTL_CRYPT_RST               (1<<29)
1572 +#define RSTCTL_SDXC_RST                        (1<<30)
1573 +#define RSTCTL_PWM_RST                 (1<<31)
1574 +
1575 +//for backward-compatible
1576 +#define RALINK_FE_RST                  RSTCTL_FE_RST
1577 -- 
1578 1.7.10.4
1579