1 /*
2  * Copyright (c) 2010-2014, NVIDIA CORPORATION. All rights reserved.
3  *
4  * SPDX-License-Identifier: GPL-2.0+
5  */
6 
7 #include <common.h>
8 #include <asm/io.h>
9 #include <asm/arch/pinmux.h>
10 
11 #define PIN(pin, f0, f1, f2, f3)	\
12 	{				\
13 		.funcs = {		\
14 			PMUX_FUNC_##f0,	\
15 			PMUX_FUNC_##f1,	\
16 			PMUX_FUNC_##f2,	\
17 			PMUX_FUNC_##f3,	\
18 		},			\
19 	}
20 
21 #define PIN_RESERVED {}
22 
23 static const struct pmux_pingrp_desc tegra114_pingroups[] = {
24 	/*  pin,                    f0,         f1,       f2,           f3 */
25 	/* Offset 0x3000 */
26 	PIN(ULPI_DATA0_PO1,         SPI3,       HSI,      UARTA,        ULPI),
27 	PIN(ULPI_DATA1_PO2,         SPI3,       HSI,      UARTA,        ULPI),
28 	PIN(ULPI_DATA2_PO3,         SPI3,       HSI,      UARTA,        ULPI),
29 	PIN(ULPI_DATA3_PO4,         SPI3,       HSI,      UARTA,        ULPI),
30 	PIN(ULPI_DATA4_PO5,         SPI2,       HSI,      UARTA,        ULPI),
31 	PIN(ULPI_DATA5_PO6,         SPI2,       HSI,      UARTA,        ULPI),
32 	PIN(ULPI_DATA6_PO7,         SPI2,       HSI,      UARTA,        ULPI),
33 	PIN(ULPI_DATA7_PO0,         SPI2,       HSI,      UARTA,        ULPI),
34 	PIN(ULPI_CLK_PY0,           SPI1,       SPI5,     UARTD,        ULPI),
35 	PIN(ULPI_DIR_PY1,           SPI1,       SPI5,     UARTD,        ULPI),
36 	PIN(ULPI_NXT_PY2,           SPI1,       SPI5,     UARTD,        ULPI),
37 	PIN(ULPI_STP_PY3,           SPI1,       SPI5,     UARTD,        ULPI),
38 	PIN(DAP3_FS_PP0,            I2S2,       SPI5,     DISPLAYA,     DISPLAYB),
39 	PIN(DAP3_DIN_PP1,           I2S2,       SPI5,     DISPLAYA,     DISPLAYB),
40 	PIN(DAP3_DOUT_PP2,          I2S2,       SPI5,     DISPLAYA,     DISPLAYB),
41 	PIN(DAP3_SCLK_PP3,          I2S2,       SPI5,     DISPLAYA,     DISPLAYB),
42 	PIN(PV0,                    USB,        RSVD2,    RSVD3,        RSVD4),
43 	PIN(PV1,                    RSVD1,      RSVD2,    RSVD3,        RSVD4),
44 	PIN(SDMMC1_CLK_PZ0,         SDMMC1,     CLK12,    RSVD3,        RSVD4),
45 	PIN(SDMMC1_CMD_PZ1,         SDMMC1,     SPDIF,    SPI4,         UARTA),
46 	PIN(SDMMC1_DAT3_PY4,        SDMMC1,     SPDIF,    SPI4,         UARTA),
47 	PIN(SDMMC1_DAT2_PY5,        SDMMC1,     PWM0,     SPI4,         UARTA),
48 	PIN(SDMMC1_DAT1_PY6,        SDMMC1,     PWM1,     SPI4,         UARTA),
49 	PIN(SDMMC1_DAT0_PY7,        SDMMC1,     RSVD2,    SPI4,         UARTA),
50 	PIN_RESERVED,
51 	PIN_RESERVED,
52 	/* Offset 0x3068 */
53 	PIN(CLK2_OUT_PW5,           EXTPERIPH2, RSVD2,    RSVD3,        RSVD4),
54 	PIN(CLK2_REQ_PCC5,          DAP,        RSVD2,    RSVD3,        RSVD4),
55 	PIN_RESERVED,
56 	PIN_RESERVED,
57 	PIN_RESERVED,
58 	PIN_RESERVED,
59 	PIN_RESERVED,
60 	PIN_RESERVED,
61 	PIN_RESERVED,
62 	PIN_RESERVED,
63 	PIN_RESERVED,
64 	PIN_RESERVED,
65 	PIN_RESERVED,
66 	PIN_RESERVED,
67 	PIN_RESERVED,
68 	PIN_RESERVED,
69 	PIN_RESERVED,
70 	PIN_RESERVED,
71 	PIN_RESERVED,
72 	PIN_RESERVED,
73 	PIN_RESERVED,
74 	PIN_RESERVED,
75 	PIN_RESERVED,
76 	PIN_RESERVED,
77 	PIN_RESERVED,
78 	PIN_RESERVED,
79 	PIN_RESERVED,
80 	PIN_RESERVED,
81 	PIN_RESERVED,
82 	PIN_RESERVED,
83 	PIN_RESERVED,
84 	PIN_RESERVED,
85 	PIN_RESERVED,
86 	PIN_RESERVED,
87 	PIN_RESERVED,
88 	PIN_RESERVED,
89 	PIN_RESERVED,
90 	PIN_RESERVED,
91 	PIN_RESERVED,
92 	PIN_RESERVED,
93 	PIN_RESERVED,
94 	PIN_RESERVED,
95 	/* Offset 0x3110 */
96 	PIN(HDMI_INT_PN7,           RSVD1,      RSVD2,    RSVD3,        RSVD4),
97 	PIN(DDC_SCL_PV4,            I2C4,       RSVD2,    RSVD3,        RSVD4),
98 	PIN(DDC_SDA_PV5,            I2C4,       RSVD2,    RSVD3,        RSVD4),
99 	PIN_RESERVED,
100 	PIN_RESERVED,
101 	PIN_RESERVED,
102 	PIN_RESERVED,
103 	PIN_RESERVED,
104 	PIN_RESERVED,
105 	PIN_RESERVED,
106 	PIN_RESERVED,
107 	PIN_RESERVED,
108 	PIN_RESERVED,
109 	PIN_RESERVED,
110 	PIN_RESERVED,
111 	PIN_RESERVED,
112 	PIN_RESERVED,
113 	PIN_RESERVED,
114 	PIN_RESERVED,
115 	PIN_RESERVED,
116 	PIN_RESERVED,
117 	/* Offset 0x3164 */
118 	PIN(UART2_RXD_PC3,          IRDA,       SPDIF,    UARTA,        SPI4),
119 	PIN(UART2_TXD_PC2,          IRDA,       SPDIF,    UARTA,        SPI4),
120 	PIN(UART2_RTS_N_PJ6,        UARTA,      UARTB,    RSVD3,        SPI4),
121 	PIN(UART2_CTS_N_PJ5,        UARTA,      UARTB,    RSVD3,        SPI4),
122 	PIN(UART3_TXD_PW6,          UARTC,      RSVD2,    RSVD3,        SPI4),
123 	PIN(UART3_RXD_PW7,          UARTC,      RSVD2,    RSVD3,        SPI4),
124 	PIN(UART3_CTS_N_PA1,        UARTC,      SDMMC1,   DTV,          SPI4),
125 	PIN(UART3_RTS_N_PC0,        UARTC,      PWM0,     DTV,          DISPLAYA),
126 	PIN(PU0,                    OWR,        UARTA,    RSVD3,        RSVD4),
127 	PIN(PU1,                    RSVD1,      UARTA,    RSVD3,        RSVD4),
128 	PIN(PU2,                    RSVD1,      UARTA,    RSVD3,        RSVD4),
129 	PIN(PU3,                    PWM0,       UARTA,    DISPLAYA,     DISPLAYB),
130 	PIN(PU4,                    PWM1,       UARTA,    DISPLAYA,     DISPLAYB),
131 	PIN(PU5,                    PWM2,       UARTA,    DISPLAYA,     DISPLAYB),
132 	PIN(PU6,                    PWM3,       UARTA,    USB,          DISPLAYB),
133 	PIN(GEN1_I2C_SDA_PC5,       I2C1,       RSVD2,    RSVD3,        RSVD4),
134 	PIN(GEN1_I2C_SCL_PC4,       I2C1,       RSVD2,    RSVD3,        RSVD4),
135 	PIN(DAP4_FS_PP4,            I2S3,       RSVD2,    DTV,          RSVD4),
136 	PIN(DAP4_DIN_PP5,           I2S3,       RSVD2,    RSVD3,        RSVD4),
137 	PIN(DAP4_DOUT_PP6,          I2S3,       RSVD2,    DTV,          RSVD4),
138 	PIN(DAP4_SCLK_PP7,          I2S3,       RSVD2,    RSVD3,        RSVD4),
139 	PIN(CLK3_OUT_PEE0,          EXTPERIPH3, RSVD2,    RSVD3,        RSVD4),
140 	PIN(CLK3_REQ_PEE1,          DEV3,       RSVD2,    RSVD3,        RSVD4),
141 	PIN(GMI_WP_N_PC7,           RSVD1,      NAND,     GMI,          GMI_ALT),
142 	PIN(GMI_IORDY_PI5,          SDMMC2,     RSVD2,    GMI,          TRACE),
143 	PIN(GMI_WAIT_PI7,           SPI4,       NAND,     GMI,          DTV),
144 	PIN(GMI_ADV_N_PK0,          RSVD1,      NAND,     GMI,          TRACE),
145 	PIN(GMI_CLK_PK1,            SDMMC2,     NAND,     GMI,          TRACE),
146 	PIN(GMI_CS0_N_PJ0,          RSVD1,      NAND,     GMI,          USB),
147 	PIN(GMI_CS1_N_PJ2,          RSVD1,      NAND,     GMI,          SOC),
148 	PIN(GMI_CS2_N_PK3,          SDMMC2,     NAND,     GMI,          TRACE),
149 	PIN(GMI_CS3_N_PK4,          SDMMC2,     NAND,     GMI,          GMI_ALT),
150 	PIN(GMI_CS4_N_PK2,          USB,        NAND,     GMI,          TRACE),
151 	PIN(GMI_CS6_N_PI3,          NAND,       NAND_ALT, GMI,          SPI4),
152 	PIN(GMI_CS7_N_PI6,          NAND,       NAND_ALT, GMI,          SDMMC2),
153 	PIN(GMI_AD0_PG0,            RSVD1,      NAND,     GMI,          RSVD4),
154 	PIN(GMI_AD1_PG1,            RSVD1,      NAND,     GMI,          RSVD4),
155 	PIN(GMI_AD2_PG2,            RSVD1,      NAND,     GMI,          RSVD4),
156 	PIN(GMI_AD3_PG3,            RSVD1,      NAND,     GMI,          RSVD4),
157 	PIN(GMI_AD4_PG4,            RSVD1,      NAND,     GMI,          RSVD4),
158 	PIN(GMI_AD5_PG5,            RSVD1,      NAND,     GMI,          SPI4),
159 	PIN(GMI_AD6_PG6,            RSVD1,      NAND,     GMI,          SPI4),
160 	PIN(GMI_AD7_PG7,            RSVD1,      NAND,     GMI,          SPI4),
161 	PIN(GMI_AD8_PH0,            PWM0,       NAND,     GMI,          DTV),
162 	PIN(GMI_AD9_PH1,            PWM1,       NAND,     GMI,          CLDVFS),
163 	PIN(GMI_AD10_PH2,           PWM2,       NAND,     GMI,          CLDVFS),
164 	PIN(GMI_AD11_PH3,           PWM3,       NAND,     GMI,          USB),
165 	PIN(GMI_AD12_PH4,           SDMMC2,     NAND,     GMI,          RSVD4),
166 	PIN(GMI_AD13_PH5,           SDMMC2,     NAND,     GMI,          RSVD4),
167 	PIN(GMI_AD14_PH6,           SDMMC2,     NAND,     GMI,          DTV),
168 	PIN(GMI_AD15_PH7,           SDMMC2,     NAND,     GMI,          DTV),
169 	PIN(GMI_A16_PJ7,            UARTD,      TRACE,    GMI,          GMI_ALT),
170 	PIN(GMI_A17_PB0,            UARTD,      RSVD2,    GMI,          TRACE),
171 	PIN(GMI_A18_PB1,            UARTD,      RSVD2,    GMI,          TRACE),
172 	PIN(GMI_A19_PK7,            UARTD,      SPI4,     GMI,          TRACE),
173 	PIN(GMI_WR_N_PI0,           RSVD1,      NAND,     GMI,          SPI4),
174 	PIN(GMI_OE_N_PI1,           RSVD1,      NAND,     GMI,          SOC),
175 	PIN(GMI_DQS_P_PJ3,          SDMMC2,     NAND,     GMI,          TRACE),
176 	PIN(GMI_RST_N_PI4,          NAND,       NAND_ALT, GMI,          RSVD4),
177 	PIN(GEN2_I2C_SCL_PT5,       I2C2,       RSVD2,    GMI,          RSVD4),
178 	PIN(GEN2_I2C_SDA_PT6,       I2C2,       RSVD2,    GMI,          RSVD4),
179 	PIN(SDMMC4_CLK_PCC4,        SDMMC4,     RSVD2,    GMI,          RSVD4),
180 	PIN(SDMMC4_CMD_PT7,         SDMMC4,     RSVD2,    GMI,          RSVD4),
181 	PIN(SDMMC4_DAT0_PAA0,       SDMMC4,     SPI3,     GMI,          RSVD4),
182 	PIN(SDMMC4_DAT1_PAA1,       SDMMC4,     SPI3,     GMI,          RSVD4),
183 	PIN(SDMMC4_DAT2_PAA2,       SDMMC4,     SPI3,     GMI,          RSVD4),
184 	PIN(SDMMC4_DAT3_PAA3,       SDMMC4,     SPI3,     GMI,          RSVD4),
185 	PIN(SDMMC4_DAT4_PAA4,       SDMMC4,     SPI3,     GMI,          RSVD4),
186 	PIN(SDMMC4_DAT5_PAA5,       SDMMC4,     SPI3,     GMI,          RSVD4),
187 	PIN(SDMMC4_DAT6_PAA6,       SDMMC4,     SPI3,     GMI,          RSVD4),
188 	PIN(SDMMC4_DAT7_PAA7,       SDMMC4,     RSVD2,    GMI,          RSVD4),
189 	PIN_RESERVED,
190 	/* Offset 0x3284 */
191 	PIN(CAM_MCLK_PCC0,          VI,         VI_ALT1,  VI_ALT3,      RSVD4),
192 	PIN(PCC1,                   I2S4,       RSVD2,    RSVD3,        RSVD4),
193 	PIN(PBB0,                   I2S4,       VI,       VI_ALT1,      VI_ALT3),
194 	PIN(CAM_I2C_SCL_PBB1,       VGP1,       I2C3,     RSVD3,        RSVD4),
195 	PIN(CAM_I2C_SDA_PBB2,       VGP2,       I2C3,     RSVD3,        RSVD4),
196 	PIN(PBB3,                   VGP3,       DISPLAYA, DISPLAYB,     RSVD4),
197 	PIN(PBB4,                   VGP4,       DISPLAYA, DISPLAYB,     RSVD4),
198 	PIN(PBB5,                   VGP5,       DISPLAYA, DISPLAYB,     RSVD4),
199 	PIN(PBB6,                   VGP6,       DISPLAYA, DISPLAYB,     RSVD4),
200 	PIN(PBB7,                   I2S4,       RSVD2,    RSVD3,        RSVD4),
201 	PIN(PCC2,                   I2S4,       RSVD2,    RSVD3,        RSVD4),
202 	PIN(JTAG_RTCK,              RTCK,       RSVD2,    RSVD3,        RSVD4),
203 	PIN(PWR_I2C_SCL_PZ6,        I2CPWR,     RSVD2,    RSVD3,        RSVD4),
204 	PIN(PWR_I2C_SDA_PZ7,        I2CPWR,     RSVD2,    RSVD3,        RSVD4),
205 	PIN(KB_ROW0_PR0,            KBC,        RSVD2,    RSVD3,        RSVD4),
206 	PIN(KB_ROW1_PR1,            KBC,        RSVD2,    RSVD3,        RSVD4),
207 	PIN(KB_ROW2_PR2,            KBC,        RSVD2,    RSVD3,        RSVD4),
208 	PIN(KB_ROW3_PR3,            KBC,        DISPLAYA, RSVD3,        DISPLAYB),
209 	PIN(KB_ROW4_PR4,            KBC,        DISPLAYA, SPI2,         DISPLAYB),
210 	PIN(KB_ROW5_PR5,            KBC,        DISPLAYA, SPI2,         DISPLAYB),
211 	PIN(KB_ROW6_PR6,            KBC,        DISPLAYA, DISPLAYA_ALT, DISPLAYB),
212 	PIN(KB_ROW7_PR7,            KBC,        RSVD2,    CLDVFS,       UARTA),
213 	PIN(KB_ROW8_PS0,            KBC,        RSVD2,    CLDVFS,       UARTA),
214 	PIN(KB_ROW9_PS1,            KBC,        RSVD2,    RSVD3,        UARTA),
215 	PIN(KB_ROW10_PS2,           KBC,        RSVD2,    RSVD3,        UARTA),
216 	PIN_RESERVED,
217 	PIN_RESERVED,
218 	PIN_RESERVED,
219 	PIN_RESERVED,
220 	PIN_RESERVED,
221 	/* Offset 0x32fc */
222 	PIN(KB_COL0_PQ0,            KBC,        USB,      SPI2,         EMC_DLL),
223 	PIN(KB_COL1_PQ1,            KBC,        RSVD2,    SPI2,         EMC_DLL),
224 	PIN(KB_COL2_PQ2,            KBC,        RSVD2,    SPI2,         RSVD4),
225 	PIN(KB_COL3_PQ3,            KBC,        DISPLAYA, PWM2,         UARTA),
226 	PIN(KB_COL4_PQ4,            KBC,        OWR,      SDMMC3,       UARTA),
227 	PIN(KB_COL5_PQ5,            KBC,        RSVD2,    SDMMC1,       RSVD4),
228 	PIN(KB_COL6_PQ6,            KBC,        RSVD2,    SPI2,         RSVD4),
229 	PIN(KB_COL7_PQ7,            KBC,        RSVD2,    SPI2,         RSVD4),
230 	PIN(CLK_32K_OUT_PA0,        BLINK,      SOC,      RSVD3,        RSVD4),
231 	PIN(SYS_CLK_REQ_PZ5,        SYSCLK,     RSVD2,    RSVD3,        RSVD4),
232 	PIN(CORE_PWR_REQ,           PWRON,      RSVD2,    RSVD3,        RSVD4),
233 	PIN(CPU_PWR_REQ,            CPU,        RSVD2,    RSVD3,        RSVD4),
234 	PIN(PWR_INT_N,              PMI,        RSVD2,    RSVD3,        RSVD4),
235 	PIN(CLK_32K_IN,             CLK,        RSVD2,    RSVD3,        RSVD4),
236 	PIN(OWR,                    OWR,        RSVD2,    RSVD3,        RSVD4),
237 	PIN(DAP1_FS_PN0,            I2S0,       HDA,      GMI,          RSVD4),
238 	PIN(DAP1_DIN_PN1,           I2S0,       HDA,      GMI,          RSVD4),
239 	PIN(DAP1_DOUT_PN2,          I2S0,       HDA,      GMI,          RSVD4),
240 	PIN(DAP1_SCLK_PN3,          I2S0,       HDA,      GMI,          RSVD4),
241 	PIN(CLK1_REQ_PEE2,          DAP,        DAP1,     RSVD3,        RSVD4),
242 	PIN(CLK1_OUT_PW4,           EXTPERIPH1, DAP2,     RSVD3,        RSVD4),
243 	PIN(SPDIF_IN_PK6,           SPDIF,      USB,      RSVD3,        RSVD4),
244 	PIN(SPDIF_OUT_PK5,          SPDIF,      RSVD2,    RSVD3,        RSVD4),
245 	PIN(DAP2_FS_PA2,            I2S1,       HDA,      RSVD3,        RSVD4),
246 	PIN(DAP2_DIN_PA4,           I2S1,       HDA,      RSVD3,        RSVD4),
247 	PIN(DAP2_DOUT_PA5,          I2S1,       HDA,      RSVD3,        RSVD4),
248 	PIN(DAP2_SCLK_PA3,          I2S1,       HDA,      RSVD3,        RSVD4),
249 	PIN(DVFS_PWM_PX0,           SPI6,       CLDVFS,   RSVD3,        RSVD4),
250 	PIN(GPIO_X1_AUD_PX1,        SPI6,       RSVD2,    RSVD3,        RSVD4),
251 	PIN(GPIO_X3_AUD_PX3,        SPI6,       SPI1,     RSVD3,        RSVD4),
252 	PIN(DVFS_CLK_PX2,           SPI6,       CLDVFS,   RSVD3,        RSVD4),
253 	PIN(GPIO_X4_AUD_PX4,        RSVD1,      SPI1,     SPI2,         DAP2),
254 	PIN(GPIO_X5_AUD_PX5,        RSVD1,      SPI1,     SPI2,         RSVD4),
255 	PIN(GPIO_X6_AUD_PX6,        SPI6,       SPI1,     SPI2,         RSVD4),
256 	PIN(GPIO_X7_AUD_PX7,        RSVD1,      SPI1,     SPI2,         RSVD4),
257 	PIN_RESERVED,
258 	PIN_RESERVED,
259 	/* Offset 0x3390 */
260 	PIN(SDMMC3_CLK_PA6,         SDMMC3,     RSVD2,    RSVD3,        SPI3),
261 	PIN(SDMMC3_CMD_PA7,         SDMMC3,     PWM3,     UARTA,        SPI3),
262 	PIN(SDMMC3_DAT0_PB7,        SDMMC3,     RSVD2,    RSVD3,        SPI3),
263 	PIN(SDMMC3_DAT1_PB6,        SDMMC3,     PWM2,     UARTA,        SPI3),
264 	PIN(SDMMC3_DAT2_PB5,        SDMMC3,     PWM1,     DISPLAYA,     SPI3),
265 	PIN(SDMMC3_DAT3_PB4,        SDMMC3,     PWM0,     DISPLAYB,     SPI3),
266 	PIN_RESERVED,
267 	PIN_RESERVED,
268 	PIN_RESERVED,
269 	PIN_RESERVED,
270 	PIN_RESERVED,
271 	PIN_RESERVED,
272 	PIN_RESERVED,
273 	PIN_RESERVED,
274 	PIN_RESERVED,
275 	PIN_RESERVED,
276 	PIN_RESERVED,
277 	PIN_RESERVED,
278 	PIN_RESERVED,
279 	PIN_RESERVED,
280 	/* Offset 0x33e0 */
281 	PIN(HDMI_CEC_PEE3,          CEC,        SDMMC3,   RSVD3,        SOC),
282 	PIN(SDMMC1_WP_N_PV3,        SDMMC1,     CLK12,    SPI4,         UARTA),
283 	PIN(SDMMC3_CD_N_PV2,        SDMMC3,     OWR,      RSVD3,        RSVD4),
284 	PIN(GPIO_W2_AUD_PW2,        SPI6,       RSVD2,    SPI2,         I2C1),
285 	PIN(GPIO_W3_AUD_PW3,        SPI6,       SPI1,     SPI2,         I2C1),
286 	PIN(USB_VBUS_EN0_PN4,       USB,        RSVD2,    RSVD3,        RSVD4),
287 	PIN(USB_VBUS_EN1_PN5,       USB,        RSVD2,    RSVD3,        RSVD4),
288 	PIN(SDMMC3_CLK_LB_IN_PEE5,  SDMMC3,     RSVD2,    RSVD3,        RSVD4),
289 	PIN(SDMMC3_CLK_LB_OUT_PEE4, SDMMC3,     RSVD2,    RSVD3,        RSVD4),
290 	PIN(GMI_CLK_LB,             SDMMC2,     NAND,     GMI,          RSVD4),
291 	PIN(RESET_OUT_N,            RSVD1,      RSVD2,    RSVD3,        RESET_OUT_N),
292 };
293 const struct pmux_pingrp_desc *tegra_soc_pingroups = tegra114_pingroups;
294