1/*
2 * Pinctrl data for the NVIDIA Tegra114 pinmux
3 *
4 * Copyright (c) 2012-2013, NVIDIA CORPORATION.  All rights reserved.
5 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms and conditions of the GNU General Public License,
8 * version 2, as published by the Free Software Foundation.
9 *
10 * This program is distributed in the hope it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
13 * more details.
14 */
15
16#include <linux/module.h>
17#include <linux/of.h>
18#include <linux/platform_device.h>
19#include <linux/pinctrl/pinctrl.h>
20#include <linux/pinctrl/pinmux.h>
21
22#include "pinctrl-tegra.h"
23
24/*
25 * Most pins affected by the pinmux can also be GPIOs. Define these first.
26 * These must match how the GPIO driver names/numbers its pins.
27 */
28#define _GPIO(offset)				(offset)
29
30#define TEGRA_PIN_CLK_32K_OUT_PA0		_GPIO(0)
31#define TEGRA_PIN_UART3_CTS_N_PA1		_GPIO(1)
32#define TEGRA_PIN_DAP2_FS_PA2			_GPIO(2)
33#define TEGRA_PIN_DAP2_SCLK_PA3			_GPIO(3)
34#define TEGRA_PIN_DAP2_DIN_PA4			_GPIO(4)
35#define TEGRA_PIN_DAP2_DOUT_PA5			_GPIO(5)
36#define TEGRA_PIN_SDMMC3_CLK_PA6		_GPIO(6)
37#define TEGRA_PIN_SDMMC3_CMD_PA7		_GPIO(7)
38#define TEGRA_PIN_GMI_A17_PB0			_GPIO(8)
39#define TEGRA_PIN_GMI_A18_PB1			_GPIO(9)
40#define TEGRA_PIN_SDMMC3_DAT3_PB4		_GPIO(12)
41#define TEGRA_PIN_SDMMC3_DAT2_PB5		_GPIO(13)
42#define TEGRA_PIN_SDMMC3_DAT1_PB6		_GPIO(14)
43#define TEGRA_PIN_SDMMC3_DAT0_PB7		_GPIO(15)
44#define TEGRA_PIN_UART3_RTS_N_PC0		_GPIO(16)
45#define TEGRA_PIN_UART2_TXD_PC2			_GPIO(18)
46#define TEGRA_PIN_UART2_RXD_PC3			_GPIO(19)
47#define TEGRA_PIN_GEN1_I2C_SCL_PC4		_GPIO(20)
48#define TEGRA_PIN_GEN1_I2C_SDA_PC5		_GPIO(21)
49#define TEGRA_PIN_GMI_WP_N_PC7			_GPIO(23)
50#define TEGRA_PIN_GMI_AD0_PG0			_GPIO(48)
51#define TEGRA_PIN_GMI_AD1_PG1			_GPIO(49)
52#define TEGRA_PIN_GMI_AD2_PG2			_GPIO(50)
53#define TEGRA_PIN_GMI_AD3_PG3			_GPIO(51)
54#define TEGRA_PIN_GMI_AD4_PG4			_GPIO(52)
55#define TEGRA_PIN_GMI_AD5_PG5			_GPIO(53)
56#define TEGRA_PIN_GMI_AD6_PG6			_GPIO(54)
57#define TEGRA_PIN_GMI_AD7_PG7			_GPIO(55)
58#define TEGRA_PIN_GMI_AD8_PH0			_GPIO(56)
59#define TEGRA_PIN_GMI_AD9_PH1			_GPIO(57)
60#define TEGRA_PIN_GMI_AD10_PH2			_GPIO(58)
61#define TEGRA_PIN_GMI_AD11_PH3			_GPIO(59)
62#define TEGRA_PIN_GMI_AD12_PH4			_GPIO(60)
63#define TEGRA_PIN_GMI_AD13_PH5			_GPIO(61)
64#define TEGRA_PIN_GMI_AD14_PH6			_GPIO(62)
65#define TEGRA_PIN_GMI_AD15_PH7			_GPIO(63)
66#define TEGRA_PIN_GMI_WR_N_PI0			_GPIO(64)
67#define TEGRA_PIN_GMI_OE_N_PI1			_GPIO(65)
68#define TEGRA_PIN_GMI_CS6_N_PI3			_GPIO(67)
69#define TEGRA_PIN_GMI_RST_N_PI4			_GPIO(68)
70#define TEGRA_PIN_GMI_IORDY_PI5			_GPIO(69)
71#define TEGRA_PIN_GMI_CS7_N_PI6			_GPIO(70)
72#define TEGRA_PIN_GMI_WAIT_PI7			_GPIO(71)
73#define TEGRA_PIN_GMI_CS0_N_PJ0			_GPIO(72)
74#define TEGRA_PIN_GMI_CS1_N_PJ2			_GPIO(74)
75#define TEGRA_PIN_GMI_DQS_P_PJ3			_GPIO(75)
76#define TEGRA_PIN_UART2_CTS_N_PJ5		_GPIO(77)
77#define TEGRA_PIN_UART2_RTS_N_PJ6		_GPIO(78)
78#define TEGRA_PIN_GMI_A16_PJ7			_GPIO(79)
79#define TEGRA_PIN_GMI_ADV_N_PK0			_GPIO(80)
80#define TEGRA_PIN_GMI_CLK_PK1			_GPIO(81)
81#define TEGRA_PIN_GMI_CS4_N_PK2			_GPIO(82)
82#define TEGRA_PIN_GMI_CS2_N_PK3			_GPIO(83)
83#define TEGRA_PIN_GMI_CS3_N_PK4			_GPIO(84)
84#define TEGRA_PIN_SPDIF_OUT_PK5			_GPIO(85)
85#define TEGRA_PIN_SPDIF_IN_PK6			_GPIO(86)
86#define TEGRA_PIN_GMI_A19_PK7			_GPIO(87)
87#define TEGRA_PIN_DAP1_FS_PN0			_GPIO(104)
88#define TEGRA_PIN_DAP1_DIN_PN1			_GPIO(105)
89#define TEGRA_PIN_DAP1_DOUT_PN2			_GPIO(106)
90#define TEGRA_PIN_DAP1_SCLK_PN3			_GPIO(107)
91#define TEGRA_PIN_USB_VBUS_EN0_PN4		_GPIO(108)
92#define TEGRA_PIN_USB_VBUS_EN1_PN5		_GPIO(109)
93#define TEGRA_PIN_HDMI_INT_PN7			_GPIO(111)
94#define TEGRA_PIN_ULPI_DATA7_PO0		_GPIO(112)
95#define TEGRA_PIN_ULPI_DATA0_PO1		_GPIO(113)
96#define TEGRA_PIN_ULPI_DATA1_PO2		_GPIO(114)
97#define TEGRA_PIN_ULPI_DATA2_PO3		_GPIO(115)
98#define TEGRA_PIN_ULPI_DATA3_PO4		_GPIO(116)
99#define TEGRA_PIN_ULPI_DATA4_PO5		_GPIO(117)
100#define TEGRA_PIN_ULPI_DATA5_PO6		_GPIO(118)
101#define TEGRA_PIN_ULPI_DATA6_PO7		_GPIO(119)
102#define TEGRA_PIN_DAP3_FS_PP0			_GPIO(120)
103#define TEGRA_PIN_DAP3_DIN_PP1			_GPIO(121)
104#define TEGRA_PIN_DAP3_DOUT_PP2			_GPIO(122)
105#define TEGRA_PIN_DAP3_SCLK_PP3			_GPIO(123)
106#define TEGRA_PIN_DAP4_FS_PP4			_GPIO(124)
107#define TEGRA_PIN_DAP4_DIN_PP5			_GPIO(125)
108#define TEGRA_PIN_DAP4_DOUT_PP6			_GPIO(126)
109#define TEGRA_PIN_DAP4_SCLK_PP7			_GPIO(127)
110#define TEGRA_PIN_KB_COL0_PQ0			_GPIO(128)
111#define TEGRA_PIN_KB_COL1_PQ1			_GPIO(129)
112#define TEGRA_PIN_KB_COL2_PQ2			_GPIO(130)
113#define TEGRA_PIN_KB_COL3_PQ3			_GPIO(131)
114#define TEGRA_PIN_KB_COL4_PQ4			_GPIO(132)
115#define TEGRA_PIN_KB_COL5_PQ5			_GPIO(133)
116#define TEGRA_PIN_KB_COL6_PQ6			_GPIO(134)
117#define TEGRA_PIN_KB_COL7_PQ7			_GPIO(135)
118#define TEGRA_PIN_KB_ROW0_PR0			_GPIO(136)
119#define TEGRA_PIN_KB_ROW1_PR1			_GPIO(137)
120#define TEGRA_PIN_KB_ROW2_PR2			_GPIO(138)
121#define TEGRA_PIN_KB_ROW3_PR3			_GPIO(139)
122#define TEGRA_PIN_KB_ROW4_PR4			_GPIO(140)
123#define TEGRA_PIN_KB_ROW5_PR5			_GPIO(141)
124#define TEGRA_PIN_KB_ROW6_PR6			_GPIO(142)
125#define TEGRA_PIN_KB_ROW7_PR7			_GPIO(143)
126#define TEGRA_PIN_KB_ROW8_PS0			_GPIO(144)
127#define TEGRA_PIN_KB_ROW9_PS1			_GPIO(145)
128#define TEGRA_PIN_KB_ROW10_PS2			_GPIO(146)
129#define TEGRA_PIN_GEN2_I2C_SCL_PT5		_GPIO(157)
130#define TEGRA_PIN_GEN2_I2C_SDA_PT6		_GPIO(158)
131#define TEGRA_PIN_SDMMC4_CMD_PT7		_GPIO(159)
132#define TEGRA_PIN_PU0				_GPIO(160)
133#define TEGRA_PIN_PU1				_GPIO(161)
134#define TEGRA_PIN_PU2				_GPIO(162)
135#define TEGRA_PIN_PU3				_GPIO(163)
136#define TEGRA_PIN_PU4				_GPIO(164)
137#define TEGRA_PIN_PU5				_GPIO(165)
138#define TEGRA_PIN_PU6				_GPIO(166)
139#define TEGRA_PIN_PV0				_GPIO(168)
140#define TEGRA_PIN_PV1				_GPIO(169)
141#define TEGRA_PIN_SDMMC3_CD_N_PV2		_GPIO(170)
142#define TEGRA_PIN_SDMMC1_WP_N_PV3		_GPIO(171)
143#define TEGRA_PIN_DDC_SCL_PV4			_GPIO(172)
144#define TEGRA_PIN_DDC_SDA_PV5			_GPIO(173)
145#define TEGRA_PIN_GPIO_W2_AUD_PW2		_GPIO(178)
146#define TEGRA_PIN_GPIO_W3_AUD_PW3		_GPIO(179)
147#define TEGRA_PIN_CLK1_OUT_PW4			_GPIO(180)
148#define TEGRA_PIN_CLK2_OUT_PW5			_GPIO(181)
149#define TEGRA_PIN_UART3_TXD_PW6			_GPIO(182)
150#define TEGRA_PIN_UART3_RXD_PW7			_GPIO(183)
151#define TEGRA_PIN_DVFS_PWM_PX0			_GPIO(184)
152#define TEGRA_PIN_GPIO_X1_AUD_PX1		_GPIO(185)
153#define TEGRA_PIN_DVFS_CLK_PX2			_GPIO(186)
154#define TEGRA_PIN_GPIO_X3_AUD_PX3		_GPIO(187)
155#define TEGRA_PIN_GPIO_X4_AUD_PX4		_GPIO(188)
156#define TEGRA_PIN_GPIO_X5_AUD_PX5		_GPIO(189)
157#define TEGRA_PIN_GPIO_X6_AUD_PX6		_GPIO(190)
158#define TEGRA_PIN_GPIO_X7_AUD_PX7		_GPIO(191)
159#define TEGRA_PIN_ULPI_CLK_PY0			_GPIO(192)
160#define TEGRA_PIN_ULPI_DIR_PY1			_GPIO(193)
161#define TEGRA_PIN_ULPI_NXT_PY2			_GPIO(194)
162#define TEGRA_PIN_ULPI_STP_PY3			_GPIO(195)
163#define TEGRA_PIN_SDMMC1_DAT3_PY4		_GPIO(196)
164#define TEGRA_PIN_SDMMC1_DAT2_PY5		_GPIO(197)
165#define TEGRA_PIN_SDMMC1_DAT1_PY6		_GPIO(198)
166#define TEGRA_PIN_SDMMC1_DAT0_PY7		_GPIO(199)
167#define TEGRA_PIN_SDMMC1_CLK_PZ0		_GPIO(200)
168#define TEGRA_PIN_SDMMC1_CMD_PZ1		_GPIO(201)
169#define TEGRA_PIN_SYS_CLK_REQ_PZ5		_GPIO(205)
170#define TEGRA_PIN_PWR_I2C_SCL_PZ6		_GPIO(206)
171#define TEGRA_PIN_PWR_I2C_SDA_PZ7		_GPIO(207)
172#define TEGRA_PIN_SDMMC4_DAT0_PAA0		_GPIO(208)
173#define TEGRA_PIN_SDMMC4_DAT1_PAA1		_GPIO(209)
174#define TEGRA_PIN_SDMMC4_DAT2_PAA2		_GPIO(210)
175#define TEGRA_PIN_SDMMC4_DAT3_PAA3		_GPIO(211)
176#define TEGRA_PIN_SDMMC4_DAT4_PAA4		_GPIO(212)
177#define TEGRA_PIN_SDMMC4_DAT5_PAA5		_GPIO(213)
178#define TEGRA_PIN_SDMMC4_DAT6_PAA6		_GPIO(214)
179#define TEGRA_PIN_SDMMC4_DAT7_PAA7		_GPIO(215)
180#define TEGRA_PIN_PBB0				_GPIO(216)
181#define TEGRA_PIN_CAM_I2C_SCL_PBB1		_GPIO(217)
182#define TEGRA_PIN_CAM_I2C_SDA_PBB2		_GPIO(218)
183#define TEGRA_PIN_PBB3				_GPIO(219)
184#define TEGRA_PIN_PBB4				_GPIO(220)
185#define TEGRA_PIN_PBB5				_GPIO(221)
186#define TEGRA_PIN_PBB6				_GPIO(222)
187#define TEGRA_PIN_PBB7				_GPIO(223)
188#define TEGRA_PIN_CAM_MCLK_PCC0			_GPIO(224)
189#define TEGRA_PIN_PCC1				_GPIO(225)
190#define TEGRA_PIN_PCC2				_GPIO(226)
191#define TEGRA_PIN_SDMMC4_CLK_PCC4		_GPIO(228)
192#define TEGRA_PIN_CLK2_REQ_PCC5			_GPIO(229)
193#define TEGRA_PIN_CLK3_OUT_PEE0			_GPIO(240)
194#define TEGRA_PIN_CLK3_REQ_PEE1			_GPIO(241)
195#define TEGRA_PIN_CLK1_REQ_PEE2			_GPIO(242)
196#define TEGRA_PIN_HDMI_CEC_PEE3			_GPIO(243)
197#define TEGRA_PIN_SDMMC3_CLK_LB_OUT_PEE4	_GPIO(244)
198#define TEGRA_PIN_SDMMC3_CLK_LB_IN_PEE5		_GPIO(245)
199
200/* All non-GPIO pins follow */
201#define NUM_GPIOS				(TEGRA_PIN_SDMMC3_CLK_LB_IN_PEE5 + 1)
202#define _PIN(offset)				(NUM_GPIOS + (offset))
203
204/* Non-GPIO pins */
205#define TEGRA_PIN_CORE_PWR_REQ			_PIN(0)
206#define TEGRA_PIN_CPU_PWR_REQ			_PIN(1)
207#define TEGRA_PIN_PWR_INT_N			_PIN(2)
208#define TEGRA_PIN_RESET_OUT_N			_PIN(3)
209#define TEGRA_PIN_OWR				_PIN(4)
210#define TEGRA_PIN_JTAG_RTCK			_PIN(5)
211#define TEGRA_PIN_CLK_32K_IN			_PIN(6)
212#define TEGRA_PIN_GMI_CLK_LB			_PIN(7)
213
214static const struct pinctrl_pin_desc tegra114_pins[] = {
215	PINCTRL_PIN(TEGRA_PIN_CLK_32K_OUT_PA0, "CLK_32K_OUT PA0"),
216	PINCTRL_PIN(TEGRA_PIN_UART3_CTS_N_PA1, "UART3_CTS_N PA1"),
217	PINCTRL_PIN(TEGRA_PIN_DAP2_FS_PA2, "DAP2_FS PA2"),
218	PINCTRL_PIN(TEGRA_PIN_DAP2_SCLK_PA3, "DAP2_SCLK PA3"),
219	PINCTRL_PIN(TEGRA_PIN_DAP2_DIN_PA4, "DAP2_DIN PA4"),
220	PINCTRL_PIN(TEGRA_PIN_DAP2_DOUT_PA5, "DAP2_DOUT PA5"),
221	PINCTRL_PIN(TEGRA_PIN_SDMMC3_CLK_PA6, "SDMMC3_CLK PA6"),
222	PINCTRL_PIN(TEGRA_PIN_SDMMC3_CMD_PA7, "SDMMC3_CMD PA7"),
223	PINCTRL_PIN(TEGRA_PIN_GMI_A17_PB0, "GMI_A17 PB0"),
224	PINCTRL_PIN(TEGRA_PIN_GMI_A18_PB1, "GMI_A18 PB1"),
225	PINCTRL_PIN(TEGRA_PIN_SDMMC3_DAT3_PB4, "SDMMC3_DAT3 PB4"),
226	PINCTRL_PIN(TEGRA_PIN_SDMMC3_DAT2_PB5, "SDMMC3_DAT2 PB5"),
227	PINCTRL_PIN(TEGRA_PIN_SDMMC3_DAT1_PB6, "SDMMC3_DAT1 PB6"),
228	PINCTRL_PIN(TEGRA_PIN_SDMMC3_DAT0_PB7, "SDMMC3_DAT0 PB7"),
229	PINCTRL_PIN(TEGRA_PIN_UART3_RTS_N_PC0, "UART3_RTS_N PC0"),
230	PINCTRL_PIN(TEGRA_PIN_UART2_TXD_PC2, "UART2_TXD PC2"),
231	PINCTRL_PIN(TEGRA_PIN_UART2_RXD_PC3, "UART2_RXD PC3"),
232	PINCTRL_PIN(TEGRA_PIN_GEN1_I2C_SCL_PC4, "GEN1_I2C_SCL PC4"),
233	PINCTRL_PIN(TEGRA_PIN_GEN1_I2C_SDA_PC5, "GEN1_I2C_SDA PC5"),
234	PINCTRL_PIN(TEGRA_PIN_GMI_WP_N_PC7, "GMI_WP_N PC7"),
235	PINCTRL_PIN(TEGRA_PIN_GMI_AD0_PG0, "GMI_AD0 PG0"),
236	PINCTRL_PIN(TEGRA_PIN_GMI_AD1_PG1, "GMI_AD1 PG1"),
237	PINCTRL_PIN(TEGRA_PIN_GMI_AD2_PG2, "GMI_AD2 PG2"),
238	PINCTRL_PIN(TEGRA_PIN_GMI_AD3_PG3, "GMI_AD3 PG3"),
239	PINCTRL_PIN(TEGRA_PIN_GMI_AD4_PG4, "GMI_AD4 PG4"),
240	PINCTRL_PIN(TEGRA_PIN_GMI_AD5_PG5, "GMI_AD5 PG5"),
241	PINCTRL_PIN(TEGRA_PIN_GMI_AD6_PG6, "GMI_AD6 PG6"),
242	PINCTRL_PIN(TEGRA_PIN_GMI_AD7_PG7, "GMI_AD7 PG7"),
243	PINCTRL_PIN(TEGRA_PIN_GMI_AD8_PH0, "GMI_AD8 PH0"),
244	PINCTRL_PIN(TEGRA_PIN_GMI_AD9_PH1, "GMI_AD9 PH1"),
245	PINCTRL_PIN(TEGRA_PIN_GMI_AD10_PH2, "GMI_AD10 PH2"),
246	PINCTRL_PIN(TEGRA_PIN_GMI_AD11_PH3, "GMI_AD11 PH3"),
247	PINCTRL_PIN(TEGRA_PIN_GMI_AD12_PH4, "GMI_AD12 PH4"),
248	PINCTRL_PIN(TEGRA_PIN_GMI_AD13_PH5, "GMI_AD13 PH5"),
249	PINCTRL_PIN(TEGRA_PIN_GMI_AD14_PH6, "GMI_AD14 PH6"),
250	PINCTRL_PIN(TEGRA_PIN_GMI_AD15_PH7, "GMI_AD15 PH7"),
251	PINCTRL_PIN(TEGRA_PIN_GMI_WR_N_PI0, "GMI_WR_N PI0"),
252	PINCTRL_PIN(TEGRA_PIN_GMI_OE_N_PI1, "GMI_OE_N PI1"),
253	PINCTRL_PIN(TEGRA_PIN_GMI_CS6_N_PI3, "GMI_CS6_N PI3"),
254	PINCTRL_PIN(TEGRA_PIN_GMI_RST_N_PI4, "GMI_RST_N PI4"),
255	PINCTRL_PIN(TEGRA_PIN_GMI_IORDY_PI5, "GMI_IORDY PI5"),
256	PINCTRL_PIN(TEGRA_PIN_GMI_CS7_N_PI6, "GMI_CS7_N PI6"),
257	PINCTRL_PIN(TEGRA_PIN_GMI_WAIT_PI7, "GMI_WAIT PI7"),
258	PINCTRL_PIN(TEGRA_PIN_GMI_CS0_N_PJ0, "GMI_CS0_N PJ0"),
259	PINCTRL_PIN(TEGRA_PIN_GMI_CS1_N_PJ2, "GMI_CS1_N PJ2"),
260	PINCTRL_PIN(TEGRA_PIN_GMI_DQS_P_PJ3, "GMI_DQS_P PJ3"),
261	PINCTRL_PIN(TEGRA_PIN_UART2_CTS_N_PJ5, "UART2_CTS_N PJ5"),
262	PINCTRL_PIN(TEGRA_PIN_UART2_RTS_N_PJ6, "UART2_RTS_N PJ6"),
263	PINCTRL_PIN(TEGRA_PIN_GMI_A16_PJ7, "GMI_A16 PJ7"),
264	PINCTRL_PIN(TEGRA_PIN_GMI_ADV_N_PK0, "GMI_ADV_N PK0"),
265	PINCTRL_PIN(TEGRA_PIN_GMI_CLK_PK1, "GMI_CLK PK1"),
266	PINCTRL_PIN(TEGRA_PIN_GMI_CS4_N_PK2, "GMI_CS4_N PK2"),
267	PINCTRL_PIN(TEGRA_PIN_GMI_CS2_N_PK3, "GMI_CS2_N PK3"),
268	PINCTRL_PIN(TEGRA_PIN_GMI_CS3_N_PK4, "GMI_CS3_N PK4"),
269	PINCTRL_PIN(TEGRA_PIN_SPDIF_OUT_PK5, "SPDIF_OUT PK5"),
270	PINCTRL_PIN(TEGRA_PIN_SPDIF_IN_PK6, "SPDIF_IN PK6"),
271	PINCTRL_PIN(TEGRA_PIN_GMI_A19_PK7, "GMI_A19 PK7"),
272	PINCTRL_PIN(TEGRA_PIN_DAP1_FS_PN0, "DAP1_FS PN0"),
273	PINCTRL_PIN(TEGRA_PIN_DAP1_DIN_PN1, "DAP1_DIN PN1"),
274	PINCTRL_PIN(TEGRA_PIN_DAP1_DOUT_PN2, "DAP1_DOUT PN2"),
275	PINCTRL_PIN(TEGRA_PIN_DAP1_SCLK_PN3, "DAP1_SCLK PN3"),
276	PINCTRL_PIN(TEGRA_PIN_USB_VBUS_EN0_PN4, "USB_VBUS_EN0 PN4"),
277	PINCTRL_PIN(TEGRA_PIN_USB_VBUS_EN1_PN5, "USB_VBUS_EN1 PN5"),
278	PINCTRL_PIN(TEGRA_PIN_HDMI_INT_PN7, "HDMI_INT PN7"),
279	PINCTRL_PIN(TEGRA_PIN_ULPI_DATA7_PO0, "ULPI_DATA7 PO0"),
280	PINCTRL_PIN(TEGRA_PIN_ULPI_DATA0_PO1, "ULPI_DATA0 PO1"),
281	PINCTRL_PIN(TEGRA_PIN_ULPI_DATA1_PO2, "ULPI_DATA1 PO2"),
282	PINCTRL_PIN(TEGRA_PIN_ULPI_DATA2_PO3, "ULPI_DATA2 PO3"),
283	PINCTRL_PIN(TEGRA_PIN_ULPI_DATA3_PO4, "ULPI_DATA3 PO4"),
284	PINCTRL_PIN(TEGRA_PIN_ULPI_DATA4_PO5, "ULPI_DATA4 PO5"),
285	PINCTRL_PIN(TEGRA_PIN_ULPI_DATA5_PO6, "ULPI_DATA5 PO6"),
286	PINCTRL_PIN(TEGRA_PIN_ULPI_DATA6_PO7, "ULPI_DATA6 PO7"),
287	PINCTRL_PIN(TEGRA_PIN_DAP3_FS_PP0, "DAP3_FS PP0"),
288	PINCTRL_PIN(TEGRA_PIN_DAP3_DIN_PP1, "DAP3_DIN PP1"),
289	PINCTRL_PIN(TEGRA_PIN_DAP3_DOUT_PP2, "DAP3_DOUT PP2"),
290	PINCTRL_PIN(TEGRA_PIN_DAP3_SCLK_PP3, "DAP3_SCLK PP3"),
291	PINCTRL_PIN(TEGRA_PIN_DAP4_FS_PP4, "DAP4_FS PP4"),
292	PINCTRL_PIN(TEGRA_PIN_DAP4_DIN_PP5, "DAP4_DIN PP5"),
293	PINCTRL_PIN(TEGRA_PIN_DAP4_DOUT_PP6, "DAP4_DOUT PP6"),
294	PINCTRL_PIN(TEGRA_PIN_DAP4_SCLK_PP7, "DAP4_SCLK PP7"),
295	PINCTRL_PIN(TEGRA_PIN_KB_COL0_PQ0, "KB_COL0 PQ0"),
296	PINCTRL_PIN(TEGRA_PIN_KB_COL1_PQ1, "KB_COL1 PQ1"),
297	PINCTRL_PIN(TEGRA_PIN_KB_COL2_PQ2, "KB_COL2 PQ2"),
298	PINCTRL_PIN(TEGRA_PIN_KB_COL3_PQ3, "KB_COL3 PQ3"),
299	PINCTRL_PIN(TEGRA_PIN_KB_COL4_PQ4, "KB_COL4 PQ4"),
300	PINCTRL_PIN(TEGRA_PIN_KB_COL5_PQ5, "KB_COL5 PQ5"),
301	PINCTRL_PIN(TEGRA_PIN_KB_COL6_PQ6, "KB_COL6 PQ6"),
302	PINCTRL_PIN(TEGRA_PIN_KB_COL7_PQ7, "KB_COL7 PQ7"),
303	PINCTRL_PIN(TEGRA_PIN_KB_ROW0_PR0, "KB_ROW0 PR0"),
304	PINCTRL_PIN(TEGRA_PIN_KB_ROW1_PR1, "KB_ROW1 PR1"),
305	PINCTRL_PIN(TEGRA_PIN_KB_ROW2_PR2, "KB_ROW2 PR2"),
306	PINCTRL_PIN(TEGRA_PIN_KB_ROW3_PR3, "KB_ROW3 PR3"),
307	PINCTRL_PIN(TEGRA_PIN_KB_ROW4_PR4, "KB_ROW4 PR4"),
308	PINCTRL_PIN(TEGRA_PIN_KB_ROW5_PR5, "KB_ROW5 PR5"),
309	PINCTRL_PIN(TEGRA_PIN_KB_ROW6_PR6, "KB_ROW6 PR6"),
310	PINCTRL_PIN(TEGRA_PIN_KB_ROW7_PR7, "KB_ROW7 PR7"),
311	PINCTRL_PIN(TEGRA_PIN_KB_ROW8_PS0, "KB_ROW8 PS0"),
312	PINCTRL_PIN(TEGRA_PIN_KB_ROW9_PS1, "KB_ROW9 PS1"),
313	PINCTRL_PIN(TEGRA_PIN_KB_ROW10_PS2, "KB_ROW10 PS2"),
314	PINCTRL_PIN(TEGRA_PIN_GEN2_I2C_SCL_PT5, "GEN2_I2C_SCL PT5"),
315	PINCTRL_PIN(TEGRA_PIN_GEN2_I2C_SDA_PT6, "GEN2_I2C_SDA PT6"),
316	PINCTRL_PIN(TEGRA_PIN_SDMMC4_CMD_PT7, "SDMMC4_CMD PT7"),
317	PINCTRL_PIN(TEGRA_PIN_PU0, "PU0"),
318	PINCTRL_PIN(TEGRA_PIN_PU1, "PU1"),
319	PINCTRL_PIN(TEGRA_PIN_PU2, "PU2"),
320	PINCTRL_PIN(TEGRA_PIN_PU3, "PU3"),
321	PINCTRL_PIN(TEGRA_PIN_PU4, "PU4"),
322	PINCTRL_PIN(TEGRA_PIN_PU5, "PU5"),
323	PINCTRL_PIN(TEGRA_PIN_PU6, "PU6"),
324	PINCTRL_PIN(TEGRA_PIN_PV0, "PV0"),
325	PINCTRL_PIN(TEGRA_PIN_PV1, "PV1"),
326	PINCTRL_PIN(TEGRA_PIN_SDMMC3_CD_N_PV2, "SDMMC3_CD_N PV2"),
327	PINCTRL_PIN(TEGRA_PIN_SDMMC1_WP_N_PV3, "SDMMC1_WP_N PV3"),
328	PINCTRL_PIN(TEGRA_PIN_DDC_SCL_PV4, "DDC_SCL PV4"),
329	PINCTRL_PIN(TEGRA_PIN_DDC_SDA_PV5, "DDC_SDA PV5"),
330	PINCTRL_PIN(TEGRA_PIN_GPIO_W2_AUD_PW2, "GPIO_W2_AUD PW2"),
331	PINCTRL_PIN(TEGRA_PIN_GPIO_W3_AUD_PW3, "GPIO_W3_AUD PW3"),
332	PINCTRL_PIN(TEGRA_PIN_CLK1_OUT_PW4, "CLK1_OUT PW4"),
333	PINCTRL_PIN(TEGRA_PIN_CLK2_OUT_PW5, "CLK2_OUT PW5"),
334	PINCTRL_PIN(TEGRA_PIN_UART3_TXD_PW6, "UART3_TXD PW6"),
335	PINCTRL_PIN(TEGRA_PIN_UART3_RXD_PW7, "UART3_RXD PW7"),
336	PINCTRL_PIN(TEGRA_PIN_DVFS_PWM_PX0, "DVFS_PWM PX0"),
337	PINCTRL_PIN(TEGRA_PIN_GPIO_X1_AUD_PX1, "GPIO_X1_AUD PX1"),
338	PINCTRL_PIN(TEGRA_PIN_DVFS_CLK_PX2, "DVFS_CLK PX2"),
339	PINCTRL_PIN(TEGRA_PIN_GPIO_X3_AUD_PX3, "GPIO_X3_AUD PX3"),
340	PINCTRL_PIN(TEGRA_PIN_GPIO_X4_AUD_PX4, "GPIO_X4_AUD PX4"),
341	PINCTRL_PIN(TEGRA_PIN_GPIO_X5_AUD_PX5, "GPIO_X5_AUD PX5"),
342	PINCTRL_PIN(TEGRA_PIN_GPIO_X6_AUD_PX6, "GPIO_X6_AUD PX6"),
343	PINCTRL_PIN(TEGRA_PIN_GPIO_X7_AUD_PX7, "GPIO_X7_AUD PX7"),
344	PINCTRL_PIN(TEGRA_PIN_ULPI_CLK_PY0, "ULPI_CLK PY0"),
345	PINCTRL_PIN(TEGRA_PIN_ULPI_DIR_PY1, "ULPI_DIR PY1"),
346	PINCTRL_PIN(TEGRA_PIN_ULPI_NXT_PY2, "ULPI_NXT PY2"),
347	PINCTRL_PIN(TEGRA_PIN_ULPI_STP_PY3, "ULPI_STP PY3"),
348	PINCTRL_PIN(TEGRA_PIN_SDMMC1_DAT3_PY4, "SDMMC1_DAT3 PY4"),
349	PINCTRL_PIN(TEGRA_PIN_SDMMC1_DAT2_PY5, "SDMMC1_DAT2 PY5"),
350	PINCTRL_PIN(TEGRA_PIN_SDMMC1_DAT1_PY6, "SDMMC1_DAT1 PY6"),
351	PINCTRL_PIN(TEGRA_PIN_SDMMC1_DAT0_PY7, "SDMMC1_DAT0 PY7"),
352	PINCTRL_PIN(TEGRA_PIN_SDMMC1_CLK_PZ0, "SDMMC1_CLK PZ0"),
353	PINCTRL_PIN(TEGRA_PIN_SDMMC1_CMD_PZ1, "SDMMC1_CMD PZ1"),
354	PINCTRL_PIN(TEGRA_PIN_SYS_CLK_REQ_PZ5, "SYS_CLK_REQ PZ5"),
355	PINCTRL_PIN(TEGRA_PIN_PWR_I2C_SCL_PZ6, "PWR_I2C_SCL PZ6"),
356	PINCTRL_PIN(TEGRA_PIN_PWR_I2C_SDA_PZ7, "PWR_I2C_SDA PZ7"),
357	PINCTRL_PIN(TEGRA_PIN_SDMMC4_DAT0_PAA0, "SDMMC4_DAT0 PAA0"),
358	PINCTRL_PIN(TEGRA_PIN_SDMMC4_DAT1_PAA1, "SDMMC4_DAT1 PAA1"),
359	PINCTRL_PIN(TEGRA_PIN_SDMMC4_DAT2_PAA2, "SDMMC4_DAT2 PAA2"),
360	PINCTRL_PIN(TEGRA_PIN_SDMMC4_DAT3_PAA3, "SDMMC4_DAT3 PAA3"),
361	PINCTRL_PIN(TEGRA_PIN_SDMMC4_DAT4_PAA4, "SDMMC4_DAT4 PAA4"),
362	PINCTRL_PIN(TEGRA_PIN_SDMMC4_DAT5_PAA5, "SDMMC4_DAT5 PAA5"),
363	PINCTRL_PIN(TEGRA_PIN_SDMMC4_DAT6_PAA6, "SDMMC4_DAT6 PAA6"),
364	PINCTRL_PIN(TEGRA_PIN_SDMMC4_DAT7_PAA7, "SDMMC4_DAT7 PAA7"),
365	PINCTRL_PIN(TEGRA_PIN_PBB0, "PBB0"),
366	PINCTRL_PIN(TEGRA_PIN_CAM_I2C_SCL_PBB1, "CAM_I2C_SCL PBB1"),
367	PINCTRL_PIN(TEGRA_PIN_CAM_I2C_SDA_PBB2, "CAM_I2C_SDA PBB2"),
368	PINCTRL_PIN(TEGRA_PIN_PBB3, "PBB3"),
369	PINCTRL_PIN(TEGRA_PIN_PBB4, "PBB4"),
370	PINCTRL_PIN(TEGRA_PIN_PBB5, "PBB5"),
371	PINCTRL_PIN(TEGRA_PIN_PBB6, "PBB6"),
372	PINCTRL_PIN(TEGRA_PIN_PBB7, "PBB7"),
373	PINCTRL_PIN(TEGRA_PIN_CAM_MCLK_PCC0, "CAM_MCLK PCC0"),
374	PINCTRL_PIN(TEGRA_PIN_PCC1, "PCC1"),
375	PINCTRL_PIN(TEGRA_PIN_PCC2, "PCC2"),
376	PINCTRL_PIN(TEGRA_PIN_SDMMC4_CLK_PCC4, "SDMMC4_CLK PCC4"),
377	PINCTRL_PIN(TEGRA_PIN_CLK2_REQ_PCC5, "CLK2_REQ PCC5"),
378	PINCTRL_PIN(TEGRA_PIN_CLK3_OUT_PEE0, "CLK3_OUT PEE0"),
379	PINCTRL_PIN(TEGRA_PIN_CLK3_REQ_PEE1, "CLK3_REQ PEE1"),
380	PINCTRL_PIN(TEGRA_PIN_CLK1_REQ_PEE2, "CLK1_REQ PEE2"),
381	PINCTRL_PIN(TEGRA_PIN_HDMI_CEC_PEE3, "HDMI_CEC PEE3"),
382	PINCTRL_PIN(TEGRA_PIN_SDMMC3_CLK_LB_OUT_PEE4, "SDMMC3_CLK_LB_OUT PEE4"),
383	PINCTRL_PIN(TEGRA_PIN_SDMMC3_CLK_LB_IN_PEE5, "SDMMC3_CLK_LB_IN PEE5"),
384	PINCTRL_PIN(TEGRA_PIN_CORE_PWR_REQ, "CORE_PWR_REQ"),
385	PINCTRL_PIN(TEGRA_PIN_CPU_PWR_REQ, "CPU_PWR_REQ"),
386	PINCTRL_PIN(TEGRA_PIN_PWR_INT_N, "PWR_INT_N"),
387	PINCTRL_PIN(TEGRA_PIN_RESET_OUT_N, "RESET_OUT_N"),
388	PINCTRL_PIN(TEGRA_PIN_OWR, "OWR"),
389	PINCTRL_PIN(TEGRA_PIN_JTAG_RTCK, "JTAG_RTCK"),
390	PINCTRL_PIN(TEGRA_PIN_CLK_32K_IN, "CLK_32K_IN"),
391	PINCTRL_PIN(TEGRA_PIN_GMI_CLK_LB, "GMI_CLK_LB"),
392};
393
394static const unsigned clk_32k_out_pa0_pins[] = {
395	TEGRA_PIN_CLK_32K_OUT_PA0,
396};
397
398static const unsigned uart3_cts_n_pa1_pins[] = {
399	TEGRA_PIN_UART3_CTS_N_PA1,
400};
401
402static const unsigned dap2_fs_pa2_pins[] = {
403	TEGRA_PIN_DAP2_FS_PA2,
404};
405
406static const unsigned dap2_sclk_pa3_pins[] = {
407	TEGRA_PIN_DAP2_SCLK_PA3,
408};
409
410static const unsigned dap2_din_pa4_pins[] = {
411	TEGRA_PIN_DAP2_DIN_PA4,
412};
413
414static const unsigned dap2_dout_pa5_pins[] = {
415	TEGRA_PIN_DAP2_DOUT_PA5,
416};
417
418static const unsigned sdmmc3_clk_pa6_pins[] = {
419	TEGRA_PIN_SDMMC3_CLK_PA6,
420};
421
422static const unsigned sdmmc3_cmd_pa7_pins[] = {
423	TEGRA_PIN_SDMMC3_CMD_PA7,
424};
425
426static const unsigned gmi_a17_pb0_pins[] = {
427	TEGRA_PIN_GMI_A17_PB0,
428};
429
430static const unsigned gmi_a18_pb1_pins[] = {
431	TEGRA_PIN_GMI_A18_PB1,
432};
433
434static const unsigned sdmmc3_dat3_pb4_pins[] = {
435	TEGRA_PIN_SDMMC3_DAT3_PB4,
436};
437
438static const unsigned sdmmc3_dat2_pb5_pins[] = {
439	TEGRA_PIN_SDMMC3_DAT2_PB5,
440};
441
442static const unsigned sdmmc3_dat1_pb6_pins[] = {
443	TEGRA_PIN_SDMMC3_DAT1_PB6,
444};
445
446static const unsigned sdmmc3_dat0_pb7_pins[] = {
447	TEGRA_PIN_SDMMC3_DAT0_PB7,
448};
449
450static const unsigned uart3_rts_n_pc0_pins[] = {
451	TEGRA_PIN_UART3_RTS_N_PC0,
452};
453
454static const unsigned uart2_txd_pc2_pins[] = {
455	TEGRA_PIN_UART2_TXD_PC2,
456};
457
458static const unsigned uart2_rxd_pc3_pins[] = {
459	TEGRA_PIN_UART2_RXD_PC3,
460};
461
462static const unsigned gen1_i2c_scl_pc4_pins[] = {
463	TEGRA_PIN_GEN1_I2C_SCL_PC4,
464};
465
466static const unsigned gen1_i2c_sda_pc5_pins[] = {
467	TEGRA_PIN_GEN1_I2C_SDA_PC5,
468};
469
470static const unsigned gmi_wp_n_pc7_pins[] = {
471	TEGRA_PIN_GMI_WP_N_PC7,
472};
473
474static const unsigned gmi_ad0_pg0_pins[] = {
475	TEGRA_PIN_GMI_AD0_PG0,
476};
477
478static const unsigned gmi_ad1_pg1_pins[] = {
479	TEGRA_PIN_GMI_AD1_PG1,
480};
481
482static const unsigned gmi_ad2_pg2_pins[] = {
483	TEGRA_PIN_GMI_AD2_PG2,
484};
485
486static const unsigned gmi_ad3_pg3_pins[] = {
487	TEGRA_PIN_GMI_AD3_PG3,
488};
489
490static const unsigned gmi_ad4_pg4_pins[] = {
491	TEGRA_PIN_GMI_AD4_PG4,
492};
493
494static const unsigned gmi_ad5_pg5_pins[] = {
495	TEGRA_PIN_GMI_AD5_PG5,
496};
497
498static const unsigned gmi_ad6_pg6_pins[] = {
499	TEGRA_PIN_GMI_AD6_PG6,
500};
501
502static const unsigned gmi_ad7_pg7_pins[] = {
503	TEGRA_PIN_GMI_AD7_PG7,
504};
505
506static const unsigned gmi_ad8_ph0_pins[] = {
507	TEGRA_PIN_GMI_AD8_PH0,
508};
509
510static const unsigned gmi_ad9_ph1_pins[] = {
511	TEGRA_PIN_GMI_AD9_PH1,
512};
513
514static const unsigned gmi_ad10_ph2_pins[] = {
515	TEGRA_PIN_GMI_AD10_PH2,
516};
517
518static const unsigned gmi_ad11_ph3_pins[] = {
519	TEGRA_PIN_GMI_AD11_PH3,
520};
521
522static const unsigned gmi_ad12_ph4_pins[] = {
523	TEGRA_PIN_GMI_AD12_PH4,
524};
525
526static const unsigned gmi_ad13_ph5_pins[] = {
527	TEGRA_PIN_GMI_AD13_PH5,
528};
529
530static const unsigned gmi_ad14_ph6_pins[] = {
531	TEGRA_PIN_GMI_AD14_PH6,
532};
533
534static const unsigned gmi_ad15_ph7_pins[] = {
535	TEGRA_PIN_GMI_AD15_PH7,
536};
537
538static const unsigned gmi_wr_n_pi0_pins[] = {
539	TEGRA_PIN_GMI_WR_N_PI0,
540};
541
542static const unsigned gmi_oe_n_pi1_pins[] = {
543	TEGRA_PIN_GMI_OE_N_PI1,
544};
545
546static const unsigned gmi_cs6_n_pi3_pins[] = {
547	TEGRA_PIN_GMI_CS6_N_PI3,
548};
549
550static const unsigned gmi_rst_n_pi4_pins[] = {
551	TEGRA_PIN_GMI_RST_N_PI4,
552};
553
554static const unsigned gmi_iordy_pi5_pins[] = {
555	TEGRA_PIN_GMI_IORDY_PI5,
556};
557
558static const unsigned gmi_cs7_n_pi6_pins[] = {
559	TEGRA_PIN_GMI_CS7_N_PI6,
560};
561
562static const unsigned gmi_wait_pi7_pins[] = {
563	TEGRA_PIN_GMI_WAIT_PI7,
564};
565
566static const unsigned gmi_cs0_n_pj0_pins[] = {
567	TEGRA_PIN_GMI_CS0_N_PJ0,
568};
569
570static const unsigned gmi_cs1_n_pj2_pins[] = {
571	TEGRA_PIN_GMI_CS1_N_PJ2,
572};
573
574static const unsigned gmi_dqs_p_pj3_pins[] = {
575	TEGRA_PIN_GMI_DQS_P_PJ3,
576};
577
578static const unsigned uart2_cts_n_pj5_pins[] = {
579	TEGRA_PIN_UART2_CTS_N_PJ5,
580};
581
582static const unsigned uart2_rts_n_pj6_pins[] = {
583	TEGRA_PIN_UART2_RTS_N_PJ6,
584};
585
586static const unsigned gmi_a16_pj7_pins[] = {
587	TEGRA_PIN_GMI_A16_PJ7,
588};
589
590static const unsigned gmi_adv_n_pk0_pins[] = {
591	TEGRA_PIN_GMI_ADV_N_PK0,
592};
593
594static const unsigned gmi_clk_pk1_pins[] = {
595	TEGRA_PIN_GMI_CLK_PK1,
596};
597
598static const unsigned gmi_cs4_n_pk2_pins[] = {
599	TEGRA_PIN_GMI_CS4_N_PK2,
600};
601
602static const unsigned gmi_cs2_n_pk3_pins[] = {
603	TEGRA_PIN_GMI_CS2_N_PK3,
604};
605
606static const unsigned gmi_cs3_n_pk4_pins[] = {
607	TEGRA_PIN_GMI_CS3_N_PK4,
608};
609
610static const unsigned spdif_out_pk5_pins[] = {
611	TEGRA_PIN_SPDIF_OUT_PK5,
612};
613
614static const unsigned spdif_in_pk6_pins[] = {
615	TEGRA_PIN_SPDIF_IN_PK6,
616};
617
618static const unsigned gmi_a19_pk7_pins[] = {
619	TEGRA_PIN_GMI_A19_PK7,
620};
621
622static const unsigned dap1_fs_pn0_pins[] = {
623	TEGRA_PIN_DAP1_FS_PN0,
624};
625
626static const unsigned dap1_din_pn1_pins[] = {
627	TEGRA_PIN_DAP1_DIN_PN1,
628};
629
630static const unsigned dap1_dout_pn2_pins[] = {
631	TEGRA_PIN_DAP1_DOUT_PN2,
632};
633
634static const unsigned dap1_sclk_pn3_pins[] = {
635	TEGRA_PIN_DAP1_SCLK_PN3,
636};
637
638static const unsigned usb_vbus_en0_pn4_pins[] = {
639	TEGRA_PIN_USB_VBUS_EN0_PN4,
640};
641
642static const unsigned usb_vbus_en1_pn5_pins[] = {
643	TEGRA_PIN_USB_VBUS_EN1_PN5,
644};
645
646static const unsigned hdmi_int_pn7_pins[] = {
647	TEGRA_PIN_HDMI_INT_PN7,
648};
649
650static const unsigned ulpi_data7_po0_pins[] = {
651	TEGRA_PIN_ULPI_DATA7_PO0,
652};
653
654static const unsigned ulpi_data0_po1_pins[] = {
655	TEGRA_PIN_ULPI_DATA0_PO1,
656};
657
658static const unsigned ulpi_data1_po2_pins[] = {
659	TEGRA_PIN_ULPI_DATA1_PO2,
660};
661
662static const unsigned ulpi_data2_po3_pins[] = {
663	TEGRA_PIN_ULPI_DATA2_PO3,
664};
665
666static const unsigned ulpi_data3_po4_pins[] = {
667	TEGRA_PIN_ULPI_DATA3_PO4,
668};
669
670static const unsigned ulpi_data4_po5_pins[] = {
671	TEGRA_PIN_ULPI_DATA4_PO5,
672};
673
674static const unsigned ulpi_data5_po6_pins[] = {
675	TEGRA_PIN_ULPI_DATA5_PO6,
676};
677
678static const unsigned ulpi_data6_po7_pins[] = {
679	TEGRA_PIN_ULPI_DATA6_PO7,
680};
681
682static const unsigned dap3_fs_pp0_pins[] = {
683	TEGRA_PIN_DAP3_FS_PP0,
684};
685
686static const unsigned dap3_din_pp1_pins[] = {
687	TEGRA_PIN_DAP3_DIN_PP1,
688};
689
690static const unsigned dap3_dout_pp2_pins[] = {
691	TEGRA_PIN_DAP3_DOUT_PP2,
692};
693
694static const unsigned dap3_sclk_pp3_pins[] = {
695	TEGRA_PIN_DAP3_SCLK_PP3,
696};
697
698static const unsigned dap4_fs_pp4_pins[] = {
699	TEGRA_PIN_DAP4_FS_PP4,
700};
701
702static const unsigned dap4_din_pp5_pins[] = {
703	TEGRA_PIN_DAP4_DIN_PP5,
704};
705
706static const unsigned dap4_dout_pp6_pins[] = {
707	TEGRA_PIN_DAP4_DOUT_PP6,
708};
709
710static const unsigned dap4_sclk_pp7_pins[] = {
711	TEGRA_PIN_DAP4_SCLK_PP7,
712};
713
714static const unsigned kb_col0_pq0_pins[] = {
715	TEGRA_PIN_KB_COL0_PQ0,
716};
717
718static const unsigned kb_col1_pq1_pins[] = {
719	TEGRA_PIN_KB_COL1_PQ1,
720};
721
722static const unsigned kb_col2_pq2_pins[] = {
723	TEGRA_PIN_KB_COL2_PQ2,
724};
725
726static const unsigned kb_col3_pq3_pins[] = {
727	TEGRA_PIN_KB_COL3_PQ3,
728};
729
730static const unsigned kb_col4_pq4_pins[] = {
731	TEGRA_PIN_KB_COL4_PQ4,
732};
733
734static const unsigned kb_col5_pq5_pins[] = {
735	TEGRA_PIN_KB_COL5_PQ5,
736};
737
738static const unsigned kb_col6_pq6_pins[] = {
739	TEGRA_PIN_KB_COL6_PQ6,
740};
741
742static const unsigned kb_col7_pq7_pins[] = {
743	TEGRA_PIN_KB_COL7_PQ7,
744};
745
746static const unsigned kb_row0_pr0_pins[] = {
747	TEGRA_PIN_KB_ROW0_PR0,
748};
749
750static const unsigned kb_row1_pr1_pins[] = {
751	TEGRA_PIN_KB_ROW1_PR1,
752};
753
754static const unsigned kb_row2_pr2_pins[] = {
755	TEGRA_PIN_KB_ROW2_PR2,
756};
757
758static const unsigned kb_row3_pr3_pins[] = {
759	TEGRA_PIN_KB_ROW3_PR3,
760};
761
762static const unsigned kb_row4_pr4_pins[] = {
763	TEGRA_PIN_KB_ROW4_PR4,
764};
765
766static const unsigned kb_row5_pr5_pins[] = {
767	TEGRA_PIN_KB_ROW5_PR5,
768};
769
770static const unsigned kb_row6_pr6_pins[] = {
771	TEGRA_PIN_KB_ROW6_PR6,
772};
773
774static const unsigned kb_row7_pr7_pins[] = {
775	TEGRA_PIN_KB_ROW7_PR7,
776};
777
778static const unsigned kb_row8_ps0_pins[] = {
779	TEGRA_PIN_KB_ROW8_PS0,
780};
781
782static const unsigned kb_row9_ps1_pins[] = {
783	TEGRA_PIN_KB_ROW9_PS1,
784};
785
786static const unsigned kb_row10_ps2_pins[] = {
787	TEGRA_PIN_KB_ROW10_PS2,
788};
789
790static const unsigned gen2_i2c_scl_pt5_pins[] = {
791	TEGRA_PIN_GEN2_I2C_SCL_PT5,
792};
793
794static const unsigned gen2_i2c_sda_pt6_pins[] = {
795	TEGRA_PIN_GEN2_I2C_SDA_PT6,
796};
797
798static const unsigned sdmmc4_cmd_pt7_pins[] = {
799	TEGRA_PIN_SDMMC4_CMD_PT7,
800};
801
802static const unsigned pu0_pins[] = {
803	TEGRA_PIN_PU0,
804};
805
806static const unsigned pu1_pins[] = {
807	TEGRA_PIN_PU1,
808};
809
810static const unsigned pu2_pins[] = {
811	TEGRA_PIN_PU2,
812};
813
814static const unsigned pu3_pins[] = {
815	TEGRA_PIN_PU3,
816};
817
818static const unsigned pu4_pins[] = {
819	TEGRA_PIN_PU4,
820};
821
822static const unsigned pu5_pins[] = {
823	TEGRA_PIN_PU5,
824};
825
826static const unsigned pu6_pins[] = {
827	TEGRA_PIN_PU6,
828};
829
830static const unsigned pv0_pins[] = {
831	TEGRA_PIN_PV0,
832};
833
834static const unsigned pv1_pins[] = {
835	TEGRA_PIN_PV1,
836};
837
838static const unsigned sdmmc3_cd_n_pv2_pins[] = {
839	TEGRA_PIN_SDMMC3_CD_N_PV2,
840};
841
842static const unsigned sdmmc1_wp_n_pv3_pins[] = {
843	TEGRA_PIN_SDMMC1_WP_N_PV3,
844};
845
846static const unsigned ddc_scl_pv4_pins[] = {
847	TEGRA_PIN_DDC_SCL_PV4,
848};
849
850static const unsigned ddc_sda_pv5_pins[] = {
851	TEGRA_PIN_DDC_SDA_PV5,
852};
853
854static const unsigned gpio_w2_aud_pw2_pins[] = {
855	TEGRA_PIN_GPIO_W2_AUD_PW2,
856};
857
858static const unsigned gpio_w3_aud_pw3_pins[] = {
859	TEGRA_PIN_GPIO_W3_AUD_PW3,
860};
861
862static const unsigned clk1_out_pw4_pins[] = {
863	TEGRA_PIN_CLK1_OUT_PW4,
864};
865
866static const unsigned clk2_out_pw5_pins[] = {
867	TEGRA_PIN_CLK2_OUT_PW5,
868};
869
870static const unsigned uart3_txd_pw6_pins[] = {
871	TEGRA_PIN_UART3_TXD_PW6,
872};
873
874static const unsigned uart3_rxd_pw7_pins[] = {
875	TEGRA_PIN_UART3_RXD_PW7,
876};
877
878static const unsigned dvfs_pwm_px0_pins[] = {
879	TEGRA_PIN_DVFS_PWM_PX0,
880};
881
882static const unsigned gpio_x1_aud_px1_pins[] = {
883	TEGRA_PIN_GPIO_X1_AUD_PX1,
884};
885
886static const unsigned dvfs_clk_px2_pins[] = {
887	TEGRA_PIN_DVFS_CLK_PX2,
888};
889
890static const unsigned gpio_x3_aud_px3_pins[] = {
891	TEGRA_PIN_GPIO_X3_AUD_PX3,
892};
893
894static const unsigned gpio_x4_aud_px4_pins[] = {
895	TEGRA_PIN_GPIO_X4_AUD_PX4,
896};
897
898static const unsigned gpio_x5_aud_px5_pins[] = {
899	TEGRA_PIN_GPIO_X5_AUD_PX5,
900};
901
902static const unsigned gpio_x6_aud_px6_pins[] = {
903	TEGRA_PIN_GPIO_X6_AUD_PX6,
904};
905
906static const unsigned gpio_x7_aud_px7_pins[] = {
907	TEGRA_PIN_GPIO_X7_AUD_PX7,
908};
909
910static const unsigned ulpi_clk_py0_pins[] = {
911	TEGRA_PIN_ULPI_CLK_PY0,
912};
913
914static const unsigned ulpi_dir_py1_pins[] = {
915	TEGRA_PIN_ULPI_DIR_PY1,
916};
917
918static const unsigned ulpi_nxt_py2_pins[] = {
919	TEGRA_PIN_ULPI_NXT_PY2,
920};
921
922static const unsigned ulpi_stp_py3_pins[] = {
923	TEGRA_PIN_ULPI_STP_PY3,
924};
925
926static const unsigned sdmmc1_dat3_py4_pins[] = {
927	TEGRA_PIN_SDMMC1_DAT3_PY4,
928};
929
930static const unsigned sdmmc1_dat2_py5_pins[] = {
931	TEGRA_PIN_SDMMC1_DAT2_PY5,
932};
933
934static const unsigned sdmmc1_dat1_py6_pins[] = {
935	TEGRA_PIN_SDMMC1_DAT1_PY6,
936};
937
938static const unsigned sdmmc1_dat0_py7_pins[] = {
939	TEGRA_PIN_SDMMC1_DAT0_PY7,
940};
941
942static const unsigned sdmmc1_clk_pz0_pins[] = {
943	TEGRA_PIN_SDMMC1_CLK_PZ0,
944};
945
946static const unsigned sdmmc1_cmd_pz1_pins[] = {
947	TEGRA_PIN_SDMMC1_CMD_PZ1,
948};
949
950static const unsigned sys_clk_req_pz5_pins[] = {
951	TEGRA_PIN_SYS_CLK_REQ_PZ5,
952};
953
954static const unsigned pwr_i2c_scl_pz6_pins[] = {
955	TEGRA_PIN_PWR_I2C_SCL_PZ6,
956};
957
958static const unsigned pwr_i2c_sda_pz7_pins[] = {
959	TEGRA_PIN_PWR_I2C_SDA_PZ7,
960};
961
962static const unsigned sdmmc4_dat0_paa0_pins[] = {
963	TEGRA_PIN_SDMMC4_DAT0_PAA0,
964};
965
966static const unsigned sdmmc4_dat1_paa1_pins[] = {
967	TEGRA_PIN_SDMMC4_DAT1_PAA1,
968};
969
970static const unsigned sdmmc4_dat2_paa2_pins[] = {
971	TEGRA_PIN_SDMMC4_DAT2_PAA2,
972};
973
974static const unsigned sdmmc4_dat3_paa3_pins[] = {
975	TEGRA_PIN_SDMMC4_DAT3_PAA3,
976};
977
978static const unsigned sdmmc4_dat4_paa4_pins[] = {
979	TEGRA_PIN_SDMMC4_DAT4_PAA4,
980};
981
982static const unsigned sdmmc4_dat5_paa5_pins[] = {
983	TEGRA_PIN_SDMMC4_DAT5_PAA5,
984};
985
986static const unsigned sdmmc4_dat6_paa6_pins[] = {
987	TEGRA_PIN_SDMMC4_DAT6_PAA6,
988};
989
990static const unsigned sdmmc4_dat7_paa7_pins[] = {
991	TEGRA_PIN_SDMMC4_DAT7_PAA7,
992};
993
994static const unsigned pbb0_pins[] = {
995	TEGRA_PIN_PBB0,
996};
997
998static const unsigned cam_i2c_scl_pbb1_pins[] = {
999	TEGRA_PIN_CAM_I2C_SCL_PBB1,
1000};
1001
1002static const unsigned cam_i2c_sda_pbb2_pins[] = {
1003	TEGRA_PIN_CAM_I2C_SDA_PBB2,
1004};
1005
1006static const unsigned pbb3_pins[] = {
1007	TEGRA_PIN_PBB3,
1008};
1009
1010static const unsigned pbb4_pins[] = {
1011	TEGRA_PIN_PBB4,
1012};
1013
1014static const unsigned pbb5_pins[] = {
1015	TEGRA_PIN_PBB5,
1016};
1017
1018static const unsigned pbb6_pins[] = {
1019	TEGRA_PIN_PBB6,
1020};
1021
1022static const unsigned pbb7_pins[] = {
1023	TEGRA_PIN_PBB7,
1024};
1025
1026static const unsigned cam_mclk_pcc0_pins[] = {
1027	TEGRA_PIN_CAM_MCLK_PCC0,
1028};
1029
1030static const unsigned pcc1_pins[] = {
1031	TEGRA_PIN_PCC1,
1032};
1033
1034static const unsigned pcc2_pins[] = {
1035	TEGRA_PIN_PCC2,
1036};
1037
1038static const unsigned sdmmc4_clk_pcc4_pins[] = {
1039	TEGRA_PIN_SDMMC4_CLK_PCC4,
1040};
1041
1042static const unsigned clk2_req_pcc5_pins[] = {
1043	TEGRA_PIN_CLK2_REQ_PCC5,
1044};
1045
1046static const unsigned clk3_out_pee0_pins[] = {
1047	TEGRA_PIN_CLK3_OUT_PEE0,
1048};
1049
1050static const unsigned clk3_req_pee1_pins[] = {
1051	TEGRA_PIN_CLK3_REQ_PEE1,
1052};
1053
1054static const unsigned clk1_req_pee2_pins[] = {
1055	TEGRA_PIN_CLK1_REQ_PEE2,
1056};
1057
1058static const unsigned hdmi_cec_pee3_pins[] = {
1059	TEGRA_PIN_HDMI_CEC_PEE3,
1060};
1061
1062static const unsigned sdmmc3_clk_lb_out_pee4_pins[] = {
1063	TEGRA_PIN_SDMMC3_CLK_LB_OUT_PEE4,
1064};
1065
1066static const unsigned sdmmc3_clk_lb_in_pee5_pins[] = {
1067	TEGRA_PIN_SDMMC3_CLK_LB_IN_PEE5,
1068};
1069
1070static const unsigned core_pwr_req_pins[] = {
1071	TEGRA_PIN_CORE_PWR_REQ,
1072};
1073
1074static const unsigned cpu_pwr_req_pins[] = {
1075	TEGRA_PIN_CPU_PWR_REQ,
1076};
1077
1078static const unsigned pwr_int_n_pins[] = {
1079	TEGRA_PIN_PWR_INT_N,
1080};
1081
1082static const unsigned reset_out_n_pins[] = {
1083	TEGRA_PIN_RESET_OUT_N,
1084};
1085
1086static const unsigned owr_pins[] = {
1087	TEGRA_PIN_OWR,
1088};
1089
1090static const unsigned jtag_rtck_pins[] = {
1091	TEGRA_PIN_JTAG_RTCK,
1092};
1093
1094static const unsigned clk_32k_in_pins[] = {
1095	TEGRA_PIN_CLK_32K_IN,
1096};
1097
1098static const unsigned gmi_clk_lb_pins[] = {
1099	TEGRA_PIN_GMI_CLK_LB,
1100};
1101
1102static const unsigned drive_ao1_pins[] = {
1103	TEGRA_PIN_KB_ROW0_PR0,
1104	TEGRA_PIN_KB_ROW1_PR1,
1105	TEGRA_PIN_KB_ROW2_PR2,
1106	TEGRA_PIN_KB_ROW3_PR3,
1107	TEGRA_PIN_KB_ROW4_PR4,
1108	TEGRA_PIN_KB_ROW5_PR5,
1109	TEGRA_PIN_KB_ROW6_PR6,
1110	TEGRA_PIN_KB_ROW7_PR7,
1111	TEGRA_PIN_PWR_I2C_SCL_PZ6,
1112	TEGRA_PIN_PWR_I2C_SDA_PZ7,
1113};
1114
1115static const unsigned drive_ao2_pins[] = {
1116	TEGRA_PIN_CLK_32K_OUT_PA0,
1117	TEGRA_PIN_KB_COL0_PQ0,
1118	TEGRA_PIN_KB_COL1_PQ1,
1119	TEGRA_PIN_KB_COL2_PQ2,
1120	TEGRA_PIN_KB_COL3_PQ3,
1121	TEGRA_PIN_KB_COL4_PQ4,
1122	TEGRA_PIN_KB_COL5_PQ5,
1123	TEGRA_PIN_KB_COL6_PQ6,
1124	TEGRA_PIN_KB_COL7_PQ7,
1125	TEGRA_PIN_KB_ROW8_PS0,
1126	TEGRA_PIN_KB_ROW9_PS1,
1127	TEGRA_PIN_KB_ROW10_PS2,
1128	TEGRA_PIN_SYS_CLK_REQ_PZ5,
1129	TEGRA_PIN_CORE_PWR_REQ,
1130	TEGRA_PIN_CPU_PWR_REQ,
1131	TEGRA_PIN_RESET_OUT_N,
1132};
1133
1134static const unsigned drive_at1_pins[] = {
1135	TEGRA_PIN_GMI_AD8_PH0,
1136	TEGRA_PIN_GMI_AD9_PH1,
1137	TEGRA_PIN_GMI_AD10_PH2,
1138	TEGRA_PIN_GMI_AD11_PH3,
1139	TEGRA_PIN_GMI_AD12_PH4,
1140	TEGRA_PIN_GMI_AD13_PH5,
1141	TEGRA_PIN_GMI_AD14_PH6,
1142	TEGRA_PIN_GMI_AD15_PH7,
1143	TEGRA_PIN_GMI_IORDY_PI5,
1144	TEGRA_PIN_GMI_CS7_N_PI6,
1145};
1146
1147static const unsigned drive_at2_pins[] = {
1148	TEGRA_PIN_GMI_AD0_PG0,
1149	TEGRA_PIN_GMI_AD1_PG1,
1150	TEGRA_PIN_GMI_AD2_PG2,
1151	TEGRA_PIN_GMI_AD3_PG3,
1152	TEGRA_PIN_GMI_AD4_PG4,
1153	TEGRA_PIN_GMI_AD5_PG5,
1154	TEGRA_PIN_GMI_AD6_PG6,
1155	TEGRA_PIN_GMI_AD7_PG7,
1156	TEGRA_PIN_GMI_WR_N_PI0,
1157	TEGRA_PIN_GMI_OE_N_PI1,
1158	TEGRA_PIN_GMI_CS6_N_PI3,
1159	TEGRA_PIN_GMI_RST_N_PI4,
1160	TEGRA_PIN_GMI_WAIT_PI7,
1161	TEGRA_PIN_GMI_DQS_P_PJ3,
1162	TEGRA_PIN_GMI_ADV_N_PK0,
1163	TEGRA_PIN_GMI_CLK_PK1,
1164	TEGRA_PIN_GMI_CS4_N_PK2,
1165	TEGRA_PIN_GMI_CS2_N_PK3,
1166	TEGRA_PIN_GMI_CS3_N_PK4,
1167};
1168
1169static const unsigned drive_at3_pins[] = {
1170	TEGRA_PIN_GMI_WP_N_PC7,
1171	TEGRA_PIN_GMI_CS0_N_PJ0,
1172};
1173
1174static const unsigned drive_at4_pins[] = {
1175	TEGRA_PIN_GMI_A17_PB0,
1176	TEGRA_PIN_GMI_A18_PB1,
1177	TEGRA_PIN_GMI_CS1_N_PJ2,
1178	TEGRA_PIN_GMI_A16_PJ7,
1179	TEGRA_PIN_GMI_A19_PK7,
1180};
1181
1182static const unsigned drive_at5_pins[] = {
1183	TEGRA_PIN_GEN2_I2C_SCL_PT5,
1184	TEGRA_PIN_GEN2_I2C_SDA_PT6,
1185};
1186
1187static const unsigned drive_cdev1_pins[] = {
1188	TEGRA_PIN_CLK1_OUT_PW4,
1189	TEGRA_PIN_CLK1_REQ_PEE2,
1190};
1191
1192static const unsigned drive_cdev2_pins[] = {
1193	TEGRA_PIN_CLK2_OUT_PW5,
1194	TEGRA_PIN_CLK2_REQ_PCC5,
1195	TEGRA_PIN_SDMMC1_WP_N_PV3,
1196};
1197
1198static const unsigned drive_dap1_pins[] = {
1199	TEGRA_PIN_DAP1_FS_PN0,
1200	TEGRA_PIN_DAP1_DIN_PN1,
1201	TEGRA_PIN_DAP1_DOUT_PN2,
1202	TEGRA_PIN_DAP1_SCLK_PN3,
1203};
1204
1205static const unsigned drive_dap2_pins[] = {
1206	TEGRA_PIN_DAP2_FS_PA2,
1207	TEGRA_PIN_DAP2_SCLK_PA3,
1208	TEGRA_PIN_DAP2_DIN_PA4,
1209	TEGRA_PIN_DAP2_DOUT_PA5,
1210};
1211
1212static const unsigned drive_dap3_pins[] = {
1213	TEGRA_PIN_DAP3_FS_PP0,
1214	TEGRA_PIN_DAP3_DIN_PP1,
1215	TEGRA_PIN_DAP3_DOUT_PP2,
1216	TEGRA_PIN_DAP3_SCLK_PP3,
1217};
1218
1219static const unsigned drive_dap4_pins[] = {
1220	TEGRA_PIN_DAP4_FS_PP4,
1221	TEGRA_PIN_DAP4_DIN_PP5,
1222	TEGRA_PIN_DAP4_DOUT_PP6,
1223	TEGRA_PIN_DAP4_SCLK_PP7,
1224};
1225
1226static const unsigned drive_dbg_pins[] = {
1227	TEGRA_PIN_GEN1_I2C_SCL_PC4,
1228	TEGRA_PIN_GEN1_I2C_SDA_PC5,
1229	TEGRA_PIN_PU0,
1230	TEGRA_PIN_PU1,
1231	TEGRA_PIN_PU2,
1232	TEGRA_PIN_PU3,
1233	TEGRA_PIN_PU4,
1234	TEGRA_PIN_PU5,
1235	TEGRA_PIN_PU6,
1236};
1237
1238static const unsigned drive_sdio3_pins[] = {
1239	TEGRA_PIN_SDMMC3_CLK_PA6,
1240	TEGRA_PIN_SDMMC3_CMD_PA7,
1241	TEGRA_PIN_SDMMC3_DAT3_PB4,
1242	TEGRA_PIN_SDMMC3_DAT2_PB5,
1243	TEGRA_PIN_SDMMC3_DAT1_PB6,
1244	TEGRA_PIN_SDMMC3_DAT0_PB7,
1245	TEGRA_PIN_SDMMC3_CLK_LB_OUT_PEE4,
1246	TEGRA_PIN_SDMMC3_CLK_LB_IN_PEE5,
1247};
1248
1249static const unsigned drive_spi_pins[] = {
1250	TEGRA_PIN_DVFS_PWM_PX0,
1251	TEGRA_PIN_GPIO_X1_AUD_PX1,
1252	TEGRA_PIN_DVFS_CLK_PX2,
1253	TEGRA_PIN_GPIO_X3_AUD_PX3,
1254	TEGRA_PIN_GPIO_X4_AUD_PX4,
1255	TEGRA_PIN_GPIO_X5_AUD_PX5,
1256	TEGRA_PIN_GPIO_X6_AUD_PX6,
1257	TEGRA_PIN_GPIO_X7_AUD_PX7,
1258	TEGRA_PIN_GPIO_W2_AUD_PW2,
1259	TEGRA_PIN_GPIO_W3_AUD_PW3,
1260};
1261
1262static const unsigned drive_uaa_pins[] = {
1263	TEGRA_PIN_ULPI_DATA0_PO1,
1264	TEGRA_PIN_ULPI_DATA1_PO2,
1265	TEGRA_PIN_ULPI_DATA2_PO3,
1266	TEGRA_PIN_ULPI_DATA3_PO4,
1267};
1268
1269static const unsigned drive_uab_pins[] = {
1270	TEGRA_PIN_ULPI_DATA7_PO0,
1271	TEGRA_PIN_ULPI_DATA4_PO5,
1272	TEGRA_PIN_ULPI_DATA5_PO6,
1273	TEGRA_PIN_ULPI_DATA6_PO7,
1274	TEGRA_PIN_PV0,
1275	TEGRA_PIN_PV1,
1276};
1277
1278static const unsigned drive_uart2_pins[] = {
1279	TEGRA_PIN_UART2_TXD_PC2,
1280	TEGRA_PIN_UART2_RXD_PC3,
1281	TEGRA_PIN_UART2_CTS_N_PJ5,
1282	TEGRA_PIN_UART2_RTS_N_PJ6,
1283};
1284
1285static const unsigned drive_uart3_pins[] = {
1286	TEGRA_PIN_UART3_CTS_N_PA1,
1287	TEGRA_PIN_UART3_RTS_N_PC0,
1288	TEGRA_PIN_UART3_TXD_PW6,
1289	TEGRA_PIN_UART3_RXD_PW7,
1290};
1291
1292static const unsigned drive_sdio1_pins[] = {
1293	TEGRA_PIN_SDMMC1_DAT3_PY4,
1294	TEGRA_PIN_SDMMC1_DAT2_PY5,
1295	TEGRA_PIN_SDMMC1_DAT1_PY6,
1296	TEGRA_PIN_SDMMC1_DAT0_PY7,
1297	TEGRA_PIN_SDMMC1_CLK_PZ0,
1298	TEGRA_PIN_SDMMC1_CMD_PZ1,
1299};
1300
1301static const unsigned drive_ddc_pins[] = {
1302	TEGRA_PIN_DDC_SCL_PV4,
1303	TEGRA_PIN_DDC_SDA_PV5,
1304};
1305
1306static const unsigned drive_gma_pins[] = {
1307	TEGRA_PIN_SDMMC4_CLK_PCC4,
1308	TEGRA_PIN_SDMMC4_CMD_PT7,
1309	TEGRA_PIN_SDMMC4_DAT0_PAA0,
1310	TEGRA_PIN_SDMMC4_DAT1_PAA1,
1311	TEGRA_PIN_SDMMC4_DAT2_PAA2,
1312	TEGRA_PIN_SDMMC4_DAT3_PAA3,
1313	TEGRA_PIN_SDMMC4_DAT4_PAA4,
1314	TEGRA_PIN_SDMMC4_DAT5_PAA5,
1315	TEGRA_PIN_SDMMC4_DAT6_PAA6,
1316	TEGRA_PIN_SDMMC4_DAT7_PAA7,
1317};
1318
1319static const unsigned drive_gme_pins[] = {
1320	TEGRA_PIN_PBB0,
1321	TEGRA_PIN_CAM_I2C_SCL_PBB1,
1322	TEGRA_PIN_CAM_I2C_SDA_PBB2,
1323	TEGRA_PIN_PBB3,
1324	TEGRA_PIN_PCC2,
1325};
1326
1327static const unsigned drive_gmf_pins[] = {
1328	TEGRA_PIN_PBB4,
1329	TEGRA_PIN_PBB5,
1330	TEGRA_PIN_PBB6,
1331	TEGRA_PIN_PBB7,
1332};
1333
1334static const unsigned drive_gmg_pins[] = {
1335	TEGRA_PIN_CAM_MCLK_PCC0,
1336};
1337
1338static const unsigned drive_gmh_pins[] = {
1339	TEGRA_PIN_PCC1,
1340};
1341
1342static const unsigned drive_owr_pins[] = {
1343	TEGRA_PIN_SDMMC3_CD_N_PV2,
1344};
1345
1346static const unsigned drive_uda_pins[] = {
1347	TEGRA_PIN_ULPI_CLK_PY0,
1348	TEGRA_PIN_ULPI_DIR_PY1,
1349	TEGRA_PIN_ULPI_NXT_PY2,
1350	TEGRA_PIN_ULPI_STP_PY3,
1351};
1352
1353static const unsigned drive_dev3_pins[] = {
1354};
1355
1356static const unsigned drive_cec_pins[] = {
1357};
1358
1359static const unsigned drive_at6_pins[] = {
1360};
1361
1362static const unsigned drive_dap5_pins[] = {
1363};
1364
1365static const unsigned drive_usb_vbus_en_pins[] = {
1366};
1367
1368static const unsigned drive_ao3_pins[] = {
1369};
1370
1371static const unsigned drive_hv0_pins[] = {
1372};
1373
1374static const unsigned drive_sdio4_pins[] = {
1375};
1376
1377static const unsigned drive_ao0_pins[] = {
1378};
1379
1380enum tegra_mux {
1381	TEGRA_MUX_BLINK,
1382	TEGRA_MUX_CEC,
1383	TEGRA_MUX_CLDVFS,
1384	TEGRA_MUX_CLK,
1385	TEGRA_MUX_CLK12,
1386	TEGRA_MUX_CPU,
1387	TEGRA_MUX_DAP,
1388	TEGRA_MUX_DAP1,
1389	TEGRA_MUX_DAP2,
1390	TEGRA_MUX_DEV3,
1391	TEGRA_MUX_DISPLAYA,
1392	TEGRA_MUX_DISPLAYA_ALT,
1393	TEGRA_MUX_DISPLAYB,
1394	TEGRA_MUX_DTV,
1395	TEGRA_MUX_EMC_DLL,
1396	TEGRA_MUX_EXTPERIPH1,
1397	TEGRA_MUX_EXTPERIPH2,
1398	TEGRA_MUX_EXTPERIPH3,
1399	TEGRA_MUX_GMI,
1400	TEGRA_MUX_GMI_ALT,
1401	TEGRA_MUX_HDA,
1402	TEGRA_MUX_HSI,
1403	TEGRA_MUX_I2C1,
1404	TEGRA_MUX_I2C2,
1405	TEGRA_MUX_I2C3,
1406	TEGRA_MUX_I2C4,
1407	TEGRA_MUX_I2CPWR,
1408	TEGRA_MUX_I2S0,
1409	TEGRA_MUX_I2S1,
1410	TEGRA_MUX_I2S2,
1411	TEGRA_MUX_I2S3,
1412	TEGRA_MUX_I2S4,
1413	TEGRA_MUX_IRDA,
1414	TEGRA_MUX_KBC,
1415	TEGRA_MUX_NAND,
1416	TEGRA_MUX_NAND_ALT,
1417	TEGRA_MUX_OWR,
1418	TEGRA_MUX_PMI,
1419	TEGRA_MUX_PWM0,
1420	TEGRA_MUX_PWM1,
1421	TEGRA_MUX_PWM2,
1422	TEGRA_MUX_PWM3,
1423	TEGRA_MUX_PWRON,
1424	TEGRA_MUX_RESET_OUT_N,
1425	TEGRA_MUX_RSVD1,
1426	TEGRA_MUX_RSVD2,
1427	TEGRA_MUX_RSVD3,
1428	TEGRA_MUX_RSVD4,
1429	TEGRA_MUX_RTCK,
1430	TEGRA_MUX_SDMMC1,
1431	TEGRA_MUX_SDMMC2,
1432	TEGRA_MUX_SDMMC3,
1433	TEGRA_MUX_SDMMC4,
1434	TEGRA_MUX_SOC,
1435	TEGRA_MUX_SPDIF,
1436	TEGRA_MUX_SPI1,
1437	TEGRA_MUX_SPI2,
1438	TEGRA_MUX_SPI3,
1439	TEGRA_MUX_SPI4,
1440	TEGRA_MUX_SPI5,
1441	TEGRA_MUX_SPI6,
1442	TEGRA_MUX_SYSCLK,
1443	TEGRA_MUX_TRACE,
1444	TEGRA_MUX_UARTA,
1445	TEGRA_MUX_UARTB,
1446	TEGRA_MUX_UARTC,
1447	TEGRA_MUX_UARTD,
1448	TEGRA_MUX_ULPI,
1449	TEGRA_MUX_USB,
1450	TEGRA_MUX_VGP1,
1451	TEGRA_MUX_VGP2,
1452	TEGRA_MUX_VGP3,
1453	TEGRA_MUX_VGP4,
1454	TEGRA_MUX_VGP5,
1455	TEGRA_MUX_VGP6,
1456	TEGRA_MUX_VI,
1457	TEGRA_MUX_VI_ALT1,
1458	TEGRA_MUX_VI_ALT3,
1459};
1460
1461#define FUNCTION(fname)					\
1462	{						\
1463		.name = #fname,				\
1464	}
1465
1466static struct tegra_function tegra114_functions[] = {
1467	FUNCTION(blink),
1468	FUNCTION(cec),
1469	FUNCTION(cldvfs),
1470	FUNCTION(clk),
1471	FUNCTION(clk12),
1472	FUNCTION(cpu),
1473	FUNCTION(dap),
1474	FUNCTION(dap1),
1475	FUNCTION(dap2),
1476	FUNCTION(dev3),
1477	FUNCTION(displaya),
1478	FUNCTION(displaya_alt),
1479	FUNCTION(displayb),
1480	FUNCTION(dtv),
1481	FUNCTION(emc_dll),
1482	FUNCTION(extperiph1),
1483	FUNCTION(extperiph2),
1484	FUNCTION(extperiph3),
1485	FUNCTION(gmi),
1486	FUNCTION(gmi_alt),
1487	FUNCTION(hda),
1488	FUNCTION(hsi),
1489	FUNCTION(i2c1),
1490	FUNCTION(i2c2),
1491	FUNCTION(i2c3),
1492	FUNCTION(i2c4),
1493	FUNCTION(i2cpwr),
1494	FUNCTION(i2s0),
1495	FUNCTION(i2s1),
1496	FUNCTION(i2s2),
1497	FUNCTION(i2s3),
1498	FUNCTION(i2s4),
1499	FUNCTION(irda),
1500	FUNCTION(kbc),
1501	FUNCTION(nand),
1502	FUNCTION(nand_alt),
1503	FUNCTION(owr),
1504	FUNCTION(pmi),
1505	FUNCTION(pwm0),
1506	FUNCTION(pwm1),
1507	FUNCTION(pwm2),
1508	FUNCTION(pwm3),
1509	FUNCTION(pwron),
1510	FUNCTION(reset_out_n),
1511	FUNCTION(rsvd1),
1512	FUNCTION(rsvd2),
1513	FUNCTION(rsvd3),
1514	FUNCTION(rsvd4),
1515	FUNCTION(rtck),
1516	FUNCTION(sdmmc1),
1517	FUNCTION(sdmmc2),
1518	FUNCTION(sdmmc3),
1519	FUNCTION(sdmmc4),
1520	FUNCTION(soc),
1521	FUNCTION(spdif),
1522	FUNCTION(spi1),
1523	FUNCTION(spi2),
1524	FUNCTION(spi3),
1525	FUNCTION(spi4),
1526	FUNCTION(spi5),
1527	FUNCTION(spi6),
1528	FUNCTION(sysclk),
1529	FUNCTION(trace),
1530	FUNCTION(uarta),
1531	FUNCTION(uartb),
1532	FUNCTION(uartc),
1533	FUNCTION(uartd),
1534	FUNCTION(ulpi),
1535	FUNCTION(usb),
1536	FUNCTION(vgp1),
1537	FUNCTION(vgp2),
1538	FUNCTION(vgp3),
1539	FUNCTION(vgp4),
1540	FUNCTION(vgp5),
1541	FUNCTION(vgp6),
1542	FUNCTION(vi),
1543	FUNCTION(vi_alt1),
1544	FUNCTION(vi_alt3),
1545};
1546
1547#define DRV_PINGROUP_REG_A		0x868	/* bank 0 */
1548#define PINGROUP_REG_A			0x3000	/* bank 1 */
1549
1550#define DRV_PINGROUP_REG(r)		((r) - DRV_PINGROUP_REG_A)
1551#define PINGROUP_REG(r)			((r) - PINGROUP_REG_A)
1552
1553#define PINGROUP_BIT_Y(b)		(b)
1554#define PINGROUP_BIT_N(b)		(-1)
1555
1556#define PINGROUP(pg_name, f0, f1, f2, f3, r, od, ior, rcv_sel)		\
1557	{								\
1558		.name = #pg_name,					\
1559		.pins = pg_name##_pins,					\
1560		.npins = ARRAY_SIZE(pg_name##_pins),			\
1561		.funcs = {						\
1562			TEGRA_MUX_##f0,					\
1563			TEGRA_MUX_##f1,					\
1564			TEGRA_MUX_##f2,					\
1565			TEGRA_MUX_##f3,					\
1566		},							\
1567		.mux_reg = PINGROUP_REG(r),				\
1568		.mux_bank = 1,						\
1569		.mux_bit = 0,						\
1570		.pupd_reg = PINGROUP_REG(r),				\
1571		.pupd_bank = 1,						\
1572		.pupd_bit = 2,						\
1573		.tri_reg = PINGROUP_REG(r),				\
1574		.tri_bank = 1,						\
1575		.tri_bit = 4,						\
1576		.einput_bit = 5,					\
1577		.odrain_bit = PINGROUP_BIT_##od(6),			\
1578		.lock_bit = 7,						\
1579		.ioreset_bit = PINGROUP_BIT_##ior(8),			\
1580		.rcv_sel_bit = PINGROUP_BIT_##rcv_sel(9),		\
1581		.drv_reg = -1,						\
1582	}
1583
1584#define DRV_PINGROUP(pg_name, r, hsm_b, schmitt_b, lpmd_b, drvdn_b,	\
1585		     drvdn_w, drvup_b, drvup_w, slwr_b, slwr_w,		\
1586		     slwf_b, slwf_w, drvtype)				\
1587	{								\
1588		.name = "drive_" #pg_name,				\
1589		.pins = drive_##pg_name##_pins,				\
1590		.npins = ARRAY_SIZE(drive_##pg_name##_pins),		\
1591		.mux_reg = -1,						\
1592		.pupd_reg = -1,						\
1593		.tri_reg = -1,						\
1594		.einput_bit = -1,					\
1595		.odrain_bit = -1,					\
1596		.lock_bit = -1,						\
1597		.ioreset_bit = -1,					\
1598		.rcv_sel_bit = -1,					\
1599		.drv_reg = DRV_PINGROUP_REG(r),				\
1600		.drv_bank = 0,						\
1601		.hsm_bit = hsm_b,					\
1602		.schmitt_bit = schmitt_b,				\
1603		.lpmd_bit = lpmd_b,					\
1604		.drvdn_bit = drvdn_b,					\
1605		.drvdn_width = drvdn_w,					\
1606		.drvup_bit = drvup_b,					\
1607		.drvup_width = drvup_w,					\
1608		.slwr_bit = slwr_b,					\
1609		.slwr_width = slwr_w,					\
1610		.slwf_bit = slwf_b,					\
1611		.slwf_width = slwf_w,					\
1612		.drvtype_bit = PINGROUP_BIT_##drvtype(6),		\
1613	}
1614
1615static const struct tegra_pingroup tegra114_groups[] = {
1616	/*       pg_name,                f0,         f1,         f2,           f3,          r,      od, ior, rcv_sel */
1617	PINGROUP(ulpi_data0_po1,         SPI3,       HSI,        UARTA,        ULPI,        0x3000, N,   N,  N),
1618	PINGROUP(ulpi_data1_po2,         SPI3,       HSI,        UARTA,        ULPI,        0x3004, N,   N,  N),
1619	PINGROUP(ulpi_data2_po3,         SPI3,       HSI,        UARTA,        ULPI,        0x3008, N,   N,  N),
1620	PINGROUP(ulpi_data3_po4,         SPI3,       HSI,        UARTA,        ULPI,        0x300c, N,   N,  N),
1621	PINGROUP(ulpi_data4_po5,         SPI2,       HSI,        UARTA,        ULPI,        0x3010, N,   N,  N),
1622	PINGROUP(ulpi_data5_po6,         SPI2,       HSI,        UARTA,        ULPI,        0x3014, N,   N,  N),
1623	PINGROUP(ulpi_data6_po7,         SPI2,       HSI,        UARTA,        ULPI,        0x3018, N,   N,  N),
1624	PINGROUP(ulpi_data7_po0,         SPI2,       HSI,        UARTA,        ULPI,        0x301c, N,   N,  N),
1625	PINGROUP(ulpi_clk_py0,           SPI1,       SPI5,       UARTD,        ULPI,        0x3020, N,   N,  N),
1626	PINGROUP(ulpi_dir_py1,           SPI1,       SPI5,       UARTD,        ULPI,        0x3024, N,   N,  N),
1627	PINGROUP(ulpi_nxt_py2,           SPI1,       SPI5,       UARTD,        ULPI,        0x3028, N,   N,  N),
1628	PINGROUP(ulpi_stp_py3,           SPI1,       SPI5,       UARTD,        ULPI,        0x302c, N,   N,  N),
1629	PINGROUP(dap3_fs_pp0,            I2S2,       SPI5,       DISPLAYA,     DISPLAYB,    0x3030, N,   N,  N),
1630	PINGROUP(dap3_din_pp1,           I2S2,       SPI5,       DISPLAYA,     DISPLAYB,    0x3034, N,   N,  N),
1631	PINGROUP(dap3_dout_pp2,          I2S2,       SPI5,       DISPLAYA,     DISPLAYB,    0x3038, N,   N,  N),
1632	PINGROUP(dap3_sclk_pp3,          I2S2,       SPI5,       DISPLAYA,     DISPLAYB,    0x303c, N,   N,  N),
1633	PINGROUP(pv0,                    USB,        RSVD2,      RSVD3,        RSVD4,       0x3040, N,   N,  N),
1634	PINGROUP(pv1,                    RSVD1,      RSVD2,      RSVD3,        RSVD4,       0x3044, N,   N,  N),
1635	PINGROUP(sdmmc1_clk_pz0,         SDMMC1,     CLK12,      RSVD3,        RSVD4,       0x3048, N,   N,  N),
1636	PINGROUP(sdmmc1_cmd_pz1,         SDMMC1,     SPDIF,      SPI4,         UARTA,       0x304c, N,   N,  N),
1637	PINGROUP(sdmmc1_dat3_py4,        SDMMC1,     SPDIF,      SPI4,         UARTA,       0x3050, N,   N,  N),
1638	PINGROUP(sdmmc1_dat2_py5,        SDMMC1,     PWM0,       SPI4,         UARTA,       0x3054, N,   N,  N),
1639	PINGROUP(sdmmc1_dat1_py6,        SDMMC1,     PWM1,       SPI4,         UARTA,       0x3058, N,   N,  N),
1640	PINGROUP(sdmmc1_dat0_py7,        SDMMC1,     RSVD2,      SPI4,         UARTA,       0x305c, N,   N,  N),
1641	PINGROUP(clk2_out_pw5,           EXTPERIPH2, RSVD2,      RSVD3,        RSVD4,       0x3068, N,   N,  N),
1642	PINGROUP(clk2_req_pcc5,          DAP,        RSVD2,      RSVD3,        RSVD4,       0x306c, N,   N,  N),
1643	PINGROUP(hdmi_int_pn7,           RSVD1,      RSVD2,      RSVD3,        RSVD4,       0x3110, N,   N,  Y),
1644	PINGROUP(ddc_scl_pv4,            I2C4,       RSVD2,      RSVD3,        RSVD4,       0x3114, N,   N,  Y),
1645	PINGROUP(ddc_sda_pv5,            I2C4,       RSVD2,      RSVD3,        RSVD4,       0x3118, N,   N,  Y),
1646	PINGROUP(uart2_rxd_pc3,          IRDA,       SPDIF,      UARTA,        SPI4,        0x3164, N,   N,  N),
1647	PINGROUP(uart2_txd_pc2,          IRDA,       SPDIF,      UARTA,        SPI4,        0x3168, N,   N,  N),
1648	PINGROUP(uart2_rts_n_pj6,        UARTA,      UARTB,      RSVD3,        SPI4,        0x316c, N,   N,  N),
1649	PINGROUP(uart2_cts_n_pj5,        UARTA,      UARTB,      RSVD3,        SPI4,        0x3170, N,   N,  N),
1650	PINGROUP(uart3_txd_pw6,          UARTC,      RSVD2,      RSVD3,        SPI4,        0x3174, N,   N,  N),
1651	PINGROUP(uart3_rxd_pw7,          UARTC,      RSVD2,      RSVD3,        SPI4,        0x3178, N,   N,  N),
1652	PINGROUP(uart3_cts_n_pa1,        UARTC,      SDMMC1,     DTV,          SPI4,        0x317c, N,   N,  N),
1653	PINGROUP(uart3_rts_n_pc0,        UARTC,      PWM0,       DTV,          DISPLAYA,    0x3180, N,   N,  N),
1654	PINGROUP(pu0,                    OWR,        UARTA,      RSVD3,        RSVD4,       0x3184, N,   N,  N),
1655	PINGROUP(pu1,                    RSVD1,      UARTA,      RSVD3,        RSVD4,       0x3188, N,   N,  N),
1656	PINGROUP(pu2,                    RSVD1,      UARTA,      RSVD3,        RSVD4,       0x318c, N,   N,  N),
1657	PINGROUP(pu3,                    PWM0,       UARTA,      DISPLAYA,     DISPLAYB,    0x3190, N,   N,  N),
1658	PINGROUP(pu4,                    PWM1,       UARTA,      DISPLAYA,     DISPLAYB,    0x3194, N,   N,  N),
1659	PINGROUP(pu5,                    PWM2,       UARTA,      DISPLAYA,     DISPLAYB,    0x3198, N,   N,  N),
1660	PINGROUP(pu6,                    PWM3,       UARTA,      USB,          DISPLAYB,    0x319c, N,   N,  N),
1661	PINGROUP(gen1_i2c_sda_pc5,       I2C1,       RSVD2,      RSVD3,        RSVD4,       0x31a0, Y,   N,  N),
1662	PINGROUP(gen1_i2c_scl_pc4,       I2C1,       RSVD2,      RSVD3,        RSVD4,       0x31a4, Y,   N,  N),
1663	PINGROUP(dap4_fs_pp4,            I2S3,       RSVD2,      DTV,          RSVD4,       0x31a8, N,   N,  N),
1664	PINGROUP(dap4_din_pp5,           I2S3,       RSVD2,      RSVD3,        RSVD4,       0x31ac, N,   N,  N),
1665	PINGROUP(dap4_dout_pp6,          I2S3,       RSVD2,      DTV,          RSVD4,       0x31b0, N,   N,  N),
1666	PINGROUP(dap4_sclk_pp7,          I2S3,       RSVD2,      RSVD3,        RSVD4,       0x31b4, N,   N,  N),
1667	PINGROUP(clk3_out_pee0,          EXTPERIPH3, RSVD2,      RSVD3,        RSVD4,       0x31b8, N,   N,  N),
1668	PINGROUP(clk3_req_pee1,          DEV3,       RSVD2,      RSVD3,        RSVD4,       0x31bc, N,   N,  N),
1669	PINGROUP(gmi_wp_n_pc7,           RSVD1,      NAND,       GMI,          GMI_ALT,     0x31c0, N,   N,  N),
1670	PINGROUP(gmi_iordy_pi5,          SDMMC2,     RSVD2,      GMI,          TRACE,       0x31c4, N,   N,  N),
1671	PINGROUP(gmi_wait_pi7,           SPI4,       NAND,       GMI,          DTV,         0x31c8, N,   N,  N),
1672	PINGROUP(gmi_adv_n_pk0,          RSVD1,      NAND,       GMI,          TRACE,       0x31cc, N,   N,  N),
1673	PINGROUP(gmi_clk_pk1,            SDMMC2,     NAND,       GMI,          TRACE,       0x31d0, N,   N,  N),
1674	PINGROUP(gmi_cs0_n_pj0,          RSVD1,      NAND,       GMI,          USB,         0x31d4, N,   N,  N),
1675	PINGROUP(gmi_cs1_n_pj2,          RSVD1,      NAND,       GMI,          SOC,         0x31d8, N,   N,  N),
1676	PINGROUP(gmi_cs2_n_pk3,          SDMMC2,     NAND,       GMI,          TRACE,       0x31dc, N,   N,  N),
1677	PINGROUP(gmi_cs3_n_pk4,          SDMMC2,     NAND,       GMI,          GMI_ALT,     0x31e0, N,   N,  N),
1678	PINGROUP(gmi_cs4_n_pk2,          USB,        NAND,       GMI,          TRACE,       0x31e4, N,   N,  N),
1679	PINGROUP(gmi_cs6_n_pi3,          NAND,       NAND_ALT,   GMI,          SPI4,        0x31e8, N,   N,  N),
1680	PINGROUP(gmi_cs7_n_pi6,          NAND,       NAND_ALT,   GMI,          SDMMC2,      0x31ec, N,   N,  N),
1681	PINGROUP(gmi_ad0_pg0,            RSVD1,      NAND,       GMI,          RSVD4,       0x31f0, N,   N,  N),
1682	PINGROUP(gmi_ad1_pg1,            RSVD1,      NAND,       GMI,          RSVD4,       0x31f4, N,   N,  N),
1683	PINGROUP(gmi_ad2_pg2,            RSVD1,      NAND,       GMI,          RSVD4,       0x31f8, N,   N,  N),
1684	PINGROUP(gmi_ad3_pg3,            RSVD1,      NAND,       GMI,          RSVD4,       0x31fc, N,   N,  N),
1685	PINGROUP(gmi_ad4_pg4,            RSVD1,      NAND,       GMI,          RSVD4,       0x3200, N,   N,  N),
1686	PINGROUP(gmi_ad5_pg5,            RSVD1,      NAND,       GMI,          SPI4,        0x3204, N,   N,  N),
1687	PINGROUP(gmi_ad6_pg6,            RSVD1,      NAND,       GMI,          SPI4,        0x3208, N,   N,  N),
1688	PINGROUP(gmi_ad7_pg7,            RSVD1,      NAND,       GMI,          SPI4,        0x320c, N,   N,  N),
1689	PINGROUP(gmi_ad8_ph0,            PWM0,       NAND,       GMI,          DTV,         0x3210, N,   N,  N),
1690	PINGROUP(gmi_ad9_ph1,            PWM1,       NAND,       GMI,          CLDVFS,      0x3214, N,   N,  N),
1691	PINGROUP(gmi_ad10_ph2,           PWM2,       NAND,       GMI,          CLDVFS,      0x3218, N,   N,  N),
1692	PINGROUP(gmi_ad11_ph3,           PWM3,       NAND,       GMI,          USB,         0x321c, N,   N,  N),
1693	PINGROUP(gmi_ad12_ph4,           SDMMC2,     NAND,       GMI,          RSVD4,       0x3220, N,   N,  N),
1694	PINGROUP(gmi_ad13_ph5,           SDMMC2,     NAND,       GMI,          RSVD4,       0x3224, N,   N,  N),
1695	PINGROUP(gmi_ad14_ph6,           SDMMC2,     NAND,       GMI,          DTV,         0x3228, N,   N,  N),
1696	PINGROUP(gmi_ad15_ph7,           SDMMC2,     NAND,       GMI,          DTV,         0x322c, N,   N,  N),
1697	PINGROUP(gmi_a16_pj7,            UARTD,      TRACE,      GMI,          GMI_ALT,     0x3230, N,   N,  N),
1698	PINGROUP(gmi_a17_pb0,            UARTD,      RSVD2,      GMI,          TRACE,       0x3234, N,   N,  N),
1699	PINGROUP(gmi_a18_pb1,            UARTD,      RSVD2,      GMI,          TRACE,       0x3238, N,   N,  N),
1700	PINGROUP(gmi_a19_pk7,            UARTD,      SPI4,       GMI,          TRACE,       0x323c, N,   N,  N),
1701	PINGROUP(gmi_wr_n_pi0,           RSVD1,      NAND,       GMI,          SPI4,        0x3240, N,   N,  N),
1702	PINGROUP(gmi_oe_n_pi1,           RSVD1,      NAND,       GMI,          SOC,         0x3244, N,   N,  N),
1703	PINGROUP(gmi_dqs_p_pj3,          SDMMC2,     NAND,       GMI,          TRACE,       0x3248, N,   N,  N),
1704	PINGROUP(gmi_rst_n_pi4,          NAND,       NAND_ALT,   GMI,          RSVD4,       0x324c, N,   N,  N),
1705	PINGROUP(gen2_i2c_scl_pt5,       I2C2,       RSVD2,      GMI,          RSVD4,       0x3250, Y,   N,  N),
1706	PINGROUP(gen2_i2c_sda_pt6,       I2C2,       RSVD2,      GMI,          RSVD4,       0x3254, Y,   N,  N),
1707	PINGROUP(sdmmc4_clk_pcc4,        SDMMC4,     RSVD2,      GMI,          RSVD4,       0x3258, N,   Y,  N),
1708	PINGROUP(sdmmc4_cmd_pt7,         SDMMC4,     RSVD2,      GMI,          RSVD4,       0x325c, N,   Y,  N),
1709	PINGROUP(sdmmc4_dat0_paa0,       SDMMC4,     SPI3,       GMI,          RSVD4,       0x3260, N,   Y,  N),
1710	PINGROUP(sdmmc4_dat1_paa1,       SDMMC4,     SPI3,       GMI,          RSVD4,       0x3264, N,   Y,  N),
1711	PINGROUP(sdmmc4_dat2_paa2,       SDMMC4,     SPI3,       GMI,          RSVD4,       0x3268, N,   Y,  N),
1712	PINGROUP(sdmmc4_dat3_paa3,       SDMMC4,     SPI3,       GMI,          RSVD4,       0x326c, N,   Y,  N),
1713	PINGROUP(sdmmc4_dat4_paa4,       SDMMC4,     SPI3,       GMI,          RSVD4,       0x3270, N,   Y,  N),
1714	PINGROUP(sdmmc4_dat5_paa5,       SDMMC4,     SPI3,       GMI,          RSVD4,       0x3274, N,   Y,  N),
1715	PINGROUP(sdmmc4_dat6_paa6,       SDMMC4,     SPI3,       GMI,          RSVD4,       0x3278, N,   Y,  N),
1716	PINGROUP(sdmmc4_dat7_paa7,       SDMMC4,     RSVD2,      GMI,          RSVD4,       0x327c, N,   Y,  N),
1717	PINGROUP(cam_mclk_pcc0,          VI,         VI_ALT1,    VI_ALT3,      RSVD4,       0x3284, N,   N,  N),
1718	PINGROUP(pcc1,                   I2S4,       RSVD2,      RSVD3,        RSVD4,       0x3288, N,   N,  N),
1719	PINGROUP(pbb0,                   I2S4,       VI,         VI_ALT1,      VI_ALT3,     0x328c, N,   N,  N),
1720	PINGROUP(cam_i2c_scl_pbb1,       VGP1,       I2C3,       RSVD3,        RSVD4,       0x3290, Y,   N,  N),
1721	PINGROUP(cam_i2c_sda_pbb2,       VGP2,       I2C3,       RSVD3,        RSVD4,       0x3294, Y,   N,  N),
1722	PINGROUP(pbb3,                   VGP3,       DISPLAYA,   DISPLAYB,     RSVD4,       0x3298, N,   N,  N),
1723	PINGROUP(pbb4,                   VGP4,       DISPLAYA,   DISPLAYB,     RSVD4,       0x329c, N,   N,  N),
1724	PINGROUP(pbb5,                   VGP5,       DISPLAYA,   DISPLAYB,     RSVD4,       0x32a0, N,   N,  N),
1725	PINGROUP(pbb6,                   VGP6,       DISPLAYA,   DISPLAYB,     RSVD4,       0x32a4, N,   N,  N),
1726	PINGROUP(pbb7,                   I2S4,       RSVD2,      RSVD3,        RSVD4,       0x32a8, N,   N,  N),
1727	PINGROUP(pcc2,                   I2S4,       RSVD2,      RSVD3,        RSVD4,       0x32ac, N,   N,  N),
1728	PINGROUP(jtag_rtck,              RTCK,       RSVD2,      RSVD3,        RSVD4,       0x32b0, N,   N,  N),
1729	PINGROUP(pwr_i2c_scl_pz6,        I2CPWR,     RSVD2,      RSVD3,        RSVD4,       0x32b4, Y,   N,  N),
1730	PINGROUP(pwr_i2c_sda_pz7,        I2CPWR,     RSVD2,      RSVD3,        RSVD4,       0x32b8, Y,   N,  N),
1731	PINGROUP(kb_row0_pr0,            KBC,        RSVD2,      RSVD3,        RSVD4,       0x32bc, N,   N,  N),
1732	PINGROUP(kb_row1_pr1,            KBC,        RSVD2,      RSVD3,        RSVD4,       0x32c0, N,   N,  N),
1733	PINGROUP(kb_row2_pr2,            KBC,        RSVD2,      RSVD3,        RSVD4,       0x32c4, N,   N,  N),
1734	PINGROUP(kb_row3_pr3,            KBC,        DISPLAYA,   RSVD3,        DISPLAYB,    0x32c8, N,   N,  N),
1735	PINGROUP(kb_row4_pr4,            KBC,        DISPLAYA,   SPI2,         DISPLAYB,    0x32cc, N,   N,  N),
1736	PINGROUP(kb_row5_pr5,            KBC,        DISPLAYA,   SPI2,         DISPLAYB,    0x32d0, N,   N,  N),
1737	PINGROUP(kb_row6_pr6,            KBC,        DISPLAYA,   DISPLAYA_ALT, DISPLAYB,    0x32d4, N,   N,  N),
1738	PINGROUP(kb_row7_pr7,            KBC,        RSVD2,      CLDVFS,       UARTA,       0x32d8, N,   N,  N),
1739	PINGROUP(kb_row8_ps0,            KBC,        RSVD2,      CLDVFS,       UARTA,       0x32dc, N,   N,  N),
1740	PINGROUP(kb_row9_ps1,            KBC,        RSVD2,      RSVD3,        UARTA,       0x32e0, N,   N,  N),
1741	PINGROUP(kb_row10_ps2,           KBC,        RSVD2,      RSVD3,        UARTA,       0x32e4, N,   N,  N),
1742	PINGROUP(kb_col0_pq0,            KBC,        USB,        SPI2,         EMC_DLL,     0x32fc, N,   N,  N),
1743	PINGROUP(kb_col1_pq1,            KBC,        RSVD2,      SPI2,         EMC_DLL,     0x3300, N,   N,  N),
1744	PINGROUP(kb_col2_pq2,            KBC,        RSVD2,      SPI2,         RSVD4,       0x3304, N,   N,  N),
1745	PINGROUP(kb_col3_pq3,            KBC,        DISPLAYA,   PWM2,         UARTA,       0x3308, N,   N,  N),
1746	PINGROUP(kb_col4_pq4,            KBC,        OWR,        SDMMC3,       UARTA,       0x330c, N,   N,  N),
1747	PINGROUP(kb_col5_pq5,            KBC,        RSVD2,      SDMMC1,       RSVD4,       0x3310, N,   N,  N),
1748	PINGROUP(kb_col6_pq6,            KBC,        RSVD2,      SPI2,         RSVD4,       0x3314, N,   N,  N),
1749	PINGROUP(kb_col7_pq7,            KBC,        RSVD2,      SPI2,         RSVD4,       0x3318, N,   N,  N),
1750	PINGROUP(clk_32k_out_pa0,        BLINK,      SOC,        RSVD3,        RSVD4,       0x331c, N,   N,  N),
1751	PINGROUP(sys_clk_req_pz5,        SYSCLK,     RSVD2,      RSVD3,        RSVD4,       0x3320, N,   N,  N),
1752	PINGROUP(core_pwr_req,           PWRON,      RSVD2,      RSVD3,        RSVD4,       0x3324, N,   N,  N),
1753	PINGROUP(cpu_pwr_req,            CPU,        RSVD2,      RSVD3,        RSVD4,       0x3328, N,   N,  N),
1754	PINGROUP(pwr_int_n,              PMI,        RSVD2,      RSVD3,        RSVD4,       0x332c, N,   N,  N),
1755	PINGROUP(clk_32k_in,             CLK,        RSVD2,      RSVD3,        RSVD4,       0x3330, N,   N,  N),
1756	PINGROUP(owr,                    OWR,        RSVD2,      RSVD3,        RSVD4,       0x3334, N,   N,  Y),
1757	PINGROUP(dap1_fs_pn0,            I2S0,       HDA,        GMI,          RSVD4,       0x3338, N,   N,  N),
1758	PINGROUP(dap1_din_pn1,           I2S0,       HDA,        GMI,          RSVD4,       0x333c, N,   N,  N),
1759	PINGROUP(dap1_dout_pn2,          I2S0,       HDA,        GMI,          RSVD4,       0x3340, N,   N,  N),
1760	PINGROUP(dap1_sclk_pn3,          I2S0,       HDA,        GMI,          RSVD4,       0x3344, N,   N,  N),
1761	PINGROUP(clk1_req_pee2,          DAP,        DAP1,       RSVD3,        RSVD4,       0x3348, N,   N,  N),
1762	PINGROUP(clk1_out_pw4,           EXTPERIPH1, DAP2,       RSVD3,        RSVD4,       0x334c, N,   N,  N),
1763	PINGROUP(spdif_in_pk6,           SPDIF,      USB,        RSVD3,        RSVD4,       0x3350, N,   N,  N),
1764	PINGROUP(spdif_out_pk5,          SPDIF,      RSVD2,      RSVD3,        RSVD4,       0x3354, N,   N,  N),
1765	PINGROUP(dap2_fs_pa2,            I2S1,       HDA,        RSVD3,        RSVD4,       0x3358, N,   N,  N),
1766	PINGROUP(dap2_din_pa4,           I2S1,       HDA,        RSVD3,        RSVD4,       0x335c, N,   N,  N),
1767	PINGROUP(dap2_dout_pa5,          I2S1,       HDA,        RSVD3,        RSVD4,       0x3360, N,   N,  N),
1768	PINGROUP(dap2_sclk_pa3,          I2S1,       HDA,        RSVD3,        RSVD4,       0x3364, N,   N,  N),
1769	PINGROUP(dvfs_pwm_px0,           SPI6,       CLDVFS,     RSVD3,        RSVD4,       0x3368, N,   N,  N),
1770	PINGROUP(gpio_x1_aud_px1,        SPI6,       RSVD2,      RSVD3,        RSVD4,       0x336c, N,   N,  N),
1771	PINGROUP(gpio_x3_aud_px3,        SPI6,       SPI1,       RSVD3,        RSVD4,       0x3370, N,   N,  N),
1772	PINGROUP(dvfs_clk_px2,           SPI6,       CLDVFS,     RSVD3,        RSVD4,       0x3374, N,   N,  N),
1773	PINGROUP(gpio_x4_aud_px4,        RSVD1,      SPI1,       SPI2,         DAP2,        0x3378, N,   N,  N),
1774	PINGROUP(gpio_x5_aud_px5,        RSVD1,      SPI1,       SPI2,         RSVD4,       0x337c, N,   N,  N),
1775	PINGROUP(gpio_x6_aud_px6,        SPI6,       SPI1,       SPI2,         RSVD4,       0x3380, N,   N,  N),
1776	PINGROUP(gpio_x7_aud_px7,        RSVD1,      SPI1,       SPI2,         RSVD4,       0x3384, N,   N,  N),
1777	PINGROUP(sdmmc3_clk_pa6,         SDMMC3,     RSVD2,      RSVD3,        SPI3,        0x3390, N,   N,  N),
1778	PINGROUP(sdmmc3_cmd_pa7,         SDMMC3,     PWM3,       UARTA,        SPI3,        0x3394, N,   N,  N),
1779	PINGROUP(sdmmc3_dat0_pb7,        SDMMC3,     RSVD2,      RSVD3,        SPI3,        0x3398, N,   N,  N),
1780	PINGROUP(sdmmc3_dat1_pb6,        SDMMC3,     PWM2,       UARTA,        SPI3,        0x339c, N,   N,  N),
1781	PINGROUP(sdmmc3_dat2_pb5,        SDMMC3,     PWM1,       DISPLAYA,     SPI3,        0x33a0, N,   N,  N),
1782	PINGROUP(sdmmc3_dat3_pb4,        SDMMC3,     PWM0,       DISPLAYB,     SPI3,        0x33a4, N,   N,  N),
1783	PINGROUP(hdmi_cec_pee3,          CEC,        SDMMC3,     RSVD3,        SOC,         0x33e0, Y,   N,  N),
1784	PINGROUP(sdmmc1_wp_n_pv3,        SDMMC1,     CLK12,      SPI4,         UARTA,       0x33e4, N,   N,  N),
1785	PINGROUP(sdmmc3_cd_n_pv2,        SDMMC3,     OWR,        RSVD3,        RSVD4,       0x33e8, N,   N,  N),
1786	PINGROUP(gpio_w2_aud_pw2,        SPI6,       RSVD2,      SPI2,         I2C1,        0x33ec, N,   N,  N),
1787	PINGROUP(gpio_w3_aud_pw3,        SPI6,       SPI1,       SPI2,         I2C1,        0x33f0, N,   N,  N),
1788	PINGROUP(usb_vbus_en0_pn4,       USB,        RSVD2,      RSVD3,        RSVD4,       0x33f4, Y,   N,  N),
1789	PINGROUP(usb_vbus_en1_pn5,       USB,        RSVD2,      RSVD3,        RSVD4,       0x33f8, Y,   N,  N),
1790	PINGROUP(sdmmc3_clk_lb_in_pee5,  SDMMC3,     RSVD2,      RSVD3,        RSVD4,       0x33fc, N,   N,  N),
1791	PINGROUP(sdmmc3_clk_lb_out_pee4, SDMMC3,     RSVD2,      RSVD3,        RSVD4,       0x3400, N,   N,  N),
1792	PINGROUP(gmi_clk_lb,             SDMMC2,     NAND,       GMI,          RSVD4,       0x3404, N,   N,  N),
1793	PINGROUP(reset_out_n,            RSVD1,      RSVD2,      RSVD3,        RESET_OUT_N, 0x3408, N,   N,  N),
1794
1795	/* pg_name, r, hsm_b, schmitt_b, lpmd_b, drvdn_b, drvdn_w, drvup_b, drvup_w, slwr_b, slwr_w, slwf_b, slwf_w, drvtype */
1796	DRV_PINGROUP(ao1,         0x868,  2,  3,  4,  12,  5,  20,  5,  28,  2,  30,  2,  N),
1797	DRV_PINGROUP(ao2,         0x86c,  2,  3,  4,  12,  5,  20,  5,  28,  2,  30,  2,  N),
1798	DRV_PINGROUP(at1,         0x870,  2,  3, -1,  12,  7,  20,  7,  28,  2,  30,  2,  Y),
1799	DRV_PINGROUP(at2,         0x874,  2,  3, -1,  12,  7,  20,  7,  28,  2,  30,  2,  Y),
1800	DRV_PINGROUP(at3,         0x878,  2,  3, -1,  12,  7,  20,  7,  28,  2,  30,  2,  Y),
1801	DRV_PINGROUP(at4,         0x87c,  2,  3, -1,  12,  7,  20,  7,  28,  2,  30,  2,  Y),
1802	DRV_PINGROUP(at5,         0x880,  2,  3,  4,  14,  5,  19,  5,  28,  2,  30,  2,  N),
1803	DRV_PINGROUP(cdev1,       0x884,  2,  3,  4,  12,  5,  20,  5,  28,  2,  30,  2,  N),
1804	DRV_PINGROUP(cdev2,       0x888,  2,  3,  4,  12,  5,  20,  5,  28,  2,  30,  2,  N),
1805	DRV_PINGROUP(dap1,        0x890,  2,  3,  4,  12,  5,  20,  5,  28,  2,  30,  2,  N),
1806	DRV_PINGROUP(dap2,        0x894,  2,  3,  4,  12,  5,  20,  5,  28,  2,  30,  2,  N),
1807	DRV_PINGROUP(dap3,        0x898,  2,  3,  4,  12,  5,  20,  5,  28,  2,  30,  2,  N),
1808	DRV_PINGROUP(dap4,        0x89c,  2,  3,  4,  12,  5,  20,  5,  28,  2,  30,  2,  N),
1809	DRV_PINGROUP(dbg,         0x8a0,  2,  3,  4,  12,  5,  20,  5,  28,  2,  30,  2,  N),
1810	DRV_PINGROUP(sdio3,       0x8b0,  2,  3, -1,  12,  7,  20,  7,  28,  2,  30,  2,  N),
1811	DRV_PINGROUP(spi,         0x8b4,  2,  3,  4,  12,  5,  20,  5,  28,  2,  30,  2,  N),
1812	DRV_PINGROUP(uaa,         0x8b8,  2,  3,  4,  12,  5,  20,  5,  28,  2,  30,  2,  N),
1813	DRV_PINGROUP(uab,         0x8bc,  2,  3,  4,  12,  5,  20,  5,  28,  2,  30,  2,  N),
1814	DRV_PINGROUP(uart2,       0x8c0,  2,  3,  4,  12,  5,  20,  5,  28,  2,  30,  2,  N),
1815	DRV_PINGROUP(uart3,       0x8c4,  2,  3,  4,  12,  5,  20,  5,  28,  2,  30,  2,  N),
1816	DRV_PINGROUP(sdio1,       0x8ec,  2,  3, -1,  12,  7,  20,  7,  28,  2,  30,  2,  N),
1817	DRV_PINGROUP(ddc,         0x8fc,  2,  3, -1,  12,  5,  20,  5,  28,  2,  30,  2,  N),
1818	DRV_PINGROUP(gma,         0x900,  2,  3, -1,  14,  5,  20,  5,  28,  2,  30,  2,  N),
1819	DRV_PINGROUP(gme,         0x910,  2,  3,  4,  14,  5,  19,  5,  28,  2,  30,  2,  N),
1820	DRV_PINGROUP(gmf,         0x914,  2,  3,  4,  14,  5,  19,  5,  28,  2,  30,  2,  N),
1821	DRV_PINGROUP(gmg,         0x918,  2,  3,  4,  14,  5,  19,  5,  28,  2,  30,  2,  N),
1822	DRV_PINGROUP(gmh,         0x91c,  2,  3,  4,  14,  5,  19,  5,  28,  2,  30,  2,  N),
1823	DRV_PINGROUP(owr,         0x920,  2,  3,  4,  12,  5,  20,  5,  28,  2,  30,  2,  N),
1824	DRV_PINGROUP(uda,         0x924,  2,  3,  4,  12,  5,  20,  5,  28,  2,  30,  2,  N),
1825	DRV_PINGROUP(dev3,        0x92c,  2,  3,  4,  12,  5,  20,  5,  28,  2,  30,  2,  N),
1826	DRV_PINGROUP(cec,         0x938,  2,  3,  4,  12,  5,  20,  5,  28,  2,  30,  2,  N),
1827	DRV_PINGROUP(at6,         0x994,  2,  3,  4,  12,  5,  20,  5,  28,  2,  30,  2,  Y),
1828	DRV_PINGROUP(dap5,        0x998,  2,  3,  4,  12,  5,  20,  5,  28,  2,  30,  2,  N),
1829	DRV_PINGROUP(usb_vbus_en, 0x99c,  2,  3,  4,  12,  5,  20,  5,  28,  2,  30,  2,  N),
1830	DRV_PINGROUP(ao3,         0x9a0,  2,  3,  4,  12,  5,  -1, -1,  28,  2,  -1, -1,  N),
1831	DRV_PINGROUP(hv0,         0x9a4,  2,  3,  4,  12,  5,  -1, -1,  28,  2,  -1, -1,  N),
1832	DRV_PINGROUP(sdio4,       0x9a8,  2,  3,  4,  12,  5,  20,  5,  28,  2,  30,  2,  N),
1833	DRV_PINGROUP(ao0,         0x9ac,  2,  3,  4,  12,  5,  20,  5,  28,  2,  30,  2,  N),
1834};
1835
1836static const struct tegra_pinctrl_soc_data tegra114_pinctrl = {
1837	.ngpios = NUM_GPIOS,
1838	.pins = tegra114_pins,
1839	.npins = ARRAY_SIZE(tegra114_pins),
1840	.functions = tegra114_functions,
1841	.nfunctions = ARRAY_SIZE(tegra114_functions),
1842	.groups = tegra114_groups,
1843	.ngroups = ARRAY_SIZE(tegra114_groups),
1844	.hsm_in_mux = false,
1845	.schmitt_in_mux = false,
1846	.drvtype_in_mux = false,
1847};
1848
1849static int tegra114_pinctrl_probe(struct platform_device *pdev)
1850{
1851	return tegra_pinctrl_probe(pdev, &tegra114_pinctrl);
1852}
1853
1854static const struct of_device_id tegra114_pinctrl_of_match[] = {
1855	{ .compatible = "nvidia,tegra114-pinmux", },
1856	{ },
1857};
1858MODULE_DEVICE_TABLE(of, tegra114_pinctrl_of_match);
1859
1860static struct platform_driver tegra114_pinctrl_driver = {
1861	.driver = {
1862		.name = "tegra114-pinctrl",
1863		.of_match_table = tegra114_pinctrl_of_match,
1864	},
1865	.probe = tegra114_pinctrl_probe,
1866	.remove = tegra_pinctrl_remove,
1867};
1868module_platform_driver(tegra114_pinctrl_driver);
1869
1870MODULE_AUTHOR("Pritesh Raithatha <praithatha@nvidia.com>");
1871MODULE_DESCRIPTION("NVIDIA Tegra114 pinctrl driver");
1872MODULE_LICENSE("GPL v2");
1873