Merge branch 'sh/dwarf-unwinder'
[pandora-kernel.git] / arch / arm / mach-davinci / da830.c
1 /*
2  * TI DA830/OMAP L137 chip specific setup
3  *
4  * Author: Mark A. Greer <mgreer@mvista.com>
5  *
6  * 2009 (c) MontaVista Software, Inc. This file is licensed under
7  * the terms of the GNU General Public License version 2. This program
8  * is licensed "as is" without any warranty of any kind, whether express
9  * or implied.
10  */
11 #include <linux/kernel.h>
12 #include <linux/init.h>
13 #include <linux/clk.h>
14 #include <linux/platform_device.h>
15
16 #include <asm/mach/map.h>
17
18 #include <mach/clock.h>
19 #include <mach/psc.h>
20 #include <mach/mux.h>
21 #include <mach/irqs.h>
22 #include <mach/cputype.h>
23 #include <mach/common.h>
24 #include <mach/time.h>
25 #include <mach/da8xx.h>
26 #include <mach/asp.h>
27
28 #include "clock.h"
29 #include "mux.h"
30
31 /* Offsets of the 8 compare registers on the da830 */
32 #define DA830_CMP12_0           0x60
33 #define DA830_CMP12_1           0x64
34 #define DA830_CMP12_2           0x68
35 #define DA830_CMP12_3           0x6c
36 #define DA830_CMP12_4           0x70
37 #define DA830_CMP12_5           0x74
38 #define DA830_CMP12_6           0x78
39 #define DA830_CMP12_7           0x7c
40
41 #define DA830_REF_FREQ          24000000
42
43 static struct pll_data pll0_data = {
44         .num            = 1,
45         .phys_base      = DA8XX_PLL0_BASE,
46         .flags          = PLL_HAS_PREDIV | PLL_HAS_POSTDIV,
47 };
48
49 static struct clk ref_clk = {
50         .name           = "ref_clk",
51         .rate           = DA830_REF_FREQ,
52 };
53
54 static struct clk pll0_clk = {
55         .name           = "pll0",
56         .parent         = &ref_clk,
57         .pll_data       = &pll0_data,
58         .flags          = CLK_PLL,
59 };
60
61 static struct clk pll0_aux_clk = {
62         .name           = "pll0_aux_clk",
63         .parent         = &pll0_clk,
64         .flags          = CLK_PLL | PRE_PLL,
65 };
66
67 static struct clk pll0_sysclk2 = {
68         .name           = "pll0_sysclk2",
69         .parent         = &pll0_clk,
70         .flags          = CLK_PLL,
71         .div_reg        = PLLDIV2,
72 };
73
74 static struct clk pll0_sysclk3 = {
75         .name           = "pll0_sysclk3",
76         .parent         = &pll0_clk,
77         .flags          = CLK_PLL,
78         .div_reg        = PLLDIV3,
79 };
80
81 static struct clk pll0_sysclk4 = {
82         .name           = "pll0_sysclk4",
83         .parent         = &pll0_clk,
84         .flags          = CLK_PLL,
85         .div_reg        = PLLDIV4,
86 };
87
88 static struct clk pll0_sysclk5 = {
89         .name           = "pll0_sysclk5",
90         .parent         = &pll0_clk,
91         .flags          = CLK_PLL,
92         .div_reg        = PLLDIV5,
93 };
94
95 static struct clk pll0_sysclk6 = {
96         .name           = "pll0_sysclk6",
97         .parent         = &pll0_clk,
98         .flags          = CLK_PLL,
99         .div_reg        = PLLDIV6,
100 };
101
102 static struct clk pll0_sysclk7 = {
103         .name           = "pll0_sysclk7",
104         .parent         = &pll0_clk,
105         .flags          = CLK_PLL,
106         .div_reg        = PLLDIV7,
107 };
108
109 static struct clk i2c0_clk = {
110         .name           = "i2c0",
111         .parent         = &pll0_aux_clk,
112 };
113
114 static struct clk timerp64_0_clk = {
115         .name           = "timer0",
116         .parent         = &pll0_aux_clk,
117 };
118
119 static struct clk timerp64_1_clk = {
120         .name           = "timer1",
121         .parent         = &pll0_aux_clk,
122 };
123
124 static struct clk arm_rom_clk = {
125         .name           = "arm_rom",
126         .parent         = &pll0_sysclk2,
127         .lpsc           = DA8XX_LPSC0_ARM_RAM_ROM,
128         .flags          = ALWAYS_ENABLED,
129 };
130
131 static struct clk scr0_ss_clk = {
132         .name           = "scr0_ss",
133         .parent         = &pll0_sysclk2,
134         .lpsc           = DA8XX_LPSC0_SCR0_SS,
135         .flags          = ALWAYS_ENABLED,
136 };
137
138 static struct clk scr1_ss_clk = {
139         .name           = "scr1_ss",
140         .parent         = &pll0_sysclk2,
141         .lpsc           = DA8XX_LPSC0_SCR1_SS,
142         .flags          = ALWAYS_ENABLED,
143 };
144
145 static struct clk scr2_ss_clk = {
146         .name           = "scr2_ss",
147         .parent         = &pll0_sysclk2,
148         .lpsc           = DA8XX_LPSC0_SCR2_SS,
149         .flags          = ALWAYS_ENABLED,
150 };
151
152 static struct clk dmax_clk = {
153         .name           = "dmax",
154         .parent         = &pll0_sysclk2,
155         .lpsc           = DA8XX_LPSC0_DMAX,
156         .flags          = ALWAYS_ENABLED,
157 };
158
159 static struct clk tpcc_clk = {
160         .name           = "tpcc",
161         .parent         = &pll0_sysclk2,
162         .lpsc           = DA8XX_LPSC0_TPCC,
163         .flags          = ALWAYS_ENABLED | CLK_PSC,
164 };
165
166 static struct clk tptc0_clk = {
167         .name           = "tptc0",
168         .parent         = &pll0_sysclk2,
169         .lpsc           = DA8XX_LPSC0_TPTC0,
170         .flags          = ALWAYS_ENABLED,
171 };
172
173 static struct clk tptc1_clk = {
174         .name           = "tptc1",
175         .parent         = &pll0_sysclk2,
176         .lpsc           = DA8XX_LPSC0_TPTC1,
177         .flags          = ALWAYS_ENABLED,
178 };
179
180 static struct clk mmcsd_clk = {
181         .name           = "mmcsd",
182         .parent         = &pll0_sysclk2,
183         .lpsc           = DA8XX_LPSC0_MMC_SD,
184 };
185
186 static struct clk uart0_clk = {
187         .name           = "uart0",
188         .parent         = &pll0_sysclk2,
189         .lpsc           = DA8XX_LPSC0_UART0,
190 };
191
192 static struct clk uart1_clk = {
193         .name           = "uart1",
194         .parent         = &pll0_sysclk2,
195         .lpsc           = DA8XX_LPSC1_UART1,
196         .psc_ctlr       = 1,
197 };
198
199 static struct clk uart2_clk = {
200         .name           = "uart2",
201         .parent         = &pll0_sysclk2,
202         .lpsc           = DA8XX_LPSC1_UART2,
203         .psc_ctlr       = 1,
204 };
205
206 static struct clk spi0_clk = {
207         .name           = "spi0",
208         .parent         = &pll0_sysclk2,
209         .lpsc           = DA8XX_LPSC0_SPI0,
210 };
211
212 static struct clk spi1_clk = {
213         .name           = "spi1",
214         .parent         = &pll0_sysclk2,
215         .lpsc           = DA8XX_LPSC1_SPI1,
216         .psc_ctlr       = 1,
217 };
218
219 static struct clk ecap0_clk = {
220         .name           = "ecap0",
221         .parent         = &pll0_sysclk2,
222         .lpsc           = DA8XX_LPSC1_ECAP,
223         .psc_ctlr       = 1,
224 };
225
226 static struct clk ecap1_clk = {
227         .name           = "ecap1",
228         .parent         = &pll0_sysclk2,
229         .lpsc           = DA8XX_LPSC1_ECAP,
230         .psc_ctlr       = 1,
231 };
232
233 static struct clk ecap2_clk = {
234         .name           = "ecap2",
235         .parent         = &pll0_sysclk2,
236         .lpsc           = DA8XX_LPSC1_ECAP,
237         .psc_ctlr       = 1,
238 };
239
240 static struct clk pwm0_clk = {
241         .name           = "pwm0",
242         .parent         = &pll0_sysclk2,
243         .lpsc           = DA8XX_LPSC1_PWM,
244         .psc_ctlr       = 1,
245 };
246
247 static struct clk pwm1_clk = {
248         .name           = "pwm1",
249         .parent         = &pll0_sysclk2,
250         .lpsc           = DA8XX_LPSC1_PWM,
251         .psc_ctlr       = 1,
252 };
253
254 static struct clk pwm2_clk = {
255         .name           = "pwm2",
256         .parent         = &pll0_sysclk2,
257         .lpsc           = DA8XX_LPSC1_PWM,
258         .psc_ctlr       = 1,
259 };
260
261 static struct clk eqep0_clk = {
262         .name           = "eqep0",
263         .parent         = &pll0_sysclk2,
264         .lpsc           = DA830_LPSC1_EQEP,
265         .psc_ctlr       = 1,
266 };
267
268 static struct clk eqep1_clk = {
269         .name           = "eqep1",
270         .parent         = &pll0_sysclk2,
271         .lpsc           = DA830_LPSC1_EQEP,
272         .psc_ctlr       = 1,
273 };
274
275 static struct clk lcdc_clk = {
276         .name           = "lcdc",
277         .parent         = &pll0_sysclk2,
278         .lpsc           = DA8XX_LPSC1_LCDC,
279         .psc_ctlr       = 1,
280 };
281
282 static struct clk mcasp0_clk = {
283         .name           = "mcasp0",
284         .parent         = &pll0_sysclk2,
285         .lpsc           = DA8XX_LPSC1_McASP0,
286         .psc_ctlr       = 1,
287 };
288
289 static struct clk mcasp1_clk = {
290         .name           = "mcasp1",
291         .parent         = &pll0_sysclk2,
292         .lpsc           = DA830_LPSC1_McASP1,
293         .psc_ctlr       = 1,
294 };
295
296 static struct clk mcasp2_clk = {
297         .name           = "mcasp2",
298         .parent         = &pll0_sysclk2,
299         .lpsc           = DA830_LPSC1_McASP2,
300         .psc_ctlr       = 1,
301 };
302
303 static struct clk usb20_clk = {
304         .name           = "usb20",
305         .parent         = &pll0_sysclk2,
306         .lpsc           = DA8XX_LPSC1_USB20,
307         .psc_ctlr       = 1,
308 };
309
310 static struct clk aemif_clk = {
311         .name           = "aemif",
312         .parent         = &pll0_sysclk3,
313         .lpsc           = DA8XX_LPSC0_EMIF25,
314         .flags          = ALWAYS_ENABLED,
315 };
316
317 static struct clk aintc_clk = {
318         .name           = "aintc",
319         .parent         = &pll0_sysclk4,
320         .lpsc           = DA8XX_LPSC0_AINTC,
321         .flags          = ALWAYS_ENABLED,
322 };
323
324 static struct clk secu_mgr_clk = {
325         .name           = "secu_mgr",
326         .parent         = &pll0_sysclk4,
327         .lpsc           = DA8XX_LPSC0_SECU_MGR,
328         .flags          = ALWAYS_ENABLED,
329 };
330
331 static struct clk emac_clk = {
332         .name           = "emac",
333         .parent         = &pll0_sysclk4,
334         .lpsc           = DA8XX_LPSC1_CPGMAC,
335         .psc_ctlr       = 1,
336 };
337
338 static struct clk gpio_clk = {
339         .name           = "gpio",
340         .parent         = &pll0_sysclk4,
341         .lpsc           = DA8XX_LPSC1_GPIO,
342         .psc_ctlr       = 1,
343 };
344
345 static struct clk i2c1_clk = {
346         .name           = "i2c1",
347         .parent         = &pll0_sysclk4,
348         .lpsc           = DA8XX_LPSC1_I2C,
349         .psc_ctlr       = 1,
350 };
351
352 static struct clk usb11_clk = {
353         .name           = "usb11",
354         .parent         = &pll0_sysclk4,
355         .lpsc           = DA8XX_LPSC1_USB11,
356         .psc_ctlr       = 1,
357 };
358
359 static struct clk emif3_clk = {
360         .name           = "emif3",
361         .parent         = &pll0_sysclk5,
362         .lpsc           = DA8XX_LPSC1_EMIF3C,
363         .flags          = ALWAYS_ENABLED,
364         .psc_ctlr       = 1,
365 };
366
367 static struct clk arm_clk = {
368         .name           = "arm",
369         .parent         = &pll0_sysclk6,
370         .lpsc           = DA8XX_LPSC0_ARM,
371         .flags          = ALWAYS_ENABLED,
372 };
373
374 static struct clk rmii_clk = {
375         .name           = "rmii",
376         .parent         = &pll0_sysclk7,
377 };
378
379 static struct davinci_clk da830_clks[] = {
380         CLK(NULL,               "ref",          &ref_clk),
381         CLK(NULL,               "pll0",         &pll0_clk),
382         CLK(NULL,               "pll0_aux",     &pll0_aux_clk),
383         CLK(NULL,               "pll0_sysclk2", &pll0_sysclk2),
384         CLK(NULL,               "pll0_sysclk3", &pll0_sysclk3),
385         CLK(NULL,               "pll0_sysclk4", &pll0_sysclk4),
386         CLK(NULL,               "pll0_sysclk5", &pll0_sysclk5),
387         CLK(NULL,               "pll0_sysclk6", &pll0_sysclk6),
388         CLK(NULL,               "pll0_sysclk7", &pll0_sysclk7),
389         CLK("i2c_davinci.1",    NULL,           &i2c0_clk),
390         CLK(NULL,               "timer0",       &timerp64_0_clk),
391         CLK("watchdog",         NULL,           &timerp64_1_clk),
392         CLK(NULL,               "arm_rom",      &arm_rom_clk),
393         CLK(NULL,               "scr0_ss",      &scr0_ss_clk),
394         CLK(NULL,               "scr1_ss",      &scr1_ss_clk),
395         CLK(NULL,               "scr2_ss",      &scr2_ss_clk),
396         CLK(NULL,               "dmax",         &dmax_clk),
397         CLK(NULL,               "tpcc",         &tpcc_clk),
398         CLK(NULL,               "tptc0",        &tptc0_clk),
399         CLK(NULL,               "tptc1",        &tptc1_clk),
400         CLK("davinci_mmc.0",    NULL,           &mmcsd_clk),
401         CLK(NULL,               "uart0",        &uart0_clk),
402         CLK(NULL,               "uart1",        &uart1_clk),
403         CLK(NULL,               "uart2",        &uart2_clk),
404         CLK("dm_spi.0",         NULL,           &spi0_clk),
405         CLK("dm_spi.1",         NULL,           &spi1_clk),
406         CLK(NULL,               "ecap0",        &ecap0_clk),
407         CLK(NULL,               "ecap1",        &ecap1_clk),
408         CLK(NULL,               "ecap2",        &ecap2_clk),
409         CLK(NULL,               "pwm0",         &pwm0_clk),
410         CLK(NULL,               "pwm1",         &pwm1_clk),
411         CLK(NULL,               "pwm2",         &pwm2_clk),
412         CLK("eqep.0",           NULL,           &eqep0_clk),
413         CLK("eqep.1",           NULL,           &eqep1_clk),
414         CLK("da830_lcdc",       NULL,           &lcdc_clk),
415         CLK("davinci-mcasp.0",  NULL,           &mcasp0_clk),
416         CLK("davinci-mcasp.1",  NULL,           &mcasp1_clk),
417         CLK("davinci-mcasp.2",  NULL,           &mcasp2_clk),
418         CLK("musb_hdrc",        NULL,           &usb20_clk),
419         CLK(NULL,               "aemif",        &aemif_clk),
420         CLK(NULL,               "aintc",        &aintc_clk),
421         CLK(NULL,               "secu_mgr",     &secu_mgr_clk),
422         CLK("davinci_emac.1",   NULL,           &emac_clk),
423         CLK(NULL,               "gpio",         &gpio_clk),
424         CLK("i2c_davinci.2",    NULL,           &i2c1_clk),
425         CLK(NULL,               "usb11",        &usb11_clk),
426         CLK(NULL,               "emif3",        &emif3_clk),
427         CLK(NULL,               "arm",          &arm_clk),
428         CLK(NULL,               "rmii",         &rmii_clk),
429         CLK(NULL,               NULL,           NULL),
430 };
431
432 /*
433  * Device specific mux setup
434  *
435  *           soc      description       mux    mode    mode   mux       dbg
436  *                                      reg   offset   mask   mode
437  */
438 static const struct mux_config da830_pins[] = {
439 #ifdef CONFIG_DAVINCI_MUX
440         MUX_CFG(DA830, GPIO7_14,        0,      0,      0xf,    1,      false)
441         MUX_CFG(DA830, RTCK,            0,      0,      0xf,    8,      false)
442         MUX_CFG(DA830, GPIO7_15,        0,      4,      0xf,    1,      false)
443         MUX_CFG(DA830, EMU_0,           0,      4,      0xf,    8,      false)
444         MUX_CFG(DA830, EMB_SDCKE,       0,      8,      0xf,    1,      false)
445         MUX_CFG(DA830, EMB_CLK_GLUE,    0,      12,     0xf,    1,      false)
446         MUX_CFG(DA830, EMB_CLK,         0,      12,     0xf,    2,      false)
447         MUX_CFG(DA830, NEMB_CS_0,       0,      16,     0xf,    1,      false)
448         MUX_CFG(DA830, NEMB_CAS,        0,      20,     0xf,    1,      false)
449         MUX_CFG(DA830, NEMB_RAS,        0,      24,     0xf,    1,      false)
450         MUX_CFG(DA830, NEMB_WE,         0,      28,     0xf,    1,      false)
451         MUX_CFG(DA830, EMB_BA_1,        1,      0,      0xf,    1,      false)
452         MUX_CFG(DA830, EMB_BA_0,        1,      4,      0xf,    1,      false)
453         MUX_CFG(DA830, EMB_A_0,         1,      8,      0xf,    1,      false)
454         MUX_CFG(DA830, EMB_A_1,         1,      12,     0xf,    1,      false)
455         MUX_CFG(DA830, EMB_A_2,         1,      16,     0xf,    1,      false)
456         MUX_CFG(DA830, EMB_A_3,         1,      20,     0xf,    1,      false)
457         MUX_CFG(DA830, EMB_A_4,         1,      24,     0xf,    1,      false)
458         MUX_CFG(DA830, EMB_A_5,         1,      28,     0xf,    1,      false)
459         MUX_CFG(DA830, GPIO7_0,         1,      0,      0xf,    8,      false)
460         MUX_CFG(DA830, GPIO7_1,         1,      4,      0xf,    8,      false)
461         MUX_CFG(DA830, GPIO7_2,         1,      8,      0xf,    8,      false)
462         MUX_CFG(DA830, GPIO7_3,         1,      12,     0xf,    8,      false)
463         MUX_CFG(DA830, GPIO7_4,         1,      16,     0xf,    8,      false)
464         MUX_CFG(DA830, GPIO7_5,         1,      20,     0xf,    8,      false)
465         MUX_CFG(DA830, GPIO7_6,         1,      24,     0xf,    8,      false)
466         MUX_CFG(DA830, GPIO7_7,         1,      28,     0xf,    8,      false)
467         MUX_CFG(DA830, EMB_A_6,         2,      0,      0xf,    1,      false)
468         MUX_CFG(DA830, EMB_A_7,         2,      4,      0xf,    1,      false)
469         MUX_CFG(DA830, EMB_A_8,         2,      8,      0xf,    1,      false)
470         MUX_CFG(DA830, EMB_A_9,         2,      12,     0xf,    1,      false)
471         MUX_CFG(DA830, EMB_A_10,        2,      16,     0xf,    1,      false)
472         MUX_CFG(DA830, EMB_A_11,        2,      20,     0xf,    1,      false)
473         MUX_CFG(DA830, EMB_A_12,        2,      24,     0xf,    1,      false)
474         MUX_CFG(DA830, EMB_D_31,        2,      28,     0xf,    1,      false)
475         MUX_CFG(DA830, GPIO7_8,         2,      0,      0xf,    8,      false)
476         MUX_CFG(DA830, GPIO7_9,         2,      4,      0xf,    8,      false)
477         MUX_CFG(DA830, GPIO7_10,        2,      8,      0xf,    8,      false)
478         MUX_CFG(DA830, GPIO7_11,        2,      12,     0xf,    8,      false)
479         MUX_CFG(DA830, GPIO7_12,        2,      16,     0xf,    8,      false)
480         MUX_CFG(DA830, GPIO7_13,        2,      20,     0xf,    8,      false)
481         MUX_CFG(DA830, GPIO3_13,        2,      24,     0xf,    8,      false)
482         MUX_CFG(DA830, EMB_D_30,        3,      0,      0xf,    1,      false)
483         MUX_CFG(DA830, EMB_D_29,        3,      4,      0xf,    1,      false)
484         MUX_CFG(DA830, EMB_D_28,        3,      8,      0xf,    1,      false)
485         MUX_CFG(DA830, EMB_D_27,        3,      12,     0xf,    1,      false)
486         MUX_CFG(DA830, EMB_D_26,        3,      16,     0xf,    1,      false)
487         MUX_CFG(DA830, EMB_D_25,        3,      20,     0xf,    1,      false)
488         MUX_CFG(DA830, EMB_D_24,        3,      24,     0xf,    1,      false)
489         MUX_CFG(DA830, EMB_D_23,        3,      28,     0xf,    1,      false)
490         MUX_CFG(DA830, EMB_D_22,        4,      0,      0xf,    1,      false)
491         MUX_CFG(DA830, EMB_D_21,        4,      4,      0xf,    1,      false)
492         MUX_CFG(DA830, EMB_D_20,        4,      8,      0xf,    1,      false)
493         MUX_CFG(DA830, EMB_D_19,        4,      12,     0xf,    1,      false)
494         MUX_CFG(DA830, EMB_D_18,        4,      16,     0xf,    1,      false)
495         MUX_CFG(DA830, EMB_D_17,        4,      20,     0xf,    1,      false)
496         MUX_CFG(DA830, EMB_D_16,        4,      24,     0xf,    1,      false)
497         MUX_CFG(DA830, NEMB_WE_DQM_3,   4,      28,     0xf,    1,      false)
498         MUX_CFG(DA830, NEMB_WE_DQM_2,   5,      0,      0xf,    1,      false)
499         MUX_CFG(DA830, EMB_D_0,         5,      4,      0xf,    1,      false)
500         MUX_CFG(DA830, EMB_D_1,         5,      8,      0xf,    1,      false)
501         MUX_CFG(DA830, EMB_D_2,         5,      12,     0xf,    1,      false)
502         MUX_CFG(DA830, EMB_D_3,         5,      16,     0xf,    1,      false)
503         MUX_CFG(DA830, EMB_D_4,         5,      20,     0xf,    1,      false)
504         MUX_CFG(DA830, EMB_D_5,         5,      24,     0xf,    1,      false)
505         MUX_CFG(DA830, EMB_D_6,         5,      28,     0xf,    1,      false)
506         MUX_CFG(DA830, GPIO6_0,         5,      4,      0xf,    8,      false)
507         MUX_CFG(DA830, GPIO6_1,         5,      8,      0xf,    8,      false)
508         MUX_CFG(DA830, GPIO6_2,         5,      12,     0xf,    8,      false)
509         MUX_CFG(DA830, GPIO6_3,         5,      16,     0xf,    8,      false)
510         MUX_CFG(DA830, GPIO6_4,         5,      20,     0xf,    8,      false)
511         MUX_CFG(DA830, GPIO6_5,         5,      24,     0xf,    8,      false)
512         MUX_CFG(DA830, GPIO6_6,         5,      28,     0xf,    8,      false)
513         MUX_CFG(DA830, EMB_D_7,         6,      0,      0xf,    1,      false)
514         MUX_CFG(DA830, EMB_D_8,         6,      4,      0xf,    1,      false)
515         MUX_CFG(DA830, EMB_D_9,         6,      8,      0xf,    1,      false)
516         MUX_CFG(DA830, EMB_D_10,        6,      12,     0xf,    1,      false)
517         MUX_CFG(DA830, EMB_D_11,        6,      16,     0xf,    1,      false)
518         MUX_CFG(DA830, EMB_D_12,        6,      20,     0xf,    1,      false)
519         MUX_CFG(DA830, EMB_D_13,        6,      24,     0xf,    1,      false)
520         MUX_CFG(DA830, EMB_D_14,        6,      28,     0xf,    1,      false)
521         MUX_CFG(DA830, GPIO6_7,         6,      0,      0xf,    8,      false)
522         MUX_CFG(DA830, GPIO6_8,         6,      4,      0xf,    8,      false)
523         MUX_CFG(DA830, GPIO6_9,         6,      8,      0xf,    8,      false)
524         MUX_CFG(DA830, GPIO6_10,        6,      12,     0xf,    8,      false)
525         MUX_CFG(DA830, GPIO6_11,        6,      16,     0xf,    8,      false)
526         MUX_CFG(DA830, GPIO6_12,        6,      20,     0xf,    8,      false)
527         MUX_CFG(DA830, GPIO6_13,        6,      24,     0xf,    8,      false)
528         MUX_CFG(DA830, GPIO6_14,        6,      28,     0xf,    8,      false)
529         MUX_CFG(DA830, EMB_D_15,        7,      0,      0xf,    1,      false)
530         MUX_CFG(DA830, NEMB_WE_DQM_1,   7,      4,      0xf,    1,      false)
531         MUX_CFG(DA830, NEMB_WE_DQM_0,   7,      8,      0xf,    1,      false)
532         MUX_CFG(DA830, SPI0_SOMI_0,     7,      12,     0xf,    1,      false)
533         MUX_CFG(DA830, SPI0_SIMO_0,     7,      16,     0xf,    1,      false)
534         MUX_CFG(DA830, SPI0_CLK,        7,      20,     0xf,    1,      false)
535         MUX_CFG(DA830, NSPI0_ENA,       7,      24,     0xf,    1,      false)
536         MUX_CFG(DA830, NSPI0_SCS_0,     7,      28,     0xf,    1,      false)
537         MUX_CFG(DA830, EQEP0I,          7,      12,     0xf,    2,      false)
538         MUX_CFG(DA830, EQEP0S,          7,      16,     0xf,    2,      false)
539         MUX_CFG(DA830, EQEP1I,          7,      20,     0xf,    2,      false)
540         MUX_CFG(DA830, NUART0_CTS,      7,      24,     0xf,    2,      false)
541         MUX_CFG(DA830, NUART0_RTS,      7,      28,     0xf,    2,      false)
542         MUX_CFG(DA830, EQEP0A,          7,      24,     0xf,    4,      false)
543         MUX_CFG(DA830, EQEP0B,          7,      28,     0xf,    4,      false)
544         MUX_CFG(DA830, GPIO6_15,        7,      0,      0xf,    8,      false)
545         MUX_CFG(DA830, GPIO5_14,        7,      4,      0xf,    8,      false)
546         MUX_CFG(DA830, GPIO5_15,        7,      8,      0xf,    8,      false)
547         MUX_CFG(DA830, GPIO5_0,         7,      12,     0xf,    8,      false)
548         MUX_CFG(DA830, GPIO5_1,         7,      16,     0xf,    8,      false)
549         MUX_CFG(DA830, GPIO5_2,         7,      20,     0xf,    8,      false)
550         MUX_CFG(DA830, GPIO5_3,         7,      24,     0xf,    8,      false)
551         MUX_CFG(DA830, GPIO5_4,         7,      28,     0xf,    8,      false)
552         MUX_CFG(DA830, SPI1_SOMI_0,     8,      0,      0xf,    1,      false)
553         MUX_CFG(DA830, SPI1_SIMO_0,     8,      4,      0xf,    1,      false)
554         MUX_CFG(DA830, SPI1_CLK,        8,      8,      0xf,    1,      false)
555         MUX_CFG(DA830, UART0_RXD,       8,      12,     0xf,    1,      false)
556         MUX_CFG(DA830, UART0_TXD,       8,      16,     0xf,    1,      false)
557         MUX_CFG(DA830, AXR1_10,         8,      20,     0xf,    1,      false)
558         MUX_CFG(DA830, AXR1_11,         8,      24,     0xf,    1,      false)
559         MUX_CFG(DA830, NSPI1_ENA,       8,      28,     0xf,    1,      false)
560         MUX_CFG(DA830, I2C1_SCL,        8,      0,      0xf,    2,      false)
561         MUX_CFG(DA830, I2C1_SDA,        8,      4,      0xf,    2,      false)
562         MUX_CFG(DA830, EQEP1S,          8,      8,      0xf,    2,      false)
563         MUX_CFG(DA830, I2C0_SDA,        8,      12,     0xf,    2,      false)
564         MUX_CFG(DA830, I2C0_SCL,        8,      16,     0xf,    2,      false)
565         MUX_CFG(DA830, UART2_RXD,       8,      28,     0xf,    2,      false)
566         MUX_CFG(DA830, TM64P0_IN12,     8,      12,     0xf,    4,      false)
567         MUX_CFG(DA830, TM64P0_OUT12,    8,      16,     0xf,    4,      false)
568         MUX_CFG(DA830, GPIO5_5,         8,      0,      0xf,    8,      false)
569         MUX_CFG(DA830, GPIO5_6,         8,      4,      0xf,    8,      false)
570         MUX_CFG(DA830, GPIO5_7,         8,      8,      0xf,    8,      false)
571         MUX_CFG(DA830, GPIO5_8,         8,      12,     0xf,    8,      false)
572         MUX_CFG(DA830, GPIO5_9,         8,      16,     0xf,    8,      false)
573         MUX_CFG(DA830, GPIO5_10,        8,      20,     0xf,    8,      false)
574         MUX_CFG(DA830, GPIO5_11,        8,      24,     0xf,    8,      false)
575         MUX_CFG(DA830, GPIO5_12,        8,      28,     0xf,    8,      false)
576         MUX_CFG(DA830, NSPI1_SCS_0,     9,      0,      0xf,    1,      false)
577         MUX_CFG(DA830, USB0_DRVVBUS,    9,      4,      0xf,    1,      false)
578         MUX_CFG(DA830, AHCLKX0,         9,      8,      0xf,    1,      false)
579         MUX_CFG(DA830, ACLKX0,          9,      12,     0xf,    1,      false)
580         MUX_CFG(DA830, AFSX0,           9,      16,     0xf,    1,      false)
581         MUX_CFG(DA830, AHCLKR0,         9,      20,     0xf,    1,      false)
582         MUX_CFG(DA830, ACLKR0,          9,      24,     0xf,    1,      false)
583         MUX_CFG(DA830, AFSR0,           9,      28,     0xf,    1,      false)
584         MUX_CFG(DA830, UART2_TXD,       9,      0,      0xf,    2,      false)
585         MUX_CFG(DA830, AHCLKX2,         9,      8,      0xf,    2,      false)
586         MUX_CFG(DA830, ECAP0_APWM0,     9,      12,     0xf,    2,      false)
587         MUX_CFG(DA830, RMII_MHZ_50_CLK, 9,      20,     0xf,    2,      false)
588         MUX_CFG(DA830, ECAP1_APWM1,     9,      24,     0xf,    2,      false)
589         MUX_CFG(DA830, USB_REFCLKIN,    9,      8,      0xf,    4,      false)
590         MUX_CFG(DA830, GPIO5_13,        9,      0,      0xf,    8,      false)
591         MUX_CFG(DA830, GPIO4_15,        9,      4,      0xf,    8,      false)
592         MUX_CFG(DA830, GPIO2_11,        9,      8,      0xf,    8,      false)
593         MUX_CFG(DA830, GPIO2_12,        9,      12,     0xf,    8,      false)
594         MUX_CFG(DA830, GPIO2_13,        9,      16,     0xf,    8,      false)
595         MUX_CFG(DA830, GPIO2_14,        9,      20,     0xf,    8,      false)
596         MUX_CFG(DA830, GPIO2_15,        9,      24,     0xf,    8,      false)
597         MUX_CFG(DA830, GPIO3_12,        9,      28,     0xf,    8,      false)
598         MUX_CFG(DA830, AMUTE0,          10,     0,      0xf,    1,      false)
599         MUX_CFG(DA830, AXR0_0,          10,     4,      0xf,    1,      false)
600         MUX_CFG(DA830, AXR0_1,          10,     8,      0xf,    1,      false)
601         MUX_CFG(DA830, AXR0_2,          10,     12,     0xf,    1,      false)
602         MUX_CFG(DA830, AXR0_3,          10,     16,     0xf,    1,      false)
603         MUX_CFG(DA830, AXR0_4,          10,     20,     0xf,    1,      false)
604         MUX_CFG(DA830, AXR0_5,          10,     24,     0xf,    1,      false)
605         MUX_CFG(DA830, AXR0_6,          10,     28,     0xf,    1,      false)
606         MUX_CFG(DA830, RMII_TXD_0,      10,     4,      0xf,    2,      false)
607         MUX_CFG(DA830, RMII_TXD_1,      10,     8,      0xf,    2,      false)
608         MUX_CFG(DA830, RMII_TXEN,       10,     12,     0xf,    2,      false)
609         MUX_CFG(DA830, RMII_CRS_DV,     10,     16,     0xf,    2,      false)
610         MUX_CFG(DA830, RMII_RXD_0,      10,     20,     0xf,    2,      false)
611         MUX_CFG(DA830, RMII_RXD_1,      10,     24,     0xf,    2,      false)
612         MUX_CFG(DA830, RMII_RXER,       10,     28,     0xf,    2,      false)
613         MUX_CFG(DA830, AFSR2,           10,     4,      0xf,    4,      false)
614         MUX_CFG(DA830, ACLKX2,          10,     8,      0xf,    4,      false)
615         MUX_CFG(DA830, AXR2_3,          10,     12,     0xf,    4,      false)
616         MUX_CFG(DA830, AXR2_2,          10,     16,     0xf,    4,      false)
617         MUX_CFG(DA830, AXR2_1,          10,     20,     0xf,    4,      false)
618         MUX_CFG(DA830, AFSX2,           10,     24,     0xf,    4,      false)
619         MUX_CFG(DA830, ACLKR2,          10,     28,     0xf,    4,      false)
620         MUX_CFG(DA830, NRESETOUT,       10,     0,      0xf,    8,      false)
621         MUX_CFG(DA830, GPIO3_0,         10,     4,      0xf,    8,      false)
622         MUX_CFG(DA830, GPIO3_1,         10,     8,      0xf,    8,      false)
623         MUX_CFG(DA830, GPIO3_2,         10,     12,     0xf,    8,      false)
624         MUX_CFG(DA830, GPIO3_3,         10,     16,     0xf,    8,      false)
625         MUX_CFG(DA830, GPIO3_4,         10,     20,     0xf,    8,      false)
626         MUX_CFG(DA830, GPIO3_5,         10,     24,     0xf,    8,      false)
627         MUX_CFG(DA830, GPIO3_6,         10,     28,     0xf,    8,      false)
628         MUX_CFG(DA830, AXR0_7,          11,     0,      0xf,    1,      false)
629         MUX_CFG(DA830, AXR0_8,          11,     4,      0xf,    1,      false)
630         MUX_CFG(DA830, UART1_RXD,       11,     8,      0xf,    1,      false)
631         MUX_CFG(DA830, UART1_TXD,       11,     12,     0xf,    1,      false)
632         MUX_CFG(DA830, AXR0_11,         11,     16,     0xf,    1,      false)
633         MUX_CFG(DA830, AHCLKX1,         11,     20,     0xf,    1,      false)
634         MUX_CFG(DA830, ACLKX1,          11,     24,     0xf,    1,      false)
635         MUX_CFG(DA830, AFSX1,           11,     28,     0xf,    1,      false)
636         MUX_CFG(DA830, MDIO_CLK,        11,     0,      0xf,    2,      false)
637         MUX_CFG(DA830, MDIO_D,          11,     4,      0xf,    2,      false)
638         MUX_CFG(DA830, AXR0_9,          11,     8,      0xf,    2,      false)
639         MUX_CFG(DA830, AXR0_10,         11,     12,     0xf,    2,      false)
640         MUX_CFG(DA830, EPWM0B,          11,     20,     0xf,    2,      false)
641         MUX_CFG(DA830, EPWM0A,          11,     24,     0xf,    2,      false)
642         MUX_CFG(DA830, EPWMSYNCI,       11,     28,     0xf,    2,      false)
643         MUX_CFG(DA830, AXR2_0,          11,     16,     0xf,    4,      false)
644         MUX_CFG(DA830, EPWMSYNC0,       11,     28,     0xf,    4,      false)
645         MUX_CFG(DA830, GPIO3_7,         11,     0,      0xf,    8,      false)
646         MUX_CFG(DA830, GPIO3_8,         11,     4,      0xf,    8,      false)
647         MUX_CFG(DA830, GPIO3_9,         11,     8,      0xf,    8,      false)
648         MUX_CFG(DA830, GPIO3_10,        11,     12,     0xf,    8,      false)
649         MUX_CFG(DA830, GPIO3_11,        11,     16,     0xf,    8,      false)
650         MUX_CFG(DA830, GPIO3_14,        11,     20,     0xf,    8,      false)
651         MUX_CFG(DA830, GPIO3_15,        11,     24,     0xf,    8,      false)
652         MUX_CFG(DA830, GPIO4_10,        11,     28,     0xf,    8,      false)
653         MUX_CFG(DA830, AHCLKR1,         12,     0,      0xf,    1,      false)
654         MUX_CFG(DA830, ACLKR1,          12,     4,      0xf,    1,      false)
655         MUX_CFG(DA830, AFSR1,           12,     8,      0xf,    1,      false)
656         MUX_CFG(DA830, AMUTE1,          12,     12,     0xf,    1,      false)
657         MUX_CFG(DA830, AXR1_0,          12,     16,     0xf,    1,      false)
658         MUX_CFG(DA830, AXR1_1,          12,     20,     0xf,    1,      false)
659         MUX_CFG(DA830, AXR1_2,          12,     24,     0xf,    1,      false)
660         MUX_CFG(DA830, AXR1_3,          12,     28,     0xf,    1,      false)
661         MUX_CFG(DA830, ECAP2_APWM2,     12,     4,      0xf,    2,      false)
662         MUX_CFG(DA830, EHRPWMGLUETZ,    12,     12,     0xf,    2,      false)
663         MUX_CFG(DA830, EQEP1A,          12,     28,     0xf,    2,      false)
664         MUX_CFG(DA830, GPIO4_11,        12,     0,      0xf,    8,      false)
665         MUX_CFG(DA830, GPIO4_12,        12,     4,      0xf,    8,      false)
666         MUX_CFG(DA830, GPIO4_13,        12,     8,      0xf,    8,      false)
667         MUX_CFG(DA830, GPIO4_14,        12,     12,     0xf,    8,      false)
668         MUX_CFG(DA830, GPIO4_0,         12,     16,     0xf,    8,      false)
669         MUX_CFG(DA830, GPIO4_1,         12,     20,     0xf,    8,      false)
670         MUX_CFG(DA830, GPIO4_2,         12,     24,     0xf,    8,      false)
671         MUX_CFG(DA830, GPIO4_3,         12,     28,     0xf,    8,      false)
672         MUX_CFG(DA830, AXR1_4,          13,     0,      0xf,    1,      false)
673         MUX_CFG(DA830, AXR1_5,          13,     4,      0xf,    1,      false)
674         MUX_CFG(DA830, AXR1_6,          13,     8,      0xf,    1,      false)
675         MUX_CFG(DA830, AXR1_7,          13,     12,     0xf,    1,      false)
676         MUX_CFG(DA830, AXR1_8,          13,     16,     0xf,    1,      false)
677         MUX_CFG(DA830, AXR1_9,          13,     20,     0xf,    1,      false)
678         MUX_CFG(DA830, EMA_D_0,         13,     24,     0xf,    1,      false)
679         MUX_CFG(DA830, EMA_D_1,         13,     28,     0xf,    1,      false)
680         MUX_CFG(DA830, EQEP1B,          13,     0,      0xf,    2,      false)
681         MUX_CFG(DA830, EPWM2B,          13,     4,      0xf,    2,      false)
682         MUX_CFG(DA830, EPWM2A,          13,     8,      0xf,    2,      false)
683         MUX_CFG(DA830, EPWM1B,          13,     12,     0xf,    2,      false)
684         MUX_CFG(DA830, EPWM1A,          13,     16,     0xf,    2,      false)
685         MUX_CFG(DA830, MMCSD_DAT_0,     13,     24,     0xf,    2,      false)
686         MUX_CFG(DA830, MMCSD_DAT_1,     13,     28,     0xf,    2,      false)
687         MUX_CFG(DA830, UHPI_HD_0,       13,     24,     0xf,    4,      false)
688         MUX_CFG(DA830, UHPI_HD_1,       13,     28,     0xf,    4,      false)
689         MUX_CFG(DA830, GPIO4_4,         13,     0,      0xf,    8,      false)
690         MUX_CFG(DA830, GPIO4_5,         13,     4,      0xf,    8,      false)
691         MUX_CFG(DA830, GPIO4_6,         13,     8,      0xf,    8,      false)
692         MUX_CFG(DA830, GPIO4_7,         13,     12,     0xf,    8,      false)
693         MUX_CFG(DA830, GPIO4_8,         13,     16,     0xf,    8,      false)
694         MUX_CFG(DA830, GPIO4_9,         13,     20,     0xf,    8,      false)
695         MUX_CFG(DA830, GPIO0_0,         13,     24,     0xf,    8,      false)
696         MUX_CFG(DA830, GPIO0_1,         13,     28,     0xf,    8,      false)
697         MUX_CFG(DA830, EMA_D_2,         14,     0,      0xf,    1,      false)
698         MUX_CFG(DA830, EMA_D_3,         14,     4,      0xf,    1,      false)
699         MUX_CFG(DA830, EMA_D_4,         14,     8,      0xf,    1,      false)
700         MUX_CFG(DA830, EMA_D_5,         14,     12,     0xf,    1,      false)
701         MUX_CFG(DA830, EMA_D_6,         14,     16,     0xf,    1,      false)
702         MUX_CFG(DA830, EMA_D_7,         14,     20,     0xf,    1,      false)
703         MUX_CFG(DA830, EMA_D_8,         14,     24,     0xf,    1,      false)
704         MUX_CFG(DA830, EMA_D_9,         14,     28,     0xf,    1,      false)
705         MUX_CFG(DA830, MMCSD_DAT_2,     14,     0,      0xf,    2,      false)
706         MUX_CFG(DA830, MMCSD_DAT_3,     14,     4,      0xf,    2,      false)
707         MUX_CFG(DA830, MMCSD_DAT_4,     14,     8,      0xf,    2,      false)
708         MUX_CFG(DA830, MMCSD_DAT_5,     14,     12,     0xf,    2,      false)
709         MUX_CFG(DA830, MMCSD_DAT_6,     14,     16,     0xf,    2,      false)
710         MUX_CFG(DA830, MMCSD_DAT_7,     14,     20,     0xf,    2,      false)
711         MUX_CFG(DA830, UHPI_HD_8,       14,     24,     0xf,    2,      false)
712         MUX_CFG(DA830, UHPI_HD_9,       14,     28,     0xf,    2,      false)
713         MUX_CFG(DA830, UHPI_HD_2,       14,     0,      0xf,    4,      false)
714         MUX_CFG(DA830, UHPI_HD_3,       14,     4,      0xf,    4,      false)
715         MUX_CFG(DA830, UHPI_HD_4,       14,     8,      0xf,    4,      false)
716         MUX_CFG(DA830, UHPI_HD_5,       14,     12,     0xf,    4,      false)
717         MUX_CFG(DA830, UHPI_HD_6,       14,     16,     0xf,    4,      false)
718         MUX_CFG(DA830, UHPI_HD_7,       14,     20,     0xf,    4,      false)
719         MUX_CFG(DA830, LCD_D_8,         14,     24,     0xf,    4,      false)
720         MUX_CFG(DA830, LCD_D_9,         14,     28,     0xf,    4,      false)
721         MUX_CFG(DA830, GPIO0_2,         14,     0,      0xf,    8,      false)
722         MUX_CFG(DA830, GPIO0_3,         14,     4,      0xf,    8,      false)
723         MUX_CFG(DA830, GPIO0_4,         14,     8,      0xf,    8,      false)
724         MUX_CFG(DA830, GPIO0_5,         14,     12,     0xf,    8,      false)
725         MUX_CFG(DA830, GPIO0_6,         14,     16,     0xf,    8,      false)
726         MUX_CFG(DA830, GPIO0_7,         14,     20,     0xf,    8,      false)
727         MUX_CFG(DA830, GPIO0_8,         14,     24,     0xf,    8,      false)
728         MUX_CFG(DA830, GPIO0_9,         14,     28,     0xf,    8,      false)
729         MUX_CFG(DA830, EMA_D_10,        15,     0,      0xf,    1,      false)
730         MUX_CFG(DA830, EMA_D_11,        15,     4,      0xf,    1,      false)
731         MUX_CFG(DA830, EMA_D_12,        15,     8,      0xf,    1,      false)
732         MUX_CFG(DA830, EMA_D_13,        15,     12,     0xf,    1,      false)
733         MUX_CFG(DA830, EMA_D_14,        15,     16,     0xf,    1,      false)
734         MUX_CFG(DA830, EMA_D_15,        15,     20,     0xf,    1,      false)
735         MUX_CFG(DA830, EMA_A_0,         15,     24,     0xf,    1,      false)
736         MUX_CFG(DA830, EMA_A_1,         15,     28,     0xf,    1,      false)
737         MUX_CFG(DA830, UHPI_HD_10,      15,     0,      0xf,    2,      false)
738         MUX_CFG(DA830, UHPI_HD_11,      15,     4,      0xf,    2,      false)
739         MUX_CFG(DA830, UHPI_HD_12,      15,     8,      0xf,    2,      false)
740         MUX_CFG(DA830, UHPI_HD_13,      15,     12,     0xf,    2,      false)
741         MUX_CFG(DA830, UHPI_HD_14,      15,     16,     0xf,    2,      false)
742         MUX_CFG(DA830, UHPI_HD_15,      15,     20,     0xf,    2,      false)
743         MUX_CFG(DA830, LCD_D_7,         15,     24,     0xf,    2,      false)
744         MUX_CFG(DA830, MMCSD_CLK,       15,     28,     0xf,    2,      false)
745         MUX_CFG(DA830, LCD_D_10,        15,     0,      0xf,    4,      false)
746         MUX_CFG(DA830, LCD_D_11,        15,     4,      0xf,    4,      false)
747         MUX_CFG(DA830, LCD_D_12,        15,     8,      0xf,    4,      false)
748         MUX_CFG(DA830, LCD_D_13,        15,     12,     0xf,    4,      false)
749         MUX_CFG(DA830, LCD_D_14,        15,     16,     0xf,    4,      false)
750         MUX_CFG(DA830, LCD_D_15,        15,     20,     0xf,    4,      false)
751         MUX_CFG(DA830, UHPI_HCNTL0,     15,     28,     0xf,    4,      false)
752         MUX_CFG(DA830, GPIO0_10,        15,     0,      0xf,    8,      false)
753         MUX_CFG(DA830, GPIO0_11,        15,     4,      0xf,    8,      false)
754         MUX_CFG(DA830, GPIO0_12,        15,     8,      0xf,    8,      false)
755         MUX_CFG(DA830, GPIO0_13,        15,     12,     0xf,    8,      false)
756         MUX_CFG(DA830, GPIO0_14,        15,     16,     0xf,    8,      false)
757         MUX_CFG(DA830, GPIO0_15,        15,     20,     0xf,    8,      false)
758         MUX_CFG(DA830, GPIO1_0,         15,     24,     0xf,    8,      false)
759         MUX_CFG(DA830, GPIO1_1,         15,     28,     0xf,    8,      false)
760         MUX_CFG(DA830, EMA_A_2,         16,     0,      0xf,    1,      false)
761         MUX_CFG(DA830, EMA_A_3,         16,     4,      0xf,    1,      false)
762         MUX_CFG(DA830, EMA_A_4,         16,     8,      0xf,    1,      false)
763         MUX_CFG(DA830, EMA_A_5,         16,     12,     0xf,    1,      false)
764         MUX_CFG(DA830, EMA_A_6,         16,     16,     0xf,    1,      false)
765         MUX_CFG(DA830, EMA_A_7,         16,     20,     0xf,    1,      false)
766         MUX_CFG(DA830, EMA_A_8,         16,     24,     0xf,    1,      false)
767         MUX_CFG(DA830, EMA_A_9,         16,     28,     0xf,    1,      false)
768         MUX_CFG(DA830, MMCSD_CMD,       16,     0,      0xf,    2,      false)
769         MUX_CFG(DA830, LCD_D_6,         16,     4,      0xf,    2,      false)
770         MUX_CFG(DA830, LCD_D_3,         16,     8,      0xf,    2,      false)
771         MUX_CFG(DA830, LCD_D_2,         16,     12,     0xf,    2,      false)
772         MUX_CFG(DA830, LCD_D_1,         16,     16,     0xf,    2,      false)
773         MUX_CFG(DA830, LCD_D_0,         16,     20,     0xf,    2,      false)
774         MUX_CFG(DA830, LCD_PCLK,        16,     24,     0xf,    2,      false)
775         MUX_CFG(DA830, LCD_HSYNC,       16,     28,     0xf,    2,      false)
776         MUX_CFG(DA830, UHPI_HCNTL1,     16,     0,      0xf,    4,      false)
777         MUX_CFG(DA830, GPIO1_2,         16,     0,      0xf,    8,      false)
778         MUX_CFG(DA830, GPIO1_3,         16,     4,      0xf,    8,      false)
779         MUX_CFG(DA830, GPIO1_4,         16,     8,      0xf,    8,      false)
780         MUX_CFG(DA830, GPIO1_5,         16,     12,     0xf,    8,      false)
781         MUX_CFG(DA830, GPIO1_6,         16,     16,     0xf,    8,      false)
782         MUX_CFG(DA830, GPIO1_7,         16,     20,     0xf,    8,      false)
783         MUX_CFG(DA830, GPIO1_8,         16,     24,     0xf,    8,      false)
784         MUX_CFG(DA830, GPIO1_9,         16,     28,     0xf,    8,      false)
785         MUX_CFG(DA830, EMA_A_10,        17,     0,      0xf,    1,      false)
786         MUX_CFG(DA830, EMA_A_11,        17,     4,      0xf,    1,      false)
787         MUX_CFG(DA830, EMA_A_12,        17,     8,      0xf,    1,      false)
788         MUX_CFG(DA830, EMA_BA_1,        17,     12,     0xf,    1,      false)
789         MUX_CFG(DA830, EMA_BA_0,        17,     16,     0xf,    1,      false)
790         MUX_CFG(DA830, EMA_CLK,         17,     20,     0xf,    1,      false)
791         MUX_CFG(DA830, EMA_SDCKE,       17,     24,     0xf,    1,      false)
792         MUX_CFG(DA830, NEMA_CAS,        17,     28,     0xf,    1,      false)
793         MUX_CFG(DA830, LCD_VSYNC,       17,     0,      0xf,    2,      false)
794         MUX_CFG(DA830, NLCD_AC_ENB_CS,  17,     4,      0xf,    2,      false)
795         MUX_CFG(DA830, LCD_MCLK,        17,     8,      0xf,    2,      false)
796         MUX_CFG(DA830, LCD_D_5,         17,     12,     0xf,    2,      false)
797         MUX_CFG(DA830, LCD_D_4,         17,     16,     0xf,    2,      false)
798         MUX_CFG(DA830, OBSCLK,          17,     20,     0xf,    2,      false)
799         MUX_CFG(DA830, NEMA_CS_4,       17,     28,     0xf,    2,      false)
800         MUX_CFG(DA830, UHPI_HHWIL,      17,     12,     0xf,    4,      false)
801         MUX_CFG(DA830, AHCLKR2,         17,     20,     0xf,    4,      false)
802         MUX_CFG(DA830, GPIO1_10,        17,     0,      0xf,    8,      false)
803         MUX_CFG(DA830, GPIO1_11,        17,     4,      0xf,    8,      false)
804         MUX_CFG(DA830, GPIO1_12,        17,     8,      0xf,    8,      false)
805         MUX_CFG(DA830, GPIO1_13,        17,     12,     0xf,    8,      false)
806         MUX_CFG(DA830, GPIO1_14,        17,     16,     0xf,    8,      false)
807         MUX_CFG(DA830, GPIO1_15,        17,     20,     0xf,    8,      false)
808         MUX_CFG(DA830, GPIO2_0,         17,     24,     0xf,    8,      false)
809         MUX_CFG(DA830, GPIO2_1,         17,     28,     0xf,    8,      false)
810         MUX_CFG(DA830, NEMA_RAS,        18,     0,      0xf,    1,      false)
811         MUX_CFG(DA830, NEMA_WE,         18,     4,      0xf,    1,      false)
812         MUX_CFG(DA830, NEMA_CS_0,       18,     8,      0xf,    1,      false)
813         MUX_CFG(DA830, NEMA_CS_2,       18,     12,     0xf,    1,      false)
814         MUX_CFG(DA830, NEMA_CS_3,       18,     16,     0xf,    1,      false)
815         MUX_CFG(DA830, NEMA_OE,         18,     20,     0xf,    1,      false)
816         MUX_CFG(DA830, NEMA_WE_DQM_1,   18,     24,     0xf,    1,      false)
817         MUX_CFG(DA830, NEMA_WE_DQM_0,   18,     28,     0xf,    1,      false)
818         MUX_CFG(DA830, NEMA_CS_5,       18,     0,      0xf,    2,      false)
819         MUX_CFG(DA830, UHPI_HRNW,       18,     4,      0xf,    2,      false)
820         MUX_CFG(DA830, NUHPI_HAS,       18,     8,      0xf,    2,      false)
821         MUX_CFG(DA830, NUHPI_HCS,       18,     12,     0xf,    2,      false)
822         MUX_CFG(DA830, NUHPI_HDS1,      18,     20,     0xf,    2,      false)
823         MUX_CFG(DA830, NUHPI_HDS2,      18,     24,     0xf,    2,      false)
824         MUX_CFG(DA830, NUHPI_HINT,      18,     28,     0xf,    2,      false)
825         MUX_CFG(DA830, AXR0_12,         18,     4,      0xf,    4,      false)
826         MUX_CFG(DA830, AMUTE2,          18,     16,     0xf,    4,      false)
827         MUX_CFG(DA830, AXR0_13,         18,     20,     0xf,    4,      false)
828         MUX_CFG(DA830, AXR0_14,         18,     24,     0xf,    4,      false)
829         MUX_CFG(DA830, AXR0_15,         18,     28,     0xf,    4,      false)
830         MUX_CFG(DA830, GPIO2_2,         18,     0,      0xf,    8,      false)
831         MUX_CFG(DA830, GPIO2_3,         18,     4,      0xf,    8,      false)
832         MUX_CFG(DA830, GPIO2_4,         18,     8,      0xf,    8,      false)
833         MUX_CFG(DA830, GPIO2_5,         18,     12,     0xf,    8,      false)
834         MUX_CFG(DA830, GPIO2_6,         18,     16,     0xf,    8,      false)
835         MUX_CFG(DA830, GPIO2_7,         18,     20,     0xf,    8,      false)
836         MUX_CFG(DA830, GPIO2_8,         18,     24,     0xf,    8,      false)
837         MUX_CFG(DA830, GPIO2_9,         18,     28,     0xf,    8,      false)
838         MUX_CFG(DA830, EMA_WAIT_0,      19,     0,      0xf,    1,      false)
839         MUX_CFG(DA830, NUHPI_HRDY,      19,     0,      0xf,    2,      false)
840         MUX_CFG(DA830, GPIO2_10,        19,     0,      0xf,    8,      false)
841 #endif
842 };
843
844 const short da830_emif25_pins[] __initdata = {
845         DA830_EMA_D_0, DA830_EMA_D_1, DA830_EMA_D_2, DA830_EMA_D_3,
846         DA830_EMA_D_4, DA830_EMA_D_5, DA830_EMA_D_6, DA830_EMA_D_7,
847         DA830_EMA_D_8, DA830_EMA_D_9, DA830_EMA_D_10, DA830_EMA_D_11,
848         DA830_EMA_D_12, DA830_EMA_D_13, DA830_EMA_D_14, DA830_EMA_D_15,
849         DA830_EMA_A_0, DA830_EMA_A_1, DA830_EMA_A_2, DA830_EMA_A_3,
850         DA830_EMA_A_4, DA830_EMA_A_5, DA830_EMA_A_6, DA830_EMA_A_7,
851         DA830_EMA_A_8, DA830_EMA_A_9, DA830_EMA_A_10, DA830_EMA_A_11,
852         DA830_EMA_A_12, DA830_EMA_BA_0, DA830_EMA_BA_1, DA830_EMA_CLK,
853         DA830_EMA_SDCKE, DA830_NEMA_CS_4, DA830_NEMA_CS_5, DA830_NEMA_WE,
854         DA830_NEMA_CS_0, DA830_NEMA_CS_2, DA830_NEMA_CS_3, DA830_NEMA_OE,
855         DA830_NEMA_WE_DQM_1, DA830_NEMA_WE_DQM_0, DA830_EMA_WAIT_0,
856         -1
857 };
858
859 const short da830_spi0_pins[] __initdata = {
860         DA830_SPI0_SOMI_0, DA830_SPI0_SIMO_0, DA830_SPI0_CLK, DA830_NSPI0_ENA,
861         DA830_NSPI0_SCS_0,
862         -1
863 };
864
865 const short da830_spi1_pins[] __initdata = {
866         DA830_SPI1_SOMI_0, DA830_SPI1_SIMO_0, DA830_SPI1_CLK, DA830_NSPI1_ENA,
867         DA830_NSPI1_SCS_0,
868         -1
869 };
870
871 const short da830_mmc_sd_pins[] __initdata = {
872         DA830_MMCSD_DAT_0, DA830_MMCSD_DAT_1, DA830_MMCSD_DAT_2,
873         DA830_MMCSD_DAT_3, DA830_MMCSD_DAT_4, DA830_MMCSD_DAT_5,
874         DA830_MMCSD_DAT_6, DA830_MMCSD_DAT_7, DA830_MMCSD_CLK,
875         DA830_MMCSD_CMD,
876         -1
877 };
878
879 const short da830_uart0_pins[] __initdata = {
880         DA830_NUART0_CTS, DA830_NUART0_RTS, DA830_UART0_RXD, DA830_UART0_TXD,
881         -1
882 };
883
884 const short da830_uart1_pins[] __initdata = {
885         DA830_UART1_RXD, DA830_UART1_TXD,
886         -1
887 };
888
889 const short da830_uart2_pins[] __initdata = {
890         DA830_UART2_RXD, DA830_UART2_TXD,
891         -1
892 };
893
894 const short da830_usb20_pins[] __initdata = {
895         DA830_USB0_DRVVBUS, DA830_USB_REFCLKIN,
896         -1
897 };
898
899 const short da830_usb11_pins[] __initdata = {
900         DA830_USB_REFCLKIN,
901         -1
902 };
903
904 const short da830_uhpi_pins[] __initdata = {
905         DA830_UHPI_HD_0, DA830_UHPI_HD_1, DA830_UHPI_HD_2, DA830_UHPI_HD_3,
906         DA830_UHPI_HD_4, DA830_UHPI_HD_5, DA830_UHPI_HD_6, DA830_UHPI_HD_7,
907         DA830_UHPI_HD_8, DA830_UHPI_HD_9, DA830_UHPI_HD_10, DA830_UHPI_HD_11,
908         DA830_UHPI_HD_12, DA830_UHPI_HD_13, DA830_UHPI_HD_14, DA830_UHPI_HD_15,
909         DA830_UHPI_HCNTL0, DA830_UHPI_HCNTL1, DA830_UHPI_HHWIL, DA830_UHPI_HRNW,
910         DA830_NUHPI_HAS, DA830_NUHPI_HCS, DA830_NUHPI_HDS1, DA830_NUHPI_HDS2,
911         DA830_NUHPI_HINT, DA830_NUHPI_HRDY,
912         -1
913 };
914
915 const short da830_cpgmac_pins[] __initdata = {
916         DA830_RMII_TXD_0, DA830_RMII_TXD_1, DA830_RMII_TXEN, DA830_RMII_CRS_DV,
917         DA830_RMII_RXD_0, DA830_RMII_RXD_1, DA830_RMII_RXER, DA830_MDIO_CLK,
918         DA830_MDIO_D,
919         -1
920 };
921
922 const short da830_emif3c_pins[] __initdata = {
923         DA830_EMB_SDCKE, DA830_EMB_CLK_GLUE, DA830_EMB_CLK, DA830_NEMB_CS_0,
924         DA830_NEMB_CAS, DA830_NEMB_RAS, DA830_NEMB_WE, DA830_EMB_BA_1,
925         DA830_EMB_BA_0, DA830_EMB_A_0, DA830_EMB_A_1, DA830_EMB_A_2,
926         DA830_EMB_A_3, DA830_EMB_A_4, DA830_EMB_A_5, DA830_EMB_A_6,
927         DA830_EMB_A_7, DA830_EMB_A_8, DA830_EMB_A_9, DA830_EMB_A_10,
928         DA830_EMB_A_11, DA830_EMB_A_12, DA830_NEMB_WE_DQM_3,
929         DA830_NEMB_WE_DQM_2, DA830_EMB_D_0, DA830_EMB_D_1, DA830_EMB_D_2,
930         DA830_EMB_D_3, DA830_EMB_D_4, DA830_EMB_D_5, DA830_EMB_D_6,
931         DA830_EMB_D_7, DA830_EMB_D_8, DA830_EMB_D_9, DA830_EMB_D_10,
932         DA830_EMB_D_11, DA830_EMB_D_12, DA830_EMB_D_13, DA830_EMB_D_14,
933         DA830_EMB_D_15, DA830_EMB_D_16, DA830_EMB_D_17, DA830_EMB_D_18,
934         DA830_EMB_D_19, DA830_EMB_D_20, DA830_EMB_D_21, DA830_EMB_D_22,
935         DA830_EMB_D_23, DA830_EMB_D_24, DA830_EMB_D_25, DA830_EMB_D_26,
936         DA830_EMB_D_27, DA830_EMB_D_28, DA830_EMB_D_29, DA830_EMB_D_30,
937         DA830_EMB_D_31, DA830_NEMB_WE_DQM_1, DA830_NEMB_WE_DQM_0,
938         -1
939 };
940
941 const short da830_mcasp0_pins[] __initdata = {
942         DA830_AHCLKX0, DA830_ACLKX0, DA830_AFSX0,
943         DA830_AHCLKR0, DA830_ACLKR0, DA830_AFSR0, DA830_AMUTE0,
944         DA830_AXR0_0, DA830_AXR0_1, DA830_AXR0_2, DA830_AXR0_3,
945         DA830_AXR0_4, DA830_AXR0_5, DA830_AXR0_6, DA830_AXR0_7,
946         DA830_AXR0_8, DA830_AXR0_9, DA830_AXR0_10, DA830_AXR0_11,
947         DA830_AXR0_12, DA830_AXR0_13, DA830_AXR0_14, DA830_AXR0_15,
948         -1
949 };
950
951 const short da830_mcasp1_pins[] __initdata = {
952         DA830_AHCLKX1, DA830_ACLKX1, DA830_AFSX1,
953         DA830_AHCLKR1, DA830_ACLKR1, DA830_AFSR1, DA830_AMUTE1,
954         DA830_AXR1_0, DA830_AXR1_1, DA830_AXR1_2, DA830_AXR1_3,
955         DA830_AXR1_4, DA830_AXR1_5, DA830_AXR1_6, DA830_AXR1_7,
956         DA830_AXR1_8, DA830_AXR1_9, DA830_AXR1_10, DA830_AXR1_11,
957         -1
958 };
959
960 const short da830_mcasp2_pins[] __initdata = {
961         DA830_AHCLKX2, DA830_ACLKX2, DA830_AFSX2,
962         DA830_AHCLKR2, DA830_ACLKR2, DA830_AFSR2, DA830_AMUTE2,
963         DA830_AXR2_0, DA830_AXR2_1, DA830_AXR2_2, DA830_AXR2_3,
964         -1
965 };
966
967 const short da830_i2c0_pins[] __initdata = {
968         DA830_I2C0_SDA, DA830_I2C0_SCL,
969         -1
970 };
971
972 const short da830_i2c1_pins[] __initdata = {
973         DA830_I2C1_SCL, DA830_I2C1_SDA,
974         -1
975 };
976
977 const short da830_lcdcntl_pins[] __initdata = {
978         DA830_LCD_D_0, DA830_LCD_D_1, DA830_LCD_D_2, DA830_LCD_D_3,
979         DA830_LCD_D_4, DA830_LCD_D_5, DA830_LCD_D_6, DA830_LCD_D_7,
980         DA830_LCD_D_8, DA830_LCD_D_9, DA830_LCD_D_10, DA830_LCD_D_11,
981         DA830_LCD_D_12, DA830_LCD_D_13, DA830_LCD_D_14, DA830_LCD_D_15,
982         DA830_LCD_PCLK, DA830_LCD_HSYNC, DA830_LCD_VSYNC, DA830_NLCD_AC_ENB_CS,
983         DA830_LCD_MCLK,
984         -1
985 };
986
987 const short da830_pwm_pins[] __initdata = {
988         DA830_ECAP0_APWM0, DA830_ECAP1_APWM1, DA830_EPWM0B, DA830_EPWM0A,
989         DA830_EPWMSYNCI, DA830_EPWMSYNC0, DA830_ECAP2_APWM2, DA830_EHRPWMGLUETZ,
990         DA830_EPWM2B, DA830_EPWM2A, DA830_EPWM1B, DA830_EPWM1A,
991         -1
992 };
993
994 const short da830_ecap0_pins[] __initdata = {
995         DA830_ECAP0_APWM0,
996         -1
997 };
998
999 const short da830_ecap1_pins[] __initdata = {
1000         DA830_ECAP1_APWM1,
1001         -1
1002 };
1003
1004 const short da830_ecap2_pins[] __initdata = {
1005         DA830_ECAP2_APWM2,
1006         -1
1007 };
1008
1009 const short da830_eqep0_pins[] __initdata = {
1010         DA830_EQEP0I, DA830_EQEP0S, DA830_EQEP0A, DA830_EQEP0B,
1011         -1
1012 };
1013
1014 const short da830_eqep1_pins[] __initdata = {
1015         DA830_EQEP1I, DA830_EQEP1S, DA830_EQEP1A, DA830_EQEP1B,
1016         -1
1017 };
1018
1019 /* FIQ are pri 0-1; otherwise 2-7, with 7 lowest priority */
1020 static u8 da830_default_priorities[DA830_N_CP_INTC_IRQ] = {
1021         [IRQ_DA8XX_COMMTX]              = 7,
1022         [IRQ_DA8XX_COMMRX]              = 7,
1023         [IRQ_DA8XX_NINT]                = 7,
1024         [IRQ_DA8XX_EVTOUT0]             = 7,
1025         [IRQ_DA8XX_EVTOUT1]             = 7,
1026         [IRQ_DA8XX_EVTOUT2]             = 7,
1027         [IRQ_DA8XX_EVTOUT3]             = 7,
1028         [IRQ_DA8XX_EVTOUT4]             = 7,
1029         [IRQ_DA8XX_EVTOUT5]             = 7,
1030         [IRQ_DA8XX_EVTOUT6]             = 7,
1031         [IRQ_DA8XX_EVTOUT6]             = 7,
1032         [IRQ_DA8XX_EVTOUT7]             = 7,
1033         [IRQ_DA8XX_CCINT0]              = 7,
1034         [IRQ_DA8XX_CCERRINT]            = 7,
1035         [IRQ_DA8XX_TCERRINT0]           = 7,
1036         [IRQ_DA8XX_AEMIFINT]            = 7,
1037         [IRQ_DA8XX_I2CINT0]             = 7,
1038         [IRQ_DA8XX_MMCSDINT0]           = 7,
1039         [IRQ_DA8XX_MMCSDINT1]           = 7,
1040         [IRQ_DA8XX_ALLINT0]             = 7,
1041         [IRQ_DA8XX_RTC]                 = 7,
1042         [IRQ_DA8XX_SPINT0]              = 7,
1043         [IRQ_DA8XX_TINT12_0]            = 7,
1044         [IRQ_DA8XX_TINT34_0]            = 7,
1045         [IRQ_DA8XX_TINT12_1]            = 7,
1046         [IRQ_DA8XX_TINT34_1]            = 7,
1047         [IRQ_DA8XX_UARTINT0]            = 7,
1048         [IRQ_DA8XX_KEYMGRINT]           = 7,
1049         [IRQ_DA8XX_SECINT]              = 7,
1050         [IRQ_DA8XX_SECKEYERR]           = 7,
1051         [IRQ_DA830_MPUERR]              = 7,
1052         [IRQ_DA830_IOPUERR]             = 7,
1053         [IRQ_DA830_BOOTCFGERR]          = 7,
1054         [IRQ_DA8XX_CHIPINT0]            = 7,
1055         [IRQ_DA8XX_CHIPINT1]            = 7,
1056         [IRQ_DA8XX_CHIPINT2]            = 7,
1057         [IRQ_DA8XX_CHIPINT3]            = 7,
1058         [IRQ_DA8XX_TCERRINT1]           = 7,
1059         [IRQ_DA8XX_C0_RX_THRESH_PULSE]  = 7,
1060         [IRQ_DA8XX_C0_RX_PULSE]         = 7,
1061         [IRQ_DA8XX_C0_TX_PULSE]         = 7,
1062         [IRQ_DA8XX_C0_MISC_PULSE]       = 7,
1063         [IRQ_DA8XX_C1_RX_THRESH_PULSE]  = 7,
1064         [IRQ_DA8XX_C1_RX_PULSE]         = 7,
1065         [IRQ_DA8XX_C1_TX_PULSE]         = 7,
1066         [IRQ_DA8XX_C1_MISC_PULSE]       = 7,
1067         [IRQ_DA8XX_MEMERR]              = 7,
1068         [IRQ_DA8XX_GPIO0]               = 7,
1069         [IRQ_DA8XX_GPIO1]               = 7,
1070         [IRQ_DA8XX_GPIO2]               = 7,
1071         [IRQ_DA8XX_GPIO3]               = 7,
1072         [IRQ_DA8XX_GPIO4]               = 7,
1073         [IRQ_DA8XX_GPIO5]               = 7,
1074         [IRQ_DA8XX_GPIO6]               = 7,
1075         [IRQ_DA8XX_GPIO7]               = 7,
1076         [IRQ_DA8XX_GPIO8]               = 7,
1077         [IRQ_DA8XX_I2CINT1]             = 7,
1078         [IRQ_DA8XX_LCDINT]              = 7,
1079         [IRQ_DA8XX_UARTINT1]            = 7,
1080         [IRQ_DA8XX_MCASPINT]            = 7,
1081         [IRQ_DA8XX_ALLINT1]             = 7,
1082         [IRQ_DA8XX_SPINT1]              = 7,
1083         [IRQ_DA8XX_UHPI_INT1]           = 7,
1084         [IRQ_DA8XX_USB_INT]             = 7,
1085         [IRQ_DA8XX_IRQN]                = 7,
1086         [IRQ_DA8XX_RWAKEUP]             = 7,
1087         [IRQ_DA8XX_UARTINT2]            = 7,
1088         [IRQ_DA8XX_DFTSSINT]            = 7,
1089         [IRQ_DA8XX_EHRPWM0]             = 7,
1090         [IRQ_DA8XX_EHRPWM0TZ]           = 7,
1091         [IRQ_DA8XX_EHRPWM1]             = 7,
1092         [IRQ_DA8XX_EHRPWM1TZ]           = 7,
1093         [IRQ_DA830_EHRPWM2]             = 7,
1094         [IRQ_DA830_EHRPWM2TZ]           = 7,
1095         [IRQ_DA8XX_ECAP0]               = 7,
1096         [IRQ_DA8XX_ECAP1]               = 7,
1097         [IRQ_DA8XX_ECAP2]               = 7,
1098         [IRQ_DA830_EQEP0]               = 7,
1099         [IRQ_DA830_EQEP1]               = 7,
1100         [IRQ_DA830_T12CMPINT0_0]        = 7,
1101         [IRQ_DA830_T12CMPINT1_0]        = 7,
1102         [IRQ_DA830_T12CMPINT2_0]        = 7,
1103         [IRQ_DA830_T12CMPINT3_0]        = 7,
1104         [IRQ_DA830_T12CMPINT4_0]        = 7,
1105         [IRQ_DA830_T12CMPINT5_0]        = 7,
1106         [IRQ_DA830_T12CMPINT6_0]        = 7,
1107         [IRQ_DA830_T12CMPINT7_0]        = 7,
1108         [IRQ_DA830_T12CMPINT0_1]        = 7,
1109         [IRQ_DA830_T12CMPINT1_1]        = 7,
1110         [IRQ_DA830_T12CMPINT2_1]        = 7,
1111         [IRQ_DA830_T12CMPINT3_1]        = 7,
1112         [IRQ_DA830_T12CMPINT4_1]        = 7,
1113         [IRQ_DA830_T12CMPINT5_1]        = 7,
1114         [IRQ_DA830_T12CMPINT6_1]        = 7,
1115         [IRQ_DA830_T12CMPINT7_1]        = 7,
1116         [IRQ_DA8XX_ARMCLKSTOPREQ]       = 7,
1117 };
1118
1119 static struct map_desc da830_io_desc[] = {
1120         {
1121                 .virtual        = IO_VIRT,
1122                 .pfn            = __phys_to_pfn(IO_PHYS),
1123                 .length         = IO_SIZE,
1124                 .type           = MT_DEVICE
1125         },
1126         {
1127                 .virtual        = DA8XX_CP_INTC_VIRT,
1128                 .pfn            = __phys_to_pfn(DA8XX_CP_INTC_BASE),
1129                 .length         = DA8XX_CP_INTC_SIZE,
1130                 .type           = MT_DEVICE
1131         },
1132 };
1133
1134 static void __iomem *da830_psc_bases[] = {
1135         IO_ADDRESS(DA8XX_PSC0_BASE),
1136         IO_ADDRESS(DA8XX_PSC1_BASE),
1137 };
1138
1139 /* Contents of JTAG ID register used to identify exact cpu type */
1140 static struct davinci_id da830_ids[] = {
1141         {
1142                 .variant        = 0x0,
1143                 .part_no        = 0xb7df,
1144                 .manufacturer   = 0x017,        /* 0x02f >> 1 */
1145                 .cpu_id         = DAVINCI_CPU_ID_DA830,
1146                 .name           = "da830/omap l137",
1147         },
1148 };
1149
1150 static struct davinci_timer_instance da830_timer_instance[2] = {
1151         {
1152                 .base           = IO_ADDRESS(DA8XX_TIMER64P0_BASE),
1153                 .bottom_irq     = IRQ_DA8XX_TINT12_0,
1154                 .top_irq        = IRQ_DA8XX_TINT34_0,
1155                 .cmp_off        = DA830_CMP12_0,
1156                 .cmp_irq        = IRQ_DA830_T12CMPINT0_0,
1157         },
1158         {
1159                 .base           = IO_ADDRESS(DA8XX_TIMER64P1_BASE),
1160                 .bottom_irq     = IRQ_DA8XX_TINT12_1,
1161                 .top_irq        = IRQ_DA8XX_TINT34_1,
1162                 .cmp_off        = DA830_CMP12_0,
1163                 .cmp_irq        = IRQ_DA830_T12CMPINT0_1,
1164         },
1165 };
1166
1167 /*
1168  * T0_BOT: Timer 0, bottom              : Used for clock_event & clocksource
1169  * T0_TOP: Timer 0, top                 : Used by DSP
1170  * T1_BOT, T1_TOP: Timer 1, bottom & top: Used for watchdog timer
1171  */
1172 static struct davinci_timer_info da830_timer_info = {
1173         .timers         = da830_timer_instance,
1174         .clockevent_id  = T0_BOT,
1175         .clocksource_id = T0_BOT,
1176 };
1177
1178 static struct davinci_soc_info davinci_soc_info_da830 = {
1179         .io_desc                = da830_io_desc,
1180         .io_desc_num            = ARRAY_SIZE(da830_io_desc),
1181         .jtag_id_base           = IO_ADDRESS(DA8XX_JTAG_ID_REG),
1182         .ids                    = da830_ids,
1183         .ids_num                = ARRAY_SIZE(da830_ids),
1184         .cpu_clks               = da830_clks,
1185         .psc_bases              = da830_psc_bases,
1186         .psc_bases_num          = ARRAY_SIZE(da830_psc_bases),
1187         .pinmux_base            = IO_ADDRESS(DA8XX_BOOT_CFG_BASE + 0x120),
1188         .pinmux_pins            = da830_pins,
1189         .pinmux_pins_num        = ARRAY_SIZE(da830_pins),
1190         .intc_base              = (void __iomem *)DA8XX_CP_INTC_VIRT,
1191         .intc_type              = DAVINCI_INTC_TYPE_CP_INTC,
1192         .intc_irq_prios         = da830_default_priorities,
1193         .intc_irq_num           = DA830_N_CP_INTC_IRQ,
1194         .timer_info             = &da830_timer_info,
1195         .gpio_base              = IO_ADDRESS(DA8XX_GPIO_BASE),
1196         .gpio_num               = 128,
1197         .gpio_irq               = IRQ_DA8XX_GPIO0,
1198         .serial_dev             = &da8xx_serial_device,
1199         .emac_pdata             = &da8xx_emac_pdata,
1200 };
1201
1202 void __init da830_init(void)
1203 {
1204         davinci_common_init(&davinci_soc_info_da830);
1205 }