]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blob - arch/arm/plat-omap/include/mach/mux.h
h63xx: mux configs.
[linux-2.6-omap-h63xx.git] / arch / arm / plat-omap / include / mach / mux.h
1 /*
2  * arch/arm/plat-omap/include/mach/mux.h
3  *
4  * Table of the Omap register configurations for the FUNC_MUX and
5  * PULL_DWN combinations.
6  *
7  * Copyright (C) 2004 - 2008 Texas Instruments Inc.
8  * Copyright (C) 2003 - 2008 Nokia Corporation
9  *
10  * Written by Tony Lindgren
11  *
12  * This program is free software; you can redistribute it and/or modify
13  * it under the terms of the GNU General Public License as published by
14  * the Free Software Foundation; either version 2 of the License, or
15  * (at your option) any later version.
16  *
17  * This program is distributed in the hope that it will be useful,
18  * but WITHOUT ANY WARRANTY; without even the implied warranty of
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20  * GNU General Public License for more details.
21  *
22  * You should have received a copy of the GNU General Public License
23  * along with this program; if not, write to the Free Software
24  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25  *
26  * NOTE: Please use the following naming style for new pin entries.
27  *       For example, W8_1610_MMC2_DAT0, where:
28  *       - W8        = ball
29  *       - 1610      = 1510 or 1610, none if common for both 1510 and 1610
30  *       - MMC2_DAT0 = function
31  */
32
33 #ifndef __ASM_ARCH_MUX_H
34 #define __ASM_ARCH_MUX_H
35
36 #define PU_PD_SEL_NA            0       /* No pu_pd reg available */
37 #define PULL_DWN_CTRL_NA        0       /* No pull-down control needed */
38
39 #ifdef  CONFIG_OMAP_MUX_DEBUG
40 #define MUX_REG(reg, mode_offset, mode) .mux_reg_name = "FUNC_MUX_CTRL_"#reg, \
41                                         .mux_reg = FUNC_MUX_CTRL_##reg, \
42                                         .mask_offset = mode_offset, \
43                                         .mask = mode,
44
45 #define PULL_REG(reg, bit, status)      .pull_name = "PULL_DWN_CTRL_"#reg, \
46                                         .pull_reg = PULL_DWN_CTRL_##reg, \
47                                         .pull_bit = bit, \
48                                         .pull_val = status,
49
50 #define PU_PD_REG(reg, status)          .pu_pd_name = "PU_PD_SEL_"#reg, \
51                                         .pu_pd_reg = PU_PD_SEL_##reg, \
52                                         .pu_pd_val = status,
53
54 #define MUX_REG_730(reg, mode_offset, mode) .mux_reg_name = "OMAP730_IO_CONF_"#reg, \
55                                         .mux_reg = OMAP730_IO_CONF_##reg, \
56                                         .mask_offset = mode_offset, \
57                                         .mask = mode,
58
59 #define PULL_REG_730(reg, bit, status)  .pull_name = "OMAP730_IO_CONF_"#reg, \
60                                         .pull_reg = OMAP730_IO_CONF_##reg, \
61                                         .pull_bit = bit, \
62                                         .pull_val = status,
63
64 #else
65
66 #define MUX_REG(reg, mode_offset, mode) .mux_reg = FUNC_MUX_CTRL_##reg, \
67                                         .mask_offset = mode_offset, \
68                                         .mask = mode,
69
70 #define PULL_REG(reg, bit, status)      .pull_reg = PULL_DWN_CTRL_##reg, \
71                                         .pull_bit = bit, \
72                                         .pull_val = status,
73
74 #define PU_PD_REG(reg, status)          .pu_pd_reg = PU_PD_SEL_##reg, \
75                                         .pu_pd_val = status,
76
77 #define MUX_REG_730(reg, mode_offset, mode) \
78                                         .mux_reg = OMAP730_IO_CONF_##reg, \
79                                         .mask_offset = mode_offset, \
80                                         .mask = mode,
81
82 #define PULL_REG_730(reg, bit, status)  .pull_reg = OMAP730_IO_CONF_##reg, \
83                                         .pull_bit = bit, \
84                                         .pull_val = status,
85
86 #endif /* CONFIG_OMAP_MUX_DEBUG */
87
88 #define MUX_CFG(desc, mux_reg, mode_offset, mode,       \
89                 pull_reg, pull_bit, pull_status,        \
90                 pu_pd_reg, pu_pd_status, debug_status)  \
91 {                                                       \
92         .name =  desc,                                  \
93         .debug = debug_status,                          \
94         MUX_REG(mux_reg, mode_offset, mode)             \
95         PULL_REG(pull_reg, pull_bit, pull_status)       \
96         PU_PD_REG(pu_pd_reg, pu_pd_status)              \
97 },
98
99
100 /*
101  * OMAP730 has a slightly different config for the pin mux.
102  * - config regs are the OMAP730_IO_CONF_x regs (see omap730.h) regs and
103  *   not the FUNC_MUX_CTRL_x regs from hardware.h
104  * - for pull-up/down, only has one enable bit which is is in the same register
105  *   as mux config
106  */
107 #define MUX_CFG_730(desc, mux_reg, mode_offset, mode,   \
108                    pull_bit, pull_status, debug_status)\
109 {                                                       \
110         .name =  desc,                                  \
111         .debug = debug_status,                          \
112         MUX_REG_730(mux_reg, mode_offset, mode)         \
113         PULL_REG_730(mux_reg, pull_bit, pull_status)    \
114         PU_PD_REG(NA, 0)                \
115 },
116
117 #define MUX_CFG_24XX(desc, reg_offset, mode,                    \
118                                 pull_en, pull_mode, dbg)        \
119 {                                                               \
120         .name           = desc,                                 \
121         .debug          = dbg,                                  \
122         .mux_reg        = reg_offset,                           \
123         .mask           = mode,                                 \
124         .pull_val       = pull_en,                              \
125         .pu_pd_val      = pull_mode,                            \
126 },
127
128 /* 24xx/34xx mux bit defines */
129 #define OMAP2_PULL_ENA          (1 << 3)
130 #define OMAP2_PULL_UP           (1 << 4)
131 #define OMAP2_ALTELECTRICALSEL  (1 << 5)
132
133 /* 34xx specific mux bit defines */
134 #define OMAP3_INPUT_EN          (1 << 8)
135 #define OMAP3_OFF_EN            (1 << 9)
136 #define OMAP3_OFFOUT_EN         (1 << 10)
137 #define OMAP3_OFFOUT_VAL        (1 << 11)
138 #define OMAP3_OFF_PULL_EN       (1 << 12)
139 #define OMAP3_OFF_PULL_UP       (1 << 13)
140 #define OMAP3_WAKEUP_EN         (1 << 14)
141
142 /* 34xx mux mode options for each pin. See TRM for options */
143 #define OMAP34XX_MUX_MODE0      0
144 #define OMAP34XX_MUX_MODE1      1
145 #define OMAP34XX_MUX_MODE2      2
146 #define OMAP34XX_MUX_MODE3      3
147 #define OMAP34XX_MUX_MODE4      4
148 #define OMAP34XX_MUX_MODE5      5
149 #define OMAP34XX_MUX_MODE6      6
150 #define OMAP34XX_MUX_MODE7      7
151
152 /* 34xx active pin states */
153 #define OMAP34XX_PIN_OUTPUT             0
154 #define OMAP34XX_PIN_INPUT              OMAP3_INPUT_EN
155 #define OMAP34XX_PIN_INPUT_PULLUP       (OMAP2_PULL_ENA | OMAP3_INPUT_EN \
156                                                 | OMAP2_PULL_UP)
157 #define OMAP34XX_PIN_INPUT_PULLDOWN     (OMAP2_PULL_ENA | OMAP3_INPUT_EN)
158
159 /* 34xx off mode states */
160 #define OMAP34XX_PIN_OFF_NONE           0
161 #define OMAP34XX_PIN_OFF_OUTPUT_HIGH    (OMAP3_OFF_EN | OMAP3_OFFOUT_EN \
162                                                 | OMAP3_OFFOUT_VAL)
163 #define OMAP34XX_PIN_OFF_OUTPUT_LOW     (OMAP3_OFF_EN | OMAP3_OFFOUT_EN)
164 #define OMAP34XX_PIN_OFF_INPUT_PULLUP   (OMAP3_OFF_EN | OMAP3_OFF_PULL_EN \
165                                                 | OMAP3_OFF_PULL_UP)
166 #define OMAP34XX_PIN_OFF_INPUT_PULLDOWN (OMAP3_OFF_EN | OMAP3_OFF_PULL_EN)
167 #define OMAP34XX_PIN_OFF_WAKEUPENABLE   OMAP3_WAKEUP_EN
168
169 #define MUX_CFG_34XX(desc, reg_offset, mux_value) {             \
170         .name           = desc,                                 \
171         .debug          = 0,                                    \
172         .mux_reg        = reg_offset,                           \
173         .mux_val        = mux_value                             \
174 },
175
176 struct pin_config {
177         char                    *name;
178         const unsigned int      mux_reg;
179         unsigned char           debug;
180
181 #if     defined(CONFIG_ARCH_OMAP34XX)
182         u16                     mux_val; /* Wake-up, off mode, pull, mux mode */
183 #endif
184
185 #if     defined(CONFIG_ARCH_OMAP1) || defined(CONFIG_ARCH_OMAP24XX)
186         const unsigned char mask_offset;
187         const unsigned char mask;
188
189         const char *pull_name;
190         const unsigned int pull_reg;
191         const unsigned char pull_val;
192         const unsigned char pull_bit;
193
194         const char *pu_pd_name;
195         const unsigned int pu_pd_reg;
196         const unsigned char pu_pd_val;
197 #endif
198
199 #if     defined(CONFIG_OMAP_MUX_DEBUG) || defined(CONFIG_OMAP_MUX_WARNINGS)
200         const char *mux_reg_name;
201 #endif
202
203 };
204
205 enum omap730_index {
206         /* OMAP 730 keyboard */
207         E2_730_KBR0,
208         J7_730_KBR1,
209         E1_730_KBR2,
210         F3_730_KBR3,
211         D2_730_KBR4,
212         C2_730_KBC0,
213         D3_730_KBC1,
214         E4_730_KBC2,
215         F4_730_KBC3,
216         E3_730_KBC4,
217
218         /* USB */
219         AA17_730_USB_DM,
220         W16_730_USB_PU_EN,
221         W17_730_USB_VBUSI,
222 };
223
224 enum omap1xxx_index {
225         /* UART1 (BT_UART_GATING)*/
226         UART1_TX = 0,
227         UART1_RTS,
228
229         /* UART2 (COM_UART_GATING)*/
230         UART2_TX,
231         UART2_RX,
232         UART2_CTS,
233         UART2_RTS,
234
235         /* UART3 (GIGA_UART_GATING) */
236         UART3_TX,
237         UART3_RX,
238         UART3_CTS,
239         UART3_RTS,
240         UART3_CLKREQ,
241         UART3_BCLK,     /* 12MHz clock out */
242         Y15_1610_UART3_RTS,
243
244         /* PWT & PWL */
245         PWT,
246         PWL,
247
248         /* USB master generic */
249         R18_USB_VBUS,
250         R18_1510_USB_GPIO0,
251         W4_USB_PUEN,
252         W4_USB_CLKO,
253         W4_USB_HIGHZ,
254         W4_GPIO58,
255
256         /* USB1 master */
257         USB1_SUSP,
258         USB1_SEO,
259         W13_1610_USB1_SE0,
260         USB1_TXEN,
261         USB1_TXD,
262         USB1_VP,
263         USB1_VM,
264         USB1_RCV,
265         USB1_SPEED,
266         R13_1610_USB1_SPEED,
267         R13_1710_USB1_SE0,
268
269         /* USB2 master */
270         USB2_SUSP,
271         USB2_VP,
272         USB2_TXEN,
273         USB2_VM,
274         USB2_RCV,
275         USB2_SEO,
276         USB2_TXD,
277
278         /* OMAP-1510 GPIO */
279         R18_1510_GPIO0,
280         R19_1510_GPIO1,
281         M14_1510_GPIO2,
282
283         /* OMAP1610 GPIO */
284         P18_1610_GPIO3,
285         Y15_1610_GPIO17,
286
287         /* OMAP-1710 GPIO */
288         R18_1710_GPIO0,
289         V2_1710_GPIO10,
290         N21_1710_GPIO14,
291         W15_1710_GPIO40,
292
293         /* MPUIO */
294         MPUIO2,
295         N15_1610_MPUIO2,
296         MPUIO4,
297         MPUIO5,
298         T20_1610_MPUIO5,
299         W11_1610_MPUIO6,
300         V10_1610_MPUIO7,
301         W11_1610_MPUIO9,
302         V10_1610_MPUIO10,
303         W10_1610_MPUIO11,
304         E20_1610_MPUIO13,
305         U20_1610_MPUIO14,
306         E19_1610_MPUIO15,
307
308         /* MCBSP2 */
309         MCBSP2_CLKR,
310         MCBSP2_CLKX,
311         MCBSP2_DR,
312         MCBSP2_DX,
313         MCBSP2_FSR,
314         MCBSP2_FSX,
315
316         /* MCBSP3 */
317         MCBSP3_CLKX,
318
319         /* Misc ballouts */
320         BALLOUT_V8_ARMIO3,
321         N20_HDQ,
322
323         /* OMAP-1610 MMC2 */
324         W8_1610_MMC2_DAT0,
325         V8_1610_MMC2_DAT1,
326         W15_1610_MMC2_DAT2,
327         R10_1610_MMC2_DAT3,
328         Y10_1610_MMC2_CLK,
329         Y8_1610_MMC2_CMD,
330         V9_1610_MMC2_CMDDIR,
331         V5_1610_MMC2_DATDIR0,
332         W19_1610_MMC2_DATDIR1,
333         R18_1610_MMC2_CLKIN,
334
335         /* OMAP-1610 External Trace Interface */
336         M19_1610_ETM_PSTAT0,
337         L15_1610_ETM_PSTAT1,
338         L18_1610_ETM_PSTAT2,
339         L19_1610_ETM_D0,
340         J19_1610_ETM_D6,
341         J18_1610_ETM_D7,
342
343         /* OMAP16XX GPIO */
344         P20_1610_GPIO4,
345         V9_1610_GPIO7,
346         W8_1610_GPIO9,
347         N20_1610_GPIO11,
348         N19_1610_GPIO13,
349         P10_1610_GPIO22,
350         V5_1610_GPIO24,
351         AA20_1610_GPIO_41,
352         W19_1610_GPIO48,
353         M7_1610_GPIO62,
354         V14_16XX_GPIO37,
355         R9_16XX_GPIO18,
356         L14_16XX_GPIO49,
357
358         /* OMAP-1510 uWire */
359         P15_1510_UWIRE_CS3,
360         N14_1510_UWIRE_CS0,
361         V19_1510_UWIRE_SCLK,
362         W21_1510_UWIRE_SDO,
363         U18_1510_UWIRE_SDI,
364
365         /* OMAP-1610 uWire */
366         V19_1610_UWIRE_SCLK,
367         U18_1610_UWIRE_SDI,
368         W21_1610_UWIRE_SDO,
369         N14_1610_UWIRE_CS0,
370         P15_1610_UWIRE_CS3,
371         N15_1610_UWIRE_CS1,
372
373         /* OMAP-1610 SPI */
374         U19_1610_SPIF_SCK,
375         U18_1610_SPIF_DIN,
376         P20_1610_SPIF_DIN,
377         W21_1610_SPIF_DOUT,
378         R18_1610_SPIF_DOUT,
379         N14_1610_SPIF_CS0,
380         N15_1610_SPIF_CS1,
381         T19_1610_SPIF_CS2,
382         P15_1610_SPIF_CS3,
383
384         /* OMAP-1610 Flash */
385         L3_1610_FLASH_CS2B_OE,
386         M8_1610_FLASH_CS2B_WE,
387
388         /* First MMC */
389         MMC_CMD,
390         MMC_DAT1,
391         MMC_DAT2,
392         MMC_DAT0,
393         MMC_CLK,
394         MMC_DAT3,
395
396         /* OMAP-1710 MMC CMDDIR and DATDIR0 */
397         M15_1710_MMC_CLKI,
398         P19_1710_MMC_CMDDIR,
399         P20_1710_MMC_DATDIR0,
400
401         /* OMAP-1610 USB0 alternate pin configuration */
402         W9_USB0_TXEN,
403         AA9_USB0_VP,
404         Y5_USB0_RCV,
405         R9_USB0_VM,
406         V6_USB0_TXD,
407         W5_USB0_SE0,
408         V9_USB0_SPEED,
409         V9_USB0_SUSP,
410
411         /* USB2 */
412         W9_USB2_TXEN,
413         AA9_USB2_VP,
414         Y5_USB2_RCV,
415         R9_USB2_VM,
416         V6_USB2_TXD,
417         W5_USB2_SE0,
418
419         /* 16XX UART */
420         R13_1610_UART1_TX,
421         V14_16XX_UART1_RX,
422         R14_1610_UART1_CTS,
423         AA15_1610_UART1_RTS,
424         R9_16XX_UART2_RX,
425         L14_16XX_UART3_RX,
426
427         /* I2C OMAP-1610 */
428         I2C_SCL,
429         I2C_SDA,
430
431         /* Keypad */
432         F18_1610_KBC0,
433         D20_1610_KBC1,
434         D19_1610_KBC2,
435         E18_1610_KBC3,
436         C21_1610_KBC4,
437         G18_1610_KBR0,
438         F19_1610_KBR1,
439         H14_1610_KBR2,
440         E20_1610_KBR3,
441         E19_1610_KBR4,
442         N19_1610_KBR5,
443
444         /* Power management */
445         T20_1610_LOW_PWR,
446
447         /* MCLK Settings */
448         R10_1510_MCLK_ON,
449         V5_1710_MCLK_ON,
450         V5_1710_MCLK_OFF,
451         R10_1610_MCLK_ON,
452         R10_1610_MCLK_OFF,
453
454         /* CompactFlash controller */
455         P11_1610_CF_CD2,
456         R11_1610_CF_IOIS16,
457         V10_1610_CF_IREQ,
458         W10_1610_CF_RESET,
459         W11_1610_CF_CD1,
460
461         /* parallel camera */
462         J15_1610_CAM_LCLK,
463         J18_1610_CAM_D7,
464         J19_1610_CAM_D6,
465         J14_1610_CAM_D5,
466         K18_1610_CAM_D4,
467         K19_1610_CAM_D3,
468         K15_1610_CAM_D2,
469         K14_1610_CAM_D1,
470         L19_1610_CAM_D0,
471         L18_1610_CAM_VS,
472         L15_1610_CAM_HS,
473         M19_1610_CAM_RSTZ,
474         Y15_1610_CAM_OUTCLK,
475
476         /* serial camera */
477         H19_1610_CAM_EXCLK,
478         Y12_1610_CCP_CLKP,
479         W13_1610_CCP_CLKM,
480         W14_1610_CCP_DATAP,
481         Y14_1610_CCP_DATAM,
482
483 };
484
485 enum omap24xx_index {
486         /* 24xx I2C */
487         M19_24XX_I2C1_SCL,
488         L15_24XX_I2C1_SDA,
489         J15_24XX_I2C2_SCL,
490         H19_24XX_I2C2_SDA,
491
492         /* 24xx Menelaus interrupt */
493         W19_24XX_SYS_NIRQ,
494
495         /* 24xx clock */
496         W14_24XX_SYS_CLKOUT,
497
498         /* 24xx GPMC chipselects, wait pin monitoring */
499         E2_GPMC_NCS2,
500         L2_GPMC_NCS7,
501         L3_GPMC_WAIT0,
502         N7_GPMC_WAIT1,
503         M1_GPMC_WAIT2,
504         P1_GPMC_WAIT3,
505
506         /* 242X McBSP */
507         Y15_24XX_MCBSP2_CLKX,
508         R14_24XX_MCBSP2_FSX,
509         W15_24XX_MCBSP2_DR,
510         V15_24XX_MCBSP2_DX,
511
512         /* 24xx GPIO */
513         M21_242X_GPIO11,
514         P21_242X_GPIO12,
515         AA10_242X_GPIO13,
516         AA6_242X_GPIO14,
517         AA4_242X_GPIO15,
518         Y11_242X_GPIO16,
519         AA12_242X_GPIO17,
520         AA8_242X_GPIO58,
521         Y20_24XX_GPIO60,
522         W4__24XX_GPIO74,
523         N15_24XX_GPIO85,
524         M15_24XX_GPIO92,
525         P20_24XX_GPIO93,
526         P18_24XX_GPIO95,
527         M18_24XX_GPIO96,
528         L14_24XX_GPIO97,
529         J15_24XX_GPIO99,
530         V14_24XX_GPIO117,
531         P14_24XX_GPIO125,
532
533         /* 242x DBG GPIO */
534         V4_242X_GPIO49,
535         W2_242X_GPIO50,
536         U4_242X_GPIO51,
537         V3_242X_GPIO52,
538         V2_242X_GPIO53,
539         V6_242X_GPIO53,
540         T4_242X_GPIO54,
541         Y4_242X_GPIO54,
542         T3_242X_GPIO55,
543         U2_242X_GPIO56,
544
545         /* 24xx external DMA requests */
546         AA10_242X_DMAREQ0,
547         AA6_242X_DMAREQ1,
548         E4_242X_DMAREQ2,
549         G4_242X_DMAREQ3,
550         D3_242X_DMAREQ4,
551         E3_242X_DMAREQ5,
552
553         /* UART3 */
554         K15_24XX_UART3_TX,
555         K14_24XX_UART3_RX,
556
557         /* MMC/SDIO */
558         G19_24XX_MMC_CLKO,
559         H18_24XX_MMC_CMD,
560         F20_24XX_MMC_DAT0,
561         H14_24XX_MMC_DAT1,
562         E19_24XX_MMC_DAT2,
563         D19_24XX_MMC_DAT3,
564         F19_24XX_MMC_DAT_DIR0,
565         E20_24XX_MMC_DAT_DIR1,
566         F18_24XX_MMC_DAT_DIR2,
567         E18_24XX_MMC_DAT_DIR3,
568         G18_24XX_MMC_CMD_DIR,
569         H15_24XX_MMC_CLKI,
570
571         /* Full speed USB */
572         J20_24XX_USB0_PUEN,
573         J19_24XX_USB0_VP,
574         K20_24XX_USB0_VM,
575         J18_24XX_USB0_RCV,
576         K19_24XX_USB0_TXEN,
577         J14_24XX_USB0_SE0,
578         K18_24XX_USB0_DAT,
579
580         N14_24XX_USB1_SE0,
581         W12_24XX_USB1_SE0,
582         P15_24XX_USB1_DAT,
583         R13_24XX_USB1_DAT,
584         W20_24XX_USB1_TXEN,
585         P13_24XX_USB1_TXEN,
586         V19_24XX_USB1_RCV,
587         V12_24XX_USB1_RCV,
588
589         AA10_24XX_USB2_SE0,
590         Y11_24XX_USB2_DAT,
591         AA12_24XX_USB2_TXEN,
592         AA6_24XX_USB2_RCV,
593         AA4_24XX_USB2_TLLSE0,
594
595         /* Keypad GPIO*/
596         T19_24XX_KBR0,
597         R19_24XX_KBR1,
598         V18_24XX_KBR2,
599         M21_24XX_KBR3,
600         E5__24XX_KBR4,
601         M18_24XX_KBR5,
602         R20_24XX_KBC0,
603         M14_24XX_KBC1,
604         H19_24XX_KBC2,
605         V17_24XX_KBC3,
606         P21_24XX_KBC4,
607         L14_24XX_KBC5,
608         N19_24XX_KBC6,
609
610         /* 24xx Menelaus Keypad GPIO */
611         B3__24XX_KBR5,
612         AA4_24XX_KBC2,
613         B13_24XX_KBC6,
614
615         /* 2430 USB */
616         AD9_2430_USB0_PUEN,
617         Y11_2430_USB0_VP,
618         AD7_2430_USB0_VM,
619         AE7_2430_USB0_RCV,
620         AD4_2430_USB0_TXEN,
621         AF9_2430_USB0_SE0,
622         AE6_2430_USB0_DAT,
623         AD24_2430_USB1_SE0,
624         AB24_2430_USB1_RCV,
625         Y25_2430_USB1_TXEN,
626         AA26_2430_USB1_DAT,
627
628         /* 2430 HS-USB */
629         AD9_2430_USB0HS_DATA3,
630         Y11_2430_USB0HS_DATA4,
631         AD7_2430_USB0HS_DATA5,
632         AE7_2430_USB0HS_DATA6,
633         AD4_2430_USB0HS_DATA2,
634         AF9_2430_USB0HS_DATA0,
635         AE6_2430_USB0HS_DATA1,
636         AE8_2430_USB0HS_CLK,
637         AD8_2430_USB0HS_DIR,
638         AE5_2430_USB0HS_STP,
639         AE9_2430_USB0HS_NXT,
640         AC7_2430_USB0HS_DATA7,
641
642         /* 2430 McBSP */
643         AD6_2430_MCBSP_CLKS,
644
645         AB2_2430_MCBSP1_CLKR,
646         AD5_2430_MCBSP1_FSR,
647         AA1_2430_MCBSP1_DX,
648         AF3_2430_MCBSP1_DR,
649         AB3_2430_MCBSP1_FSX,
650         Y9_2430_MCBSP1_CLKX,
651
652         AC10_2430_MCBSP2_FSX,
653         AD16_2430_MCBSP2_CLX,
654         AE13_2430_MCBSP2_DX,
655         AD13_2430_MCBSP2_DR,
656         AC10_2430_MCBSP2_FSX_OFF,
657         AD16_2430_MCBSP2_CLX_OFF,
658         AE13_2430_MCBSP2_DX_OFF,
659         AD13_2430_MCBSP2_DR_OFF,
660
661         AC9_2430_MCBSP3_CLKX,
662         AE4_2430_MCBSP3_FSX,
663         AE2_2430_MCBSP3_DR,
664         AF4_2430_MCBSP3_DX,
665
666         N3_2430_MCBSP4_CLKX,
667         AD23_2430_MCBSP4_DR,
668         AB25_2430_MCBSP4_DX,
669         AC25_2430_MCBSP4_FSX,
670
671         AE16_2430_MCBSP5_CLKX,
672         AF12_2430_MCBSP5_FSX,
673         K7_2430_MCBSP5_DX,
674         M1_2430_MCBSP5_DR,
675
676         /* 2430 McSPI*/
677         Y18_2430_MCSPI1_CLK,
678         AD15_2430_MCSPI1_SIMO,
679         AE17_2430_MCSPI1_SOMI,
680         U1_2430_MCSPI1_CS0,
681
682         /* Touchscreen GPIO */
683         AF19_2430_GPIO_85,
684
685 };
686
687 enum omap34xx_index {
688         /* 34xx I2C */
689         K21_34XX_I2C1_SCL,
690         J21_34XX_I2C1_SDA,
691         AF15_34XX_I2C2_SCL,
692         AE15_34XX_I2C2_SDA,
693         AF14_34XX_I2C3_SCL,
694         AG14_34XX_I2C3_SDA,
695         AD26_34XX_I2C4_SCL,
696         AE26_34XX_I2C4_SDA,
697
698         /* PHY - HSUSB: 12-pin ULPI PHY: Port 1*/
699         Y8_3430_USB1HS_PHY_CLK,
700         Y9_3430_USB1HS_PHY_STP,
701         AA14_3430_USB1HS_PHY_DIR,
702         AA11_3430_USB1HS_PHY_NXT,
703         W13_3430_USB1HS_PHY_DATA0,
704         W12_3430_USB1HS_PHY_DATA1,
705         W11_3430_USB1HS_PHY_DATA2,
706         Y11_3430_USB1HS_PHY_DATA3,
707         W9_3430_USB1HS_PHY_DATA4,
708         Y12_3430_USB1HS_PHY_DATA5,
709         W8_3430_USB1HS_PHY_DATA6,
710         Y13_3430_USB1HS_PHY_DATA7,
711
712         /* PHY - HSUSB: 12-pin ULPI PHY: Port 2*/
713         AA8_3430_USB2HS_PHY_CLK,
714         AA10_3430_USB2HS_PHY_STP,
715         AA9_3430_USB2HS_PHY_DIR,
716         AB11_3430_USB2HS_PHY_NXT,
717         AB10_3430_USB2HS_PHY_DATA0,
718         AB9_3430_USB2HS_PHY_DATA1,
719         W3_3430_USB2HS_PHY_DATA2,
720         T4_3430_USB2HS_PHY_DATA3,
721         T3_3430_USB2HS_PHY_DATA4,
722         R3_3430_USB2HS_PHY_DATA5,
723         R4_3430_USB2HS_PHY_DATA6,
724         T2_3430_USB2HS_PHY_DATA7,
725
726
727         /* TLL - HSUSB: 12-pin TLL Port 1*/
728         Y8_3430_USB1HS_TLL_CLK,
729         Y9_3430_USB1HS_TLL_STP,
730         AA14_3430_USB1HS_TLL_DIR,
731         AA11_3430_USB1HS_TLL_NXT,
732         W13_3430_USB1HS_TLL_DATA0,
733         W12_3430_USB1HS_TLL_DATA1,
734         W11_3430_USB1HS_TLL_DATA2,
735         Y11_3430_USB1HS_TLL_DATA3,
736         W9_3430_USB1HS_TLL_DATA4,
737         Y12_3430_USB1HS_TLL_DATA5,
738         W8_3430_USB1HS_TLL_DATA6,
739         Y13_3430_USB1HS_TLL_DATA7,
740
741         /* TLL - HSUSB: 12-pin TLL Port 2*/
742         AA8_3430_USB2HS_TLL_CLK,
743         AA10_3430_USB2HS_TLL_STP,
744         AA9_3430_USB2HS_TLL_DIR,
745         AB11_3430_USB2HS_TLL_NXT,
746         AB10_3430_USB2HS_TLL_DATA0,
747         AB9_3430_USB2HS_TLL_DATA1,
748         W3_3430_USB2HS_TLL_DATA2,
749         T4_3430_USB2HS_TLL_DATA3,
750         T3_3430_USB2HS_TLL_DATA4,
751         R3_3430_USB2HS_TLL_DATA5,
752         R4_3430_USB2HS_TLL_DATA6,
753         T2_3430_USB2HS_TLL_DATA7,
754
755         /* TLL - HSUSB: 12-pin TLL Port 3*/
756         AA6_3430_USB3HS_TLL_CLK,
757         AB3_3430_USB3HS_TLL_STP,
758         AA3_3430_USB3HS_TLL_DIR,
759         Y3_3430_USB3HS_TLL_NXT,
760         AA5_3430_USB3HS_TLL_DATA0,
761         Y4_3430_USB3HS_TLL_DATA1,
762         Y5_3430_USB3HS_TLL_DATA2,
763         W5_3430_USB3HS_TLL_DATA3,
764         AB12_3430_USB3HS_TLL_DATA4,
765         AB13_3430_USB3HS_TLL_DATA5,
766         AA13_3430_USB3HS_TLL_DATA6,
767         AA12_3430_USB3HS_TLL_DATA7,
768
769         /* PHY FSUSB: FS Serial for Port 1 (multiple PHY modes supported) */
770         AF10_3430_USB1FS_PHY_MM1_RXDP,
771         AG9_3430_USB1FS_PHY_MM1_RXDM,
772         W13_3430_USB1FS_PHY_MM1_RXRCV,
773         W12_3430_USB1FS_PHY_MM1_TXSE0,
774         W11_3430_USB1FS_PHY_MM1_TXDAT,
775         Y11_3430_USB1FS_PHY_MM1_TXEN_N,
776
777         /* PHY FSUSB: FS Serial for Port 2 (multiple PHY modes supported) */
778         AF7_3430_USB2FS_PHY_MM2_RXDP,
779         AH7_3430_USB2FS_PHY_MM2_RXDM,
780         AB10_3430_USB2FS_PHY_MM2_RXRCV,
781         AB9_3430_USB2FS_PHY_MM2_TXSE0,
782         W3_3430_USB2FS_PHY_MM2_TXDAT,
783         T4_3430_USB2FS_PHY_MM2_TXEN_N,
784
785         /* PHY FSUSB: FS Serial for Port 3 (multiple PHY modes supported) */
786         AH3_3430_USB3FS_PHY_MM3_RXDP,
787         AE3_3430_USB3FS_PHY_MM3_RXDM,
788         AD1_3430_USB3FS_PHY_MM3_RXRCV,
789         AE1_3430_USB3FS_PHY_MM3_TXSE0,
790         AD2_3430_USB3FS_PHY_MM3_TXDAT,
791         AC1_3430_USB3FS_PHY_MM3_TXEN_N,
792
793         /* 34xx GPIO
794          *  - normally these are bidirectional, no internal pullup/pulldown
795          *  - "_UP" suffix (GPIO3_UP) if internal pullup is configured
796          *  - "_DOWN" suffix (GPIO3_DOWN) with internal pulldown
797          *  - "_OUT" suffix (GPIO3_OUT) for output-only pins (unlike 24xx)
798          */
799         AH8_34XX_GPIO29,
800         J25_34XX_GPIO170,
801         AF26_34XX_GPIO0,
802         AF22_34XX_GPIO9,
803         AF6_34XX_GPIO140_UP,
804         AE6_34XX_GPIO141,
805         AF5_34XX_GPIO142,
806         AE5_34XX_GPIO143
807 };
808
809 struct omap_mux_cfg {
810         struct pin_config       *pins;
811         unsigned long           size;
812         int                     (*cfg_reg)(const struct pin_config *cfg);
813 };
814
815 #ifdef  CONFIG_OMAP_MUX
816 /* setup pin muxing in Linux */
817 extern int omap1_mux_init(void);
818 extern int omap2_mux_init(void);
819 extern int omap_mux_register(struct omap_mux_cfg *);
820 extern int omap_cfg_reg(unsigned long reg_cfg);
821 #else
822 /* boot loader does it all (no warnings from CONFIG_OMAP_MUX_WARNINGS) */
823 static inline int omap1_mux_init(void) { return 0; }
824 static inline int omap2_mux_init(void) { return 0; }
825 static inline int omap_cfg_reg(unsigned long reg_cfg) { return 0; }
826 #endif
827
828 #endif