ARM: tegra: dalmore/pluto: Set SDMMC drive strengths
[linux-3.10.git] / arch / arm / mach-tegra / board-dalmore-pinmux.c
1 /*
2  * arch/arm/mach-tegra/board-dalmore-pinmux.c
3  *
4  * Copyright (C) 2012 NVIDIA Corporation
5  *
6  * This software is licensed under the terms of the GNU General Public
7  * License version 2, as published by the Free Software Foundation, and
8  * may be copied, distributed, and modified under those terms.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  */
16
17 #include <linux/kernel.h>
18 #include <linux/init.h>
19 #include <linux/gpio.h>
20 #include <mach/pinmux.h>
21 #include <mach/gpio-tegra.h>
22 #include "board.h"
23 #include "board-dalmore.h"
24 #include "devices.h"
25 #include "gpio-names.h"
26
27 #if defined(CONFIG_ARCH_TEGRA_11x_SOC)
28 #include <mach/pinmux-t11.h>
29 #else
30 #include <mach/pinmux-tegra30.h>
31 #endif
32
33 #define DEFAULT_DRIVE(_name)                                    \
34         {                                                       \
35                 .pingroup = TEGRA_DRIVE_PINGROUP_##_name,       \
36                 .hsm = TEGRA_HSM_DISABLE,                       \
37                 .schmitt = TEGRA_SCHMITT_ENABLE,                \
38                 .drive = TEGRA_DRIVE_DIV_1,                     \
39                 .pull_down = TEGRA_PULL_31,                     \
40                 .pull_up = TEGRA_PULL_31,                       \
41                 .slew_rising = TEGRA_SLEW_SLOWEST,              \
42                 .slew_falling = TEGRA_SLEW_SLOWEST,             \
43         }
44 /* Setting the drive strength of pins
45  * hsm: Enable High speed mode (ENABLE/DISABLE)
46  * Schimit: Enable/disable schimit (ENABLE/DISABLE)
47  * drive: low power mode (DIV_1, DIV_2, DIV_4, DIV_8)
48  * pulldn_drive - drive down (falling edge) - Driver Output Pull-Down drive
49  *                strength code. Value from 0 to 31.
50  * pullup_drive - drive up (rising edge)  - Driver Output Pull-Up drive
51  *                strength code. Value from 0 to 31.
52  * pulldn_slew -  Driver Output Pull-Up slew control code  - 2bit code
53  *                code 11 is least slewing of signal. code 00 is highest
54  *                slewing of the signal.
55  *                Value - FASTEST, FAST, SLOW, SLOWEST
56  * pullup_slew -  Driver Output Pull-Down slew control code -
57  *                code 11 is least slewing of signal. code 00 is highest
58  *                slewing of the signal.
59  *                Value - FASTEST, FAST, SLOW, SLOWEST
60  */
61 #define SET_DRIVE(_name, _hsm, _schmitt, _drive, _pulldn_drive, _pullup_drive, _pulldn_slew, _pullup_slew) \
62         {                                               \
63                 .pingroup = TEGRA_DRIVE_PINGROUP_##_name,   \
64                 .hsm = TEGRA_HSM_##_hsm,                    \
65                 .schmitt = TEGRA_SCHMITT_##_schmitt,        \
66                 .drive = TEGRA_DRIVE_##_drive,              \
67                 .pull_down = TEGRA_PULL_##_pulldn_drive,    \
68                 .pull_up = TEGRA_PULL_##_pullup_drive,          \
69                 .slew_rising = TEGRA_SLEW_##_pulldn_slew,   \
70                 .slew_falling = TEGRA_SLEW_##_pullup_slew,      \
71         }
72
73 #if defined(CONFIG_ARCH_TEGRA_11x_SOC)
74
75 static __initdata struct tegra_drive_pingroup_config dalmore_drive_pinmux[] = {
76         /* DEFAULT_DRIVE(<pin_group>), */
77         /* SDMMC1 */
78         SET_DRIVE(SDIO1, DISABLE, DISABLE, DIV_1, 36, 20, SLOW, SLOW),
79
80         /* SDMMC3 */
81         SET_DRIVE(SDIO3, DISABLE, DISABLE, DIV_1, 36, 20, SLOW, SLOW),
82
83         /* SDMMC4 */
84         SET_DRIVE(GMA, DISABLE, DISABLE, DIV_1, 2, 1, FASTEST, FASTEST),
85 };
86
87 #else
88
89 /* !!!FIXME!!!! POPULATE THIS TABLE */
90 static __initdata struct tegra_drive_pingroup_config dalmore_drive_pinmux[] = {
91         /* DEFAULT_DRIVE(<pin_group>), */
92         /* SET_DRIVE(ATA, DISABLE, DISABLE, DIV_1, 31, 31, FAST, FAST) */
93         SET_DRIVE(DAP2,         DISABLE, ENABLE, DIV_1, 31, 31, FASTEST, FASTEST),
94
95         /* All I2C pins are driven to maximum drive strength */
96         /* GEN1 I2C */
97         SET_DRIVE(DBG,          DISABLE, ENABLE, DIV_1, 31, 31, FASTEST, FASTEST),
98
99         /* GEN2 I2C */
100         SET_DRIVE(AT5,          DISABLE, ENABLE, DIV_1, 31, 31, FASTEST, FASTEST),
101
102         /* CAM I2C */
103         SET_DRIVE(GME,          DISABLE, ENABLE, DIV_1, 31, 31, FASTEST, FASTEST),
104
105         /* DDC I2C */
106         SET_DRIVE(DDC,          DISABLE, ENABLE, DIV_1, 31, 31, FASTEST, FASTEST),
107
108         /* PWR_I2C */
109         SET_DRIVE(AO1,          DISABLE, ENABLE, DIV_1, 31, 31, FASTEST, FASTEST),
110
111         /* UART3 */
112         SET_DRIVE(UART3,        DISABLE, ENABLE, DIV_1, 31, 31, FASTEST, FASTEST),
113
114         /* SDMMC1 */
115         SET_DRIVE(SDIO1,        DISABLE, DISABLE, DIV_1, 46, 42, FAST, FAST),
116
117         /* SDMMC3 */
118         SET_DRIVE(SDIO3,        DISABLE, DISABLE, DIV_1, 46, 42, FAST, FAST),
119
120         /* SDMMC4 */
121         SET_DRIVE(GMA,          DISABLE, DISABLE, DIV_1, 9, 9, SLOWEST, SLOWEST),
122         SET_DRIVE(GMB,          DISABLE, DISABLE, DIV_1, 9, 9, SLOWEST, SLOWEST),
123         SET_DRIVE(GMC,          DISABLE, DISABLE, DIV_1, 9, 9, SLOWEST, SLOWEST),
124         SET_DRIVE(GMD,          DISABLE, DISABLE, DIV_1, 9, 9, SLOWEST, SLOWEST),
125
126 };
127
128 #endif
129
130
131 #define DEFAULT_PINMUX(_pingroup, _mux, _pupd, _tri, _io)       \
132         {                                                       \
133                 .pingroup       = TEGRA_PINGROUP_##_pingroup,   \
134                 .func           = TEGRA_MUX_##_mux,             \
135                 .pupd           = TEGRA_PUPD_##_pupd,           \
136                 .tristate       = TEGRA_TRI_##_tri,             \
137                 .io             = TEGRA_PIN_##_io,              \
138                 .lock           = TEGRA_PIN_LOCK_DEFAULT,       \
139                 .od             = TEGRA_PIN_OD_DEFAULT,         \
140                 .ioreset        = TEGRA_PIN_IO_RESET_DEFAULT,   \
141         }
142
143 #define I2C_PINMUX(_pingroup, _mux, _pupd, _tri, _io, _lock, _od) \
144         {                                                       \
145                 .pingroup       = TEGRA_PINGROUP_##_pingroup,   \
146                 .func           = TEGRA_MUX_##_mux,             \
147                 .pupd           = TEGRA_PUPD_##_pupd,           \
148                 .tristate       = TEGRA_TRI_##_tri,             \
149                 .io             = TEGRA_PIN_##_io,              \
150                 .lock           = TEGRA_PIN_LOCK_##_lock,       \
151                 .od             = TEGRA_PIN_OD_##_od,           \
152                 .ioreset        = TEGRA_PIN_IO_RESET_DEFAULT,   \
153         }
154
155 #define VI_PINMUX(_pingroup, _mux, _pupd, _tri, _io, _lock, _ioreset) \
156         {                                                       \
157                 .pingroup       = TEGRA_PINGROUP_##_pingroup,   \
158                 .func           = TEGRA_MUX_##_mux,             \
159                 .pupd           = TEGRA_PUPD_##_pupd,           \
160                 .tristate       = TEGRA_TRI_##_tri,             \
161                 .io             = TEGRA_PIN_##_io,              \
162                 .lock           = TEGRA_PIN_LOCK_##_lock,       \
163                 .od             = TEGRA_PIN_OD_DEFAULT,         \
164                 .ioreset        = TEGRA_PIN_IO_RESET_##_ioreset \
165         }
166
167 #define CEC_PINMUX(_pingroup, _mux, _pupd, _tri, _io, _lock, _od)   \
168         {                                                               \
169                 .pingroup   = TEGRA_PINGROUP_##_pingroup,                   \
170                 .func       = TEGRA_MUX_##_mux,                             \
171                 .pupd       = TEGRA_PUPD_##_pupd,                           \
172                 .tristate   = TEGRA_TRI_##_tri,                             \
173                 .io         = TEGRA_PIN_##_io,                              \
174                 .lock       = TEGRA_PIN_LOCK_##_lock,                       \
175                 .od         = TEGRA_PIN_OD_##_od,                           \
176                 .ioreset    = TEGRA_PIN_IO_RESET_DEFAULT,                   \
177         }
178
179 #if defined(CONFIG_ARCH_TEGRA_11x_SOC)
180
181 static __initdata struct tegra_pingroup_config dalmore_pinmux_common[] = {
182
183         /* EXTPERIPH1 pinmux */
184         DEFAULT_PINMUX(CLK1_OUT,      EXTPERIPH1,  NORMAL,    NORMAL,    OUTPUT),
185
186         /* IS20 pinmux */
187         DEFAULT_PINMUX(DAP1_DIN,      I2S0,        NORMAL,    TRISTATE,  INPUT),
188
189         /* I2S0 pinmux */
190         DEFAULT_PINMUX(DAP1_DOUT,     I2S0,        NORMAL,    NORMAL,    OUTPUT),
191         DEFAULT_PINMUX(DAP1_FS,       I2S0,        NORMAL,    NORMAL,    OUTPUT),
192         DEFAULT_PINMUX(DAP1_SCLK,     I2S0,        NORMAL,    NORMAL,    OUTPUT),
193
194         /* IS21 pinmux */
195         DEFAULT_PINMUX(DAP2_DIN,      I2S1,        NORMAL,    TRISTATE,  INPUT),
196
197         /* I2S1 pinmux */
198         DEFAULT_PINMUX(DAP2_DOUT,     I2S1,        NORMAL,    NORMAL,    OUTPUT),
199         DEFAULT_PINMUX(DAP2_FS,       I2S1,        NORMAL,    NORMAL,    OUTPUT),
200         DEFAULT_PINMUX(DAP2_SCLK,     I2S1,        NORMAL,    NORMAL,    OUTPUT),
201
202         /* CLDVFS pinmux */
203         DEFAULT_PINMUX(DVFS_PWM,      CLDVFS,      NORMAL,    NORMAL,    OUTPUT),
204         DEFAULT_PINMUX(DVFS_CLK,      CLDVFS,      NORMAL,    NORMAL,    OUTPUT),
205
206         /* I2S2 pinmux */
207         DEFAULT_PINMUX(DAP3_DIN,      I2S2,        NORMAL,    TRISTATE,  INPUT),
208         DEFAULT_PINMUX(DAP3_DOUT,     I2S2,        NORMAL,    NORMAL,    OUTPUT),
209         DEFAULT_PINMUX(DAP3_FS,       I2S2,        NORMAL,    NORMAL,    OUTPUT),
210         DEFAULT_PINMUX(DAP3_SCLK,     I2S2,        NORMAL,    NORMAL,    OUTPUT),
211
212         /* I2C3 pinmux */
213         I2C_PINMUX(CAM_I2C_SCL,   I2C3,        NORMAL,    NORMAL,    OUTPUT,    DISABLE,    ENABLE),
214         I2C_PINMUX(CAM_I2C_SDA,   I2C3,        NORMAL,    NORMAL,    INPUT,     DISABLE,    ENABLE),
215
216         /* VI pinmux */
217         DEFAULT_PINMUX(CAM_MCLK,      VI,          NORMAL,    NORMAL,    OUTPUT),
218
219         /* VI_ALT1 pinmux */
220         DEFAULT_PINMUX(GPIO_PBB0,     VI_ALT1,     NORMAL,    NORMAL,    OUTPUT),
221
222         /* I2C2 pinmux */
223         I2C_PINMUX(GEN2_I2C_SCL,  I2C2,        NORMAL,    NORMAL,    OUTPUT,    DISABLE,    ENABLE),
224         I2C_PINMUX(GEN2_I2C_SDA,  I2C2,        NORMAL,    NORMAL,    INPUT,     DISABLE,    ENABLE),
225
226         /* UARTD pinmux */
227         DEFAULT_PINMUX(GMI_A16,       UARTD,       NORMAL,    NORMAL,    OUTPUT),
228         DEFAULT_PINMUX(GMI_A17,       UARTD,       NORMAL,    TRISTATE,  INPUT),
229         DEFAULT_PINMUX(GMI_A18,       UARTD,       NORMAL,    TRISTATE,  INPUT),
230         DEFAULT_PINMUX(GMI_A19,       UARTD,       NORMAL,    NORMAL,    OUTPUT),
231
232         /* PWM3 pinmux */
233         DEFAULT_PINMUX(GMI_AD11,      PWM3,        NORMAL,    NORMAL,    OUTPUT),
234
235         /* SPI4 pinmux */
236         DEFAULT_PINMUX(GMI_AD5,       SPI4,        NORMAL,    NORMAL,    OUTPUT),
237         DEFAULT_PINMUX(GMI_AD6,       SPI4,        NORMAL,    NORMAL,    OUTPUT),
238         DEFAULT_PINMUX(GMI_AD7,       SPI4,        NORMAL,    TRISTATE,  INPUT),
239         DEFAULT_PINMUX(GMI_CS6_N,     SPI4,        NORMAL,    NORMAL,    OUTPUT),
240         DEFAULT_PINMUX(GMI_WR_N,      SPI4,        NORMAL,    NORMAL,    OUTPUT),
241
242         /* PWM1 pinmux */
243         DEFAULT_PINMUX(GMI_AD9,       PWM1,        NORMAL,    NORMAL,    OUTPUT),
244
245         /* SOC pinmux */
246         DEFAULT_PINMUX(GMI_CS1_N,     SOC,         NORMAL,    TRISTATE,  INPUT),
247         DEFAULT_PINMUX(GMI_OE_N,      SOC,         NORMAL,    TRISTATE,  INPUT),
248         DEFAULT_PINMUX(CLK_32K_OUT,   SOC,         NORMAL,    TRISTATE,  INPUT),
249
250         /* EXTPERIPH2 pinmux */
251         DEFAULT_PINMUX(CLK2_OUT,      EXTPERIPH2,  NORMAL,    NORMAL,    OUTPUT),
252
253         /* SDMMC1 pinmux */
254         DEFAULT_PINMUX(SDMMC1_CLK,    SDMMC1,      NORMAL,    NORMAL,    OUTPUT),
255         DEFAULT_PINMUX(SDMMC1_CMD,    SDMMC1,      NORMAL,    NORMAL,    OUTPUT),
256         DEFAULT_PINMUX(SDMMC1_DAT0,   SDMMC1,      PULL_UP,   NORMAL,    INPUT),
257         DEFAULT_PINMUX(SDMMC1_DAT1,   SDMMC1,      PULL_UP,   NORMAL,    INPUT),
258         DEFAULT_PINMUX(SDMMC1_DAT2,   SDMMC1,      PULL_UP,   NORMAL,    INPUT),
259         DEFAULT_PINMUX(SDMMC1_DAT3,   SDMMC1,      PULL_UP,   NORMAL,    INPUT),
260
261         /* SDMMC3 pinmux */
262         DEFAULT_PINMUX(SDMMC3_CLK,    SDMMC3,      NORMAL,    NORMAL,    OUTPUT),
263         DEFAULT_PINMUX(SDMMC3_CMD,    SDMMC3,      NORMAL,    NORMAL,    OUTPUT),
264         DEFAULT_PINMUX(SDMMC3_DAT0,   SDMMC3,      PULL_UP,   NORMAL,    INPUT),
265         DEFAULT_PINMUX(SDMMC3_DAT1,   SDMMC3,      PULL_UP,   NORMAL,    INPUT),
266         DEFAULT_PINMUX(SDMMC3_DAT2,   SDMMC3,      PULL_UP,   NORMAL,    INPUT),
267         DEFAULT_PINMUX(SDMMC3_DAT3,   SDMMC3,      PULL_UP,   NORMAL,    INPUT),
268         DEFAULT_PINMUX(SDMMC3_CD_N,   SDMMC3,      NORMAL,    TRISTATE,  INPUT),
269
270         /* SDMMC4 pinmux */
271         DEFAULT_PINMUX(SDMMC4_CLK,    SDMMC4,      NORMAL,    NORMAL,    OUTPUT),
272         DEFAULT_PINMUX(SDMMC4_CMD,    SDMMC4,      NORMAL,    NORMAL,    OUTPUT),
273         DEFAULT_PINMUX(SDMMC4_DAT0,   SDMMC4,      PULL_UP,   NORMAL,    INPUT),
274         DEFAULT_PINMUX(SDMMC4_DAT1,   SDMMC4,      PULL_UP,   NORMAL,    INPUT),
275         DEFAULT_PINMUX(SDMMC4_DAT2,   SDMMC4,      PULL_UP,   NORMAL,    INPUT),
276         DEFAULT_PINMUX(SDMMC4_DAT3,   SDMMC4,      PULL_UP,   NORMAL,    INPUT),
277         DEFAULT_PINMUX(SDMMC4_DAT4,   SDMMC4,      PULL_UP,   NORMAL,    INPUT),
278         DEFAULT_PINMUX(SDMMC4_DAT5,   SDMMC4,      PULL_UP,   NORMAL,    INPUT),
279         DEFAULT_PINMUX(SDMMC4_DAT6,   SDMMC4,      PULL_UP,   NORMAL,    INPUT),
280         DEFAULT_PINMUX(SDMMC4_DAT7,   SDMMC4,      PULL_UP,   NORMAL,    INPUT),
281
282         /* KBC pinmux */
283         DEFAULT_PINMUX(KB_COL0,       KBC,         NORMAL,    TRISTATE,  INPUT),
284         DEFAULT_PINMUX(KB_COL1,       KBC,         NORMAL,    TRISTATE,  INPUT),
285         DEFAULT_PINMUX(KB_COL2,       KBC,         NORMAL,    TRISTATE,  INPUT),
286         DEFAULT_PINMUX(KB_ROW0,       KBC,         NORMAL,    TRISTATE,  INPUT),
287         DEFAULT_PINMUX(KB_ROW1,       KBC,         NORMAL,    TRISTATE,  INPUT),
288         DEFAULT_PINMUX(KB_ROW2,       KBC,         NORMAL,    TRISTATE,  INPUT),
289
290         /* UARTA pinmux */
291         DEFAULT_PINMUX(KB_ROW10,      UARTA,       NORMAL,    TRISTATE,  INPUT),
292         DEFAULT_PINMUX(KB_ROW9,       UARTA,       NORMAL,    NORMAL,    OUTPUT),
293         DEFAULT_PINMUX(GPIO_PU0,      UARTA,       NORMAL,    TRISTATE,  OUTPUT),
294         DEFAULT_PINMUX(GPIO_PU1,      UARTA,       NORMAL,    NORMAL,    INPUT),
295         DEFAULT_PINMUX(GPIO_PU2,      UARTA,       NORMAL,    TRISTATE,  INPUT),
296         DEFAULT_PINMUX(GPIO_PU3,      UARTA,       NORMAL,    NORMAL,    OUTPUT),
297
298         /* I2CPWR pinmux */
299         I2C_PINMUX(PWR_I2C_SCL,   I2CPWR,      NORMAL,    NORMAL,    OUTPUT,    DISABLE,    ENABLE),
300         I2C_PINMUX(PWR_I2C_SDA,   I2CPWR,      NORMAL,    NORMAL,    INPUT,     DISABLE,    ENABLE),
301
302         /* SYSCLK pinmux */
303         DEFAULT_PINMUX(SYS_CLK_REQ,   SYSCLK,      NORMAL,    NORMAL,    OUTPUT),
304
305         /* PWRON pinmux */
306         DEFAULT_PINMUX(CORE_PWR_REQ,  PWRON,       NORMAL,    NORMAL,    OUTPUT),
307
308         /* CPU pinmux */
309         DEFAULT_PINMUX(CPU_PWR_REQ,   CPU,         NORMAL,    NORMAL,    OUTPUT),
310
311         /* PMI pinmux */
312         DEFAULT_PINMUX(PWR_INT_N,     PMI,         NORMAL,    TRISTATE,  INPUT),
313
314         /* RESET_OUT_N pinmux */
315         DEFAULT_PINMUX(RESET_OUT_N,   RESET_OUT_N, NORMAL,    NORMAL,    OUTPUT),
316
317         /* EXTERIPH3 pinmux */
318         DEFAULT_PINMUX(CLK3_OUT,      EXTPERIPH3,   NORMAL,    NORMAL,    OUTPUT),
319
320         /* I2S3 pinmux */
321         DEFAULT_PINMUX(DAP4_DIN,      I2S3,        NORMAL,    TRISTATE,  INPUT),
322         DEFAULT_PINMUX(DAP4_DOUT,     I2S3,        NORMAL,    NORMAL,    OUTPUT),
323         DEFAULT_PINMUX(DAP4_FS,       I2S3,        NORMAL,    NORMAL,    OUTPUT),
324         DEFAULT_PINMUX(DAP4_SCLK,     I2S3,        NORMAL,    NORMAL,    OUTPUT),
325
326         /* I2C1 pinmux */
327         I2C_PINMUX(GEN1_I2C_SCL,  I2C1,        NORMAL,    NORMAL,    OUTPUT,    DISABLE,    ENABLE),
328         I2C_PINMUX(GEN1_I2C_SDA,  I2C1,        NORMAL,    NORMAL,    INPUT,     DISABLE,    ENABLE),
329
330         /* UARTB pinmux */
331         DEFAULT_PINMUX(UART2_CTS_N,   UARTB,       NORMAL,    TRISTATE,  INPUT),
332         DEFAULT_PINMUX(UART2_RTS_N,   UARTB,       NORMAL,    NORMAL,    OUTPUT),
333
334         /* IRDA pinmux */
335         DEFAULT_PINMUX(UART2_RXD,     IRDA,        NORMAL,    TRISTATE,  INPUT),
336         DEFAULT_PINMUX(UART2_TXD,     IRDA,        NORMAL,    NORMAL,    OUTPUT),
337
338         /* UARTC pinmux */
339         DEFAULT_PINMUX(UART3_CTS_N,   UARTC,       NORMAL,    TRISTATE,  INPUT),
340         DEFAULT_PINMUX(UART3_RTS_N,   UARTC,       NORMAL,    NORMAL,    OUTPUT),
341         DEFAULT_PINMUX(UART3_RXD,     UARTC,       NORMAL,    TRISTATE,  INPUT),
342         DEFAULT_PINMUX(UART3_TXD,     UARTC,       NORMAL,    NORMAL,    OUTPUT),
343
344         /* OWR pinmux */
345         DEFAULT_PINMUX(OWR,           OWR,         NORMAL,    NORMAL,    INPUT),
346
347         /* CEC pinmux */
348         CEC_PINMUX(HDMI_CEC,      CEC,         NORMAL,    NORMAL,    INPUT,    DISABLE,    ENABLE),
349
350         /* I2C4 pinmux */
351         I2C_PINMUX(DDC_SCL,       I2C4,        NORMAL,    NORMAL,    INPUT,    DISABLE,    ENABLE),
352         I2C_PINMUX(DDC_SDA,       I2C4,        NORMAL,    TRISTATE,  INPUT,    DISABLE,    ENABLE),
353 };
354
355 static __initdata struct tegra_pingroup_config unused_pins_lowpower[] = {
356 };
357
358 #else
359
360 static __initdata struct tegra_pingroup_config dalmore_pinmux_common[] = {
361         /* SDMMC1 pinmux */
362         DEFAULT_PINMUX(SDMMC1_CLK,      SDMMC1,          NORMAL,     NORMAL,     INPUT),
363         DEFAULT_PINMUX(SDMMC1_CMD,      SDMMC1,          PULL_UP,    NORMAL,     INPUT),
364         DEFAULT_PINMUX(SDMMC1_DAT3,     SDMMC1,          PULL_UP,    NORMAL,     INPUT),
365         DEFAULT_PINMUX(SDMMC1_DAT2,     SDMMC1,          PULL_UP,    NORMAL,     INPUT),
366         DEFAULT_PINMUX(SDMMC1_DAT1,     SDMMC1,          PULL_UP,    NORMAL,     INPUT),
367         DEFAULT_PINMUX(SDMMC1_DAT0,     SDMMC1,          PULL_UP,    NORMAL,     INPUT),
368
369         /* SDMMC3 pinmux */
370         DEFAULT_PINMUX(SDMMC3_CLK,      SDMMC3,          NORMAL,     NORMAL,     INPUT),
371         DEFAULT_PINMUX(SDMMC3_CMD,      SDMMC3,          PULL_UP,    NORMAL,     INPUT),
372         DEFAULT_PINMUX(SDMMC3_DAT0,     SDMMC3,          PULL_UP,    NORMAL,     INPUT),
373         DEFAULT_PINMUX(SDMMC3_DAT1,     SDMMC3,          PULL_UP,    NORMAL,     INPUT),
374         DEFAULT_PINMUX(SDMMC3_DAT2,     SDMMC3,          PULL_UP,    NORMAL,     INPUT),
375         DEFAULT_PINMUX(SDMMC3_DAT3,     SDMMC3,          PULL_UP,    NORMAL,     INPUT),
376         DEFAULT_PINMUX(SDMMC3_DAT6,     SDMMC3,          PULL_UP,    NORMAL,     INPUT),
377         DEFAULT_PINMUX(SDMMC3_DAT7,     SDMMC3,          PULL_UP,    NORMAL,     INPUT),
378
379         /* SDMMC4 pinmux */
380         DEFAULT_PINMUX(SDMMC4_CLK,      SDMMC4,          NORMAL,     NORMAL,     INPUT),
381         DEFAULT_PINMUX(SDMMC4_CMD,      SDMMC4,          PULL_UP,    NORMAL,     INPUT),
382         DEFAULT_PINMUX(SDMMC4_DAT0,     SDMMC4,          PULL_UP,    NORMAL,     INPUT),
383         DEFAULT_PINMUX(SDMMC4_DAT1,     SDMMC4,          PULL_UP,    NORMAL,     INPUT),
384         DEFAULT_PINMUX(SDMMC4_DAT2,     SDMMC4,          PULL_UP,    NORMAL,     INPUT),
385         DEFAULT_PINMUX(SDMMC4_DAT3,     SDMMC4,          PULL_UP,    NORMAL,     INPUT),
386         DEFAULT_PINMUX(SDMMC4_DAT4,     SDMMC4,          PULL_UP,    NORMAL,     INPUT),
387         DEFAULT_PINMUX(SDMMC4_DAT5,     SDMMC4,          PULL_UP,    NORMAL,     INPUT),
388         DEFAULT_PINMUX(SDMMC4_DAT6,     SDMMC4,          PULL_UP,    NORMAL,     INPUT),
389         DEFAULT_PINMUX(SDMMC4_DAT7,     SDMMC4,          PULL_UP,    NORMAL,     INPUT),
390         DEFAULT_PINMUX(SDMMC4_RST_N,    RSVD1,           PULL_DOWN,  NORMAL,     INPUT),
391
392         /* I2C1 pinmux */
393         I2C_PINMUX(GEN1_I2C_SCL,        I2C1,           NORMAL, NORMAL, INPUT,  DISABLE,        ENABLE),
394         I2C_PINMUX(GEN1_I2C_SDA,        I2C1,           NORMAL, NORMAL, INPUT,  DISABLE,        ENABLE),
395
396         /* I2C2 pinmux */
397         I2C_PINMUX(GEN2_I2C_SCL,        I2C2,           NORMAL, NORMAL, INPUT,  DISABLE,        ENABLE),
398         I2C_PINMUX(GEN2_I2C_SDA,        I2C2,           NORMAL, NORMAL, INPUT,  DISABLE,        ENABLE),
399
400         /* I2C3 pinmux */
401         I2C_PINMUX(CAM_I2C_SCL,         I2C3,           NORMAL, NORMAL, INPUT,  DISABLE,        ENABLE),
402         I2C_PINMUX(CAM_I2C_SDA,         I2C3,           NORMAL, NORMAL, INPUT,  DISABLE,        ENABLE),
403
404         /* I2C4 pinmux */
405         I2C_PINMUX(DDC_SCL,             I2C4,           NORMAL, NORMAL, INPUT,  DISABLE,        ENABLE),
406         I2C_PINMUX(DDC_SDA,             I2C4,           NORMAL, NORMAL, INPUT,  DISABLE,        ENABLE),
407
408         /* Power I2C pinmux */
409         I2C_PINMUX(PWR_I2C_SCL,         I2CPWR,         NORMAL, NORMAL, INPUT,  DISABLE,        ENABLE),
410         I2C_PINMUX(PWR_I2C_SDA,         I2CPWR,         NORMAL, NORMAL, INPUT,  DISABLE,        ENABLE),
411
412         /* LCD */
413         DEFAULT_PINMUX(LCD_PCLK,        DISPLAYA,        NORMAL,    NORMAL,     INPUT),
414         DEFAULT_PINMUX(LCD_DE,          DISPLAYA,        NORMAL,    NORMAL,     INPUT),
415         DEFAULT_PINMUX(LCD_HSYNC,       DISPLAYA,        NORMAL,    NORMAL,     INPUT),
416         DEFAULT_PINMUX(LCD_VSYNC,       DISPLAYA,        NORMAL,    NORMAL,     INPUT),
417         DEFAULT_PINMUX(LCD_D0,          DISPLAYA,        NORMAL,    NORMAL,     INPUT),
418         DEFAULT_PINMUX(LCD_D1,          DISPLAYA,        NORMAL,    NORMAL,     INPUT),
419         DEFAULT_PINMUX(LCD_D2,          DISPLAYA,        NORMAL,    NORMAL,     INPUT),
420         DEFAULT_PINMUX(LCD_D3,          DISPLAYA,        NORMAL,    NORMAL,     INPUT),
421         DEFAULT_PINMUX(LCD_D4,          DISPLAYA,        NORMAL,    NORMAL,     INPUT),
422         DEFAULT_PINMUX(LCD_D5,          DISPLAYA,        NORMAL,    NORMAL,     INPUT),
423         DEFAULT_PINMUX(LCD_D6,          DISPLAYA,        NORMAL,    NORMAL,     INPUT),
424         DEFAULT_PINMUX(LCD_D7,          DISPLAYA,        NORMAL,    NORMAL,     INPUT),
425         DEFAULT_PINMUX(LCD_D8,          DISPLAYA,        NORMAL,    NORMAL,     INPUT),
426         DEFAULT_PINMUX(LCD_D9,          DISPLAYA,        NORMAL,    NORMAL,     INPUT),
427         DEFAULT_PINMUX(LCD_D10,         DISPLAYA,        NORMAL,    NORMAL,     INPUT),
428         DEFAULT_PINMUX(LCD_D11,         DISPLAYA,        NORMAL,    NORMAL,     INPUT),
429         DEFAULT_PINMUX(LCD_D12,         DISPLAYA,        NORMAL,    NORMAL,     INPUT),
430         DEFAULT_PINMUX(LCD_D13,         DISPLAYA,        NORMAL,    NORMAL,     INPUT),
431         DEFAULT_PINMUX(LCD_D14,         DISPLAYA,        NORMAL,    NORMAL,     INPUT),
432         DEFAULT_PINMUX(LCD_D15,         DISPLAYA,        NORMAL,    NORMAL,     INPUT),
433         DEFAULT_PINMUX(LCD_D16,         DISPLAYA,        NORMAL,    NORMAL,     INPUT),
434         DEFAULT_PINMUX(LCD_D17,         DISPLAYA,        NORMAL,    NORMAL,     INPUT),
435         DEFAULT_PINMUX(LCD_D18,         DISPLAYA,        NORMAL,    NORMAL,     INPUT),
436         DEFAULT_PINMUX(LCD_D19,         DISPLAYA,        NORMAL,    NORMAL,     INPUT),
437         DEFAULT_PINMUX(LCD_D20,         DISPLAYA,        NORMAL,    NORMAL,     INPUT),
438         DEFAULT_PINMUX(LCD_D21,         DISPLAYA,        NORMAL,    NORMAL,     INPUT),
439         DEFAULT_PINMUX(LCD_D22,         DISPLAYA,        NORMAL,    NORMAL,     INPUT),
440         DEFAULT_PINMUX(LCD_D23,         DISPLAYA,        NORMAL,    NORMAL,     INPUT),
441
442         /* UART B : GPS */
443         DEFAULT_PINMUX(UART2_RXD,       IRDA,            NORMAL,    NORMAL,     INPUT),
444         DEFAULT_PINMUX(UART2_TXD,       IRDA,            NORMAL,    NORMAL,     OUTPUT),
445         DEFAULT_PINMUX(UART2_RTS_N,     UARTB,           NORMAL,    NORMAL,     OUTPUT),
446         DEFAULT_PINMUX(UART2_CTS_N,     UARTB,           NORMAL,    NORMAL,     INPUT),
447
448         /*UART C : BT */
449         DEFAULT_PINMUX(UART3_TXD,       UARTC,           NORMAL,    NORMAL,     OUTPUT),
450         DEFAULT_PINMUX(UART3_RXD,       UARTC,           NORMAL,    NORMAL,     INPUT),
451         DEFAULT_PINMUX(UART3_CTS_N,     UARTC,           NORMAL,    NORMAL,     INPUT),
452         DEFAULT_PINMUX(UART3_RTS_N,     UARTC,           NORMAL,    NORMAL,     OUTPUT),
453
454         /* UART D : DEBUG */
455         DEFAULT_PINMUX(GMI_A16,         UARTD,           NORMAL,    NORMAL,     OUTPUT),
456         DEFAULT_PINMUX(GMI_A17,         UARTD,           NORMAL,    NORMAL,     INPUT),
457         DEFAULT_PINMUX(GMI_A18,         UARTD,           NORMAL,    NORMAL,     INPUT),
458         DEFAULT_PINMUX(GMI_A19,         UARTD,           NORMAL,    NORMAL,     OUTPUT),
459
460         /*  KBC keys */
461         DEFAULT_PINMUX(KB_COL0,         KBC,             PULL_UP,   NORMAL,     INPUT),
462         DEFAULT_PINMUX(KB_COL1,         KBC,             PULL_UP,   NORMAL,     INPUT),
463         DEFAULT_PINMUX(KB_COL2,         KBC,             PULL_UP,   NORMAL,     INPUT),
464         DEFAULT_PINMUX(KB_COL3,         KBC,             PULL_UP,   NORMAL,     INPUT),
465         DEFAULT_PINMUX(KB_ROW0,         KBC,             PULL_UP,   NORMAL,     INPUT),
466         DEFAULT_PINMUX(KB_ROW1,         KBC,             PULL_UP,   NORMAL,     INPUT),
467         DEFAULT_PINMUX(KB_ROW2,         KBC,             PULL_UP,   NORMAL,     INPUT),
468
469         /* I2S0 : for MODEM */
470         DEFAULT_PINMUX(DAP1_FS,         I2S0,            NORMAL,    NORMAL,     INPUT),
471         DEFAULT_PINMUX(DAP1_DIN,        I2S0,            NORMAL,    NORMAL,     INPUT),
472         DEFAULT_PINMUX(DAP1_DOUT,       I2S0,            NORMAL,    NORMAL,     INPUT),
473         DEFAULT_PINMUX(DAP1_SCLK,       I2S0,            NORMAL,    NORMAL,     INPUT),
474
475         /* I2S1 : for CODEC */
476         DEFAULT_PINMUX(DAP2_FS,         I2S1,            NORMAL,    NORMAL,     INPUT),
477         DEFAULT_PINMUX(DAP2_DIN,        I2S1,            NORMAL,    NORMAL,     INPUT),
478         DEFAULT_PINMUX(DAP2_DOUT,       I2S1,            NORMAL,    NORMAL,     INPUT),
479         DEFAULT_PINMUX(DAP2_SCLK,       I2S1,            NORMAL,    NORMAL,     INPUT),
480
481         /* I2S3 : for BT */
482         DEFAULT_PINMUX(DAP4_FS,         I2S3,            NORMAL,    NORMAL,     INPUT),
483         DEFAULT_PINMUX(DAP4_DIN,        I2S3,            NORMAL,    NORMAL,     INPUT),
484         DEFAULT_PINMUX(DAP4_DOUT,       I2S3,            NORMAL,    NORMAL,     INPUT),
485         DEFAULT_PINMUX(DAP4_SCLK,       I2S3,            NORMAL,    NORMAL,     INPUT),
486
487         /* SPI1 : touch */
488         DEFAULT_PINMUX(SPI1_MOSI,       SPI1,            NORMAL,    NORMAL,     INPUT),
489         DEFAULT_PINMUX(SPI1_SCK,        SPI1,            NORMAL,    NORMAL,     INPUT),
490         DEFAULT_PINMUX(SPI1_CS0_N,      SPI1,            NORMAL,    NORMAL,     INPUT),
491         DEFAULT_PINMUX(SPI1_MISO,       SPI1,            NORMAL,    NORMAL,     INPUT),
492
493         /* SPIDIF */
494         DEFAULT_PINMUX(SPDIF_IN,        SPDIF,           NORMAL,    NORMAL,     INPUT),
495         DEFAULT_PINMUX(SPDIF_OUT,       SPDIF,           NORMAL,    NORMAL,     OUTPUT),
496
497         /* FIXED FUNCTION AND CONFIGURATION */
498         DEFAULT_PINMUX(CLK_32K_OUT,     BLINK,           NORMAL,    NORMAL,     OUTPUT),
499         DEFAULT_PINMUX(SYS_CLK_REQ,     SYSCLK,          NORMAL,    NORMAL,     OUTPUT),
500         DEFAULT_PINMUX(OWR,             OWR,             NORMAL,    NORMAL,     INPUT),
501         DEFAULT_PINMUX(GMI_AD4,         RSVD1,           NORMAL,    NORMAL,     INPUT),
502         DEFAULT_PINMUX(CLK1_OUT,        EXTPERIPH1,      NORMAL,    NORMAL,     INPUT),
503         DEFAULT_PINMUX(CLK2_OUT,        EXTPERIPH2,      NORMAL,    NORMAL,     INPUT),
504         DEFAULT_PINMUX(CLK3_OUT,        EXTPERIPH3,      NORMAL,    NORMAL,     OUTPUT),
505         DEFAULT_PINMUX(CLK2_REQ,        DAP,             NORMAL,    NORMAL,     INPUT),
506         DEFAULT_PINMUX(HDMI_INT,        RSVD0,           NORMAL,    TRISTATE,   INPUT),
507
508         /* GPIO */
509         /* POWER RAIL GPIO */
510         DEFAULT_PINMUX(DAP3_FS,         I2S2,            NORMAL,    NORMAL,     OUTPUT),
511         DEFAULT_PINMUX(GMI_AD14,        RSVD1,           PULL_DOWN, NORMAL,     OUTPUT),
512         DEFAULT_PINMUX(SDMMC3_DAT5,     SDMMC3,          NORMAL,    NORMAL,     OUTPUT),
513         DEFAULT_PINMUX(KB_ROW6,         KBC,             NORMAL,    NORMAL,     OUTPUT),
514         DEFAULT_PINMUX(KB_ROW7,         KBC,             NORMAL,    NORMAL,     OUTPUT),
515         DEFAULT_PINMUX(LCD_M1,          DISPLAYA,        NORMAL,    NORMAL,     OUTPUT),
516         DEFAULT_PINMUX(LCD_PWR0,        DISPLAYA,        NORMAL,    NORMAL,     OUTPUT),
517         DEFAULT_PINMUX(LCD_PWR1,        DISPLAYA,        NORMAL,    NORMAL,     OUTPUT),
518         DEFAULT_PINMUX(LCD_PWR2,        DISPLAYA,        NORMAL,    NORMAL,     OUTPUT),
519         DEFAULT_PINMUX(KB_ROW8,         KBC,             NORMAL,    NORMAL,     OUTPUT),
520
521         /* CAMERA */
522         DEFAULT_PINMUX(CAM_MCLK,        VI_ALT2,         PULL_UP,   NORMAL,     INPUT),
523         DEFAULT_PINMUX(GPIO_PCC1,       RSVD1,           NORMAL,    NORMAL,     INPUT),
524         DEFAULT_PINMUX(GPIO_PBB0,       RSVD1,           NORMAL,    NORMAL,     INPUT),
525         DEFAULT_PINMUX(GPIO_PBB3,       VGP3,            NORMAL,    NORMAL,     INPUT),
526         DEFAULT_PINMUX(GPIO_PBB5,       VGP5,            NORMAL,    NORMAL,     INPUT),
527         DEFAULT_PINMUX(GPIO_PBB6,       VGP6,            NORMAL,    NORMAL,     INPUT),
528         DEFAULT_PINMUX(GPIO_PBB7,       I2S4,            NORMAL,    NORMAL,     INPUT),
529         DEFAULT_PINMUX(GPIO_PCC2,       I2S4,            NORMAL,    NORMAL,     INPUT),
530         DEFAULT_PINMUX(KB_ROW4,         KBC,             NORMAL,    NORMAL,     OUTPUT),
531         DEFAULT_PINMUX(KB_ROW5,         KBC,             NORMAL,    NORMAL,     OUTPUT),
532         DEFAULT_PINMUX(KB_ROW9,         KBC,             NORMAL,    NORMAL,     OUTPUT),
533         DEFAULT_PINMUX(KB_ROW10,        KBC,             NORMAL,    NORMAL,     OUTPUT),
534
535         /* MODEM */
536         DEFAULT_PINMUX(GPIO_PV0,        RSVD,            NORMAL,    NORMAL,     INPUT),
537         DEFAULT_PINMUX(GPIO_PV1,        RSVD,            NORMAL,    NORMAL,     INPUT),
538
539         /* GPS and BT */
540         DEFAULT_PINMUX(GPIO_PU0,        RSVD1,           NORMAL,    NORMAL,     INPUT),
541         DEFAULT_PINMUX(GPIO_PU1,        RSVD1,           NORMAL,    NORMAL,     OUTPUT),
542         DEFAULT_PINMUX(GPIO_PU2,        RSVD1,           NORMAL,    NORMAL,     INPUT),
543         DEFAULT_PINMUX(GPIO_PU3,        RSVD1,           NORMAL,    NORMAL,     INPUT),
544         DEFAULT_PINMUX(GPIO_PU4,        PWM1,            NORMAL,    NORMAL,     OUTPUT),
545         DEFAULT_PINMUX(GPIO_PU5,        PWM2,            NORMAL,    NORMAL,     INPUT),
546         DEFAULT_PINMUX(GPIO_PU6,        RSVD1,           NORMAL,    NORMAL,     INPUT),
547         DEFAULT_PINMUX(KB_ROW14,        KBC,             NORMAL,    TRISTATE,   OUTPUT),
548
549         /* LCD GPIO */
550         DEFAULT_PINMUX(GMI_AD0,         RSVD1,           NORMAL,    NORMAL,     OUTPUT),
551         DEFAULT_PINMUX(GMI_AD1,         RSVD1,           NORMAL,    NORMAL,     OUTPUT),
552         DEFAULT_PINMUX(GMI_AD2,         RSVD1,           PULL_DOWN, NORMAL,     OUTPUT),
553         DEFAULT_PINMUX(GMI_AD3,         RSVD1,           PULL_DOWN, NORMAL,     OUTPUT),
554         DEFAULT_PINMUX(GMI_AD5,         RSVD1,           PULL_DOWN, NORMAL,     OUTPUT),
555         DEFAULT_PINMUX(GMI_AD6,         RSVD1,           PULL_DOWN, NORMAL,     OUTPUT),
556         DEFAULT_PINMUX(GMI_AD7,         RSVD1,           PULL_DOWN, NORMAL,     OUTPUT),
557         DEFAULT_PINMUX(GMI_AD8,         PWM0,            NORMAL,    NORMAL,     OUTPUT),
558         DEFAULT_PINMUX(GMI_AD9,         RSVD2,           PULL_DOWN, NORMAL,     OUTPUT),
559         DEFAULT_PINMUX(GMI_AD11,        PWM3,            NORMAL,    NORMAL,     OUTPUT),
560
561         /* TOUCH */
562         DEFAULT_PINMUX(GMI_WAIT,        RSVD1,           PULL_UP,   NORMAL,     INPUT),
563         DEFAULT_PINMUX(GMI_WP_N,        RSVD1,           PULL_UP,   NORMAL,     INPUT),
564         DEFAULT_PINMUX(LCD_SDOUT,       DISPLAYA,        NORMAL,    NORMAL,     INPUT),
565         DEFAULT_PINMUX(LCD_DC1,         DISPLAYA,        NORMAL,    NORMAL,     INPUT),
566         DEFAULT_PINMUX(LCD_WR_N,        DISPLAYA,        PULL_UP,   NORMAL,     INPUT),
567
568         /* SDMMC */
569         DEFAULT_PINMUX(GMI_IORDY,       RSVD1,           PULL_UP,   NORMAL,     INPUT),
570
571         /* CODEC */
572         DEFAULT_PINMUX(SPI2_SCK,        SPI2,            NORMAL,    NORMAL,     OUTPUT),
573         DEFAULT_PINMUX(SPI2_CS1_N,      SPI2,            NORMAL,    NORMAL,     INPUT),
574         DEFAULT_PINMUX(GMI_CS2_N,       RSVD1,           NORMAL,    NORMAL,     INPUT),
575         DEFAULT_PINMUX(GMI_CS3_N,       RSVD1,           NORMAL,    NORMAL,     INPUT),
576         DEFAULT_PINMUX(GMI_AD12,        RSVD1,           NORMAL,    NORMAL,     OUTPUT),
577
578         /* OTHERS */
579         DEFAULT_PINMUX(KB_ROW3,         KBC,             NORMAL,    NORMAL,     OUTPUT),
580         DEFAULT_PINMUX(GMI_DQS,         RSVD1,           NORMAL,    NORMAL,     INPUT),
581
582         DEFAULT_PINMUX(GMI_AD15,        RSVD1,           PULL_UP,   NORMAL,     OUTPUT),
583         DEFAULT_PINMUX(GMI_CLK,         RSVD1,           PULL_UP,   NORMAL,     INPUT),
584
585         DEFAULT_PINMUX(GMI_RST_N,       NAND,            PULL_UP,   NORMAL,     OUTPUT),
586         DEFAULT_PINMUX(LCD_DC0,         DISPLAYA,        NORMAL,    NORMAL,     INPUT),
587         DEFAULT_PINMUX(LCD_CS0_N,       DISPLAYA,        NORMAL,    NORMAL,     INPUT),
588         DEFAULT_PINMUX(LCD_CS1_N,       DISPLAYA,        NORMAL,    NORMAL,     INPUT),
589         DEFAULT_PINMUX(LCD_SCK,         DISPLAYA,        NORMAL,    NORMAL,     INPUT),
590         DEFAULT_PINMUX(LCD_SDIN,        DISPLAYA,        NORMAL,    NORMAL,     INPUT),
591         DEFAULT_PINMUX(CRT_HSYNC,       CRT,             NORMAL,    NORMAL,     OUTPUT),
592         DEFAULT_PINMUX(CRT_VSYNC,       CRT,             NORMAL,    NORMAL,     OUTPUT),
593         DEFAULT_PINMUX(PEX_WAKE_N,      PCIE,            NORMAL,    NORMAL,     INPUT),
594         DEFAULT_PINMUX(PEX_L2_PRSNT_N,  PCIE,            NORMAL,    NORMAL,     INPUT),
595         DEFAULT_PINMUX(PEX_L2_RST_N,    PCIE,            NORMAL,    NORMAL,     OUTPUT),
596         DEFAULT_PINMUX(PEX_L2_CLKREQ_N, PCIE,            NORMAL,    NORMAL,     OUTPUT),
597         DEFAULT_PINMUX(HDMI_CEC,        CEC,             NORMAL,    NORMAL,     INPUT),
598
599         DEFAULT_PINMUX(KB_ROW15,        KBC,             NORMAL,    NORMAL,     OUTPUT),
600         DEFAULT_PINMUX(SPI2_CS2_N,      SPI2,            NORMAL,    NORMAL,     INPUT),
601         DEFAULT_PINMUX(SPI2_MISO,       SPI2,            NORMAL,    NORMAL,     INPUT),
602         DEFAULT_PINMUX(SPI2_MOSI,       SPI2,            NORMAL,    NORMAL,     INPUT),
603
604         DEFAULT_PINMUX(KB_ROW11,        KBC,             PULL_UP,   TRISTATE,   INPUT),
605         DEFAULT_PINMUX(KB_ROW12,        KBC,             NORMAL,    TRISTATE,   OUTPUT),
606         DEFAULT_PINMUX(KB_ROW13,        KBC,             NORMAL,    TRISTATE,   OUTPUT),
607 };
608
609 /*Do not use for now*/
610 static __initdata struct tegra_pingroup_config unused_pins_lowpower[] = {
611         DEFAULT_PINMUX(ULPI_CLK,        ULPI,          NORMAL,    TRISTATE,   OUTPUT),
612         DEFAULT_PINMUX(ULPI_DATA0,      ULPI,          NORMAL,    TRISTATE,   OUTPUT),
613         DEFAULT_PINMUX(ULPI_DATA1,      ULPI,          NORMAL,    TRISTATE,   OUTPUT),
614         DEFAULT_PINMUX(ULPI_DATA2,      ULPI,          NORMAL,    TRISTATE,   OUTPUT),
615         DEFAULT_PINMUX(ULPI_DATA3,      ULPI,          NORMAL,    TRISTATE,   OUTPUT),
616         DEFAULT_PINMUX(ULPI_DATA4,      ULPI,          NORMAL,    TRISTATE,   OUTPUT),
617         DEFAULT_PINMUX(ULPI_DATA5,      ULPI,          NORMAL,    TRISTATE,   OUTPUT),
618         DEFAULT_PINMUX(ULPI_DATA6,      ULPI,          NORMAL,    TRISTATE,   OUTPUT),
619         DEFAULT_PINMUX(ULPI_DATA7,      ULPI,          NORMAL,    TRISTATE,   OUTPUT),
620         DEFAULT_PINMUX(ULPI_DIR,        ULPI,          NORMAL,    TRISTATE,   OUTPUT),
621         DEFAULT_PINMUX(ULPI_NXT,        ULPI,          NORMAL,    TRISTATE,   OUTPUT),
622         DEFAULT_PINMUX(ULPI_STP,        ULPI,          NORMAL,    TRISTATE,   OUTPUT),
623
624         DEFAULT_PINMUX(GMI_AD10,        PWM2,          NORMAL,    TRISTATE,   OUTPUT),
625         DEFAULT_PINMUX(GMI_AD13,        RSVD1,         NORMAL,    TRISTATE,   OUTPUT),
626         DEFAULT_PINMUX(CLK1_REQ,        DAP,           NORMAL,    TRISTATE,   OUTPUT),
627         DEFAULT_PINMUX(GMI_ADV_N,       RSVD1,         NORMAL,    TRISTATE,   OUTPUT),
628         DEFAULT_PINMUX(GMI_CS0_N,       RSVD1,         NORMAL,    TRISTATE,   OUTPUT),
629         DEFAULT_PINMUX(GMI_CS1_N,       RSVD1,         NORMAL,    TRISTATE,   OUTPUT),
630         DEFAULT_PINMUX(GMI_CS4_N,       RSVD1,         NORMAL,    TRISTATE,   OUTPUT),
631         DEFAULT_PINMUX(GMI_CS6_N,       NAND,          NORMAL,    TRISTATE,   OUTPUT),
632         DEFAULT_PINMUX(GMI_CS7_N,       NAND,          NORMAL,    TRISTATE,   OUTPUT),
633         DEFAULT_PINMUX(GMI_OE_N,        RSVD1,         NORMAL,    TRISTATE,   OUTPUT),
634         DEFAULT_PINMUX(GMI_WR_N,        RSVD1,         NORMAL,    TRISTATE,   OUTPUT),
635         DEFAULT_PINMUX(PEX_L0_CLKREQ_N, PCIE,          NORMAL,    TRISTATE,   OUTPUT),
636         DEFAULT_PINMUX(PEX_L0_PRSNT_N,  PCIE,          NORMAL,    TRISTATE,   OUTPUT),
637         DEFAULT_PINMUX(PEX_L0_RST_N,    PCIE,          NORMAL,    TRISTATE,   OUTPUT),
638         DEFAULT_PINMUX(PEX_L1_CLKREQ_N, PCIE,          NORMAL,    TRISTATE,   OUTPUT),
639         DEFAULT_PINMUX(PEX_L1_PRSNT_N,  PCIE,          NORMAL,    TRISTATE,   OUTPUT),
640         DEFAULT_PINMUX(PEX_L1_RST_N,    PCIE,          NORMAL,    TRISTATE,   OUTPUT),
641         DEFAULT_PINMUX(GPIO_PV2,        OWR,           NORMAL,    TRISTATE,   OUTPUT),
642         DEFAULT_PINMUX(GPIO_PV3,        RSVD1,         NORMAL,    TRISTATE,   OUTPUT),
643         DEFAULT_PINMUX(HDMI_CEC,        CEC,           NORMAL,    TRISTATE,   OUTPUT),
644         DEFAULT_PINMUX(KB_COL4,         KBC,           NORMAL,    TRISTATE,   OUTPUT),
645         DEFAULT_PINMUX(KB_COL5,         KBC,           NORMAL,    TRISTATE,   OUTPUT),
646         DEFAULT_PINMUX(KB_COL6,         KBC,           NORMAL,    TRISTATE,   OUTPUT),
647         DEFAULT_PINMUX(KB_COL7,         KBC,           NORMAL,    TRISTATE,   OUTPUT),
648         DEFAULT_PINMUX(CLK3_REQ,        DEV3,          NORMAL,    TRISTATE,   OUTPUT),
649         DEFAULT_PINMUX(VI_D0,           VI,            NORMAL,    TRISTATE,   OUTPUT),
650         DEFAULT_PINMUX(VI_D1,           VI,            NORMAL,    TRISTATE,   OUTPUT),
651         DEFAULT_PINMUX(VI_D10,          VI,            NORMAL,    TRISTATE,   OUTPUT),
652         DEFAULT_PINMUX(VI_D11,          VI,            NORMAL,    TRISTATE,   OUTPUT),
653         DEFAULT_PINMUX(VI_D2,           VI,            NORMAL,    TRISTATE,   OUTPUT),
654         DEFAULT_PINMUX(VI_D3,           VI,            NORMAL,    TRISTATE,   OUTPUT),
655         DEFAULT_PINMUX(VI_D4,           VI,            NORMAL,    TRISTATE,   OUTPUT),
656         DEFAULT_PINMUX(VI_D5,           VI,            NORMAL,    TRISTATE,   OUTPUT),
657         DEFAULT_PINMUX(VI_D6,           VI,            NORMAL,    TRISTATE,   OUTPUT),
658         DEFAULT_PINMUX(VI_D7,           VI,            NORMAL,    TRISTATE,   OUTPUT),
659         DEFAULT_PINMUX(VI_D8,           VI,            NORMAL,    TRISTATE,   OUTPUT),
660         DEFAULT_PINMUX(VI_D9,           VI,            NORMAL,    TRISTATE,   OUTPUT),
661         DEFAULT_PINMUX(VI_HSYNC,        VI,            NORMAL,    TRISTATE,   OUTPUT),
662         DEFAULT_PINMUX(VI_MCLK,         VI,            NORMAL,    TRISTATE,   OUTPUT),
663         DEFAULT_PINMUX(VI_PCLK,         VI,            NORMAL,    TRISTATE,   OUTPUT),
664         DEFAULT_PINMUX(VI_VSYNC,        VI,            NORMAL,    TRISTATE,   OUTPUT),
665         DEFAULT_PINMUX(DAP3_DIN,        I2S2,          NORMAL,    TRISTATE,   OUTPUT),
666         DEFAULT_PINMUX(DAP3_DOUT,       I2S2,          NORMAL,    TRISTATE,   OUTPUT),
667         DEFAULT_PINMUX(DAP3_SCLK,       I2S2,          NORMAL,    TRISTATE,   OUTPUT),
668
669 };
670
671
672 static void __init dalmore_pinmux_audio_init(void)
673 {
674         gpio_request(TEGRA_GPIO_CDC_IRQ, "rt5640");
675         gpio_direction_input(TEGRA_GPIO_CDC_IRQ);
676
677 }
678
679 #endif
680
681 #define GPIO_INIT_PIN_MODE(_gpio, _is_input, _value)    \
682         {                                       \
683                 .gpio_nr        = _gpio,        \
684                 .is_input       = _is_input,    \
685                 .value          = _value,       \
686         }
687
688 #if defined(CONFIG_ARCH_TEGRA_11x_SOC)
689
690 static struct gpio_init_pin_info init_gpio_mode_dalmore_common[] = {
691         /* FIX ME */
692 };
693
694 #else
695
696 static struct gpio_init_pin_info init_gpio_mode_dalmore_common[] = {
697         GPIO_INIT_PIN_MODE(TEGRA_GPIO_PDD7, false, 0),
698         GPIO_INIT_PIN_MODE(TEGRA_GPIO_PCC6, false, 0),
699         GPIO_INIT_PIN_MODE(TEGRA_GPIO_PCC7, false, 1),
700 };
701 #endif
702
703 static void __init dalmore_gpio_init_configure(void)
704 {
705         int len;
706         int i;
707         struct gpio_init_pin_info *pins_info;
708
709         len = ARRAY_SIZE(init_gpio_mode_dalmore_common);
710         pins_info = init_gpio_mode_dalmore_common;
711
712         for (i = 0; i < len; ++i) {
713                 tegra_gpio_init_configure(pins_info->gpio_nr,
714                         pins_info->is_input, pins_info->value);
715                 pins_info++;
716         }
717 }
718
719 int __init dalmore_pinmux_init(void)
720 {
721         struct board_info board_info;
722         tegra_get_board_info(&board_info);
723         /*BUG_ON(board_info.board_id != BOARD_E1565);*/
724
725 #if defined(CONFIG_ARCH_TEGRA_11x_SOC)
726         dalmore_gpio_init_configure();
727
728         tegra_pinmux_config_table(dalmore_pinmux_common, ARRAY_SIZE(dalmore_pinmux_common));
729         tegra_drive_pinmux_config_table(dalmore_drive_pinmux,
730                                         ARRAY_SIZE(dalmore_drive_pinmux));
731         tegra_pinmux_config_table(unused_pins_lowpower,
732                 ARRAY_SIZE(unused_pins_lowpower));
733
734 #else
735         tegra30_default_pinmux();
736
737         dalmore_gpio_init_configure();
738
739         tegra_pinmux_config_table(dalmore_pinmux_common, ARRAY_SIZE(dalmore_pinmux_common));
740         tegra_drive_pinmux_config_table(dalmore_drive_pinmux,
741                                         ARRAY_SIZE(dalmore_drive_pinmux));
742
743         tegra_pinmux_config_table(unused_pins_lowpower,
744                 ARRAY_SIZE(unused_pins_lowpower));
745         dalmore_pinmux_audio_init();
746 #endif
747
748         return 0;
749 }