2 * arch/arm/mach-tegra/board-curacao-pinmux.c
4 * Copyright (C) 2010-2012 NVIDIA Corporation
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.
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.
17 #include <linux/kernel.h>
18 #include <linux/init.h>
19 #include <linux/bug.h>
20 #include <mach/pinmux.h>
21 #include <mach/pinmux-t11.h>
23 #define DEFAULT_DRIVE(_name) \
25 .pingroup = TEGRA_DRIVE_PINGROUP_##_name, \
26 .hsm = TEGRA_HSM_DISABLE, \
27 .schmitt = TEGRA_SCHMITT_ENABLE, \
28 .drive = TEGRA_DRIVE_DIV_1, \
29 .pull_down = TEGRA_PULL_31, \
30 .pull_up = TEGRA_PULL_31, \
31 .slew_rising = TEGRA_SLEW_SLOWEST, \
32 .slew_falling = TEGRA_SLEW_SLOWEST, \
36 static __initdata struct tegra_drive_pingroup_config curacao_drive_pinmux[] = {
37 /* DEFAULT_DRIVE(<pin_group>), */
40 #define DEFAULT_PINMUX(_pingroup, _mux, _pupd, _tri, _io) \
42 .pingroup = TEGRA_PINGROUP_##_pingroup, \
43 .func = TEGRA_MUX_##_mux, \
44 .pupd = TEGRA_PUPD_##_pupd, \
45 .tristate = TEGRA_TRI_##_tri, \
46 .io = TEGRA_PIN_##_io, \
49 static __initdata struct tegra_pingroup_config curacao_pinmux[] = {
50 DEFAULT_PINMUX(ULPI_DATA0, ULPI, NORMAL, NORMAL, INPUT),
51 DEFAULT_PINMUX(ULPI_DATA1, ULPI, NORMAL, NORMAL, INPUT),
52 DEFAULT_PINMUX(ULPI_DATA2, ULPI, NORMAL, NORMAL, INPUT),
53 DEFAULT_PINMUX(ULPI_DATA3, ULPI, NORMAL, NORMAL, INPUT),
54 DEFAULT_PINMUX(ULPI_DATA4, ULPI, NORMAL, NORMAL, INPUT),
55 DEFAULT_PINMUX(ULPI_DATA5, ULPI, NORMAL, NORMAL, INPUT),
56 DEFAULT_PINMUX(ULPI_DATA6, ULPI, NORMAL, NORMAL, INPUT),
57 DEFAULT_PINMUX(ULPI_DATA7, ULPI, NORMAL, NORMAL, INPUT),
58 DEFAULT_PINMUX(ULPI_CLK, ULPI, NORMAL, NORMAL, INPUT),
59 DEFAULT_PINMUX(ULPI_DIR, ULPI, NORMAL, NORMAL, INPUT),
60 DEFAULT_PINMUX(ULPI_NXT, ULPI, NORMAL, NORMAL, INPUT),
61 DEFAULT_PINMUX(ULPI_STP, ULPI, NORMAL, NORMAL, INPUT),
62 DEFAULT_PINMUX(DAP3_FS, I2S2, NORMAL, NORMAL, INPUT),
63 DEFAULT_PINMUX(DAP3_DIN, I2S2, NORMAL, NORMAL, INPUT),
64 DEFAULT_PINMUX(DAP3_DOUT, I2S2, NORMAL, NORMAL, INPUT),
65 DEFAULT_PINMUX(DAP3_SCLK, I2S2, NORMAL, NORMAL, INPUT),
66 DEFAULT_PINMUX(GPIO_PV1, RSVD1, NORMAL, NORMAL, INPUT),
67 DEFAULT_PINMUX(SDMMC1_CLK, SDMMC1, NORMAL, NORMAL, OUTPUT),
68 DEFAULT_PINMUX(SDMMC1_CMD, SDMMC1, PULL_UP, NORMAL, INPUT),
69 DEFAULT_PINMUX(SDMMC1_DAT3, SDMMC1, PULL_UP, NORMAL, INPUT),
70 DEFAULT_PINMUX(SDMMC1_DAT2, SDMMC1, PULL_UP, NORMAL, INPUT),
71 DEFAULT_PINMUX(SDMMC1_DAT1, SDMMC1, PULL_UP, NORMAL, INPUT),
72 DEFAULT_PINMUX(SDMMC1_DAT0, SDMMC1, PULL_UP, NORMAL, INPUT),
73 DEFAULT_PINMUX(CLK2_OUT, EXTPERIPH2, NORMAL, NORMAL, INPUT),
74 DEFAULT_PINMUX(CLK2_REQ, DAP, NORMAL, NORMAL, INPUT),
75 DEFAULT_PINMUX(DDC_SCL, I2C4, NORMAL, NORMAL, INPUT),
76 DEFAULT_PINMUX(DDC_SDA, I2C4, NORMAL, NORMAL, INPUT),
77 DEFAULT_PINMUX(UART2_RXD, IRDA, NORMAL, NORMAL, INPUT),
78 DEFAULT_PINMUX(UART2_TXD, IRDA, NORMAL, NORMAL, OUTPUT),
79 DEFAULT_PINMUX(UART2_RTS_N, UARTB, NORMAL, NORMAL, OUTPUT),
80 DEFAULT_PINMUX(UART2_CTS_N, UARTB, NORMAL, NORMAL, INPUT),
81 DEFAULT_PINMUX(UART3_TXD, UARTC, NORMAL, NORMAL, OUTPUT),
82 DEFAULT_PINMUX(UART3_RXD, UARTC, NORMAL, NORMAL, INPUT),
83 DEFAULT_PINMUX(UART3_CTS_N, UARTC, NORMAL, NORMAL, INPUT),
84 DEFAULT_PINMUX(UART3_RTS_N, UARTC, NORMAL, NORMAL, OUTPUT),
85 DEFAULT_PINMUX(GPIO_PU0, RSVD2, NORMAL, NORMAL, INPUT),
86 DEFAULT_PINMUX(GPIO_PU1, RSVD2, NORMAL, NORMAL, INPUT),
87 DEFAULT_PINMUX(GPIO_PU2, RSVD2, NORMAL, NORMAL, INPUT),
88 DEFAULT_PINMUX(GPIO_PU3, PWM0, NORMAL, NORMAL, INPUT),
89 DEFAULT_PINMUX(GPIO_PU4, PWM1, NORMAL, NORMAL, INPUT),
90 DEFAULT_PINMUX(GPIO_PU5, PWM2, NORMAL, NORMAL, INPUT),
91 DEFAULT_PINMUX(GPIO_PU6, USB, NORMAL, NORMAL, INPUT),
92 DEFAULT_PINMUX(GEN1_I2C_SDA, I2C1, NORMAL, NORMAL, INPUT),
93 DEFAULT_PINMUX(GEN1_I2C_SCL, I2C1, NORMAL, NORMAL, INPUT),
94 DEFAULT_PINMUX(DAP4_FS, I2S3, NORMAL, NORMAL, INPUT),
95 DEFAULT_PINMUX(DAP4_DIN, I2S3, NORMAL, NORMAL, INPUT),
96 DEFAULT_PINMUX(DAP4_DOUT, I2S3, NORMAL, NORMAL, INPUT),
97 DEFAULT_PINMUX(DAP4_SCLK, I2S3, NORMAL, NORMAL, INPUT),
98 DEFAULT_PINMUX(CLK3_OUT, EXTPERIPH3, NORMAL, NORMAL, OUTPUT),
99 DEFAULT_PINMUX(CLK3_REQ, DEV3, NORMAL, NORMAL, INPUT),
100 DEFAULT_PINMUX(GMI_WP_N, RSVD0, NORMAL, NORMAL, INPUT),
101 DEFAULT_PINMUX(GMI_IORDY, RSVD1, NORMAL, NORMAL, INPUT),
102 DEFAULT_PINMUX(GMI_WAIT, NAND, NORMAL, NORMAL, INPUT),
103 DEFAULT_PINMUX(GMI_ADV_N, NAND, NORMAL, NORMAL, OUTPUT),
104 DEFAULT_PINMUX(GMI_CLK, NAND, NORMAL, NORMAL, OUTPUT),
105 DEFAULT_PINMUX(GMI_CS0_N, NAND, NORMAL, NORMAL, OUTPUT),
106 DEFAULT_PINMUX(GMI_CS1_N, NAND, NORMAL, NORMAL, OUTPUT),
107 DEFAULT_PINMUX(GMI_CS2_N, NAND, NORMAL, NORMAL, OUTPUT),
108 DEFAULT_PINMUX(GMI_CS3_N, NAND, NORMAL, NORMAL, OUTPUT),
109 DEFAULT_PINMUX(GMI_CS4_N, NAND, NORMAL, NORMAL, OUTPUT),
110 DEFAULT_PINMUX(GMI_CS6_N, NAND_ALT, NORMAL, NORMAL, OUTPUT),
111 DEFAULT_PINMUX(GMI_CS7_N, NAND_ALT, NORMAL, NORMAL, OUTPUT),
112 DEFAULT_PINMUX(GMI_AD0, NAND, NORMAL, NORMAL, INPUT),
113 DEFAULT_PINMUX(GMI_AD1, NAND, NORMAL, NORMAL, INPUT),
114 DEFAULT_PINMUX(GMI_AD2, NAND, NORMAL, NORMAL, INPUT),
115 DEFAULT_PINMUX(GMI_AD3, NAND, NORMAL, NORMAL, INPUT),
116 DEFAULT_PINMUX(GMI_AD4, NAND, NORMAL, NORMAL, INPUT),
117 DEFAULT_PINMUX(GMI_AD5, NAND, NORMAL, NORMAL, INPUT),
118 DEFAULT_PINMUX(GMI_AD6, NAND, NORMAL, NORMAL, INPUT),
119 DEFAULT_PINMUX(GMI_AD7, NAND, NORMAL, NORMAL, INPUT),
120 DEFAULT_PINMUX(GMI_AD8, NAND, NORMAL, NORMAL, INPUT),
121 DEFAULT_PINMUX(GMI_AD9, NAND, NORMAL, NORMAL, INPUT),
122 DEFAULT_PINMUX(GMI_AD10, NAND, NORMAL, NORMAL, INPUT),
123 DEFAULT_PINMUX(GMI_AD11, NAND, NORMAL, NORMAL, INPUT),
124 DEFAULT_PINMUX(GMI_AD12, NAND, NORMAL, NORMAL, INPUT),
125 DEFAULT_PINMUX(GMI_AD13, NAND, NORMAL, NORMAL, INPUT),
126 DEFAULT_PINMUX(GMI_AD14, NAND, NORMAL, NORMAL, INPUT),
127 DEFAULT_PINMUX(GMI_AD15, NAND, NORMAL, NORMAL, INPUT),
128 DEFAULT_PINMUX(GMI_A16, UARTD, NORMAL, NORMAL, OUTPUT),
129 DEFAULT_PINMUX(GMI_A17, UARTD, NORMAL, NORMAL, INPUT),
130 DEFAULT_PINMUX(GMI_A18, UARTD, NORMAL, NORMAL, INPUT),
131 DEFAULT_PINMUX(GMI_A19, UARTD, NORMAL, NORMAL, OUTPUT),
132 DEFAULT_PINMUX(GMI_WR_N, NAND, NORMAL, NORMAL, OUTPUT),
133 DEFAULT_PINMUX(GMI_OE_N, NAND, NORMAL, NORMAL, OUTPUT),
134 DEFAULT_PINMUX(GMI_DQS_P, NAND, NORMAL, NORMAL, INPUT),
135 DEFAULT_PINMUX(GMI_RST_N, GMI, NORMAL, NORMAL, INPUT),
136 DEFAULT_PINMUX(GEN2_I2C_SCL, I2C2, NORMAL, NORMAL, INPUT),
137 DEFAULT_PINMUX(GEN2_I2C_SDA, I2C2, NORMAL, NORMAL, INPUT),
138 DEFAULT_PINMUX(SDMMC4_CLK, SDMMC4, NORMAL, NORMAL, INPUT),
139 DEFAULT_PINMUX(SDMMC4_CMD, SDMMC4, PULL_UP, NORMAL, INPUT),
140 DEFAULT_PINMUX(SDMMC4_DAT0, SDMMC4, PULL_UP, NORMAL, INPUT),
141 DEFAULT_PINMUX(SDMMC4_DAT1, SDMMC4, PULL_UP, NORMAL, INPUT),
142 DEFAULT_PINMUX(SDMMC4_DAT2, SDMMC4, PULL_UP, NORMAL, INPUT),
143 DEFAULT_PINMUX(SDMMC4_DAT3, SDMMC4, PULL_UP, NORMAL, INPUT),
144 DEFAULT_PINMUX(SDMMC4_DAT4, SDMMC4, PULL_UP, NORMAL, INPUT),
145 DEFAULT_PINMUX(SDMMC4_DAT5, SDMMC4, PULL_UP, NORMAL, INPUT),
146 DEFAULT_PINMUX(SDMMC4_DAT6, SDMMC4, PULL_UP, NORMAL, INPUT),
147 DEFAULT_PINMUX(SDMMC4_DAT7, SDMMC4, PULL_UP, NORMAL, INPUT),
148 DEFAULT_PINMUX(SDMMC4_RST_N, RSVD1, PULL_DOWN, NORMAL, INPUT),
149 DEFAULT_PINMUX(CAM_MCLK, VI, NORMAL, NORMAL, INPUT),
150 DEFAULT_PINMUX(GPIO_PCC1, I2S4, NORMAL, NORMAL, INPUT),
151 DEFAULT_PINMUX(GPIO_PBB0, I2S4, NORMAL, NORMAL, INPUT),
152 DEFAULT_PINMUX(CAM_I2C_SCL, I2C3, NORMAL, NORMAL, INPUT),
153 DEFAULT_PINMUX(CAM_I2C_SDA, I2C3, NORMAL, NORMAL, INPUT),
154 DEFAULT_PINMUX(GPIO_PBB3, VGP3, NORMAL, NORMAL, INPUT),
155 DEFAULT_PINMUX(GPIO_PBB4, VGP4, NORMAL, NORMAL, INPUT),
156 DEFAULT_PINMUX(GPIO_PBB5, VGP5, NORMAL, NORMAL, INPUT),
157 DEFAULT_PINMUX(GPIO_PBB6, VGP6, NORMAL, NORMAL, INPUT),
158 DEFAULT_PINMUX(GPIO_PBB7, I2S4, NORMAL, NORMAL, INPUT),
159 DEFAULT_PINMUX(GPIO_PCC2, I2S4, NORMAL, NORMAL, INPUT),
160 DEFAULT_PINMUX(JTAG_RTCK, RTCK, NORMAL, NORMAL, OUTPUT),
161 DEFAULT_PINMUX(PWR_I2C_SCL, I2CPWR, NORMAL, NORMAL, INPUT),
162 DEFAULT_PINMUX(PWR_I2C_SDA, I2CPWR, NORMAL, NORMAL, INPUT),
163 DEFAULT_PINMUX(KB_ROW0, KBC, NORMAL, NORMAL, INPUT),
164 DEFAULT_PINMUX(KB_ROW1, KBC, NORMAL, NORMAL, INPUT),
165 DEFAULT_PINMUX(KB_ROW2, KBC, NORMAL, NORMAL, INPUT),
166 DEFAULT_PINMUX(KB_ROW3, KBC, NORMAL, NORMAL, INPUT),
167 DEFAULT_PINMUX(KB_ROW4, KBC, NORMAL, NORMAL, INPUT),
168 DEFAULT_PINMUX(KB_ROW5, KBC, NORMAL, NORMAL, INPUT),
169 DEFAULT_PINMUX(KB_ROW6, KBC, NORMAL, NORMAL, INPUT),
170 DEFAULT_PINMUX(KB_ROW7, UARTA, NORMAL, NORMAL, OUTPUT),
171 DEFAULT_PINMUX(KB_ROW8, UARTA, NORMAL, NORMAL, INPUT),
172 DEFAULT_PINMUX(KB_ROW9, UARTA, NORMAL, NORMAL, OUTPUT),
173 DEFAULT_PINMUX(KB_ROW10, UARTA, NORMAL, NORMAL, INPUT),
174 DEFAULT_PINMUX(KB_COL0, KBC, NORMAL, NORMAL, INPUT),
175 DEFAULT_PINMUX(KB_COL1, KBC, NORMAL, NORMAL, INPUT),
176 DEFAULT_PINMUX(KB_COL2, KBC, NORMAL, NORMAL, INPUT),
177 DEFAULT_PINMUX(KB_COL3, KBC, NORMAL, NORMAL, INPUT),
178 DEFAULT_PINMUX(KB_COL4, KBC, NORMAL, NORMAL, INPUT),
179 DEFAULT_PINMUX(KB_COL5, SDMMC1, PULL_UP, NORMAL, INPUT),
180 DEFAULT_PINMUX(KB_COL6, KBC, NORMAL, NORMAL, INPUT),
181 DEFAULT_PINMUX(KB_COL7, KBC, NORMAL, NORMAL, INPUT),
182 DEFAULT_PINMUX(CLK_32K_OUT, BLINK, NORMAL, NORMAL, OUTPUT),
183 DEFAULT_PINMUX(SYS_CLK_REQ, SYSCLK, NORMAL, NORMAL, OUTPUT),
184 #ifdef CONFIG_SND_HDA_TEGRA
185 DEFAULT_PINMUX(DAP1_FS, HDA, NORMAL, NORMAL, INPUT),
186 DEFAULT_PINMUX(DAP1_DIN, HDA, NORMAL, NORMAL, INPUT),
187 DEFAULT_PINMUX(DAP1_DOUT, HDA, NORMAL, NORMAL, INPUT),
188 DEFAULT_PINMUX(DAP1_SCLK, HDA, NORMAL, NORMAL, INPUT),
189 DEFAULT_PINMUX(CLK1_REQ, DAP1, NORMAL, NORMAL, INPUT),
191 DEFAULT_PINMUX(DAP1_FS, I2S0, NORMAL, NORMAL, INPUT),
192 DEFAULT_PINMUX(DAP1_DIN, I2S0, NORMAL, NORMAL, INPUT),
193 DEFAULT_PINMUX(DAP1_DOUT, I2S0, NORMAL, NORMAL, INPUT),
194 DEFAULT_PINMUX(DAP1_SCLK, I2S0, NORMAL, NORMAL, INPUT),
195 DEFAULT_PINMUX(CLK1_REQ, DAP, NORMAL, NORMAL, INPUT),
197 DEFAULT_PINMUX(CLK1_OUT, EXTPERIPH1, NORMAL, NORMAL, INPUT),
198 DEFAULT_PINMUX(SPDIF_IN, SPDIF, NORMAL, NORMAL, INPUT),
199 DEFAULT_PINMUX(SPDIF_OUT, SPDIF, NORMAL, NORMAL, OUTPUT),
200 DEFAULT_PINMUX(DAP2_FS, I2S1, NORMAL, NORMAL, INPUT),
201 DEFAULT_PINMUX(DAP2_DIN, I2S1, NORMAL, NORMAL, INPUT),
202 DEFAULT_PINMUX(DAP2_DOUT, I2S1, NORMAL, NORMAL, INPUT),
203 DEFAULT_PINMUX(DAP2_SCLK, I2S1, NORMAL, NORMAL, INPUT),
204 DEFAULT_PINMUX(DVFS_PWM, SPI6, NORMAL, NORMAL, INPUT),
205 DEFAULT_PINMUX(GPIO_X1_AUD, SPI6, NORMAL, NORMAL, INPUT),
206 DEFAULT_PINMUX(GPIO_X3_AUD, SPI6, NORMAL, NORMAL, INPUT),
207 DEFAULT_PINMUX(DVFS_CLK, SPI6, NORMAL, NORMAL, INPUT),
208 DEFAULT_PINMUX(GPIO_X4_AUD, RSVD0, NORMAL, NORMAL, INPUT),
209 DEFAULT_PINMUX(GPIO_X5_AUD, SPI1, NORMAL, NORMAL, INPUT),
210 DEFAULT_PINMUX(GPIO_X6_AUD, SPI1, NORMAL, NORMAL, INPUT),
211 DEFAULT_PINMUX(GPIO_X7_AUD, SPI1, NORMAL, NORMAL, INPUT),
212 DEFAULT_PINMUX(SDMMC3_CLK, SDMMC3, NORMAL, NORMAL, INPUT),
213 DEFAULT_PINMUX(SDMMC3_CMD, SDMMC3, PULL_UP, NORMAL, INPUT),
214 DEFAULT_PINMUX(SDMMC3_DAT0, SDMMC3, PULL_UP, NORMAL, INPUT),
215 DEFAULT_PINMUX(SDMMC3_DAT1, SDMMC3, PULL_UP, NORMAL, INPUT),
216 DEFAULT_PINMUX(SDMMC3_DAT2, SDMMC3, PULL_UP, NORMAL, INPUT),
217 DEFAULT_PINMUX(SDMMC3_DAT3, SDMMC3, PULL_UP, NORMAL, INPUT),
218 DEFAULT_PINMUX(HDMI_CEC, CEC, NORMAL, NORMAL, INPUT),
219 DEFAULT_PINMUX(SDMMC1_WP_N, SDMMC1, NORMAL, NORMAL, INPUT),
220 DEFAULT_PINMUX(SDMMC3_CD_N, RSVD2, NORMAL, NORMAL, INPUT),
221 DEFAULT_PINMUX(GPIO_W2_AUD, RSVD1, NORMAL, NORMAL, INPUT),
222 DEFAULT_PINMUX(GPIO_W3_AUD, SPI1, NORMAL, NORMAL, INPUT),
225 void __init curacao_pinmux_init(void)
227 tegra11x_default_pinmux();
228 tegra_pinmux_config_table(curacao_pinmux, ARRAY_SIZE(curacao_pinmux));
229 tegra_drive_pinmux_config_table(curacao_drive_pinmux,
230 ARRAY_SIZE(curacao_drive_pinmux));