GNU Linux-libre 5.19-rc6-gnu
[releases.git] / arch / arm / mach-davinci / mux.h
1 /*
2  * Pin-multiplex helper macros for TI DaVinci family devices
3  *
4  * Author: Vladimir Barinov, MontaVista Software, Inc. <source@mvista.com>
5  *
6  * 2007 (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  * Copyright (C) 2008 Texas Instruments.
12  */
13 #ifndef _MACH_DAVINCI_MUX_H_
14 #define _MACH_DAVINCI_MUX_H_
15
16 struct mux_config {
17         const char *name;
18         const char *mux_reg_name;
19         const unsigned char mux_reg;
20         const unsigned char mask_offset;
21         const unsigned char mask;
22         const unsigned char mode;
23         bool debug;
24 };
25
26 enum davinci_dm644x_index {
27         /* ATA and HDDIR functions */
28         DM644X_HDIREN,
29         DM644X_ATAEN,
30         DM644X_ATAEN_DISABLE,
31
32         /* HPI functions */
33         DM644X_HPIEN_DISABLE,
34
35         /* AEAW functions */
36         DM644X_AEAW,
37         DM644X_AEAW0,
38         DM644X_AEAW1,
39         DM644X_AEAW2,
40         DM644X_AEAW3,
41         DM644X_AEAW4,
42
43         /* Memory Stick */
44         DM644X_MSTK,
45
46         /* I2C */
47         DM644X_I2C,
48
49         /* ASP function */
50         DM644X_MCBSP,
51
52         /* UART1 */
53         DM644X_UART1,
54
55         /* UART2 */
56         DM644X_UART2,
57
58         /* PWM0 */
59         DM644X_PWM0,
60
61         /* PWM1 */
62         DM644X_PWM1,
63
64         /* PWM2 */
65         DM644X_PWM2,
66
67         /* VLYNQ function */
68         DM644X_VLYNQEN,
69         DM644X_VLSCREN,
70         DM644X_VLYNQWD,
71
72         /* EMAC and MDIO function */
73         DM644X_EMACEN,
74
75         /* GPIO3V[0:16] pins */
76         DM644X_GPIO3V,
77
78         /* GPIO pins */
79         DM644X_GPIO0,
80         DM644X_GPIO3,
81         DM644X_GPIO43_44,
82         DM644X_GPIO46_47,
83
84         /* VPBE */
85         DM644X_RGB666,
86
87         /* LCD */
88         DM644X_LOEEN,
89         DM644X_LFLDEN,
90 };
91
92 enum davinci_dm646x_index {
93         /* ATA function */
94         DM646X_ATAEN,
95
96         /* AUDIO Clock */
97         DM646X_AUDCK1,
98         DM646X_AUDCK0,
99
100         /* CRGEN Control */
101         DM646X_CRGMUX,
102
103         /* VPIF Control */
104         DM646X_STSOMUX_DISABLE,
105         DM646X_STSIMUX_DISABLE,
106         DM646X_PTSOMUX_DISABLE,
107         DM646X_PTSIMUX_DISABLE,
108
109         /* TSIF Control */
110         DM646X_STSOMUX,
111         DM646X_STSIMUX,
112         DM646X_PTSOMUX_PARALLEL,
113         DM646X_PTSIMUX_PARALLEL,
114         DM646X_PTSOMUX_SERIAL,
115         DM646X_PTSIMUX_SERIAL,
116 };
117
118 enum davinci_dm355_index {
119         /* MMC/SD 0 */
120         DM355_MMCSD0,
121
122         /* MMC/SD 1 */
123         DM355_SD1_CLK,
124         DM355_SD1_CMD,
125         DM355_SD1_DATA3,
126         DM355_SD1_DATA2,
127         DM355_SD1_DATA1,
128         DM355_SD1_DATA0,
129
130         /* I2C */
131         DM355_I2C_SDA,
132         DM355_I2C_SCL,
133
134         /* ASP0 function */
135         DM355_MCBSP0_BDX,
136         DM355_MCBSP0_X,
137         DM355_MCBSP0_BFSX,
138         DM355_MCBSP0_BDR,
139         DM355_MCBSP0_R,
140         DM355_MCBSP0_BFSR,
141
142         /* SPI0 */
143         DM355_SPI0_SDI,
144         DM355_SPI0_SDENA0,
145         DM355_SPI0_SDENA1,
146
147         /* IRQ muxing */
148         DM355_INT_EDMA_CC,
149         DM355_INT_EDMA_TC0_ERR,
150         DM355_INT_EDMA_TC1_ERR,
151
152         /* EDMA event muxing */
153         DM355_EVT8_ASP1_TX,
154         DM355_EVT9_ASP1_RX,
155         DM355_EVT26_MMC0_RX,
156
157         /* Video Out */
158         DM355_VOUT_FIELD,
159         DM355_VOUT_FIELD_G70,
160         DM355_VOUT_HVSYNC,
161         DM355_VOUT_COUTL_EN,
162         DM355_VOUT_COUTH_EN,
163
164         /* Video In Pin Mux */
165         DM355_VIN_PCLK,
166         DM355_VIN_CAM_WEN,
167         DM355_VIN_CAM_VD,
168         DM355_VIN_CAM_HD,
169         DM355_VIN_YIN_EN,
170         DM355_VIN_CINL_EN,
171         DM355_VIN_CINH_EN,
172 };
173
174 enum davinci_dm365_index {
175         /* MMC/SD 0 */
176         DM365_MMCSD0,
177
178         /* MMC/SD 1 */
179         DM365_SD1_CLK,
180         DM365_SD1_CMD,
181         DM365_SD1_DATA3,
182         DM365_SD1_DATA2,
183         DM365_SD1_DATA1,
184         DM365_SD1_DATA0,
185
186         /* I2C */
187         DM365_I2C_SDA,
188         DM365_I2C_SCL,
189
190         /* AEMIF */
191         DM365_AEMIF_AR_A14,
192         DM365_AEMIF_AR_BA0,
193         DM365_AEMIF_A3,
194         DM365_AEMIF_A7,
195         DM365_AEMIF_D15_8,
196         DM365_AEMIF_CE0,
197         DM365_AEMIF_CE1,
198         DM365_AEMIF_WE_OE,
199
200         /* ASP0 function */
201         DM365_MCBSP0_BDX,
202         DM365_MCBSP0_X,
203         DM365_MCBSP0_BFSX,
204         DM365_MCBSP0_BDR,
205         DM365_MCBSP0_R,
206         DM365_MCBSP0_BFSR,
207
208         /* SPI0 */
209         DM365_SPI0_SCLK,
210         DM365_SPI0_SDI,
211         DM365_SPI0_SDO,
212         DM365_SPI0_SDENA0,
213         DM365_SPI0_SDENA1,
214
215         /* UART */
216         DM365_UART0_RXD,
217         DM365_UART0_TXD,
218         DM365_UART1_RXD,
219         DM365_UART1_TXD,
220         DM365_UART1_RTS,
221         DM365_UART1_CTS,
222
223         /* EMAC */
224         DM365_EMAC_TX_EN,
225         DM365_EMAC_TX_CLK,
226         DM365_EMAC_COL,
227         DM365_EMAC_TXD3,
228         DM365_EMAC_TXD2,
229         DM365_EMAC_TXD1,
230         DM365_EMAC_TXD0,
231         DM365_EMAC_RXD3,
232         DM365_EMAC_RXD2,
233         DM365_EMAC_RXD1,
234         DM365_EMAC_RXD0,
235         DM365_EMAC_RX_CLK,
236         DM365_EMAC_RX_DV,
237         DM365_EMAC_RX_ER,
238         DM365_EMAC_CRS,
239         DM365_EMAC_MDIO,
240         DM365_EMAC_MDCLK,
241
242         /* Key Scan */
243         DM365_KEYSCAN,
244
245         /* PWM */
246         DM365_PWM0,
247         DM365_PWM0_G23,
248         DM365_PWM1,
249         DM365_PWM1_G25,
250         DM365_PWM2_G87,
251         DM365_PWM2_G88,
252         DM365_PWM2_G89,
253         DM365_PWM2_G90,
254         DM365_PWM3_G80,
255         DM365_PWM3_G81,
256         DM365_PWM3_G85,
257         DM365_PWM3_G86,
258
259         /* SPI1 */
260         DM365_SPI1_SCLK,
261         DM365_SPI1_SDO,
262         DM365_SPI1_SDI,
263         DM365_SPI1_SDENA0,
264         DM365_SPI1_SDENA1,
265
266         /* SPI2 */
267         DM365_SPI2_SCLK,
268         DM365_SPI2_SDO,
269         DM365_SPI2_SDI,
270         DM365_SPI2_SDENA0,
271         DM365_SPI2_SDENA1,
272
273         /* SPI3 */
274         DM365_SPI3_SCLK,
275         DM365_SPI3_SDO,
276         DM365_SPI3_SDI,
277         DM365_SPI3_SDENA0,
278         DM365_SPI3_SDENA1,
279
280         /* SPI4 */
281         DM365_SPI4_SCLK,
282         DM365_SPI4_SDO,
283         DM365_SPI4_SDI,
284         DM365_SPI4_SDENA0,
285         DM365_SPI4_SDENA1,
286
287         /* Clock */
288         DM365_CLKOUT0,
289         DM365_CLKOUT1,
290         DM365_CLKOUT2,
291
292         /* GPIO */
293         DM365_GPIO20,
294         DM365_GPIO30,
295         DM365_GPIO31,
296         DM365_GPIO32,
297         DM365_GPIO33,
298         DM365_GPIO40,
299         DM365_GPIO64_57,
300
301         /* Video */
302         DM365_VOUT_FIELD,
303         DM365_VOUT_FIELD_G81,
304         DM365_VOUT_HVSYNC,
305         DM365_VOUT_COUTL_EN,
306         DM365_VOUT_COUTH_EN,
307         DM365_VIN_CAM_WEN,
308         DM365_VIN_CAM_VD,
309         DM365_VIN_CAM_HD,
310         DM365_VIN_YIN4_7_EN,
311         DM365_VIN_YIN0_3_EN,
312
313         /* IRQ muxing */
314         DM365_INT_EDMA_CC,
315         DM365_INT_EDMA_TC0_ERR,
316         DM365_INT_EDMA_TC1_ERR,
317         DM365_INT_EDMA_TC2_ERR,
318         DM365_INT_EDMA_TC3_ERR,
319         DM365_INT_PRTCSS,
320         DM365_INT_EMAC_RXTHRESH,
321         DM365_INT_EMAC_RXPULSE,
322         DM365_INT_EMAC_TXPULSE,
323         DM365_INT_EMAC_MISCPULSE,
324         DM365_INT_IMX0_ENABLE,
325         DM365_INT_IMX0_DISABLE,
326         DM365_INT_HDVICP_ENABLE,
327         DM365_INT_HDVICP_DISABLE,
328         DM365_INT_IMX1_ENABLE,
329         DM365_INT_IMX1_DISABLE,
330         DM365_INT_NSF_ENABLE,
331         DM365_INT_NSF_DISABLE,
332
333         /* EDMA event muxing */
334         DM365_EVT2_ASP_TX,
335         DM365_EVT3_ASP_RX,
336         DM365_EVT2_VC_TX,
337         DM365_EVT3_VC_RX,
338         DM365_EVT26_MMC0_RX,
339 };
340
341 enum da830_index {
342         DA830_GPIO7_14,
343         DA830_RTCK,
344         DA830_GPIO7_15,
345         DA830_EMU_0,
346         DA830_EMB_SDCKE,
347         DA830_EMB_CLK_GLUE,
348         DA830_EMB_CLK,
349         DA830_NEMB_CS_0,
350         DA830_NEMB_CAS,
351         DA830_NEMB_RAS,
352         DA830_NEMB_WE,
353         DA830_EMB_BA_1,
354         DA830_EMB_BA_0,
355         DA830_EMB_A_0,
356         DA830_EMB_A_1,
357         DA830_EMB_A_2,
358         DA830_EMB_A_3,
359         DA830_EMB_A_4,
360         DA830_EMB_A_5,
361         DA830_GPIO7_0,
362         DA830_GPIO7_1,
363         DA830_GPIO7_2,
364         DA830_GPIO7_3,
365         DA830_GPIO7_4,
366         DA830_GPIO7_5,
367         DA830_GPIO7_6,
368         DA830_GPIO7_7,
369         DA830_EMB_A_6,
370         DA830_EMB_A_7,
371         DA830_EMB_A_8,
372         DA830_EMB_A_9,
373         DA830_EMB_A_10,
374         DA830_EMB_A_11,
375         DA830_EMB_A_12,
376         DA830_EMB_D_31,
377         DA830_GPIO7_8,
378         DA830_GPIO7_9,
379         DA830_GPIO7_10,
380         DA830_GPIO7_11,
381         DA830_GPIO7_12,
382         DA830_GPIO7_13,
383         DA830_GPIO3_13,
384         DA830_EMB_D_30,
385         DA830_EMB_D_29,
386         DA830_EMB_D_28,
387         DA830_EMB_D_27,
388         DA830_EMB_D_26,
389         DA830_EMB_D_25,
390         DA830_EMB_D_24,
391         DA830_EMB_D_23,
392         DA830_EMB_D_22,
393         DA830_EMB_D_21,
394         DA830_EMB_D_20,
395         DA830_EMB_D_19,
396         DA830_EMB_D_18,
397         DA830_EMB_D_17,
398         DA830_EMB_D_16,
399         DA830_NEMB_WE_DQM_3,
400         DA830_NEMB_WE_DQM_2,
401         DA830_EMB_D_0,
402         DA830_EMB_D_1,
403         DA830_EMB_D_2,
404         DA830_EMB_D_3,
405         DA830_EMB_D_4,
406         DA830_EMB_D_5,
407         DA830_EMB_D_6,
408         DA830_GPIO6_0,
409         DA830_GPIO6_1,
410         DA830_GPIO6_2,
411         DA830_GPIO6_3,
412         DA830_GPIO6_4,
413         DA830_GPIO6_5,
414         DA830_GPIO6_6,
415         DA830_EMB_D_7,
416         DA830_EMB_D_8,
417         DA830_EMB_D_9,
418         DA830_EMB_D_10,
419         DA830_EMB_D_11,
420         DA830_EMB_D_12,
421         DA830_EMB_D_13,
422         DA830_EMB_D_14,
423         DA830_GPIO6_7,
424         DA830_GPIO6_8,
425         DA830_GPIO6_9,
426         DA830_GPIO6_10,
427         DA830_GPIO6_11,
428         DA830_GPIO6_12,
429         DA830_GPIO6_13,
430         DA830_GPIO6_14,
431         DA830_EMB_D_15,
432         DA830_NEMB_WE_DQM_1,
433         DA830_NEMB_WE_DQM_0,
434         DA830_SPI0_SOMI_0,
435         DA830_SPI0_SIMO_0,
436         DA830_SPI0_CLK,
437         DA830_NSPI0_ENA,
438         DA830_NSPI0_SCS_0,
439         DA830_EQEP0I,
440         DA830_EQEP0S,
441         DA830_EQEP1I,
442         DA830_NUART0_CTS,
443         DA830_NUART0_RTS,
444         DA830_EQEP0A,
445         DA830_EQEP0B,
446         DA830_GPIO6_15,
447         DA830_GPIO5_14,
448         DA830_GPIO5_15,
449         DA830_GPIO5_0,
450         DA830_GPIO5_1,
451         DA830_GPIO5_2,
452         DA830_GPIO5_3,
453         DA830_GPIO5_4,
454         DA830_SPI1_SOMI_0,
455         DA830_SPI1_SIMO_0,
456         DA830_SPI1_CLK,
457         DA830_UART0_RXD,
458         DA830_UART0_TXD,
459         DA830_AXR1_10,
460         DA830_AXR1_11,
461         DA830_NSPI1_ENA,
462         DA830_I2C1_SCL,
463         DA830_I2C1_SDA,
464         DA830_EQEP1S,
465         DA830_I2C0_SDA,
466         DA830_I2C0_SCL,
467         DA830_UART2_RXD,
468         DA830_TM64P0_IN12,
469         DA830_TM64P0_OUT12,
470         DA830_GPIO5_5,
471         DA830_GPIO5_6,
472         DA830_GPIO5_7,
473         DA830_GPIO5_8,
474         DA830_GPIO5_9,
475         DA830_GPIO5_10,
476         DA830_GPIO5_11,
477         DA830_GPIO5_12,
478         DA830_NSPI1_SCS_0,
479         DA830_USB0_DRVVBUS,
480         DA830_AHCLKX0,
481         DA830_ACLKX0,
482         DA830_AFSX0,
483         DA830_AHCLKR0,
484         DA830_ACLKR0,
485         DA830_AFSR0,
486         DA830_UART2_TXD,
487         DA830_AHCLKX2,
488         DA830_ECAP0_APWM0,
489         DA830_RMII_MHZ_50_CLK,
490         DA830_ECAP1_APWM1,
491         DA830_USB_REFCLKIN,
492         DA830_GPIO5_13,
493         DA830_GPIO4_15,
494         DA830_GPIO2_11,
495         DA830_GPIO2_12,
496         DA830_GPIO2_13,
497         DA830_GPIO2_14,
498         DA830_GPIO2_15,
499         DA830_GPIO3_12,
500         DA830_AMUTE0,
501         DA830_AXR0_0,
502         DA830_AXR0_1,
503         DA830_AXR0_2,
504         DA830_AXR0_3,
505         DA830_AXR0_4,
506         DA830_AXR0_5,
507         DA830_AXR0_6,
508         DA830_RMII_TXD_0,
509         DA830_RMII_TXD_1,
510         DA830_RMII_TXEN,
511         DA830_RMII_CRS_DV,
512         DA830_RMII_RXD_0,
513         DA830_RMII_RXD_1,
514         DA830_RMII_RXER,
515         DA830_AFSR2,
516         DA830_ACLKX2,
517         DA830_AXR2_3,
518         DA830_AXR2_2,
519         DA830_AXR2_1,
520         DA830_AFSX2,
521         DA830_ACLKR2,
522         DA830_NRESETOUT,
523         DA830_GPIO3_0,
524         DA830_GPIO3_1,
525         DA830_GPIO3_2,
526         DA830_GPIO3_3,
527         DA830_GPIO3_4,
528         DA830_GPIO3_5,
529         DA830_GPIO3_6,
530         DA830_AXR0_7,
531         DA830_AXR0_8,
532         DA830_UART1_RXD,
533         DA830_UART1_TXD,
534         DA830_AXR0_11,
535         DA830_AHCLKX1,
536         DA830_ACLKX1,
537         DA830_AFSX1,
538         DA830_MDIO_CLK,
539         DA830_MDIO_D,
540         DA830_AXR0_9,
541         DA830_AXR0_10,
542         DA830_EPWM0B,
543         DA830_EPWM0A,
544         DA830_EPWMSYNCI,
545         DA830_AXR2_0,
546         DA830_EPWMSYNC0,
547         DA830_GPIO3_7,
548         DA830_GPIO3_8,
549         DA830_GPIO3_9,
550         DA830_GPIO3_10,
551         DA830_GPIO3_11,
552         DA830_GPIO3_14,
553         DA830_GPIO3_15,
554         DA830_GPIO4_10,
555         DA830_AHCLKR1,
556         DA830_ACLKR1,
557         DA830_AFSR1,
558         DA830_AMUTE1,
559         DA830_AXR1_0,
560         DA830_AXR1_1,
561         DA830_AXR1_2,
562         DA830_AXR1_3,
563         DA830_ECAP2_APWM2,
564         DA830_EHRPWMGLUETZ,
565         DA830_EQEP1A,
566         DA830_GPIO4_11,
567         DA830_GPIO4_12,
568         DA830_GPIO4_13,
569         DA830_GPIO4_14,
570         DA830_GPIO4_0,
571         DA830_GPIO4_1,
572         DA830_GPIO4_2,
573         DA830_GPIO4_3,
574         DA830_AXR1_4,
575         DA830_AXR1_5,
576         DA830_AXR1_6,
577         DA830_AXR1_7,
578         DA830_AXR1_8,
579         DA830_AXR1_9,
580         DA830_EMA_D_0,
581         DA830_EMA_D_1,
582         DA830_EQEP1B,
583         DA830_EPWM2B,
584         DA830_EPWM2A,
585         DA830_EPWM1B,
586         DA830_EPWM1A,
587         DA830_MMCSD_DAT_0,
588         DA830_MMCSD_DAT_1,
589         DA830_UHPI_HD_0,
590         DA830_UHPI_HD_1,
591         DA830_GPIO4_4,
592         DA830_GPIO4_5,
593         DA830_GPIO4_6,
594         DA830_GPIO4_7,
595         DA830_GPIO4_8,
596         DA830_GPIO4_9,
597         DA830_GPIO0_0,
598         DA830_GPIO0_1,
599         DA830_EMA_D_2,
600         DA830_EMA_D_3,
601         DA830_EMA_D_4,
602         DA830_EMA_D_5,
603         DA830_EMA_D_6,
604         DA830_EMA_D_7,
605         DA830_EMA_D_8,
606         DA830_EMA_D_9,
607         DA830_MMCSD_DAT_2,
608         DA830_MMCSD_DAT_3,
609         DA830_MMCSD_DAT_4,
610         DA830_MMCSD_DAT_5,
611         DA830_MMCSD_DAT_6,
612         DA830_MMCSD_DAT_7,
613         DA830_UHPI_HD_8,
614         DA830_UHPI_HD_9,
615         DA830_UHPI_HD_2,
616         DA830_UHPI_HD_3,
617         DA830_UHPI_HD_4,
618         DA830_UHPI_HD_5,
619         DA830_UHPI_HD_6,
620         DA830_UHPI_HD_7,
621         DA830_LCD_D_8,
622         DA830_LCD_D_9,
623         DA830_GPIO0_2,
624         DA830_GPIO0_3,
625         DA830_GPIO0_4,
626         DA830_GPIO0_5,
627         DA830_GPIO0_6,
628         DA830_GPIO0_7,
629         DA830_GPIO0_8,
630         DA830_GPIO0_9,
631         DA830_EMA_D_10,
632         DA830_EMA_D_11,
633         DA830_EMA_D_12,
634         DA830_EMA_D_13,
635         DA830_EMA_D_14,
636         DA830_EMA_D_15,
637         DA830_EMA_A_0,
638         DA830_EMA_A_1,
639         DA830_UHPI_HD_10,
640         DA830_UHPI_HD_11,
641         DA830_UHPI_HD_12,
642         DA830_UHPI_HD_13,
643         DA830_UHPI_HD_14,
644         DA830_UHPI_HD_15,
645         DA830_LCD_D_7,
646         DA830_MMCSD_CLK,
647         DA830_LCD_D_10,
648         DA830_LCD_D_11,
649         DA830_LCD_D_12,
650         DA830_LCD_D_13,
651         DA830_LCD_D_14,
652         DA830_LCD_D_15,
653         DA830_UHPI_HCNTL0,
654         DA830_GPIO0_10,
655         DA830_GPIO0_11,
656         DA830_GPIO0_12,
657         DA830_GPIO0_13,
658         DA830_GPIO0_14,
659         DA830_GPIO0_15,
660         DA830_GPIO1_0,
661         DA830_GPIO1_1,
662         DA830_EMA_A_2,
663         DA830_EMA_A_3,
664         DA830_EMA_A_4,
665         DA830_EMA_A_5,
666         DA830_EMA_A_6,
667         DA830_EMA_A_7,
668         DA830_EMA_A_8,
669         DA830_EMA_A_9,
670         DA830_MMCSD_CMD,
671         DA830_LCD_D_6,
672         DA830_LCD_D_3,
673         DA830_LCD_D_2,
674         DA830_LCD_D_1,
675         DA830_LCD_D_0,
676         DA830_LCD_PCLK,
677         DA830_LCD_HSYNC,
678         DA830_UHPI_HCNTL1,
679         DA830_GPIO1_2,
680         DA830_GPIO1_3,
681         DA830_GPIO1_4,
682         DA830_GPIO1_5,
683         DA830_GPIO1_6,
684         DA830_GPIO1_7,
685         DA830_GPIO1_8,
686         DA830_GPIO1_9,
687         DA830_EMA_A_10,
688         DA830_EMA_A_11,
689         DA830_EMA_A_12,
690         DA830_EMA_BA_1,
691         DA830_EMA_BA_0,
692         DA830_EMA_CLK,
693         DA830_EMA_SDCKE,
694         DA830_NEMA_CAS,
695         DA830_LCD_VSYNC,
696         DA830_NLCD_AC_ENB_CS,
697         DA830_LCD_MCLK,
698         DA830_LCD_D_5,
699         DA830_LCD_D_4,
700         DA830_OBSCLK,
701         DA830_NEMA_CS_4,
702         DA830_UHPI_HHWIL,
703         DA830_AHCLKR2,
704         DA830_GPIO1_10,
705         DA830_GPIO1_11,
706         DA830_GPIO1_12,
707         DA830_GPIO1_13,
708         DA830_GPIO1_14,
709         DA830_GPIO1_15,
710         DA830_GPIO2_0,
711         DA830_GPIO2_1,
712         DA830_NEMA_RAS,
713         DA830_NEMA_WE,
714         DA830_NEMA_CS_0,
715         DA830_NEMA_CS_2,
716         DA830_NEMA_CS_3,
717         DA830_NEMA_OE,
718         DA830_NEMA_WE_DQM_1,
719         DA830_NEMA_WE_DQM_0,
720         DA830_NEMA_CS_5,
721         DA830_UHPI_HRNW,
722         DA830_NUHPI_HAS,
723         DA830_NUHPI_HCS,
724         DA830_NUHPI_HDS1,
725         DA830_NUHPI_HDS2,
726         DA830_NUHPI_HINT,
727         DA830_AXR0_12,
728         DA830_AMUTE2,
729         DA830_AXR0_13,
730         DA830_AXR0_14,
731         DA830_AXR0_15,
732         DA830_GPIO2_2,
733         DA830_GPIO2_3,
734         DA830_GPIO2_4,
735         DA830_GPIO2_5,
736         DA830_GPIO2_6,
737         DA830_GPIO2_7,
738         DA830_GPIO2_8,
739         DA830_GPIO2_9,
740         DA830_EMA_WAIT_0,
741         DA830_NUHPI_HRDY,
742         DA830_GPIO2_10,
743 };
744
745 enum davinci_da850_index {
746         /* UART0 function */
747         DA850_NUART0_CTS,
748         DA850_NUART0_RTS,
749         DA850_UART0_RXD,
750         DA850_UART0_TXD,
751
752         /* UART1 function */
753         DA850_NUART1_CTS,
754         DA850_NUART1_RTS,
755         DA850_UART1_RXD,
756         DA850_UART1_TXD,
757
758         /* UART2 function */
759         DA850_NUART2_CTS,
760         DA850_NUART2_RTS,
761         DA850_UART2_RXD,
762         DA850_UART2_TXD,
763
764         /* I2C1 function */
765         DA850_I2C1_SCL,
766         DA850_I2C1_SDA,
767
768         /* I2C0 function */
769         DA850_I2C0_SDA,
770         DA850_I2C0_SCL,
771
772         /* EMAC function */
773         DA850_MII_TXEN,
774         DA850_MII_TXCLK,
775         DA850_MII_COL,
776         DA850_MII_TXD_3,
777         DA850_MII_TXD_2,
778         DA850_MII_TXD_1,
779         DA850_MII_TXD_0,
780         DA850_MII_RXER,
781         DA850_MII_CRS,
782         DA850_MII_RXCLK,
783         DA850_MII_RXDV,
784         DA850_MII_RXD_3,
785         DA850_MII_RXD_2,
786         DA850_MII_RXD_1,
787         DA850_MII_RXD_0,
788         DA850_MDIO_CLK,
789         DA850_MDIO_D,
790         DA850_RMII_TXD_0,
791         DA850_RMII_TXD_1,
792         DA850_RMII_TXEN,
793         DA850_RMII_CRS_DV,
794         DA850_RMII_RXD_0,
795         DA850_RMII_RXD_1,
796         DA850_RMII_RXER,
797         DA850_RMII_MHZ_50_CLK,
798
799         /* McASP function */
800         DA850_ACLKR,
801         DA850_ACLKX,
802         DA850_AFSR,
803         DA850_AFSX,
804         DA850_AHCLKR,
805         DA850_AHCLKX,
806         DA850_AMUTE,
807         DA850_AXR_15,
808         DA850_AXR_14,
809         DA850_AXR_13,
810         DA850_AXR_12,
811         DA850_AXR_11,
812         DA850_AXR_10,
813         DA850_AXR_9,
814         DA850_AXR_8,
815         DA850_AXR_7,
816         DA850_AXR_6,
817         DA850_AXR_5,
818         DA850_AXR_4,
819         DA850_AXR_3,
820         DA850_AXR_2,
821         DA850_AXR_1,
822         DA850_AXR_0,
823
824         /* LCD function */
825         DA850_LCD_D_7,
826         DA850_LCD_D_6,
827         DA850_LCD_D_5,
828         DA850_LCD_D_4,
829         DA850_LCD_D_3,
830         DA850_LCD_D_2,
831         DA850_LCD_D_1,
832         DA850_LCD_D_0,
833         DA850_LCD_D_15,
834         DA850_LCD_D_14,
835         DA850_LCD_D_13,
836         DA850_LCD_D_12,
837         DA850_LCD_D_11,
838         DA850_LCD_D_10,
839         DA850_LCD_D_9,
840         DA850_LCD_D_8,
841         DA850_LCD_PCLK,
842         DA850_LCD_HSYNC,
843         DA850_LCD_VSYNC,
844         DA850_NLCD_AC_ENB_CS,
845
846         /* MMC/SD0 function */
847         DA850_MMCSD0_DAT_0,
848         DA850_MMCSD0_DAT_1,
849         DA850_MMCSD0_DAT_2,
850         DA850_MMCSD0_DAT_3,
851         DA850_MMCSD0_CLK,
852         DA850_MMCSD0_CMD,
853
854         /* MMC/SD1 function */
855         DA850_MMCSD1_DAT_0,
856         DA850_MMCSD1_DAT_1,
857         DA850_MMCSD1_DAT_2,
858         DA850_MMCSD1_DAT_3,
859         DA850_MMCSD1_CLK,
860         DA850_MMCSD1_CMD,
861
862         /* EMIF2.5/EMIFA function */
863         DA850_EMA_D_7,
864         DA850_EMA_D_6,
865         DA850_EMA_D_5,
866         DA850_EMA_D_4,
867         DA850_EMA_D_3,
868         DA850_EMA_D_2,
869         DA850_EMA_D_1,
870         DA850_EMA_D_0,
871         DA850_EMA_A_1,
872         DA850_EMA_A_2,
873         DA850_NEMA_CS_3,
874         DA850_NEMA_CS_4,
875         DA850_NEMA_WE,
876         DA850_NEMA_OE,
877         DA850_EMA_D_15,
878         DA850_EMA_D_14,
879         DA850_EMA_D_13,
880         DA850_EMA_D_12,
881         DA850_EMA_D_11,
882         DA850_EMA_D_10,
883         DA850_EMA_D_9,
884         DA850_EMA_D_8,
885         DA850_EMA_A_0,
886         DA850_EMA_A_3,
887         DA850_EMA_A_4,
888         DA850_EMA_A_5,
889         DA850_EMA_A_6,
890         DA850_EMA_A_7,
891         DA850_EMA_A_8,
892         DA850_EMA_A_9,
893         DA850_EMA_A_10,
894         DA850_EMA_A_11,
895         DA850_EMA_A_12,
896         DA850_EMA_A_13,
897         DA850_EMA_A_14,
898         DA850_EMA_A_15,
899         DA850_EMA_A_16,
900         DA850_EMA_A_17,
901         DA850_EMA_A_18,
902         DA850_EMA_A_19,
903         DA850_EMA_A_20,
904         DA850_EMA_A_21,
905         DA850_EMA_A_22,
906         DA850_EMA_A_23,
907         DA850_EMA_BA_1,
908         DA850_EMA_CLK,
909         DA850_EMA_WAIT_1,
910         DA850_NEMA_CS_2,
911
912         /* GPIO function */
913         DA850_GPIO2_4,
914         DA850_GPIO2_6,
915         DA850_GPIO2_8,
916         DA850_GPIO2_15,
917         DA850_GPIO3_12,
918         DA850_GPIO3_13,
919         DA850_GPIO4_0,
920         DA850_GPIO4_1,
921         DA850_GPIO6_9,
922         DA850_GPIO6_10,
923         DA850_GPIO6_13,
924         DA850_RTC_ALARM,
925
926         /* VPIF Capture */
927         DA850_VPIF_DIN0,
928         DA850_VPIF_DIN1,
929         DA850_VPIF_DIN2,
930         DA850_VPIF_DIN3,
931         DA850_VPIF_DIN4,
932         DA850_VPIF_DIN5,
933         DA850_VPIF_DIN6,
934         DA850_VPIF_DIN7,
935         DA850_VPIF_DIN8,
936         DA850_VPIF_DIN9,
937         DA850_VPIF_DIN10,
938         DA850_VPIF_DIN11,
939         DA850_VPIF_DIN12,
940         DA850_VPIF_DIN13,
941         DA850_VPIF_DIN14,
942         DA850_VPIF_DIN15,
943         DA850_VPIF_CLKIN0,
944         DA850_VPIF_CLKIN1,
945         DA850_VPIF_CLKIN2,
946         DA850_VPIF_CLKIN3,
947
948         /* VPIF Display */
949         DA850_VPIF_DOUT0,
950         DA850_VPIF_DOUT1,
951         DA850_VPIF_DOUT2,
952         DA850_VPIF_DOUT3,
953         DA850_VPIF_DOUT4,
954         DA850_VPIF_DOUT5,
955         DA850_VPIF_DOUT6,
956         DA850_VPIF_DOUT7,
957         DA850_VPIF_DOUT8,
958         DA850_VPIF_DOUT9,
959         DA850_VPIF_DOUT10,
960         DA850_VPIF_DOUT11,
961         DA850_VPIF_DOUT12,
962         DA850_VPIF_DOUT13,
963         DA850_VPIF_DOUT14,
964         DA850_VPIF_DOUT15,
965         DA850_VPIF_CLKO2,
966         DA850_VPIF_CLKO3,
967 };
968
969 #define PINMUX(x)               (4 * (x))
970
971 #ifdef CONFIG_DAVINCI_MUX
972 /* setup pin muxing */
973 extern int davinci_cfg_reg(unsigned long reg_cfg);
974 extern int davinci_cfg_reg_list(const short pins[]);
975 #else
976 /* boot loader does it all (no warnings from CONFIG_DAVINCI_MUX_WARNINGS) */
977 static inline int davinci_cfg_reg(unsigned long reg_cfg) { return 0; }
978 static inline int davinci_cfg_reg_list(const short pins[])
979 {
980         return 0;
981 }
982 #endif
983
984
985 #define MUX_CFG(soc, desc, muxreg, mode_offset, mode_mask, mux_mode, dbg)\
986 [soc##_##desc] = {                                                      \
987                         .name =  #desc,                                 \
988                         .debug = dbg,                                   \
989                         .mux_reg_name = "PINMUX"#muxreg,                \
990                         .mux_reg = PINMUX(muxreg),                      \
991                         .mask_offset = mode_offset,                     \
992                         .mask = mode_mask,                              \
993                         .mode = mux_mode,                               \
994                 },
995
996 #define INT_CFG(soc, desc, mode_offset, mode_mask, mux_mode, dbg)       \
997 [soc##_##desc] = {                                                      \
998                         .name =  #desc,                                 \
999                         .debug = dbg,                                   \
1000                         .mux_reg_name = "INTMUX",                       \
1001                         .mux_reg = INTMUX,                              \
1002                         .mask_offset = mode_offset,                     \
1003                         .mask = mode_mask,                              \
1004                         .mode = mux_mode,                               \
1005                 },
1006
1007 #define EVT_CFG(soc, desc, mode_offset, mode_mask, mux_mode, dbg)       \
1008 [soc##_##desc] = {                                                      \
1009                         .name =  #desc,                                 \
1010                         .debug = dbg,                                   \
1011                         .mux_reg_name = "EVTMUX",                       \
1012                         .mux_reg = EVTMUX,                              \
1013                         .mask_offset = mode_offset,                     \
1014                         .mask = mode_mask,                              \
1015                         .mode = mux_mode,                               \
1016                 },
1017
1018 #endif /* _MACH_DAVINCI_MUX_H */