• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Pinctrl data and driver for the NVIDIA Tegra114 pinmux
3  *
4  * Copyright (c) 2012-2013, NVIDIA CORPORATION.  All rights reserved.
5  *
6  * Arthur:  Pritesh Raithatha <praithatha@nvidia.com>
7  *
8  * This program is free software; you can redistribute it and/or modify it
9  * under the terms and conditions of the GNU General Public License,
10  * version 2, as published by the Free Software Foundation.
11  *
12  * This program is distributed in the hope it will be useful, but WITHOUT
13  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
15  * more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
19  */
20 
21 #include <linux/module.h>
22 #include <linux/of.h>
23 #include <linux/platform_device.h>
24 #include <linux/pinctrl/pinctrl.h>
25 #include <linux/pinctrl/pinmux.h>
26 
27 #include "pinctrl-tegra.h"
28 
29 /*
30  * Most pins affected by the pinmux can also be GPIOs. Define these first.
31  * These must match how the GPIO driver names/numbers its pins.
32  */
33 #define _GPIO(offset)				(offset)
34 
35 #define TEGRA_PIN_CLK_32K_OUT_PA0		_GPIO(0)
36 #define TEGRA_PIN_UART3_CTS_N_PA1		_GPIO(1)
37 #define TEGRA_PIN_DAP2_FS_PA2			_GPIO(2)
38 #define TEGRA_PIN_DAP2_SCLK_PA3			_GPIO(3)
39 #define TEGRA_PIN_DAP2_DIN_PA4			_GPIO(4)
40 #define TEGRA_PIN_DAP2_DOUT_PA5			_GPIO(5)
41 #define TEGRA_PIN_SDMMC3_CLK_PA6		_GPIO(6)
42 #define TEGRA_PIN_SDMMC3_CMD_PA7		_GPIO(7)
43 #define TEGRA_PIN_GMI_A17_PB0			_GPIO(8)
44 #define TEGRA_PIN_GMI_A18_PB1			_GPIO(9)
45 #define TEGRA_PIN_SDMMC3_DAT3_PB4		_GPIO(12)
46 #define TEGRA_PIN_SDMMC3_DAT2_PB5		_GPIO(13)
47 #define TEGRA_PIN_SDMMC3_DAT1_PB6		_GPIO(14)
48 #define TEGRA_PIN_SDMMC3_DAT0_PB7		_GPIO(15)
49 #define TEGRA_PIN_UART3_RTS_N_PC0		_GPIO(16)
50 #define TEGRA_PIN_UART2_TXD_PC2			_GPIO(18)
51 #define TEGRA_PIN_UART2_RXD_PC3			_GPIO(19)
52 #define TEGRA_PIN_GEN1_I2C_SCL_PC4		_GPIO(20)
53 #define TEGRA_PIN_GEN1_I2C_SDA_PC5		_GPIO(21)
54 #define TEGRA_PIN_GMI_WP_N_PC7			_GPIO(23)
55 #define TEGRA_PIN_GMI_AD0_PG0			_GPIO(48)
56 #define TEGRA_PIN_GMI_AD1_PG1			_GPIO(49)
57 #define TEGRA_PIN_GMI_AD2_PG2			_GPIO(50)
58 #define TEGRA_PIN_GMI_AD3_PG3			_GPIO(51)
59 #define TEGRA_PIN_GMI_AD4_PG4			_GPIO(52)
60 #define TEGRA_PIN_GMI_AD5_PG5			_GPIO(53)
61 #define TEGRA_PIN_GMI_AD6_PG6			_GPIO(54)
62 #define TEGRA_PIN_GMI_AD7_PG7			_GPIO(55)
63 #define TEGRA_PIN_GMI_AD8_PH0			_GPIO(56)
64 #define TEGRA_PIN_GMI_AD9_PH1			_GPIO(57)
65 #define TEGRA_PIN_GMI_AD10_PH2			_GPIO(58)
66 #define TEGRA_PIN_GMI_AD11_PH3			_GPIO(59)
67 #define TEGRA_PIN_GMI_AD12_PH4			_GPIO(60)
68 #define TEGRA_PIN_GMI_AD13_PH5			_GPIO(61)
69 #define TEGRA_PIN_GMI_AD14_PH6			_GPIO(62)
70 #define TEGRA_PIN_GMI_AD15_PH7			_GPIO(63)
71 #define TEGRA_PIN_GMI_WR_N_PI0			_GPIO(64)
72 #define TEGRA_PIN_GMI_OE_N_PI1			_GPIO(65)
73 #define TEGRA_PIN_GMI_CS6_N_PI3			_GPIO(67)
74 #define TEGRA_PIN_GMI_RST_N_PI4			_GPIO(68)
75 #define TEGRA_PIN_GMI_IORDY_PI5			_GPIO(69)
76 #define TEGRA_PIN_GMI_CS7_N_PI6			_GPIO(70)
77 #define TEGRA_PIN_GMI_WAIT_PI7			_GPIO(71)
78 #define TEGRA_PIN_GMI_CS0_N_PJ0			_GPIO(72)
79 #define TEGRA_PIN_GMI_CS1_N_PJ2			_GPIO(74)
80 #define TEGRA_PIN_GMI_DQS_P_PJ3			_GPIO(75)
81 #define TEGRA_PIN_UART2_CTS_N_PJ5		_GPIO(77)
82 #define TEGRA_PIN_UART2_RTS_N_PJ6		_GPIO(78)
83 #define TEGRA_PIN_GMI_A16_PJ7			_GPIO(79)
84 #define TEGRA_PIN_GMI_ADV_N_PK0			_GPIO(80)
85 #define TEGRA_PIN_GMI_CLK_PK1			_GPIO(81)
86 #define TEGRA_PIN_GMI_CS4_N_PK2			_GPIO(82)
87 #define TEGRA_PIN_GMI_CS2_N_PK3			_GPIO(83)
88 #define TEGRA_PIN_GMI_CS3_N_PK4			_GPIO(84)
89 #define TEGRA_PIN_SPDIF_OUT_PK5			_GPIO(85)
90 #define TEGRA_PIN_SPDIF_IN_PK6			_GPIO(86)
91 #define TEGRA_PIN_GMI_A19_PK7			_GPIO(87)
92 #define TEGRA_PIN_DAP1_FS_PN0			_GPIO(104)
93 #define TEGRA_PIN_DAP1_DIN_PN1			_GPIO(105)
94 #define TEGRA_PIN_DAP1_DOUT_PN2			_GPIO(106)
95 #define TEGRA_PIN_DAP1_SCLK_PN3			_GPIO(107)
96 #define TEGRA_PIN_USB_VBUS_EN0_PN4		_GPIO(108)
97 #define TEGRA_PIN_USB_VBUS_EN1_PN5		_GPIO(109)
98 #define TEGRA_PIN_HDMI_INT_PN7			_GPIO(111)
99 #define TEGRA_PIN_ULPI_DATA7_PO0		_GPIO(112)
100 #define TEGRA_PIN_ULPI_DATA0_PO1		_GPIO(113)
101 #define TEGRA_PIN_ULPI_DATA1_PO2		_GPIO(114)
102 #define TEGRA_PIN_ULPI_DATA2_PO3		_GPIO(115)
103 #define TEGRA_PIN_ULPI_DATA3_PO4		_GPIO(116)
104 #define TEGRA_PIN_ULPI_DATA4_PO5		_GPIO(117)
105 #define TEGRA_PIN_ULPI_DATA5_PO6		_GPIO(118)
106 #define TEGRA_PIN_ULPI_DATA6_PO7		_GPIO(119)
107 #define TEGRA_PIN_DAP3_FS_PP0			_GPIO(120)
108 #define TEGRA_PIN_DAP3_DIN_PP1			_GPIO(121)
109 #define TEGRA_PIN_DAP3_DOUT_PP2			_GPIO(122)
110 #define TEGRA_PIN_DAP3_SCLK_PP3			_GPIO(123)
111 #define TEGRA_PIN_DAP4_FS_PP4			_GPIO(124)
112 #define TEGRA_PIN_DAP4_DIN_PP5			_GPIO(125)
113 #define TEGRA_PIN_DAP4_DOUT_PP6			_GPIO(126)
114 #define TEGRA_PIN_DAP4_SCLK_PP7			_GPIO(127)
115 #define TEGRA_PIN_KB_COL0_PQ0			_GPIO(128)
116 #define TEGRA_PIN_KB_COL1_PQ1			_GPIO(129)
117 #define TEGRA_PIN_KB_COL2_PQ2			_GPIO(130)
118 #define TEGRA_PIN_KB_COL3_PQ3			_GPIO(131)
119 #define TEGRA_PIN_KB_COL4_PQ4			_GPIO(132)
120 #define TEGRA_PIN_KB_COL5_PQ5			_GPIO(133)
121 #define TEGRA_PIN_KB_COL6_PQ6			_GPIO(134)
122 #define TEGRA_PIN_KB_COL7_PQ7			_GPIO(135)
123 #define TEGRA_PIN_KB_ROW0_PR0			_GPIO(136)
124 #define TEGRA_PIN_KB_ROW1_PR1			_GPIO(137)
125 #define TEGRA_PIN_KB_ROW2_PR2			_GPIO(138)
126 #define TEGRA_PIN_KB_ROW3_PR3			_GPIO(139)
127 #define TEGRA_PIN_KB_ROW4_PR4			_GPIO(140)
128 #define TEGRA_PIN_KB_ROW5_PR5			_GPIO(141)
129 #define TEGRA_PIN_KB_ROW6_PR6			_GPIO(142)
130 #define TEGRA_PIN_KB_ROW7_PR7			_GPIO(143)
131 #define TEGRA_PIN_KB_ROW8_PS0			_GPIO(144)
132 #define TEGRA_PIN_KB_ROW9_PS1			_GPIO(145)
133 #define TEGRA_PIN_KB_ROW10_PS2			_GPIO(146)
134 #define TEGRA_PIN_GEN2_I2C_SCL_PT5		_GPIO(157)
135 #define TEGRA_PIN_GEN2_I2C_SDA_PT6		_GPIO(158)
136 #define TEGRA_PIN_SDMMC4_CMD_PT7		_GPIO(159)
137 #define TEGRA_PIN_PU0				_GPIO(160)
138 #define TEGRA_PIN_PU1				_GPIO(161)
139 #define TEGRA_PIN_PU2				_GPIO(162)
140 #define TEGRA_PIN_PU3				_GPIO(163)
141 #define TEGRA_PIN_PU4				_GPIO(164)
142 #define TEGRA_PIN_PU5				_GPIO(165)
143 #define TEGRA_PIN_PU6				_GPIO(166)
144 #define TEGRA_PIN_PV0				_GPIO(168)
145 #define TEGRA_PIN_PV1				_GPIO(169)
146 #define TEGRA_PIN_SDMMC3_CD_N_PV2		_GPIO(170)
147 #define TEGRA_PIN_SDMMC1_WP_N_PV3		_GPIO(171)
148 #define TEGRA_PIN_DDC_SCL_PV4			_GPIO(172)
149 #define TEGRA_PIN_DDC_SDA_PV5			_GPIO(173)
150 #define TEGRA_PIN_GPIO_W2_AUD_PW2		_GPIO(178)
151 #define TEGRA_PIN_GPIO_W3_AUD_PW3		_GPIO(179)
152 #define TEGRA_PIN_CLK1_OUT_PW4			_GPIO(180)
153 #define TEGRA_PIN_CLK2_OUT_PW5			_GPIO(181)
154 #define TEGRA_PIN_UART3_TXD_PW6			_GPIO(182)
155 #define TEGRA_PIN_UART3_RXD_PW7			_GPIO(183)
156 #define TEGRA_PIN_DVFS_PWM_PX0			_GPIO(184)
157 #define TEGRA_PIN_GPIO_X1_AUD_PX1		_GPIO(185)
158 #define TEGRA_PIN_DVFS_CLK_PX2			_GPIO(186)
159 #define TEGRA_PIN_GPIO_X3_AUD_PX3		_GPIO(187)
160 #define TEGRA_PIN_GPIO_X4_AUD_PX4		_GPIO(188)
161 #define TEGRA_PIN_GPIO_X5_AUD_PX5		_GPIO(189)
162 #define TEGRA_PIN_GPIO_X6_AUD_PX6		_GPIO(190)
163 #define TEGRA_PIN_GPIO_X7_AUD_PX7		_GPIO(191)
164 #define TEGRA_PIN_ULPI_CLK_PY0			_GPIO(192)
165 #define TEGRA_PIN_ULPI_DIR_PY1			_GPIO(193)
166 #define TEGRA_PIN_ULPI_NXT_PY2			_GPIO(194)
167 #define TEGRA_PIN_ULPI_STP_PY3			_GPIO(195)
168 #define TEGRA_PIN_SDMMC1_DAT3_PY4		_GPIO(196)
169 #define TEGRA_PIN_SDMMC1_DAT2_PY5		_GPIO(197)
170 #define TEGRA_PIN_SDMMC1_DAT1_PY6		_GPIO(198)
171 #define TEGRA_PIN_SDMMC1_DAT0_PY7		_GPIO(199)
172 #define TEGRA_PIN_SDMMC1_CLK_PZ0		_GPIO(200)
173 #define TEGRA_PIN_SDMMC1_CMD_PZ1		_GPIO(201)
174 #define TEGRA_PIN_SYS_CLK_REQ_PZ5		_GPIO(205)
175 #define TEGRA_PIN_PWR_I2C_SCL_PZ6		_GPIO(206)
176 #define TEGRA_PIN_PWR_I2C_SDA_PZ7		_GPIO(207)
177 #define TEGRA_PIN_SDMMC4_DAT0_PAA0		_GPIO(208)
178 #define TEGRA_PIN_SDMMC4_DAT1_PAA1		_GPIO(209)
179 #define TEGRA_PIN_SDMMC4_DAT2_PAA2		_GPIO(210)
180 #define TEGRA_PIN_SDMMC4_DAT3_PAA3		_GPIO(211)
181 #define TEGRA_PIN_SDMMC4_DAT4_PAA4		_GPIO(212)
182 #define TEGRA_PIN_SDMMC4_DAT5_PAA5		_GPIO(213)
183 #define TEGRA_PIN_SDMMC4_DAT6_PAA6		_GPIO(214)
184 #define TEGRA_PIN_SDMMC4_DAT7_PAA7		_GPIO(215)
185 #define TEGRA_PIN_PBB0				_GPIO(216)
186 #define TEGRA_PIN_CAM_I2C_SCL_PBB1		_GPIO(217)
187 #define TEGRA_PIN_CAM_I2C_SDA_PBB2		_GPIO(218)
188 #define TEGRA_PIN_PBB3				_GPIO(219)
189 #define TEGRA_PIN_PBB4				_GPIO(220)
190 #define TEGRA_PIN_PBB5				_GPIO(221)
191 #define TEGRA_PIN_PBB6				_GPIO(222)
192 #define TEGRA_PIN_PBB7				_GPIO(223)
193 #define TEGRA_PIN_CAM_MCLK_PCC0			_GPIO(224)
194 #define TEGRA_PIN_PCC1				_GPIO(225)
195 #define TEGRA_PIN_PCC2				_GPIO(226)
196 #define TEGRA_PIN_SDMMC4_CLK_PCC4		_GPIO(228)
197 #define TEGRA_PIN_CLK2_REQ_PCC5			_GPIO(229)
198 #define TEGRA_PIN_CLK3_OUT_PEE0			_GPIO(240)
199 #define TEGRA_PIN_CLK3_REQ_PEE1			_GPIO(241)
200 #define TEGRA_PIN_CLK1_REQ_PEE2			_GPIO(242)
201 #define TEGRA_PIN_HDMI_CEC_PEE3			_GPIO(243)
202 #define TEGRA_PIN_SDMMC3_CLK_LB_OUT_PEE4	_GPIO(244)
203 #define TEGRA_PIN_SDMMC3_CLK_LB_IN_PEE5		_GPIO(245)
204 
205 /* All non-GPIO pins follow */
206 #define NUM_GPIOS	(TEGRA_PIN_SDMMC3_CLK_LB_IN_PEE5 + 1)
207 #define _PIN(offset)	(NUM_GPIOS + (offset))
208 
209 /* Non-GPIO pins */
210 #define TEGRA_PIN_CORE_PWR_REQ			_PIN(0)
211 #define TEGRA_PIN_CPU_PWR_REQ			_PIN(1)
212 #define TEGRA_PIN_PWR_INT_N			_PIN(2)
213 #define TEGRA_PIN_RESET_OUT_N			_PIN(3)
214 #define TEGRA_PIN_OWR				_PIN(4)
215 
216 static const struct pinctrl_pin_desc  tegra114_pins[] = {
217 	PINCTRL_PIN(TEGRA_PIN_CLK_32K_OUT_PA0, "CLK_32K_OUT PA0"),
218 	PINCTRL_PIN(TEGRA_PIN_UART3_CTS_N_PA1, "UART3_CTS_N PA1"),
219 	PINCTRL_PIN(TEGRA_PIN_DAP2_FS_PA2, "DAP2_FS PA2"),
220 	PINCTRL_PIN(TEGRA_PIN_DAP2_SCLK_PA3, "DAP2_SCLK PA3"),
221 	PINCTRL_PIN(TEGRA_PIN_DAP2_DIN_PA4, "DAP2_DIN PA4"),
222 	PINCTRL_PIN(TEGRA_PIN_DAP2_DOUT_PA5, "DAP2_DOUT PA5"),
223 	PINCTRL_PIN(TEGRA_PIN_SDMMC3_CLK_PA6, "SDMMC3_CLK PA6"),
224 	PINCTRL_PIN(TEGRA_PIN_SDMMC3_CMD_PA7, "SDMMC3_CMD PA7"),
225 	PINCTRL_PIN(TEGRA_PIN_GMI_A17_PB0, "GMI_A17 PB0"),
226 	PINCTRL_PIN(TEGRA_PIN_GMI_A18_PB1, "GMI_A18 PB1"),
227 	PINCTRL_PIN(TEGRA_PIN_SDMMC3_DAT3_PB4, "SDMMC3_DAT3 PB4"),
228 	PINCTRL_PIN(TEGRA_PIN_SDMMC3_DAT2_PB5, "SDMMC3_DAT2 PB5"),
229 	PINCTRL_PIN(TEGRA_PIN_SDMMC3_DAT1_PB6, "SDMMC3_DAT1 PB6"),
230 	PINCTRL_PIN(TEGRA_PIN_SDMMC3_DAT0_PB7, "SDMMC3_DAT0 PB7"),
231 	PINCTRL_PIN(TEGRA_PIN_UART3_RTS_N_PC0, "UART3_RTS_N PC0"),
232 	PINCTRL_PIN(TEGRA_PIN_UART2_TXD_PC2, "UART2_TXD PC2"),
233 	PINCTRL_PIN(TEGRA_PIN_UART2_RXD_PC3, "UART2_RXD PC3"),
234 	PINCTRL_PIN(TEGRA_PIN_GEN1_I2C_SCL_PC4, "GEN1_I2C_SCL PC4"),
235 	PINCTRL_PIN(TEGRA_PIN_GEN1_I2C_SDA_PC5, "GEN1_I2C_SDA PC5"),
236 	PINCTRL_PIN(TEGRA_PIN_GMI_WP_N_PC7, "GMI_WP_N PC7"),
237 	PINCTRL_PIN(TEGRA_PIN_GMI_AD0_PG0, "GMI_AD0 PG0"),
238 	PINCTRL_PIN(TEGRA_PIN_GMI_AD1_PG1, "GMI_AD1 PG1"),
239 	PINCTRL_PIN(TEGRA_PIN_GMI_AD2_PG2, "GMI_AD2 PG2"),
240 	PINCTRL_PIN(TEGRA_PIN_GMI_AD3_PG3, "GMI_AD3 PG3"),
241 	PINCTRL_PIN(TEGRA_PIN_GMI_AD4_PG4, "GMI_AD4 PG4"),
242 	PINCTRL_PIN(TEGRA_PIN_GMI_AD5_PG5, "GMI_AD5 PG5"),
243 	PINCTRL_PIN(TEGRA_PIN_GMI_AD6_PG6, "GMI_AD6 PG6"),
244 	PINCTRL_PIN(TEGRA_PIN_GMI_AD7_PG7, "GMI_AD7 PG7"),
245 	PINCTRL_PIN(TEGRA_PIN_GMI_AD8_PH0, "GMI_AD8 PH0"),
246 	PINCTRL_PIN(TEGRA_PIN_GMI_AD9_PH1, "GMI_AD9 PH1"),
247 	PINCTRL_PIN(TEGRA_PIN_GMI_AD10_PH2, "GMI_AD10 PH2"),
248 	PINCTRL_PIN(TEGRA_PIN_GMI_AD11_PH3, "GMI_AD11 PH3"),
249 	PINCTRL_PIN(TEGRA_PIN_GMI_AD12_PH4, "GMI_AD12 PH4"),
250 	PINCTRL_PIN(TEGRA_PIN_GMI_AD13_PH5, "GMI_AD13 PH5"),
251 	PINCTRL_PIN(TEGRA_PIN_GMI_AD14_PH6, "GMI_AD14 PH6"),
252 	PINCTRL_PIN(TEGRA_PIN_GMI_AD15_PH7, "GMI_AD15 PH7"),
253 	PINCTRL_PIN(TEGRA_PIN_GMI_WR_N_PI0, "GMI_WR_N PI0"),
254 	PINCTRL_PIN(TEGRA_PIN_GMI_OE_N_PI1, "GMI_OE_N PI1"),
255 	PINCTRL_PIN(TEGRA_PIN_GMI_CS6_N_PI3, "GMI_CS6_N PI3"),
256 	PINCTRL_PIN(TEGRA_PIN_GMI_RST_N_PI4, "GMI_RST_N PI4"),
257 	PINCTRL_PIN(TEGRA_PIN_GMI_IORDY_PI5, "GMI_IORDY PI5"),
258 	PINCTRL_PIN(TEGRA_PIN_GMI_CS7_N_PI6, "GMI_CS7_N PI6"),
259 	PINCTRL_PIN(TEGRA_PIN_GMI_WAIT_PI7, "GMI_WAIT PI7"),
260 	PINCTRL_PIN(TEGRA_PIN_GMI_CS0_N_PJ0, "GMI_CS0_N PJ0"),
261 	PINCTRL_PIN(TEGRA_PIN_GMI_CS1_N_PJ2, "GMI_CS1_N PJ2"),
262 	PINCTRL_PIN(TEGRA_PIN_GMI_DQS_P_PJ3, "GMI_DQS_P PJ3"),
263 	PINCTRL_PIN(TEGRA_PIN_UART2_CTS_N_PJ5, "UART2_CTS_N PJ5"),
264 	PINCTRL_PIN(TEGRA_PIN_UART2_RTS_N_PJ6, "UART2_RTS_N PJ6"),
265 	PINCTRL_PIN(TEGRA_PIN_GMI_A16_PJ7, "GMI_A16 PJ7"),
266 	PINCTRL_PIN(TEGRA_PIN_GMI_ADV_N_PK0, "GMI_ADV_N PK0"),
267 	PINCTRL_PIN(TEGRA_PIN_GMI_CLK_PK1, "GMI_CLK PK1"),
268 	PINCTRL_PIN(TEGRA_PIN_GMI_CS4_N_PK2, "GMI_CS4_N PK2"),
269 	PINCTRL_PIN(TEGRA_PIN_GMI_CS2_N_PK3, "GMI_CS2_N PK3"),
270 	PINCTRL_PIN(TEGRA_PIN_GMI_CS3_N_PK4, "GMI_CS3_N PK4"),
271 	PINCTRL_PIN(TEGRA_PIN_SPDIF_OUT_PK5, "SPDIF_OUT PK5"),
272 	PINCTRL_PIN(TEGRA_PIN_SPDIF_IN_PK6, "SPDIF_IN PK6"),
273 	PINCTRL_PIN(TEGRA_PIN_GMI_A19_PK7, "GMI_A19 PK7"),
274 	PINCTRL_PIN(TEGRA_PIN_DAP1_FS_PN0, "DAP1_FS PN0"),
275 	PINCTRL_PIN(TEGRA_PIN_DAP1_DIN_PN1, "DAP1_DIN PN1"),
276 	PINCTRL_PIN(TEGRA_PIN_DAP1_DOUT_PN2, "DAP1_DOUT PN2"),
277 	PINCTRL_PIN(TEGRA_PIN_DAP1_SCLK_PN3, "DAP1_SCLK PN3"),
278 	PINCTRL_PIN(TEGRA_PIN_USB_VBUS_EN0_PN4, "USB_VBUS_EN0 PN4"),
279 	PINCTRL_PIN(TEGRA_PIN_USB_VBUS_EN1_PN5, "USB_VBUS_EN1 PN5"),
280 	PINCTRL_PIN(TEGRA_PIN_HDMI_INT_PN7, "HDMI_INT PN7"),
281 	PINCTRL_PIN(TEGRA_PIN_ULPI_DATA7_PO0, "ULPI_DATA7 PO0"),
282 	PINCTRL_PIN(TEGRA_PIN_ULPI_DATA0_PO1, "ULPI_DATA0 PO1"),
283 	PINCTRL_PIN(TEGRA_PIN_ULPI_DATA1_PO2, "ULPI_DATA1 PO2"),
284 	PINCTRL_PIN(TEGRA_PIN_ULPI_DATA2_PO3, "ULPI_DATA2 PO3"),
285 	PINCTRL_PIN(TEGRA_PIN_ULPI_DATA3_PO4, "ULPI_DATA3 PO4"),
286 	PINCTRL_PIN(TEGRA_PIN_ULPI_DATA4_PO5, "ULPI_DATA4 PO5"),
287 	PINCTRL_PIN(TEGRA_PIN_ULPI_DATA5_PO6, "ULPI_DATA5 PO6"),
288 	PINCTRL_PIN(TEGRA_PIN_ULPI_DATA6_PO7, "ULPI_DATA6 PO7"),
289 	PINCTRL_PIN(TEGRA_PIN_DAP3_FS_PP0, "DAP3_FS PP0"),
290 	PINCTRL_PIN(TEGRA_PIN_DAP3_DIN_PP1, "DAP3_DIN PP1"),
291 	PINCTRL_PIN(TEGRA_PIN_DAP3_DOUT_PP2, "DAP3_DOUT PP2"),
292 	PINCTRL_PIN(TEGRA_PIN_DAP3_SCLK_PP3, "DAP3_SCLK PP3"),
293 	PINCTRL_PIN(TEGRA_PIN_DAP4_FS_PP4, "DAP4_FS PP4"),
294 	PINCTRL_PIN(TEGRA_PIN_DAP4_DIN_PP5, "DAP4_DIN PP5"),
295 	PINCTRL_PIN(TEGRA_PIN_DAP4_DOUT_PP6, "DAP4_DOUT PP6"),
296 	PINCTRL_PIN(TEGRA_PIN_DAP4_SCLK_PP7, "DAP4_SCLK PP7"),
297 	PINCTRL_PIN(TEGRA_PIN_KB_COL0_PQ0, "KB_COL0 PQ0"),
298 	PINCTRL_PIN(TEGRA_PIN_KB_COL1_PQ1, "KB_COL1 PQ1"),
299 	PINCTRL_PIN(TEGRA_PIN_KB_COL2_PQ2, "KB_COL2 PQ2"),
300 	PINCTRL_PIN(TEGRA_PIN_KB_COL3_PQ3, "KB_COL3 PQ3"),
301 	PINCTRL_PIN(TEGRA_PIN_KB_COL4_PQ4, "KB_COL4 PQ4"),
302 	PINCTRL_PIN(TEGRA_PIN_KB_COL5_PQ5, "KB_COL5 PQ5"),
303 	PINCTRL_PIN(TEGRA_PIN_KB_COL6_PQ6, "KB_COL6 PQ6"),
304 	PINCTRL_PIN(TEGRA_PIN_KB_COL7_PQ7, "KB_COL7 PQ7"),
305 	PINCTRL_PIN(TEGRA_PIN_KB_ROW0_PR0, "KB_ROW0 PR0"),
306 	PINCTRL_PIN(TEGRA_PIN_KB_ROW1_PR1, "KB_ROW1 PR1"),
307 	PINCTRL_PIN(TEGRA_PIN_KB_ROW2_PR2, "KB_ROW2 PR2"),
308 	PINCTRL_PIN(TEGRA_PIN_KB_ROW3_PR3, "KB_ROW3 PR3"),
309 	PINCTRL_PIN(TEGRA_PIN_KB_ROW4_PR4, "KB_ROW4 PR4"),
310 	PINCTRL_PIN(TEGRA_PIN_KB_ROW5_PR5, "KB_ROW5 PR5"),
311 	PINCTRL_PIN(TEGRA_PIN_KB_ROW6_PR6, "KB_ROW6 PR6"),
312 	PINCTRL_PIN(TEGRA_PIN_KB_ROW7_PR7, "KB_ROW7 PR7"),
313 	PINCTRL_PIN(TEGRA_PIN_KB_ROW8_PS0, "KB_ROW8 PS0"),
314 	PINCTRL_PIN(TEGRA_PIN_KB_ROW9_PS1, "KB_ROW9 PS1"),
315 	PINCTRL_PIN(TEGRA_PIN_KB_ROW10_PS2, "KB_ROW10 PS2"),
316 	PINCTRL_PIN(TEGRA_PIN_GEN2_I2C_SCL_PT5, "GEN2_I2C_SCL PT5"),
317 	PINCTRL_PIN(TEGRA_PIN_GEN2_I2C_SDA_PT6, "GEN2_I2C_SDA PT6"),
318 	PINCTRL_PIN(TEGRA_PIN_SDMMC4_CMD_PT7, "SDMMC4_CMD PT7"),
319 	PINCTRL_PIN(TEGRA_PIN_PU0, "PU0"),
320 	PINCTRL_PIN(TEGRA_PIN_PU1, "PU1"),
321 	PINCTRL_PIN(TEGRA_PIN_PU2, "PU2"),
322 	PINCTRL_PIN(TEGRA_PIN_PU3, "PU3"),
323 	PINCTRL_PIN(TEGRA_PIN_PU4, "PU4"),
324 	PINCTRL_PIN(TEGRA_PIN_PU5, "PU5"),
325 	PINCTRL_PIN(TEGRA_PIN_PU6, "PU6"),
326 	PINCTRL_PIN(TEGRA_PIN_PV0, "PV0"),
327 	PINCTRL_PIN(TEGRA_PIN_PV1, "PV1"),
328 	PINCTRL_PIN(TEGRA_PIN_SDMMC3_CD_N_PV2, "SDMMC3_CD_N PV2"),
329 	PINCTRL_PIN(TEGRA_PIN_SDMMC1_WP_N_PV3, "SDMMC1_WP_N PV3"),
330 	PINCTRL_PIN(TEGRA_PIN_DDC_SCL_PV4, "DDC_SCL PV4"),
331 	PINCTRL_PIN(TEGRA_PIN_DDC_SDA_PV5, "DDC_SDA PV5"),
332 	PINCTRL_PIN(TEGRA_PIN_GPIO_W2_AUD_PW2, "GPIO_W2_AUD PW2"),
333 	PINCTRL_PIN(TEGRA_PIN_GPIO_W3_AUD_PW3, "GPIO_W3_AUD PW3"),
334 	PINCTRL_PIN(TEGRA_PIN_CLK1_OUT_PW4, "CLK1_OUT PW4"),
335 	PINCTRL_PIN(TEGRA_PIN_CLK2_OUT_PW5, "CLK2_OUT PW5"),
336 	PINCTRL_PIN(TEGRA_PIN_UART3_TXD_PW6, "UART3_TXD PW6"),
337 	PINCTRL_PIN(TEGRA_PIN_UART3_RXD_PW7, "UART3_RXD PW7"),
338 	PINCTRL_PIN(TEGRA_PIN_DVFS_PWM_PX0, "DVFS_PWM PX0"),
339 	PINCTRL_PIN(TEGRA_PIN_GPIO_X1_AUD_PX1, "GPIO_X1_AUD PX1"),
340 	PINCTRL_PIN(TEGRA_PIN_DVFS_CLK_PX2, "DVFS_CLK PX2"),
341 	PINCTRL_PIN(TEGRA_PIN_GPIO_X3_AUD_PX3, "GPIO_X3_AUD PX3"),
342 	PINCTRL_PIN(TEGRA_PIN_GPIO_X4_AUD_PX4, "GPIO_X4_AUD PX4"),
343 	PINCTRL_PIN(TEGRA_PIN_GPIO_X5_AUD_PX5, "GPIO_X5_AUD PX5"),
344 	PINCTRL_PIN(TEGRA_PIN_GPIO_X6_AUD_PX6, "GPIO_X6_AUD PX6"),
345 	PINCTRL_PIN(TEGRA_PIN_GPIO_X7_AUD_PX7, "GPIO_X7_AUD PX7"),
346 	PINCTRL_PIN(TEGRA_PIN_ULPI_CLK_PY0, "ULPI_CLK PY0"),
347 	PINCTRL_PIN(TEGRA_PIN_ULPI_DIR_PY1, "ULPI_DIR PY1"),
348 	PINCTRL_PIN(TEGRA_PIN_ULPI_NXT_PY2, "ULPI_NXT PY2"),
349 	PINCTRL_PIN(TEGRA_PIN_ULPI_STP_PY3, "ULPI_STP PY3"),
350 	PINCTRL_PIN(TEGRA_PIN_SDMMC1_DAT3_PY4, "SDMMC1_DAT3 PY4"),
351 	PINCTRL_PIN(TEGRA_PIN_SDMMC1_DAT2_PY5, "SDMMC1_DAT2 PY5"),
352 	PINCTRL_PIN(TEGRA_PIN_SDMMC1_DAT1_PY6, "SDMMC1_DAT1 PY6"),
353 	PINCTRL_PIN(TEGRA_PIN_SDMMC1_DAT0_PY7, "SDMMC1_DAT0 PY7"),
354 	PINCTRL_PIN(TEGRA_PIN_SDMMC1_CLK_PZ0, "SDMMC1_CLK PZ0"),
355 	PINCTRL_PIN(TEGRA_PIN_SDMMC1_CMD_PZ1, "SDMMC1_CMD PZ1"),
356 	PINCTRL_PIN(TEGRA_PIN_SYS_CLK_REQ_PZ5, "SYS_CLK_REQ PZ5"),
357 	PINCTRL_PIN(TEGRA_PIN_PWR_I2C_SCL_PZ6, "PWR_I2C_SCL PZ6"),
358 	PINCTRL_PIN(TEGRA_PIN_PWR_I2C_SDA_PZ7, "PWR_I2C_SDA PZ7"),
359 	PINCTRL_PIN(TEGRA_PIN_SDMMC4_DAT0_PAA0, "SDMMC4_DAT0 PAA0"),
360 	PINCTRL_PIN(TEGRA_PIN_SDMMC4_DAT1_PAA1, "SDMMC4_DAT1 PAA1"),
361 	PINCTRL_PIN(TEGRA_PIN_SDMMC4_DAT2_PAA2, "SDMMC4_DAT2 PAA2"),
362 	PINCTRL_PIN(TEGRA_PIN_SDMMC4_DAT3_PAA3, "SDMMC4_DAT3 PAA3"),
363 	PINCTRL_PIN(TEGRA_PIN_SDMMC4_DAT4_PAA4, "SDMMC4_DAT4 PAA4"),
364 	PINCTRL_PIN(TEGRA_PIN_SDMMC4_DAT5_PAA5, "SDMMC4_DAT5 PAA5"),
365 	PINCTRL_PIN(TEGRA_PIN_SDMMC4_DAT6_PAA6, "SDMMC4_DAT6 PAA6"),
366 	PINCTRL_PIN(TEGRA_PIN_SDMMC4_DAT7_PAA7, "SDMMC4_DAT7 PAA7"),
367 	PINCTRL_PIN(TEGRA_PIN_PBB0, "PBB0"),
368 	PINCTRL_PIN(TEGRA_PIN_CAM_I2C_SCL_PBB1, "CAM_I2C_SCL PBB1"),
369 	PINCTRL_PIN(TEGRA_PIN_CAM_I2C_SDA_PBB2, "CAM_I2C_SDA PBB2"),
370 	PINCTRL_PIN(TEGRA_PIN_PBB3, "PBB3"),
371 	PINCTRL_PIN(TEGRA_PIN_PBB4, "PBB4"),
372 	PINCTRL_PIN(TEGRA_PIN_PBB5, "PBB5"),
373 	PINCTRL_PIN(TEGRA_PIN_PBB6, "PBB6"),
374 	PINCTRL_PIN(TEGRA_PIN_PBB7, "PBB7"),
375 	PINCTRL_PIN(TEGRA_PIN_CAM_MCLK_PCC0, "CAM_MCLK PCC0"),
376 	PINCTRL_PIN(TEGRA_PIN_PCC1, "PCC1"),
377 	PINCTRL_PIN(TEGRA_PIN_PCC2, "PCC2"),
378 	PINCTRL_PIN(TEGRA_PIN_SDMMC4_CLK_PCC4, "SDMMC4_CLK PCC4"),
379 	PINCTRL_PIN(TEGRA_PIN_CLK2_REQ_PCC5, "CLK2_REQ PCC5"),
380 	PINCTRL_PIN(TEGRA_PIN_CLK3_OUT_PEE0, "CLK3_OUT PEE0"),
381 	PINCTRL_PIN(TEGRA_PIN_CLK3_REQ_PEE1, "CLK3_REQ PEE1"),
382 	PINCTRL_PIN(TEGRA_PIN_CLK1_REQ_PEE2, "CLK1_REQ PEE2"),
383 	PINCTRL_PIN(TEGRA_PIN_HDMI_CEC_PEE3, "HDMI_CEC PEE3"),
384 	PINCTRL_PIN(TEGRA_PIN_SDMMC3_CLK_LB_OUT_PEE4, "SDMMC3_CLK_LB_OUT PEE4"),
385 	PINCTRL_PIN(TEGRA_PIN_SDMMC3_CLK_LB_IN_PEE5, "SDMMC3_CLK_LB_IN PEE5"),
386 	PINCTRL_PIN(TEGRA_PIN_CORE_PWR_REQ, "CORE_PWR_REQ"),
387 	PINCTRL_PIN(TEGRA_PIN_CPU_PWR_REQ, "CPU_PWR_REQ"),
388 	PINCTRL_PIN(TEGRA_PIN_OWR, "OWR"),
389 	PINCTRL_PIN(TEGRA_PIN_PWR_INT_N, "PWR_INT_N"),
390 	PINCTRL_PIN(TEGRA_PIN_RESET_OUT_N, "RESET_OUT_N"),
391 };
392 
393 static const unsigned clk_32k_out_pa0_pins[] = {
394 	TEGRA_PIN_CLK_32K_OUT_PA0,
395 };
396 
397 static const unsigned uart3_cts_n_pa1_pins[] = {
398 	TEGRA_PIN_UART3_CTS_N_PA1,
399 };
400 
401 static const unsigned dap2_fs_pa2_pins[] = {
402 	TEGRA_PIN_DAP2_FS_PA2,
403 };
404 
405 static const unsigned dap2_sclk_pa3_pins[] = {
406 	TEGRA_PIN_DAP2_SCLK_PA3,
407 };
408 
409 static const unsigned dap2_din_pa4_pins[] = {
410 	TEGRA_PIN_DAP2_DIN_PA4,
411 };
412 
413 static const unsigned dap2_dout_pa5_pins[] = {
414 	TEGRA_PIN_DAP2_DOUT_PA5,
415 };
416 
417 static const unsigned sdmmc3_clk_pa6_pins[] = {
418 	TEGRA_PIN_SDMMC3_CLK_PA6,
419 };
420 
421 static const unsigned sdmmc3_cmd_pa7_pins[] = {
422 	TEGRA_PIN_SDMMC3_CMD_PA7,
423 };
424 
425 static const unsigned gmi_a17_pb0_pins[] = {
426 	TEGRA_PIN_GMI_A17_PB0,
427 };
428 
429 static const unsigned gmi_a18_pb1_pins[] = {
430 	TEGRA_PIN_GMI_A18_PB1,
431 };
432 
433 static const unsigned sdmmc3_dat3_pb4_pins[] = {
434 	TEGRA_PIN_SDMMC3_DAT3_PB4,
435 };
436 
437 static const unsigned sdmmc3_dat2_pb5_pins[] = {
438 	TEGRA_PIN_SDMMC3_DAT2_PB5,
439 };
440 
441 static const unsigned sdmmc3_dat1_pb6_pins[] = {
442 	TEGRA_PIN_SDMMC3_DAT1_PB6,
443 };
444 
445 static const unsigned sdmmc3_dat0_pb7_pins[] = {
446 	TEGRA_PIN_SDMMC3_DAT0_PB7,
447 };
448 
449 static const unsigned uart3_rts_n_pc0_pins[] = {
450 	TEGRA_PIN_UART3_RTS_N_PC0,
451 };
452 
453 static const unsigned uart2_txd_pc2_pins[] = {
454 	TEGRA_PIN_UART2_TXD_PC2,
455 };
456 
457 static const unsigned uart2_rxd_pc3_pins[] = {
458 	TEGRA_PIN_UART2_RXD_PC3,
459 };
460 
461 static const unsigned gen1_i2c_scl_pc4_pins[] = {
462 	TEGRA_PIN_GEN1_I2C_SCL_PC4,
463 };
464 
465 static const unsigned gen1_i2c_sda_pc5_pins[] = {
466 	TEGRA_PIN_GEN1_I2C_SDA_PC5,
467 };
468 
469 static const unsigned gmi_wp_n_pc7_pins[] = {
470 	TEGRA_PIN_GMI_WP_N_PC7,
471 };
472 
473 static const unsigned gmi_ad0_pg0_pins[] = {
474 	TEGRA_PIN_GMI_AD0_PG0,
475 };
476 
477 static const unsigned gmi_ad1_pg1_pins[] = {
478 	TEGRA_PIN_GMI_AD1_PG1,
479 };
480 
481 static const unsigned gmi_ad2_pg2_pins[] = {
482 	TEGRA_PIN_GMI_AD2_PG2,
483 };
484 
485 static const unsigned gmi_ad3_pg3_pins[] = {
486 	TEGRA_PIN_GMI_AD3_PG3,
487 };
488 
489 static const unsigned gmi_ad4_pg4_pins[] = {
490 	TEGRA_PIN_GMI_AD4_PG4,
491 };
492 
493 static const unsigned gmi_ad5_pg5_pins[] = {
494 	TEGRA_PIN_GMI_AD5_PG5,
495 };
496 
497 static const unsigned gmi_ad6_pg6_pins[] = {
498 	TEGRA_PIN_GMI_AD6_PG6,
499 };
500 
501 static const unsigned gmi_ad7_pg7_pins[] = {
502 	TEGRA_PIN_GMI_AD7_PG7,
503 };
504 
505 static const unsigned gmi_ad8_ph0_pins[] = {
506 	TEGRA_PIN_GMI_AD8_PH0,
507 };
508 
509 static const unsigned gmi_ad9_ph1_pins[] = {
510 	TEGRA_PIN_GMI_AD9_PH1,
511 };
512 
513 static const unsigned gmi_ad10_ph2_pins[] = {
514 	TEGRA_PIN_GMI_AD10_PH2,
515 };
516 
517 static const unsigned gmi_ad11_ph3_pins[] = {
518 	TEGRA_PIN_GMI_AD11_PH3,
519 };
520 
521 static const unsigned gmi_ad12_ph4_pins[] = {
522 	TEGRA_PIN_GMI_AD12_PH4,
523 };
524 
525 static const unsigned gmi_ad13_ph5_pins[] = {
526 	TEGRA_PIN_GMI_AD13_PH5,
527 };
528 
529 static const unsigned gmi_ad14_ph6_pins[] = {
530 	TEGRA_PIN_GMI_AD14_PH6,
531 };
532 
533 static const unsigned gmi_ad15_ph7_pins[] = {
534 	TEGRA_PIN_GMI_AD15_PH7,
535 };
536 
537 static const unsigned gmi_wr_n_pi0_pins[] = {
538 	TEGRA_PIN_GMI_WR_N_PI0,
539 };
540 
541 static const unsigned gmi_oe_n_pi1_pins[] = {
542 	TEGRA_PIN_GMI_OE_N_PI1,
543 };
544 
545 static const unsigned gmi_cs6_n_pi3_pins[] = {
546 	TEGRA_PIN_GMI_CS6_N_PI3,
547 };
548 
549 static const unsigned gmi_rst_n_pi4_pins[] = {
550 	TEGRA_PIN_GMI_RST_N_PI4,
551 };
552 
553 static const unsigned gmi_iordy_pi5_pins[] = {
554 	TEGRA_PIN_GMI_IORDY_PI5,
555 };
556 
557 static const unsigned gmi_cs7_n_pi6_pins[] = {
558 	TEGRA_PIN_GMI_CS7_N_PI6,
559 };
560 
561 static const unsigned gmi_wait_pi7_pins[] = {
562 	TEGRA_PIN_GMI_WAIT_PI7,
563 };
564 
565 static const unsigned gmi_cs0_n_pj0_pins[] = {
566 	TEGRA_PIN_GMI_CS0_N_PJ0,
567 };
568 
569 static const unsigned gmi_cs1_n_pj2_pins[] = {
570 	TEGRA_PIN_GMI_CS1_N_PJ2,
571 };
572 
573 static const unsigned gmi_dqs_p_pj3_pins[] = {
574 	TEGRA_PIN_GMI_DQS_P_PJ3,
575 };
576 
577 static const unsigned uart2_cts_n_pj5_pins[] = {
578 	TEGRA_PIN_UART2_CTS_N_PJ5,
579 };
580 
581 static const unsigned uart2_rts_n_pj6_pins[] = {
582 	TEGRA_PIN_UART2_RTS_N_PJ6,
583 };
584 
585 static const unsigned gmi_a16_pj7_pins[] = {
586 	TEGRA_PIN_GMI_A16_PJ7,
587 };
588 
589 static const unsigned gmi_adv_n_pk0_pins[] = {
590 	TEGRA_PIN_GMI_ADV_N_PK0,
591 };
592 
593 static const unsigned gmi_clk_pk1_pins[] = {
594 	TEGRA_PIN_GMI_CLK_PK1,
595 };
596 
597 static const unsigned gmi_cs4_n_pk2_pins[] = {
598 	TEGRA_PIN_GMI_CS4_N_PK2,
599 };
600 
601 static const unsigned gmi_cs2_n_pk3_pins[] = {
602 	TEGRA_PIN_GMI_CS2_N_PK3,
603 };
604 
605 static const unsigned gmi_cs3_n_pk4_pins[] = {
606 	TEGRA_PIN_GMI_CS3_N_PK4,
607 };
608 
609 static const unsigned spdif_out_pk5_pins[] = {
610 	TEGRA_PIN_SPDIF_OUT_PK5,
611 };
612 
613 static const unsigned spdif_in_pk6_pins[] = {
614 	TEGRA_PIN_SPDIF_IN_PK6,
615 };
616 
617 static const unsigned gmi_a19_pk7_pins[] = {
618 	TEGRA_PIN_GMI_A19_PK7,
619 };
620 
621 static const unsigned dap1_fs_pn0_pins[] = {
622 	TEGRA_PIN_DAP1_FS_PN0,
623 };
624 
625 static const unsigned dap1_din_pn1_pins[] = {
626 	TEGRA_PIN_DAP1_DIN_PN1,
627 };
628 
629 static const unsigned dap1_dout_pn2_pins[] = {
630 	TEGRA_PIN_DAP1_DOUT_PN2,
631 };
632 
633 static const unsigned dap1_sclk_pn3_pins[] = {
634 	TEGRA_PIN_DAP1_SCLK_PN3,
635 };
636 
637 static const unsigned usb_vbus_en0_pn4_pins[] = {
638 	TEGRA_PIN_USB_VBUS_EN0_PN4,
639 };
640 
641 static const unsigned usb_vbus_en1_pn5_pins[] = {
642 	TEGRA_PIN_USB_VBUS_EN1_PN5,
643 };
644 
645 static const unsigned hdmi_int_pn7_pins[] = {
646 	TEGRA_PIN_HDMI_INT_PN7,
647 };
648 
649 static const unsigned ulpi_data7_po0_pins[] = {
650 	TEGRA_PIN_ULPI_DATA7_PO0,
651 };
652 
653 static const unsigned ulpi_data0_po1_pins[] = {
654 	TEGRA_PIN_ULPI_DATA0_PO1,
655 };
656 
657 static const unsigned ulpi_data1_po2_pins[] = {
658 	TEGRA_PIN_ULPI_DATA1_PO2,
659 };
660 
661 static const unsigned ulpi_data2_po3_pins[] = {
662 	TEGRA_PIN_ULPI_DATA2_PO3,
663 };
664 
665 static const unsigned ulpi_data3_po4_pins[] = {
666 	TEGRA_PIN_ULPI_DATA3_PO4,
667 };
668 
669 static const unsigned ulpi_data4_po5_pins[] = {
670 	TEGRA_PIN_ULPI_DATA4_PO5,
671 };
672 
673 static const unsigned ulpi_data5_po6_pins[] = {
674 	TEGRA_PIN_ULPI_DATA5_PO6,
675 };
676 
677 static const unsigned ulpi_data6_po7_pins[] = {
678 	TEGRA_PIN_ULPI_DATA6_PO7,
679 };
680 
681 static const unsigned dap3_fs_pp0_pins[] = {
682 	TEGRA_PIN_DAP3_FS_PP0,
683 };
684 
685 static const unsigned dap3_din_pp1_pins[] = {
686 	TEGRA_PIN_DAP3_DIN_PP1,
687 };
688 
689 static const unsigned dap3_dout_pp2_pins[] = {
690 	TEGRA_PIN_DAP3_DOUT_PP2,
691 };
692 
693 static const unsigned dap3_sclk_pp3_pins[] = {
694 	TEGRA_PIN_DAP3_SCLK_PP3,
695 };
696 
697 static const unsigned dap4_fs_pp4_pins[] = {
698 	TEGRA_PIN_DAP4_FS_PP4,
699 };
700 
701 static const unsigned dap4_din_pp5_pins[] = {
702 	TEGRA_PIN_DAP4_DIN_PP5,
703 };
704 
705 static const unsigned dap4_dout_pp6_pins[] = {
706 	TEGRA_PIN_DAP4_DOUT_PP6,
707 };
708 
709 static const unsigned dap4_sclk_pp7_pins[] = {
710 	TEGRA_PIN_DAP4_SCLK_PP7,
711 };
712 
713 static const unsigned kb_col0_pq0_pins[] = {
714 	TEGRA_PIN_KB_COL0_PQ0,
715 };
716 
717 static const unsigned kb_col1_pq1_pins[] = {
718 	TEGRA_PIN_KB_COL1_PQ1,
719 };
720 
721 static const unsigned kb_col2_pq2_pins[] = {
722 	TEGRA_PIN_KB_COL2_PQ2,
723 };
724 
725 static const unsigned kb_col3_pq3_pins[] = {
726 	TEGRA_PIN_KB_COL3_PQ3,
727 };
728 
729 static const unsigned kb_col4_pq4_pins[] = {
730 	TEGRA_PIN_KB_COL4_PQ4,
731 };
732 
733 static const unsigned kb_col5_pq5_pins[] = {
734 	TEGRA_PIN_KB_COL5_PQ5,
735 };
736 
737 static const unsigned kb_col6_pq6_pins[] = {
738 	TEGRA_PIN_KB_COL6_PQ6,
739 };
740 
741 static const unsigned kb_col7_pq7_pins[] = {
742 	TEGRA_PIN_KB_COL7_PQ7,
743 };
744 
745 static const unsigned kb_row0_pr0_pins[] = {
746 	TEGRA_PIN_KB_ROW0_PR0,
747 };
748 
749 static const unsigned kb_row1_pr1_pins[] = {
750 	TEGRA_PIN_KB_ROW1_PR1,
751 };
752 
753 static const unsigned kb_row2_pr2_pins[] = {
754 	TEGRA_PIN_KB_ROW2_PR2,
755 };
756 
757 static const unsigned kb_row3_pr3_pins[] = {
758 	TEGRA_PIN_KB_ROW3_PR3,
759 };
760 
761 static const unsigned kb_row4_pr4_pins[] = {
762 	TEGRA_PIN_KB_ROW4_PR4,
763 };
764 
765 static const unsigned kb_row5_pr5_pins[] = {
766 	TEGRA_PIN_KB_ROW5_PR5,
767 };
768 
769 static const unsigned kb_row6_pr6_pins[] = {
770 	TEGRA_PIN_KB_ROW6_PR6,
771 };
772 
773 static const unsigned kb_row7_pr7_pins[] = {
774 	TEGRA_PIN_KB_ROW7_PR7,
775 };
776 
777 static const unsigned kb_row8_ps0_pins[] = {
778 	TEGRA_PIN_KB_ROW8_PS0,
779 };
780 
781 static const unsigned kb_row9_ps1_pins[] = {
782 	TEGRA_PIN_KB_ROW9_PS1,
783 };
784 
785 static const unsigned kb_row10_ps2_pins[] = {
786 	TEGRA_PIN_KB_ROW10_PS2,
787 };
788 
789 static const unsigned gen2_i2c_scl_pt5_pins[] = {
790 	TEGRA_PIN_GEN2_I2C_SCL_PT5,
791 };
792 
793 static const unsigned gen2_i2c_sda_pt6_pins[] = {
794 	TEGRA_PIN_GEN2_I2C_SDA_PT6,
795 };
796 
797 static const unsigned sdmmc4_cmd_pt7_pins[] = {
798 	TEGRA_PIN_SDMMC4_CMD_PT7,
799 };
800 
801 static const unsigned pu0_pins[] = {
802 	TEGRA_PIN_PU0,
803 };
804 
805 static const unsigned pu1_pins[] = {
806 	TEGRA_PIN_PU1,
807 };
808 
809 static const unsigned pu2_pins[] = {
810 	TEGRA_PIN_PU2,
811 };
812 
813 static const unsigned pu3_pins[] = {
814 	TEGRA_PIN_PU3,
815 };
816 
817 static const unsigned pu4_pins[] = {
818 	TEGRA_PIN_PU4,
819 };
820 
821 static const unsigned pu5_pins[] = {
822 	TEGRA_PIN_PU5,
823 };
824 
825 static const unsigned pu6_pins[] = {
826 	TEGRA_PIN_PU6,
827 };
828 
829 static const unsigned pv0_pins[] = {
830 	TEGRA_PIN_PV0,
831 };
832 
833 static const unsigned pv1_pins[] = {
834 	TEGRA_PIN_PV1,
835 };
836 
837 static const unsigned sdmmc3_cd_n_pv2_pins[] = {
838 	TEGRA_PIN_SDMMC3_CD_N_PV2,
839 };
840 
841 static const unsigned sdmmc1_wp_n_pv3_pins[] = {
842 	TEGRA_PIN_SDMMC1_WP_N_PV3,
843 };
844 
845 static const unsigned ddc_scl_pv4_pins[] = {
846 	TEGRA_PIN_DDC_SCL_PV4,
847 };
848 
849 static const unsigned ddc_sda_pv5_pins[] = {
850 	TEGRA_PIN_DDC_SDA_PV5,
851 };
852 
853 static const unsigned gpio_w2_aud_pw2_pins[] = {
854 	TEGRA_PIN_GPIO_W2_AUD_PW2,
855 };
856 
857 static const unsigned gpio_w3_aud_pw3_pins[] = {
858 	TEGRA_PIN_GPIO_W3_AUD_PW3,
859 };
860 
861 static const unsigned clk1_out_pw4_pins[] = {
862 	TEGRA_PIN_CLK1_OUT_PW4,
863 };
864 
865 static const unsigned clk2_out_pw5_pins[] = {
866 	TEGRA_PIN_CLK2_OUT_PW5,
867 };
868 
869 static const unsigned uart3_txd_pw6_pins[] = {
870 	TEGRA_PIN_UART3_TXD_PW6,
871 };
872 
873 static const unsigned uart3_rxd_pw7_pins[] = {
874 	TEGRA_PIN_UART3_RXD_PW7,
875 };
876 
877 static const unsigned dvfs_pwm_px0_pins[] = {
878 	TEGRA_PIN_DVFS_PWM_PX0,
879 };
880 
881 static const unsigned gpio_x1_aud_px1_pins[] = {
882 	TEGRA_PIN_GPIO_X1_AUD_PX1,
883 };
884 
885 static const unsigned dvfs_clk_px2_pins[] = {
886 	TEGRA_PIN_DVFS_CLK_PX2,
887 };
888 
889 static const unsigned gpio_x3_aud_px3_pins[] = {
890 	TEGRA_PIN_GPIO_X3_AUD_PX3,
891 };
892 
893 static const unsigned gpio_x4_aud_px4_pins[] = {
894 	TEGRA_PIN_GPIO_X4_AUD_PX4,
895 };
896 
897 static const unsigned gpio_x5_aud_px5_pins[] = {
898 	TEGRA_PIN_GPIO_X5_AUD_PX5,
899 };
900 
901 static const unsigned gpio_x6_aud_px6_pins[] = {
902 	TEGRA_PIN_GPIO_X6_AUD_PX6,
903 };
904 
905 static const unsigned gpio_x7_aud_px7_pins[] = {
906 	TEGRA_PIN_GPIO_X7_AUD_PX7,
907 };
908 
909 static const unsigned ulpi_clk_py0_pins[] = {
910 	TEGRA_PIN_ULPI_CLK_PY0,
911 };
912 
913 static const unsigned ulpi_dir_py1_pins[] = {
914 	TEGRA_PIN_ULPI_DIR_PY1,
915 };
916 
917 static const unsigned ulpi_nxt_py2_pins[] = {
918 	TEGRA_PIN_ULPI_NXT_PY2,
919 };
920 
921 static const unsigned ulpi_stp_py3_pins[] = {
922 	TEGRA_PIN_ULPI_STP_PY3,
923 };
924 
925 static const unsigned sdmmc1_dat3_py4_pins[] = {
926 	TEGRA_PIN_SDMMC1_DAT3_PY4,
927 };
928 
929 static const unsigned sdmmc1_dat2_py5_pins[] = {
930 	TEGRA_PIN_SDMMC1_DAT2_PY5,
931 };
932 
933 static const unsigned sdmmc1_dat1_py6_pins[] = {
934 	TEGRA_PIN_SDMMC1_DAT1_PY6,
935 };
936 
937 static const unsigned sdmmc1_dat0_py7_pins[] = {
938 	TEGRA_PIN_SDMMC1_DAT0_PY7,
939 };
940 
941 static const unsigned sdmmc1_clk_pz0_pins[] = {
942 	TEGRA_PIN_SDMMC1_CLK_PZ0,
943 };
944 
945 static const unsigned sdmmc1_cmd_pz1_pins[] = {
946 	TEGRA_PIN_SDMMC1_CMD_PZ1,
947 };
948 
949 static const unsigned sys_clk_req_pz5_pins[] = {
950 	TEGRA_PIN_SYS_CLK_REQ_PZ5,
951 };
952 
953 static const unsigned pwr_i2c_scl_pz6_pins[] = {
954 	TEGRA_PIN_PWR_I2C_SCL_PZ6,
955 };
956 
957 static const unsigned pwr_i2c_sda_pz7_pins[] = {
958 	TEGRA_PIN_PWR_I2C_SDA_PZ7,
959 };
960 
961 static const unsigned sdmmc4_dat0_paa0_pins[] = {
962 	TEGRA_PIN_SDMMC4_DAT0_PAA0,
963 };
964 
965 static const unsigned sdmmc4_dat1_paa1_pins[] = {
966 	TEGRA_PIN_SDMMC4_DAT1_PAA1,
967 };
968 
969 static const unsigned sdmmc4_dat2_paa2_pins[] = {
970 	TEGRA_PIN_SDMMC4_DAT2_PAA2,
971 };
972 
973 static const unsigned sdmmc4_dat3_paa3_pins[] = {
974 	TEGRA_PIN_SDMMC4_DAT3_PAA3,
975 };
976 
977 static const unsigned sdmmc4_dat4_paa4_pins[] = {
978 	TEGRA_PIN_SDMMC4_DAT4_PAA4,
979 };
980 
981 static const unsigned sdmmc4_dat5_paa5_pins[] = {
982 	TEGRA_PIN_SDMMC4_DAT5_PAA5,
983 };
984 
985 static const unsigned sdmmc4_dat6_paa6_pins[] = {
986 	TEGRA_PIN_SDMMC4_DAT6_PAA6,
987 };
988 
989 static const unsigned sdmmc4_dat7_paa7_pins[] = {
990 	TEGRA_PIN_SDMMC4_DAT7_PAA7,
991 };
992 
993 static const unsigned pbb0_pins[] = {
994 	TEGRA_PIN_PBB0,
995 };
996 
997 static const unsigned cam_i2c_scl_pbb1_pins[] = {
998 	TEGRA_PIN_CAM_I2C_SCL_PBB1,
999 };
1000 
1001 static const unsigned cam_i2c_sda_pbb2_pins[] = {
1002 	TEGRA_PIN_CAM_I2C_SDA_PBB2,
1003 };
1004 
1005 static const unsigned pbb3_pins[] = {
1006 	TEGRA_PIN_PBB3,
1007 };
1008 
1009 static const unsigned pbb4_pins[] = {
1010 	TEGRA_PIN_PBB4,
1011 };
1012 
1013 static const unsigned pbb5_pins[] = {
1014 	TEGRA_PIN_PBB5,
1015 };
1016 
1017 static const unsigned pbb6_pins[] = {
1018 	TEGRA_PIN_PBB6,
1019 };
1020 
1021 static const unsigned pbb7_pins[] = {
1022 	TEGRA_PIN_PBB7,
1023 };
1024 
1025 static const unsigned cam_mclk_pcc0_pins[] = {
1026 	TEGRA_PIN_CAM_MCLK_PCC0,
1027 };
1028 
1029 static const unsigned pcc1_pins[] = {
1030 	TEGRA_PIN_PCC1,
1031 };
1032 
1033 static const unsigned pcc2_pins[] = {
1034 	TEGRA_PIN_PCC2,
1035 };
1036 
1037 static const unsigned sdmmc4_clk_pcc4_pins[] = {
1038 	TEGRA_PIN_SDMMC4_CLK_PCC4,
1039 };
1040 
1041 static const unsigned clk2_req_pcc5_pins[] = {
1042 	TEGRA_PIN_CLK2_REQ_PCC5,
1043 };
1044 
1045 static const unsigned clk3_out_pee0_pins[] = {
1046 	TEGRA_PIN_CLK3_OUT_PEE0,
1047 };
1048 
1049 static const unsigned clk3_req_pee1_pins[] = {
1050 	TEGRA_PIN_CLK3_REQ_PEE1,
1051 };
1052 
1053 static const unsigned clk1_req_pee2_pins[] = {
1054 	TEGRA_PIN_CLK1_REQ_PEE2,
1055 };
1056 
1057 static const unsigned hdmi_cec_pee3_pins[] = {
1058 	TEGRA_PIN_HDMI_CEC_PEE3,
1059 };
1060 
1061 static const unsigned sdmmc3_clk_lb_out_pee4_pins[] = {
1062 	TEGRA_PIN_SDMMC3_CLK_LB_OUT_PEE4,
1063 };
1064 
1065 static const unsigned sdmmc3_clk_lb_in_pee5_pins[] = {
1066 	TEGRA_PIN_SDMMC3_CLK_LB_IN_PEE5,
1067 };
1068 
1069 static const unsigned core_pwr_req_pins[] = {
1070 	TEGRA_PIN_CORE_PWR_REQ,
1071 };
1072 
1073 static const unsigned cpu_pwr_req_pins[] = {
1074 	TEGRA_PIN_CPU_PWR_REQ,
1075 };
1076 
1077 static const unsigned owr_pins[] = {
1078 	TEGRA_PIN_OWR,
1079 };
1080 
1081 static const unsigned pwr_int_n_pins[] = {
1082 	TEGRA_PIN_PWR_INT_N,
1083 };
1084 
1085 static const unsigned reset_out_n_pins[] = {
1086 	TEGRA_PIN_RESET_OUT_N,
1087 };
1088 
1089 static const unsigned drive_ao1_pins[] = {
1090 	TEGRA_PIN_KB_ROW0_PR0,
1091 	TEGRA_PIN_KB_ROW1_PR1,
1092 	TEGRA_PIN_KB_ROW2_PR2,
1093 	TEGRA_PIN_KB_ROW3_PR3,
1094 	TEGRA_PIN_KB_ROW4_PR4,
1095 	TEGRA_PIN_KB_ROW5_PR5,
1096 	TEGRA_PIN_KB_ROW6_PR6,
1097 	TEGRA_PIN_KB_ROW7_PR7,
1098 	TEGRA_PIN_PWR_I2C_SCL_PZ6,
1099 	TEGRA_PIN_PWR_I2C_SDA_PZ7,
1100 };
1101 
1102 static const unsigned drive_ao2_pins[] = {
1103 	TEGRA_PIN_CLK_32K_OUT_PA0,
1104 	TEGRA_PIN_KB_COL0_PQ0,
1105 	TEGRA_PIN_KB_COL1_PQ1,
1106 	TEGRA_PIN_KB_COL2_PQ2,
1107 	TEGRA_PIN_KB_COL3_PQ3,
1108 	TEGRA_PIN_KB_COL4_PQ4,
1109 	TEGRA_PIN_KB_COL5_PQ5,
1110 	TEGRA_PIN_KB_COL6_PQ6,
1111 	TEGRA_PIN_KB_COL7_PQ7,
1112 	TEGRA_PIN_KB_ROW8_PS0,
1113 	TEGRA_PIN_KB_ROW9_PS1,
1114 	TEGRA_PIN_KB_ROW10_PS2,
1115 	TEGRA_PIN_SYS_CLK_REQ_PZ5,
1116 	TEGRA_PIN_CORE_PWR_REQ,
1117 	TEGRA_PIN_CPU_PWR_REQ,
1118 	TEGRA_PIN_RESET_OUT_N,
1119 };
1120 
1121 static const unsigned drive_at1_pins[] = {
1122 	TEGRA_PIN_GMI_AD8_PH0,
1123 	TEGRA_PIN_GMI_AD9_PH1,
1124 	TEGRA_PIN_GMI_AD10_PH2,
1125 	TEGRA_PIN_GMI_AD11_PH3,
1126 	TEGRA_PIN_GMI_AD12_PH4,
1127 	TEGRA_PIN_GMI_AD13_PH5,
1128 	TEGRA_PIN_GMI_AD14_PH6,
1129 	TEGRA_PIN_GMI_AD15_PH7,
1130 
1131 	TEGRA_PIN_GMI_IORDY_PI5,
1132 	TEGRA_PIN_GMI_CS7_N_PI6,
1133 };
1134 
1135 static const unsigned drive_at2_pins[] = {
1136 	TEGRA_PIN_GMI_AD0_PG0,
1137 	TEGRA_PIN_GMI_AD1_PG1,
1138 	TEGRA_PIN_GMI_AD2_PG2,
1139 	TEGRA_PIN_GMI_AD3_PG3,
1140 	TEGRA_PIN_GMI_AD4_PG4,
1141 	TEGRA_PIN_GMI_AD5_PG5,
1142 	TEGRA_PIN_GMI_AD6_PG6,
1143 	TEGRA_PIN_GMI_AD7_PG7,
1144 
1145 	TEGRA_PIN_GMI_WR_N_PI0,
1146 	TEGRA_PIN_GMI_OE_N_PI1,
1147 	TEGRA_PIN_GMI_CS6_N_PI3,
1148 	TEGRA_PIN_GMI_RST_N_PI4,
1149 	TEGRA_PIN_GMI_WAIT_PI7,
1150 
1151 	TEGRA_PIN_GMI_DQS_P_PJ3,
1152 
1153 	TEGRA_PIN_GMI_ADV_N_PK0,
1154 	TEGRA_PIN_GMI_CLK_PK1,
1155 	TEGRA_PIN_GMI_CS4_N_PK2,
1156 	TEGRA_PIN_GMI_CS2_N_PK3,
1157 	TEGRA_PIN_GMI_CS3_N_PK4,
1158 };
1159 
1160 static const unsigned drive_at3_pins[] = {
1161 	TEGRA_PIN_GMI_WP_N_PC7,
1162 	TEGRA_PIN_GMI_CS0_N_PJ0,
1163 };
1164 
1165 static const unsigned drive_at4_pins[] = {
1166 	TEGRA_PIN_GMI_A17_PB0,
1167 	TEGRA_PIN_GMI_A18_PB1,
1168 	TEGRA_PIN_GMI_CS1_N_PJ2,
1169 	TEGRA_PIN_GMI_A16_PJ7,
1170 	TEGRA_PIN_GMI_A19_PK7,
1171 };
1172 
1173 static const unsigned drive_at5_pins[] = {
1174 	TEGRA_PIN_GEN2_I2C_SCL_PT5,
1175 	TEGRA_PIN_GEN2_I2C_SDA_PT6,
1176 };
1177 
1178 static const unsigned drive_cdev1_pins[] = {
1179 	TEGRA_PIN_CLK1_OUT_PW4,
1180 	TEGRA_PIN_CLK1_REQ_PEE2,
1181 };
1182 
1183 static const unsigned drive_cdev2_pins[] = {
1184 	TEGRA_PIN_CLK2_OUT_PW5,
1185 	TEGRA_PIN_CLK2_REQ_PCC5,
1186 	TEGRA_PIN_SDMMC1_WP_N_PV3,
1187 };
1188 
1189 static const unsigned drive_dap1_pins[] = {
1190 	TEGRA_PIN_DAP1_FS_PN0,
1191 	TEGRA_PIN_DAP1_DIN_PN1,
1192 	TEGRA_PIN_DAP1_DOUT_PN2,
1193 	TEGRA_PIN_DAP1_SCLK_PN3,
1194 };
1195 
1196 static const unsigned drive_dap2_pins[] = {
1197 	TEGRA_PIN_DAP2_FS_PA2,
1198 	TEGRA_PIN_DAP2_SCLK_PA3,
1199 	TEGRA_PIN_DAP2_DIN_PA4,
1200 	TEGRA_PIN_DAP2_DOUT_PA5,
1201 };
1202 
1203 static const unsigned drive_dap3_pins[] = {
1204 	TEGRA_PIN_DAP3_FS_PP0,
1205 	TEGRA_PIN_DAP3_DIN_PP1,
1206 	TEGRA_PIN_DAP3_DOUT_PP2,
1207 	TEGRA_PIN_DAP3_SCLK_PP3,
1208 };
1209 
1210 static const unsigned drive_dap4_pins[] = {
1211 	TEGRA_PIN_DAP4_FS_PP4,
1212 	TEGRA_PIN_DAP4_DIN_PP5,
1213 	TEGRA_PIN_DAP4_DOUT_PP6,
1214 	TEGRA_PIN_DAP4_SCLK_PP7,
1215 };
1216 
1217 static const unsigned drive_dbg_pins[] = {
1218 	TEGRA_PIN_GEN1_I2C_SCL_PC4,
1219 	TEGRA_PIN_GEN1_I2C_SDA_PC5,
1220 	TEGRA_PIN_PU0,
1221 	TEGRA_PIN_PU1,
1222 	TEGRA_PIN_PU2,
1223 	TEGRA_PIN_PU3,
1224 	TEGRA_PIN_PU4,
1225 	TEGRA_PIN_PU5,
1226 	TEGRA_PIN_PU6,
1227 };
1228 
1229 static const unsigned drive_sdio3_pins[] = {
1230 	TEGRA_PIN_SDMMC3_CLK_PA6,
1231 	TEGRA_PIN_SDMMC3_CMD_PA7,
1232 	TEGRA_PIN_SDMMC3_DAT3_PB4,
1233 	TEGRA_PIN_SDMMC3_DAT2_PB5,
1234 	TEGRA_PIN_SDMMC3_DAT1_PB6,
1235 	TEGRA_PIN_SDMMC3_DAT0_PB7,
1236 	TEGRA_PIN_SDMMC3_CLK_LB_OUT_PEE4,
1237 	TEGRA_PIN_SDMMC3_CLK_LB_IN_PEE5,
1238 };
1239 
1240 static const unsigned drive_spi_pins[] = {
1241 	TEGRA_PIN_DVFS_PWM_PX0,
1242 	TEGRA_PIN_GPIO_X1_AUD_PX1,
1243 	TEGRA_PIN_DVFS_CLK_PX2,
1244 	TEGRA_PIN_GPIO_X3_AUD_PX3,
1245 	TEGRA_PIN_GPIO_X4_AUD_PX4,
1246 	TEGRA_PIN_GPIO_X5_AUD_PX5,
1247 	TEGRA_PIN_GPIO_X6_AUD_PX6,
1248 	TEGRA_PIN_GPIO_X7_AUD_PX7,
1249 	TEGRA_PIN_GPIO_W2_AUD_PW2,
1250 	TEGRA_PIN_GPIO_W3_AUD_PW3,
1251 };
1252 
1253 static const unsigned drive_uaa_pins[] = {
1254 	TEGRA_PIN_ULPI_DATA0_PO1,
1255 	TEGRA_PIN_ULPI_DATA1_PO2,
1256 	TEGRA_PIN_ULPI_DATA2_PO3,
1257 	TEGRA_PIN_ULPI_DATA3_PO4,
1258 };
1259 
1260 static const unsigned drive_uab_pins[] = {
1261 	TEGRA_PIN_ULPI_DATA7_PO0,
1262 	TEGRA_PIN_ULPI_DATA4_PO5,
1263 	TEGRA_PIN_ULPI_DATA5_PO6,
1264 	TEGRA_PIN_ULPI_DATA6_PO7,
1265 	TEGRA_PIN_PV0,
1266 	TEGRA_PIN_PV1,
1267 };
1268 
1269 static const unsigned drive_uart2_pins[] = {
1270 	TEGRA_PIN_UART2_TXD_PC2,
1271 	TEGRA_PIN_UART2_RXD_PC3,
1272 	TEGRA_PIN_UART2_CTS_N_PJ5,
1273 	TEGRA_PIN_UART2_RTS_N_PJ6,
1274 };
1275 
1276 static const unsigned drive_uart3_pins[] = {
1277 	TEGRA_PIN_UART3_CTS_N_PA1,
1278 	TEGRA_PIN_UART3_RTS_N_PC0,
1279 	TEGRA_PIN_UART3_TXD_PW6,
1280 	TEGRA_PIN_UART3_RXD_PW7,
1281 };
1282 
1283 static const unsigned drive_sdio1_pins[] = {
1284 	TEGRA_PIN_SDMMC1_DAT3_PY4,
1285 	TEGRA_PIN_SDMMC1_DAT2_PY5,
1286 	TEGRA_PIN_SDMMC1_DAT1_PY6,
1287 	TEGRA_PIN_SDMMC1_DAT0_PY7,
1288 	TEGRA_PIN_SDMMC1_CLK_PZ0,
1289 	TEGRA_PIN_SDMMC1_CMD_PZ1,
1290 };
1291 
1292 static const unsigned drive_ddc_pins[] = {
1293 	TEGRA_PIN_DDC_SCL_PV4,
1294 	TEGRA_PIN_DDC_SDA_PV5,
1295 };
1296 
1297 static const unsigned drive_gma_pins[] = {
1298 	TEGRA_PIN_SDMMC4_CLK_PCC4,
1299 	TEGRA_PIN_SDMMC4_CMD_PT7,
1300 	TEGRA_PIN_SDMMC4_DAT0_PAA0,
1301 	TEGRA_PIN_SDMMC4_DAT1_PAA1,
1302 	TEGRA_PIN_SDMMC4_DAT2_PAA2,
1303 	TEGRA_PIN_SDMMC4_DAT3_PAA3,
1304 	TEGRA_PIN_SDMMC4_DAT4_PAA4,
1305 	TEGRA_PIN_SDMMC4_DAT5_PAA5,
1306 	TEGRA_PIN_SDMMC4_DAT6_PAA6,
1307 	TEGRA_PIN_SDMMC4_DAT7_PAA7,
1308 };
1309 
1310 static const unsigned drive_gme_pins[] = {
1311 	TEGRA_PIN_PBB0,
1312 	TEGRA_PIN_CAM_I2C_SCL_PBB1,
1313 	TEGRA_PIN_CAM_I2C_SDA_PBB2,
1314 	TEGRA_PIN_PBB3,
1315 	TEGRA_PIN_PCC2,
1316 };
1317 
1318 static const unsigned drive_gmf_pins[] = {
1319 	TEGRA_PIN_PBB4,
1320 	TEGRA_PIN_PBB5,
1321 	TEGRA_PIN_PBB6,
1322 	TEGRA_PIN_PBB7,
1323 };
1324 
1325 static const unsigned drive_gmg_pins[] = {
1326 	TEGRA_PIN_CAM_MCLK_PCC0,
1327 };
1328 
1329 static const unsigned drive_gmh_pins[] = {
1330 	TEGRA_PIN_PCC1,
1331 };
1332 
1333 static const unsigned drive_owr_pins[] = {
1334 	TEGRA_PIN_SDMMC3_CD_N_PV2,
1335 };
1336 
1337 static const unsigned drive_uda_pins[] = {
1338 	TEGRA_PIN_ULPI_CLK_PY0,
1339 	TEGRA_PIN_ULPI_DIR_PY1,
1340 	TEGRA_PIN_ULPI_NXT_PY2,
1341 	TEGRA_PIN_ULPI_STP_PY3,
1342 };
1343 
1344 static const unsigned drive_dev3_pins[] = {
1345 	TEGRA_PIN_CLK3_OUT_PEE0,
1346 	TEGRA_PIN_CLK3_REQ_PEE1,
1347 };
1348 
1349 enum tegra_mux {
1350 	TEGRA_MUX_BLINK,
1351 	TEGRA_MUX_CEC,
1352 	TEGRA_MUX_CLDVFS,
1353 	TEGRA_MUX_CLK12,
1354 	TEGRA_MUX_CPU,
1355 	TEGRA_MUX_DAP,
1356 	TEGRA_MUX_DAP1,
1357 	TEGRA_MUX_DAP2,
1358 	TEGRA_MUX_DEV3,
1359 	TEGRA_MUX_DISPLAYA,
1360 	TEGRA_MUX_DISPLAYA_ALT,
1361 	TEGRA_MUX_DISPLAYB,
1362 	TEGRA_MUX_DTV,
1363 	TEGRA_MUX_EMC_DLL,
1364 	TEGRA_MUX_EXTPERIPH1,
1365 	TEGRA_MUX_EXTPERIPH2,
1366 	TEGRA_MUX_EXTPERIPH3,
1367 	TEGRA_MUX_GMI,
1368 	TEGRA_MUX_GMI_ALT,
1369 	TEGRA_MUX_HDA,
1370 	TEGRA_MUX_HSI,
1371 	TEGRA_MUX_I2C1,
1372 	TEGRA_MUX_I2C2,
1373 	TEGRA_MUX_I2C3,
1374 	TEGRA_MUX_I2C4,
1375 	TEGRA_MUX_I2CPWR,
1376 	TEGRA_MUX_I2S0,
1377 	TEGRA_MUX_I2S1,
1378 	TEGRA_MUX_I2S2,
1379 	TEGRA_MUX_I2S3,
1380 	TEGRA_MUX_I2S4,
1381 	TEGRA_MUX_IRDA,
1382 	TEGRA_MUX_KBC,
1383 	TEGRA_MUX_NAND,
1384 	TEGRA_MUX_NAND_ALT,
1385 	TEGRA_MUX_OWR,
1386 	TEGRA_MUX_PMI,
1387 	TEGRA_MUX_PWM0,
1388 	TEGRA_MUX_PWM1,
1389 	TEGRA_MUX_PWM2,
1390 	TEGRA_MUX_PWM3,
1391 	TEGRA_MUX_PWRON,
1392 	TEGRA_MUX_RESET_OUT_N,
1393 	TEGRA_MUX_RSVD1,
1394 	TEGRA_MUX_RSVD2,
1395 	TEGRA_MUX_RSVD3,
1396 	TEGRA_MUX_RSVD4,
1397 	TEGRA_MUX_SDMMC1,
1398 	TEGRA_MUX_SDMMC2,
1399 	TEGRA_MUX_SDMMC3,
1400 	TEGRA_MUX_SDMMC4,
1401 	TEGRA_MUX_SOC,
1402 	TEGRA_MUX_SPDIF,
1403 	TEGRA_MUX_SPI1,
1404 	TEGRA_MUX_SPI2,
1405 	TEGRA_MUX_SPI3,
1406 	TEGRA_MUX_SPI4,
1407 	TEGRA_MUX_SPI5,
1408 	TEGRA_MUX_SPI6,
1409 	TEGRA_MUX_SYSCLK,
1410 	TEGRA_MUX_TRACE,
1411 	TEGRA_MUX_UARTA,
1412 	TEGRA_MUX_UARTB,
1413 	TEGRA_MUX_UARTC,
1414 	TEGRA_MUX_UARTD,
1415 	TEGRA_MUX_ULPI,
1416 	TEGRA_MUX_USB,
1417 	TEGRA_MUX_VGP1,
1418 	TEGRA_MUX_VGP2,
1419 	TEGRA_MUX_VGP3,
1420 	TEGRA_MUX_VGP4,
1421 	TEGRA_MUX_VGP5,
1422 	TEGRA_MUX_VGP6,
1423 	TEGRA_MUX_VI,
1424 	TEGRA_MUX_VI_ALT1,
1425 	TEGRA_MUX_VI_ALT3,
1426 };
1427 
1428 static const char * const blink_groups[] = {
1429 	"clk_32k_out_pa0",
1430 };
1431 
1432 static const char * const cec_groups[] = {
1433 	"hdmi_cec_pee3",
1434 };
1435 
1436 static const char * const cldvfs_groups[] = {
1437 	"gmi_ad9_ph1",
1438 	"gmi_ad10_ph2",
1439 	"kb_row7_pr7",
1440 	"kb_row8_ps0",
1441 	"dvfs_pwm_px0",
1442 	"dvfs_clk_px2",
1443 };
1444 
1445 static const char * const clk12_groups[] = {
1446 	"sdmmc1_wp_n_pv3",
1447 	"sdmmc1_clk_pz0",
1448 };
1449 
1450 static const char * const cpu_groups[] = {
1451 	"cpu_pwr_req",
1452 };
1453 
1454 static const char * const dap_groups[] = {
1455 	"clk1_req_pee2",
1456 	"clk2_req_pcc5",
1457 };
1458 
1459 static const char * const dap1_groups[] = {
1460 	"clk1_req_pee2",
1461 };
1462 
1463 static const char * const dap2_groups[] = {
1464 	"clk1_out_pw4",
1465 	"gpio_x4_aud_px4",
1466 };
1467 
1468 static const char * const dev3_groups[] = {
1469 	"clk3_req_pee1",
1470 };
1471 
1472 static const char * const displaya_groups[] = {
1473 	"dap3_fs_pp0",
1474 	"dap3_din_pp1",
1475 	"dap3_dout_pp2",
1476 	"dap3_sclk_pp3",
1477 	"uart3_rts_n_pc0",
1478 	"pu3",
1479 	"pu4",
1480 	"pu5",
1481 	"pbb3",
1482 	"pbb4",
1483 	"pbb5",
1484 	"pbb6",
1485 	"kb_row3_pr3",
1486 	"kb_row4_pr4",
1487 	"kb_row5_pr5",
1488 	"kb_row6_pr6",
1489 	"kb_col3_pq3",
1490 	"sdmmc3_dat2_pb5",
1491 };
1492 
1493 static const char * const displaya_alt_groups[] = {
1494 	"kb_row6_pr6",
1495 };
1496 
1497 static const char * const displayb_groups[] = {
1498 	"dap3_fs_pp0",
1499 	"dap3_din_pp1",
1500 	"dap3_dout_pp2",
1501 	"dap3_sclk_pp3",
1502 	"pu3",
1503 	"pu4",
1504 	"pu5",
1505 	"pu6",
1506 	"pbb3",
1507 	"pbb4",
1508 	"pbb5",
1509 	"pbb6",
1510 	"kb_row3_pr3",
1511 	"kb_row4_pr4",
1512 	"kb_row5_pr5",
1513 	"kb_row6_pr6",
1514 	"sdmmc3_dat3_pb4",
1515 };
1516 
1517 static const char * const dtv_groups[] = {
1518 	"uart3_cts_n_pa1",
1519 	"uart3_rts_n_pc0",
1520 	"dap4_fs_pp4",
1521 	"dap4_dout_pp6",
1522 	"gmi_wait_pi7",
1523 	"gmi_ad8_ph0",
1524 	"gmi_ad14_ph6",
1525 	"gmi_ad15_ph7",
1526 };
1527 
1528 static const char * const emc_dll_groups[] = {
1529 	"kb_col0_pq0",
1530 	"kb_col1_pq1",
1531 };
1532 
1533 static const char * const extperiph1_groups[] = {
1534 	"clk1_out_pw4",
1535 };
1536 
1537 static const char * const extperiph2_groups[] = {
1538 	"clk2_out_pw5",
1539 };
1540 
1541 static const char * const extperiph3_groups[] = {
1542 	"clk3_out_pee0",
1543 };
1544 
1545 static const char * const gmi_groups[] = {
1546 	"gmi_wp_n_pc7",
1547 
1548 	"gmi_ad0_pg0",
1549 	"gmi_ad1_pg1",
1550 	"gmi_ad2_pg2",
1551 	"gmi_ad3_pg3",
1552 	"gmi_ad4_pg4",
1553 	"gmi_ad5_pg5",
1554 	"gmi_ad6_pg6",
1555 	"gmi_ad7_pg7",
1556 	"gmi_ad8_ph0",
1557 	"gmi_ad9_ph1",
1558 	"gmi_ad10_ph2",
1559 	"gmi_ad11_ph3",
1560 	"gmi_ad12_ph4",
1561 	"gmi_ad13_ph5",
1562 	"gmi_ad14_ph6",
1563 	"gmi_ad15_ph7",
1564 	"gmi_wr_n_pi0",
1565 	"gmi_oe_n_pi1",
1566 	"gmi_cs6_n_pi3",
1567 	"gmi_rst_n_pi4",
1568 	"gmi_iordy_pi5",
1569 	"gmi_cs7_n_pi6",
1570 	"gmi_wait_pi7",
1571 	"gmi_cs0_n_pj0",
1572 	"gmi_cs1_n_pj2",
1573 	"gmi_dqs_p_pj3",
1574 	"gmi_adv_n_pk0",
1575 	"gmi_clk_pk1",
1576 	"gmi_cs4_n_pk2",
1577 	"gmi_cs2_n_pk3",
1578 	"gmi_cs3_n_pk4",
1579 	"gmi_a16_pj7",
1580 	"gmi_a17_pb0",
1581 	"gmi_a18_pb1",
1582 	"gmi_a19_pk7",
1583 	"gen2_i2c_scl_pt5",
1584 	"gen2_i2c_sda_pt6",
1585 	"sdmmc4_dat0_paa0",
1586 	"sdmmc4_dat1_paa1",
1587 	"sdmmc4_dat2_paa2",
1588 	"sdmmc4_dat3_paa3",
1589 	"sdmmc4_dat4_paa4",
1590 	"sdmmc4_dat5_paa5",
1591 	"sdmmc4_dat6_paa6",
1592 	"sdmmc4_dat7_paa7",
1593 	"sdmmc4_clk_pcc4",
1594 	"sdmmc4_cmd_pt7",
1595 	"dap1_fs_pn0",
1596 	"dap1_din_pn1",
1597 	"dap1_dout_pn2",
1598 	"dap1_sclk_pn3",
1599 };
1600 
1601 static const char * const gmi_alt_groups[] = {
1602 	"gmi_wp_n_pc7",
1603 	"gmi_cs3_n_pk4",
1604 	"gmi_a16_pj7",
1605 };
1606 
1607 static const char * const hda_groups[] = {
1608 	"dap1_fs_pn0",
1609 	"dap1_din_pn1",
1610 	"dap1_dout_pn2",
1611 	"dap1_sclk_pn3",
1612 	"dap2_fs_pa2",
1613 	"dap2_sclk_pa3",
1614 	"dap2_din_pa4",
1615 	"dap2_dout_pa5",
1616 };
1617 
1618 static const char * const hsi_groups[] = {
1619 	"ulpi_data0_po1",
1620 	"ulpi_data1_po2",
1621 	"ulpi_data2_po3",
1622 	"ulpi_data3_po4",
1623 	"ulpi_data4_po5",
1624 	"ulpi_data5_po6",
1625 	"ulpi_data6_po7",
1626 	"ulpi_data7_po0",
1627 };
1628 
1629 static const char * const i2c1_groups[] = {
1630 	"gen1_i2c_scl_pc4",
1631 	"gen1_i2c_sda_pc5",
1632 	"gpio_w2_aud_pw2",
1633 	"gpio_w3_aud_pw3",
1634 };
1635 
1636 static const char * const i2c2_groups[] = {
1637 	"gen2_i2c_scl_pt5",
1638 	"gen2_i2c_sda_pt6",
1639 };
1640 
1641 static const char * const i2c3_groups[] = {
1642 	"cam_i2c_scl_pbb1",
1643 	"cam_i2c_sda_pbb2",
1644 };
1645 
1646 static const char * const i2c4_groups[] = {
1647 	"ddc_scl_pv4",
1648 	"ddc_sda_pv5",
1649 };
1650 
1651 static const char * const i2cpwr_groups[] = {
1652 	"pwr_i2c_scl_pz6",
1653 	"pwr_i2c_sda_pz7",
1654 };
1655 
1656 static const char * const i2s0_groups[] = {
1657 	"dap1_fs_pn0",
1658 	"dap1_din_pn1",
1659 	"dap1_dout_pn2",
1660 	"dap1_sclk_pn3",
1661 };
1662 
1663 static const char * const i2s1_groups[] = {
1664 	"dap2_fs_pa2",
1665 	"dap2_sclk_pa3",
1666 	"dap2_din_pa4",
1667 	"dap2_dout_pa5",
1668 };
1669 
1670 static const char * const i2s2_groups[] = {
1671 	"dap3_fs_pp0",
1672 	"dap3_din_pp1",
1673 	"dap3_dout_pp2",
1674 	"dap3_sclk_pp3",
1675 };
1676 
1677 static const char * const i2s3_groups[] = {
1678 	"dap4_fs_pp4",
1679 	"dap4_din_pp5",
1680 	"dap4_dout_pp6",
1681 	"dap4_sclk_pp7",
1682 };
1683 
1684 static const char * const i2s4_groups[] = {
1685 	"pcc1",
1686 	"pbb0",
1687 	"pbb7",
1688 	"pcc2",
1689 };
1690 
1691 static const char * const irda_groups[] = {
1692 	"uart2_rxd_pc3",
1693 	"uart2_txd_pc2",
1694 };
1695 
1696 static const char * const kbc_groups[] = {
1697 	"kb_row0_pr0",
1698 	"kb_row1_pr1",
1699 	"kb_row2_pr2",
1700 	"kb_row3_pr3",
1701 	"kb_row4_pr4",
1702 	"kb_row5_pr5",
1703 	"kb_row6_pr6",
1704 	"kb_row7_pr7",
1705 	"kb_row8_ps0",
1706 	"kb_row9_ps1",
1707 	"kb_row10_ps2",
1708 	"kb_col0_pq0",
1709 	"kb_col1_pq1",
1710 	"kb_col2_pq2",
1711 	"kb_col3_pq3",
1712 	"kb_col4_pq4",
1713 	"kb_col5_pq5",
1714 	"kb_col6_pq6",
1715 	"kb_col7_pq7",
1716 };
1717 
1718 static const char * const nand_groups[] = {
1719 	"gmi_wp_n_pc7",
1720 	"gmi_wait_pi7",
1721 	"gmi_adv_n_pk0",
1722 	"gmi_clk_pk1",
1723 	"gmi_cs0_n_pj0",
1724 	"gmi_cs1_n_pj2",
1725 	"gmi_cs2_n_pk3",
1726 	"gmi_cs3_n_pk4",
1727 	"gmi_cs4_n_pk2",
1728 	"gmi_cs6_n_pi3",
1729 	"gmi_cs7_n_pi6",
1730 	"gmi_ad0_pg0",
1731 	"gmi_ad1_pg1",
1732 	"gmi_ad2_pg2",
1733 	"gmi_ad3_pg3",
1734 	"gmi_ad4_pg4",
1735 	"gmi_ad5_pg5",
1736 	"gmi_ad6_pg6",
1737 	"gmi_ad7_pg7",
1738 	"gmi_ad8_ph0",
1739 	"gmi_ad9_ph1",
1740 	"gmi_ad10_ph2",
1741 	"gmi_ad11_ph3",
1742 	"gmi_ad12_ph4",
1743 	"gmi_ad13_ph5",
1744 	"gmi_ad14_ph6",
1745 	"gmi_ad15_ph7",
1746 	"gmi_wr_n_pi0",
1747 	"gmi_oe_n_pi1",
1748 	"gmi_dqs_p_pj3",
1749 	"gmi_rst_n_pi4",
1750 };
1751 
1752 static const char * const nand_alt_groups[] = {
1753 	"gmi_cs6_n_pi3",
1754 	"gmi_cs7_n_pi6",
1755 	"gmi_rst_n_pi4",
1756 };
1757 
1758 static const char * const owr_groups[] = {
1759 	"pu0",
1760 	"kb_col4_pq4",
1761 	"owr",
1762 	"sdmmc3_cd_n_pv2",
1763 };
1764 
1765 static const char * const pmi_groups[] = {
1766 	"pwr_int_n",
1767 };
1768 
1769 static const char * const pwm0_groups[] = {
1770 	"sdmmc1_dat2_py5",
1771 	"uart3_rts_n_pc0",
1772 	"pu3",
1773 	"gmi_ad8_ph0",
1774 	"sdmmc3_dat3_pb4",
1775 };
1776 
1777 static const char * const pwm1_groups[] = {
1778 	"sdmmc1_dat1_py6",
1779 	"pu4",
1780 	"gmi_ad9_ph1",
1781 	"sdmmc3_dat2_pb5",
1782 };
1783 
1784 static const char * const pwm2_groups[] = {
1785 	"pu5",
1786 	"gmi_ad10_ph2",
1787 	"kb_col3_pq3",
1788 	"sdmmc3_dat1_pb6",
1789 };
1790 
1791 static const char * const pwm3_groups[] = {
1792 	"pu6",
1793 	"gmi_ad11_ph3",
1794 	"sdmmc3_cmd_pa7",
1795 };
1796 
1797 static const char * const pwron_groups[] = {
1798 	"core_pwr_req",
1799 };
1800 
1801 static const char * const reset_out_n_groups[] = {
1802 	"reset_out_n",
1803 };
1804 
1805 static const char * const rsvd1_groups[] = {
1806 	"pv1",
1807 	"hdmi_int_pn7",
1808 	"pu1",
1809 	"pu2",
1810 	"gmi_wp_n_pc7",
1811 	"gmi_adv_n_pk0",
1812 	"gmi_cs0_n_pj0",
1813 	"gmi_cs1_n_pj2",
1814 	"gmi_ad0_pg0",
1815 	"gmi_ad1_pg1",
1816 	"gmi_ad2_pg2",
1817 	"gmi_ad3_pg3",
1818 	"gmi_ad4_pg4",
1819 	"gmi_ad5_pg5",
1820 	"gmi_ad6_pg6",
1821 	"gmi_ad7_pg7",
1822 	"gmi_wr_n_pi0",
1823 	"gmi_oe_n_pi1",
1824 	"gpio_x4_aud_px4",
1825 	"gpio_x5_aud_px5",
1826 	"gpio_x7_aud_px7",
1827 
1828 	"reset_out_n",
1829 };
1830 
1831 static const char * const rsvd2_groups[] = {
1832 	"pv0",
1833 	"pv1",
1834 	"sdmmc1_dat0_py7",
1835 	"clk2_out_pw5",
1836 	"clk2_req_pcc5",
1837 	"hdmi_int_pn7",
1838 	"ddc_scl_pv4",
1839 	"ddc_sda_pv5",
1840 	"uart3_txd_pw6",
1841 	"uart3_rxd_pw7",
1842 	"gen1_i2c_scl_pc4",
1843 	"gen1_i2c_sda_pc5",
1844 	"dap4_fs_pp4",
1845 	"dap4_din_pp5",
1846 	"dap4_dout_pp6",
1847 	"dap4_sclk_pp7",
1848 	"clk3_out_pee0",
1849 	"clk3_req_pee1",
1850 	"gmi_iordy_pi5",
1851 	"gmi_a17_pb0",
1852 	"gmi_a18_pb1",
1853 	"gen2_i2c_scl_pt5",
1854 	"gen2_i2c_sda_pt6",
1855 	"sdmmc4_clk_pcc4",
1856 	"sdmmc4_cmd_pt7",
1857 	"sdmmc4_dat7_paa7",
1858 	"pcc1",
1859 	"pbb7",
1860 	"pcc2",
1861 	"pwr_i2c_scl_pz6",
1862 	"pwr_i2c_sda_pz7",
1863 	"kb_row0_pr0",
1864 	"kb_row1_pr1",
1865 	"kb_row2_pr2",
1866 	"kb_row7_pr7",
1867 	"kb_row8_ps0",
1868 	"kb_row9_ps1",
1869 	"kb_row10_ps2",
1870 	"kb_col1_pq1",
1871 	"kb_col2_pq2",
1872 	"kb_col5_pq5",
1873 	"kb_col6_pq6",
1874 	"kb_col7_pq7",
1875 	"sys_clk_req_pz5",
1876 	"core_pwr_req",
1877 	"cpu_pwr_req",
1878 	"pwr_int_n",
1879 	"owr",
1880 	"spdif_out_pk5",
1881 	"gpio_x1_aud_px1",
1882 	"sdmmc3_clk_pa6",
1883 	"sdmmc3_dat0_pb7",
1884 	"gpio_w2_aud_pw2",
1885 	"usb_vbus_en0_pn4",
1886 	"usb_vbus_en1_pn5",
1887 	"sdmmc3_clk_lb_out_pee4",
1888 	"sdmmc3_clk_lb_in_pee5",
1889 	"reset_out_n",
1890 };
1891 
1892 static const char * const rsvd3_groups[] = {
1893 	"pv0",
1894 	"pv1",
1895 	"sdmmc1_clk_pz0",
1896 	"clk2_out_pw5",
1897 	"clk2_req_pcc5",
1898 	"hdmi_int_pn7",
1899 	"ddc_scl_pv4",
1900 	"ddc_sda_pv5",
1901 	"uart2_rts_n_pj6",
1902 	"uart2_cts_n_pj5",
1903 	"uart3_txd_pw6",
1904 	"uart3_rxd_pw7",
1905 	"pu0",
1906 	"pu1",
1907 	"pu2",
1908 	"gen1_i2c_scl_pc4",
1909 	"gen1_i2c_sda_pc5",
1910 	"dap4_din_pp5",
1911 	"dap4_sclk_pp7",
1912 	"clk3_out_pee0",
1913 	"clk3_req_pee1",
1914 	"pcc1",
1915 	"cam_i2c_scl_pbb1",
1916 	"cam_i2c_sda_pbb2",
1917 	"pbb7",
1918 	"pcc2",
1919 	"pwr_i2c_scl_pz6",
1920 	"pwr_i2c_sda_pz7",
1921 	"kb_row0_pr0",
1922 	"kb_row1_pr1",
1923 	"kb_row2_pr2",
1924 	"kb_row3_pr3",
1925 	"kb_row9_ps1",
1926 	"kb_row10_ps2",
1927 	"clk_32k_out_pa0",
1928 	"sys_clk_req_pz5",
1929 	"core_pwr_req",
1930 	"cpu_pwr_req",
1931 	"pwr_int_n",
1932 	"owr",
1933 	"clk1_req_pee2",
1934 	"clk1_out_pw4",
1935 	"spdif_out_pk5",
1936 	"spdif_in_pk6",
1937 	"dap2_fs_pa2",
1938 	"dap2_sclk_pa3",
1939 	"dap2_din_pa4",
1940 	"dap2_dout_pa5",
1941 	"dvfs_pwm_px0",
1942 	"gpio_x1_aud_px1",
1943 	"gpio_x3_aud_px3",
1944 	"dvfs_clk_px2",
1945 	"sdmmc3_clk_pa6",
1946 	"sdmmc3_dat0_pb7",
1947 	"hdmi_cec_pee3",
1948 	"sdmmc3_cd_n_pv2",
1949 	"usb_vbus_en0_pn4",
1950 	"usb_vbus_en1_pn5",
1951 	"sdmmc3_clk_lb_out_pee4",
1952 	"sdmmc3_clk_lb_in_pee5",
1953 	"reset_out_n",
1954 };
1955 
1956 static const char * const rsvd4_groups[] = {
1957 	"pv0",
1958 	"pv1",
1959 	"sdmmc1_clk_pz0",
1960 	"clk2_out_pw5",
1961 	"clk2_req_pcc5",
1962 	"hdmi_int_pn7",
1963 	"ddc_scl_pv4",
1964 	"ddc_sda_pv5",
1965 	"pu0",
1966 	"pu1",
1967 	"pu2",
1968 	"gen1_i2c_scl_pc4",
1969 	"gen1_i2c_sda_pc5",
1970 	"dap4_fs_pp4",
1971 	"dap4_din_pp5",
1972 	"dap4_dout_pp6",
1973 	"dap4_sclk_pp7",
1974 	"clk3_out_pee0",
1975 	"clk3_req_pee1",
1976 	"gmi_ad0_pg0",
1977 	"gmi_ad1_pg1",
1978 	"gmi_ad2_pg2",
1979 	"gmi_ad3_pg3",
1980 	"gmi_ad4_pg4",
1981 	"gmi_ad12_ph4",
1982 	"gmi_ad13_ph5",
1983 	"gmi_rst_n_pi4",
1984 	"gen2_i2c_scl_pt5",
1985 	"gen2_i2c_sda_pt6",
1986 	"sdmmc4_clk_pcc4",
1987 	"sdmmc4_cmd_pt7",
1988 	"sdmmc4_dat0_paa0",
1989 	"sdmmc4_dat1_paa1",
1990 	"sdmmc4_dat2_paa2",
1991 	"sdmmc4_dat3_paa3",
1992 	"sdmmc4_dat4_paa4",
1993 	"sdmmc4_dat5_paa5",
1994 	"sdmmc4_dat6_paa6",
1995 	"sdmmc4_dat7_paa7",
1996 	"cam_mclk_pcc0",
1997 	"pcc1",
1998 	"cam_i2c_scl_pbb1",
1999 	"cam_i2c_sda_pbb2",
2000 	"pbb3",
2001 	"pbb4",
2002 	"pbb5",
2003 	"pbb6",
2004 	"pbb7",
2005 	"pcc2",
2006 	"pwr_i2c_scl_pz6",
2007 	"pwr_i2c_sda_pz7",
2008 	"kb_row0_pr0",
2009 	"kb_row1_pr1",
2010 	"kb_row2_pr2",
2011 	"kb_col2_pq2",
2012 	"kb_col5_pq5",
2013 	"kb_col6_pq6",
2014 	"kb_col7_pq7",
2015 	"clk_32k_out_pa0",
2016 	"sys_clk_req_pz5",
2017 	"core_pwr_req",
2018 	"cpu_pwr_req",
2019 	"pwr_int_n",
2020 	"owr",
2021 	"dap1_fs_pn0",
2022 	"dap1_din_pn1",
2023 	"dap1_dout_pn2",
2024 	"dap1_sclk_pn3",
2025 	"clk1_req_pee2",
2026 	"clk1_out_pw4",
2027 	"spdif_in_pk6",
2028 	"spdif_out_pk5",
2029 	"dap2_fs_pa2",
2030 	"dap2_sclk_pa3",
2031 	"dap2_din_pa4",
2032 	"dap2_dout_pa5",
2033 	"dvfs_pwm_px0",
2034 	"gpio_x1_aud_px1",
2035 	"gpio_x3_aud_px3",
2036 	"dvfs_clk_px2",
2037 	"gpio_x5_aud_px5",
2038 	"gpio_x6_aud_px6",
2039 	"gpio_x7_aud_px7",
2040 	"sdmmc3_cd_n_pv2",
2041 	"usb_vbus_en0_pn4",
2042 	"usb_vbus_en1_pn5",
2043 	"sdmmc3_clk_lb_in_pee5",
2044 	"sdmmc3_clk_lb_out_pee4",
2045 };
2046 
2047 static const char * const sdmmc1_groups[] = {
2048 
2049 	"sdmmc1_clk_pz0",
2050 	"sdmmc1_cmd_pz1",
2051 	"sdmmc1_dat3_py4",
2052 	"sdmmc1_dat2_py5",
2053 	"sdmmc1_dat1_py6",
2054 	"sdmmc1_dat0_py7",
2055 	"uart3_cts_n_pa1",
2056 	"kb_col5_pq5",
2057 	"sdmmc1_wp_n_pv3",
2058 };
2059 
2060 static const char * const sdmmc2_groups[] = {
2061 	"gmi_iordy_pi5",
2062 	"gmi_clk_pk1",
2063 	"gmi_cs2_n_pk3",
2064 	"gmi_cs3_n_pk4",
2065 	"gmi_cs7_n_pi6",
2066 	"gmi_ad12_ph4",
2067 	"gmi_ad13_ph5",
2068 	"gmi_ad14_ph6",
2069 	"gmi_ad15_ph7",
2070 	"gmi_dqs_p_pj3",
2071 };
2072 
2073 static const char * const sdmmc3_groups[] = {
2074 	"kb_col4_pq4",
2075 	"sdmmc3_clk_pa6",
2076 	"sdmmc3_cmd_pa7",
2077 	"sdmmc3_dat0_pb7",
2078 	"sdmmc3_dat1_pb6",
2079 	"sdmmc3_dat2_pb5",
2080 	"sdmmc3_dat3_pb4",
2081 	"hdmi_cec_pee3",
2082 	"sdmmc3_cd_n_pv2",
2083 	"sdmmc3_clk_lb_in_pee5",
2084 	"sdmmc3_clk_lb_out_pee4",
2085 };
2086 
2087 static const char * const sdmmc4_groups[] = {
2088 	"sdmmc4_clk_pcc4",
2089 	"sdmmc4_cmd_pt7",
2090 	"sdmmc4_dat0_paa0",
2091 	"sdmmc4_dat1_paa1",
2092 	"sdmmc4_dat2_paa2",
2093 	"sdmmc4_dat3_paa3",
2094 	"sdmmc4_dat4_paa4",
2095 	"sdmmc4_dat5_paa5",
2096 	"sdmmc4_dat6_paa6",
2097 	"sdmmc4_dat7_paa7",
2098 };
2099 
2100 static const char * const soc_groups[] = {
2101 	"gmi_cs1_n_pj2",
2102 	"gmi_oe_n_pi1",
2103 	"clk_32k_out_pa0",
2104 	"hdmi_cec_pee3",
2105 };
2106 
2107 static const char * const spdif_groups[] = {
2108 	"sdmmc1_cmd_pz1",
2109 	"sdmmc1_dat3_py4",
2110 	"uart2_rxd_pc3",
2111 	"uart2_txd_pc2",
2112 	"spdif_in_pk6",
2113 	"spdif_out_pk5",
2114 };
2115 
2116 static const char * const spi1_groups[] = {
2117 	"ulpi_clk_py0",
2118 	"ulpi_dir_py1",
2119 	"ulpi_nxt_py2",
2120 	"ulpi_stp_py3",
2121 	"gpio_x3_aud_px3",
2122 	"gpio_x4_aud_px4",
2123 	"gpio_x5_aud_px5",
2124 	"gpio_x6_aud_px6",
2125 	"gpio_x7_aud_px7",
2126 	"gpio_w3_aud_pw3",
2127 };
2128 
2129 static const char * const spi2_groups[] = {
2130 	"ulpi_data4_po5",
2131 	"ulpi_data5_po6",
2132 	"ulpi_data6_po7",
2133 	"ulpi_data7_po0",
2134 	"kb_row4_pr4",
2135 	"kb_row5_pr5",
2136 	"kb_col0_pq0",
2137 	"kb_col1_pq1",
2138 	"kb_col2_pq2",
2139 	"kb_col6_pq6",
2140 	"kb_col7_pq7",
2141 	"gpio_x4_aud_px4",
2142 	"gpio_x5_aud_px5",
2143 	"gpio_x6_aud_px6",
2144 	"gpio_x7_aud_px7",
2145 	"gpio_w2_aud_pw2",
2146 	"gpio_w3_aud_pw3",
2147 };
2148 
2149 static const char * const spi3_groups[] = {
2150 	"ulpi_data0_po1",
2151 	"ulpi_data1_po2",
2152 	"ulpi_data2_po3",
2153 	"ulpi_data3_po4",
2154 	"sdmmc4_dat0_paa0",
2155 	"sdmmc4_dat1_paa1",
2156 	"sdmmc4_dat2_paa2",
2157 	"sdmmc4_dat3_paa3",
2158 	"sdmmc4_dat4_paa4",
2159 	"sdmmc4_dat5_paa5",
2160 	"sdmmc4_dat6_paa6",
2161 	"sdmmc3_clk_pa6",
2162 	"sdmmc3_cmd_pa7",
2163 	"sdmmc3_dat0_pb7",
2164 	"sdmmc3_dat1_pb6",
2165 	"sdmmc3_dat2_pb5",
2166 	"sdmmc3_dat3_pb4",
2167 };
2168 
2169 static const char * const spi4_groups[] = {
2170 	"sdmmc1_cmd_pz1",
2171 	"sdmmc1_dat3_py4",
2172 	"sdmmc1_dat2_py5",
2173 	"sdmmc1_dat1_py6",
2174 	"sdmmc1_dat0_py7",
2175 	"uart2_rxd_pc3",
2176 	"uart2_txd_pc2",
2177 	"uart2_rts_n_pj6",
2178 	"uart2_cts_n_pj5",
2179 	"uart3_txd_pw6",
2180 	"uart3_rxd_pw7",
2181 	"uart3_cts_n_pa1",
2182 	"gmi_wait_pi7",
2183 	"gmi_cs6_n_pi3",
2184 	"gmi_ad5_pg5",
2185 	"gmi_ad6_pg6",
2186 	"gmi_ad7_pg7",
2187 	"gmi_a19_pk7",
2188 	"gmi_wr_n_pi0",
2189 	"sdmmc1_wp_n_pv3",
2190 };
2191 
2192 static const char * const spi5_groups[] = {
2193 	"ulpi_clk_py0",
2194 	"ulpi_dir_py1",
2195 	"ulpi_nxt_py2",
2196 	"ulpi_stp_py3",
2197 	"dap3_fs_pp0",
2198 	"dap3_din_pp1",
2199 	"dap3_dout_pp2",
2200 	"dap3_sclk_pp3",
2201 };
2202 
2203 static const char * const spi6_groups[] = {
2204 	"dvfs_pwm_px0",
2205 	"gpio_x1_aud_px1",
2206 	"gpio_x3_aud_px3",
2207 	"dvfs_clk_px2",
2208 	"gpio_x6_aud_px6",
2209 	"gpio_w2_aud_pw2",
2210 	"gpio_w3_aud_pw3",
2211 };
2212 
2213 static const char * const sysclk_groups[] = {
2214 	"sys_clk_req_pz5",
2215 };
2216 
2217 static const char * const trace_groups[] = {
2218 	"gmi_iordy_pi5",
2219 	"gmi_adv_n_pk0",
2220 	"gmi_clk_pk1",
2221 	"gmi_cs2_n_pk3",
2222 	"gmi_cs4_n_pk2",
2223 	"gmi_a16_pj7",
2224 	"gmi_a17_pb0",
2225 	"gmi_a18_pb1",
2226 	"gmi_a19_pk7",
2227 	"gmi_dqs_p_pj3",
2228 };
2229 
2230 static const char * const uarta_groups[] = {
2231 	"ulpi_data0_po1",
2232 	"ulpi_data1_po2",
2233 	"ulpi_data2_po3",
2234 	"ulpi_data3_po4",
2235 	"ulpi_data4_po5",
2236 	"ulpi_data5_po6",
2237 	"ulpi_data6_po7",
2238 	"ulpi_data7_po0",
2239 	"sdmmc1_cmd_pz1",
2240 	"sdmmc1_dat3_py4",
2241 	"sdmmc1_dat2_py5",
2242 	"sdmmc1_dat1_py6",
2243 	"sdmmc1_dat0_py7",
2244 	"uart2_rxd_pc3",
2245 	"uart2_txd_pc2",
2246 	"uart2_rts_n_pj6",
2247 	"uart2_cts_n_pj5",
2248 	"pu0",
2249 	"pu1",
2250 	"pu2",
2251 	"pu3",
2252 	"pu4",
2253 	"pu5",
2254 	"pu6",
2255 	"kb_row7_pr7",
2256 	"kb_row8_ps0",
2257 	"kb_row9_ps1",
2258 	"kb_row10_ps2",
2259 	"kb_col3_pq3",
2260 	"kb_col4_pq4",
2261 	"sdmmc3_cmd_pa7",
2262 	"sdmmc3_dat1_pb6",
2263 	"sdmmc1_wp_n_pv3",
2264 };
2265 
2266 static const char * const uartb_groups[] = {
2267 	"uart2_rts_n_pj6",
2268 	"uart2_cts_n_pj5",
2269 };
2270 
2271 static const char * const uartc_groups[] = {
2272 	"uart3_txd_pw6",
2273 	"uart3_rxd_pw7",
2274 	"uart3_cts_n_pa1",
2275 	"uart3_rts_n_pc0",
2276 };
2277 
2278 static const char * const uartd_groups[] = {
2279 	"ulpi_clk_py0",
2280 	"ulpi_dir_py1",
2281 	"ulpi_nxt_py2",
2282 	"ulpi_stp_py3",
2283 	"gmi_a16_pj7",
2284 	"gmi_a17_pb0",
2285 	"gmi_a18_pb1",
2286 	"gmi_a19_pk7",
2287 };
2288 
2289 static const char * const ulpi_groups[] = {
2290 	"ulpi_data0_po1",
2291 	"ulpi_data1_po2",
2292 	"ulpi_data2_po3",
2293 	"ulpi_data3_po4",
2294 	"ulpi_data4_po5",
2295 	"ulpi_data5_po6",
2296 	"ulpi_data6_po7",
2297 	"ulpi_data7_po0",
2298 	"ulpi_clk_py0",
2299 	"ulpi_dir_py1",
2300 	"ulpi_nxt_py2",
2301 	"ulpi_stp_py3",
2302 };
2303 
2304 static const char * const usb_groups[] = {
2305 	"pv0",
2306 	"pu6",
2307 	"gmi_cs0_n_pj0",
2308 	"gmi_cs4_n_pk2",
2309 	"gmi_ad11_ph3",
2310 	"kb_col0_pq0",
2311 	"spdif_in_pk6",
2312 	"usb_vbus_en0_pn4",
2313 	"usb_vbus_en1_pn5",
2314 };
2315 
2316 static const char * const vgp1_groups[] = {
2317 	"cam_i2c_scl_pbb1",
2318 };
2319 
2320 static const char * const vgp2_groups[] = {
2321 	"cam_i2c_sda_pbb2",
2322 };
2323 
2324 static const char * const vgp3_groups[] = {
2325 	"pbb3",
2326 };
2327 
2328 static const char * const vgp4_groups[] = {
2329 	"pbb4",
2330 };
2331 
2332 static const char * const vgp5_groups[] = {
2333 	"pbb5",
2334 };
2335 
2336 static const char * const vgp6_groups[] = {
2337 	"pbb6",
2338 };
2339 
2340 static const char * const vi_groups[] = {
2341 	"cam_mclk_pcc0",
2342 	"pbb0",
2343 };
2344 
2345 static const char * const vi_alt1_groups[] = {
2346 	"cam_mclk_pcc0",
2347 	"pbb0",
2348 };
2349 
2350 static const char * const vi_alt3_groups[] = {
2351 	"cam_mclk_pcc0",
2352 	"pbb0",
2353 };
2354 
2355 #define FUNCTION(fname)					\
2356 	{						\
2357 		.name = #fname,				\
2358 		.groups = fname##_groups,		\
2359 		.ngroups = ARRAY_SIZE(fname##_groups),	\
2360 	}
2361 
2362 static const struct tegra_function  tegra114_functions[] = {
2363 	FUNCTION(blink),
2364 	FUNCTION(cec),
2365 	FUNCTION(cldvfs),
2366 	FUNCTION(clk12),
2367 	FUNCTION(cpu),
2368 	FUNCTION(dap),
2369 	FUNCTION(dap1),
2370 	FUNCTION(dap2),
2371 	FUNCTION(dev3),
2372 	FUNCTION(displaya),
2373 	FUNCTION(displaya_alt),
2374 	FUNCTION(displayb),
2375 	FUNCTION(dtv),
2376 	FUNCTION(emc_dll),
2377 	FUNCTION(extperiph1),
2378 	FUNCTION(extperiph2),
2379 	FUNCTION(extperiph3),
2380 	FUNCTION(gmi),
2381 	FUNCTION(gmi_alt),
2382 	FUNCTION(hda),
2383 	FUNCTION(hsi),
2384 	FUNCTION(i2c1),
2385 	FUNCTION(i2c2),
2386 	FUNCTION(i2c3),
2387 	FUNCTION(i2c4),
2388 	FUNCTION(i2cpwr),
2389 	FUNCTION(i2s0),
2390 	FUNCTION(i2s1),
2391 	FUNCTION(i2s2),
2392 	FUNCTION(i2s3),
2393 	FUNCTION(i2s4),
2394 	FUNCTION(irda),
2395 	FUNCTION(kbc),
2396 	FUNCTION(nand),
2397 	FUNCTION(nand_alt),
2398 	FUNCTION(owr),
2399 	FUNCTION(pmi),
2400 	FUNCTION(pwm0),
2401 	FUNCTION(pwm1),
2402 	FUNCTION(pwm2),
2403 	FUNCTION(pwm3),
2404 	FUNCTION(pwron),
2405 	FUNCTION(reset_out_n),
2406 	FUNCTION(rsvd1),
2407 	FUNCTION(rsvd2),
2408 	FUNCTION(rsvd3),
2409 	FUNCTION(rsvd4),
2410 	FUNCTION(sdmmc1),
2411 	FUNCTION(sdmmc2),
2412 	FUNCTION(sdmmc3),
2413 	FUNCTION(sdmmc4),
2414 	FUNCTION(soc),
2415 	FUNCTION(spdif),
2416 	FUNCTION(spi1),
2417 	FUNCTION(spi2),
2418 	FUNCTION(spi3),
2419 	FUNCTION(spi4),
2420 	FUNCTION(spi5),
2421 	FUNCTION(spi6),
2422 	FUNCTION(sysclk),
2423 	FUNCTION(trace),
2424 	FUNCTION(uarta),
2425 	FUNCTION(uartb),
2426 	FUNCTION(uartc),
2427 	FUNCTION(uartd),
2428 	FUNCTION(ulpi),
2429 	FUNCTION(usb),
2430 	FUNCTION(vgp1),
2431 	FUNCTION(vgp2),
2432 	FUNCTION(vgp3),
2433 	FUNCTION(vgp4),
2434 	FUNCTION(vgp5),
2435 	FUNCTION(vgp6),
2436 	FUNCTION(vi),
2437 	FUNCTION(vi_alt1),
2438 	FUNCTION(vi_alt3),
2439 };
2440 
2441 #define DRV_PINGROUP_REG_START			0x868	/* bank 0 */
2442 #define PINGROUP_REG_START			0x3000	/* bank 1 */
2443 
2444 #define PINGROUP_REG_Y(r)			((r) - PINGROUP_REG_START)
2445 #define PINGROUP_REG_N(r)			-1
2446 
2447 #define PINGROUP(pg_name, f0, f1, f2, f3, f_safe, r, od, ior, rcv_sel)	\
2448 	{								\
2449 		.name = #pg_name,					\
2450 		.pins = pg_name##_pins,					\
2451 		.npins = ARRAY_SIZE(pg_name##_pins),			\
2452 		.funcs = {						\
2453 			TEGRA_MUX_##f0,					\
2454 			TEGRA_MUX_##f1,					\
2455 			TEGRA_MUX_##f2,					\
2456 			TEGRA_MUX_##f3,					\
2457 		},							\
2458 		.func_safe = TEGRA_MUX_##f_safe,			\
2459 		.mux_reg = PINGROUP_REG_Y(r),				\
2460 		.mux_bank = 1,						\
2461 		.mux_bit = 0,						\
2462 		.pupd_reg = PINGROUP_REG_Y(r),				\
2463 		.pupd_bank = 1,						\
2464 		.pupd_bit = 2,						\
2465 		.tri_reg = PINGROUP_REG_Y(r),				\
2466 		.tri_bank = 1,						\
2467 		.tri_bit = 4,						\
2468 		.einput_reg = PINGROUP_REG_Y(r),			\
2469 		.einput_bank = 1,					\
2470 		.einput_bit = 5,					\
2471 		.odrain_reg = PINGROUP_REG_##od(r),			\
2472 		.odrain_bank = 1,					\
2473 		.odrain_bit = 6,					\
2474 		.lock_reg = PINGROUP_REG_Y(r),				\
2475 		.lock_bank = 1,						\
2476 		.lock_bit = 7,						\
2477 		.ioreset_reg = PINGROUP_REG_##ior(r),			\
2478 		.ioreset_bank = 1,					\
2479 		.ioreset_bit = 8,					\
2480 		.rcv_sel_reg = PINGROUP_REG_##rcv_sel(r),		\
2481 		.rcv_sel_bank = 1,					\
2482 		.rcv_sel_bit = 9,					\
2483 		.drv_reg = -1,						\
2484 		.drvtype_reg = -1,					\
2485 	}
2486 
2487 #define DRV_PINGROUP_DVRTYPE_Y(r) ((r) - DRV_PINGROUP_REG_START)
2488 #define DRV_PINGROUP_DVRTYPE_N(r) -1
2489 
2490 #define DRV_PINGROUP(pg_name, r, hsm_b, schmitt_b, lpmd_b,		\
2491 			drvdn_b, drvdn_w, drvup_b, drvup_w,		\
2492 			slwr_b, slwr_w, slwf_b, slwf_w,			\
2493 			drvtype)					\
2494 	{								\
2495 		.name = "drive_" #pg_name,				\
2496 		.pins = drive_##pg_name##_pins,				\
2497 		.npins = ARRAY_SIZE(drive_##pg_name##_pins),		\
2498 		.mux_reg = -1,						\
2499 		.pupd_reg = -1,						\
2500 		.tri_reg = -1,						\
2501 		.einput_reg = -1,					\
2502 		.odrain_reg = -1,					\
2503 		.lock_reg = -1,						\
2504 		.ioreset_reg = -1,					\
2505 		.rcv_sel_reg = -1,					\
2506 		.drv_reg = DRV_PINGROUP_DVRTYPE_Y(r),			\
2507 		.drv_bank = 0,						\
2508 		.hsm_bit = hsm_b,					\
2509 		.schmitt_bit = schmitt_b,				\
2510 		.lpmd_bit = lpmd_b,					\
2511 		.drvdn_bit = drvdn_b,					\
2512 		.drvdn_width = drvdn_w,					\
2513 		.drvup_bit = drvup_b,					\
2514 		.drvup_width = drvup_w,					\
2515 		.slwr_bit = slwr_b,					\
2516 		.slwr_width = slwr_w,					\
2517 		.slwf_bit = slwf_b,					\
2518 		.slwf_width = slwf_w,					\
2519 		.drvtype_reg = DRV_PINGROUP_DVRTYPE_##drvtype(r),	\
2520 		.drvtype_bank = 0,					\
2521 		.drvtype_bit = 6,					\
2522 	}
2523 
2524 static const struct tegra_pingroup tegra114_groups[] = {
2525 	/*       pg_name,                f0,         f1,         f2,           f3,          safe,     r,      od, ior, rcv_sel */
2526 	/* FIXME: Fill in correct data in safe column */
2527 	PINGROUP(ulpi_data0_po1,         SPI3,       HSI,        UARTA,        ULPI,        ULPI,     0x3000,  N,  N,  N),
2528 	PINGROUP(ulpi_data1_po2,         SPI3,       HSI,        UARTA,        ULPI,        ULPI,     0x3004,  N,  N,  N),
2529 	PINGROUP(ulpi_data2_po3,         SPI3,       HSI,        UARTA,        ULPI,        ULPI,     0x3008,  N,  N,  N),
2530 	PINGROUP(ulpi_data3_po4,         SPI3,       HSI,        UARTA,        ULPI,        ULPI,     0x300c,  N,  N,  N),
2531 	PINGROUP(ulpi_data4_po5,         SPI2,       HSI,        UARTA,        ULPI,        ULPI,     0x3010,  N,  N,  N),
2532 	PINGROUP(ulpi_data5_po6,         SPI2,       HSI,        UARTA,        ULPI,        ULPI,     0x3014,  N,  N,  N),
2533 	PINGROUP(ulpi_data6_po7,         SPI2,       HSI,        UARTA,        ULPI,        ULPI,     0x3018,  N,  N,  N),
2534 	PINGROUP(ulpi_data7_po0,         SPI2,       HSI,        UARTA,        ULPI,        ULPI,     0x301c,  N,  N,  N),
2535 	PINGROUP(ulpi_clk_py0,           SPI1,       SPI5,       UARTD,        ULPI,        ULPI,     0x3020,  N,  N,  N),
2536 	PINGROUP(ulpi_dir_py1,           SPI1,       SPI5,       UARTD,        ULPI,        ULPI,     0x3024,  N,  N,  N),
2537 	PINGROUP(ulpi_nxt_py2,           SPI1,       SPI5,       UARTD,        ULPI,        ULPI,     0x3028,  N,  N,  N),
2538 	PINGROUP(ulpi_stp_py3,           SPI1,       SPI5,       UARTD,        ULPI,        ULPI,     0x302c,  N,  N,  N),
2539 	PINGROUP(dap3_fs_pp0,            I2S2,       SPI5,       DISPLAYA,     DISPLAYB,    I2S2,     0x3030,  N,  N,  N),
2540 	PINGROUP(dap3_din_pp1,           I2S2,       SPI5,       DISPLAYA,     DISPLAYB,    I2S2,     0x3034,  N,  N,  N),
2541 	PINGROUP(dap3_dout_pp2,          I2S2,       SPI5,       DISPLAYA,     DISPLAYB,    I2S2,     0x3038,  N,  N,  N),
2542 	PINGROUP(dap3_sclk_pp3,          I2S2,       SPI5,       DISPLAYA,     DISPLAYB,    I2S2,     0x303c,  N,  N,  N),
2543 	PINGROUP(pv0,                    USB,        RSVD2,      RSVD3,        RSVD4,       RSVD4,    0x3040,  N,  N,  N),
2544 	PINGROUP(pv1,                    RSVD1,      RSVD2,      RSVD3,        RSVD4,       RSVD4,    0x3044,  N,  N,  N),
2545 	PINGROUP(sdmmc1_clk_pz0,         SDMMC1,     CLK12,      RSVD3,        RSVD4,       RSVD4,    0x3048,  N,  N,  N),
2546 	PINGROUP(sdmmc1_cmd_pz1,         SDMMC1,     SPDIF,      SPI4,         UARTA,       SDMMC1,   0x304c,  N,  N,  N),
2547 	PINGROUP(sdmmc1_dat3_py4,        SDMMC1,     SPDIF,      SPI4,         UARTA,       SDMMC1,   0x3050,  N,  N,  N),
2548 	PINGROUP(sdmmc1_dat2_py5,        SDMMC1,     PWM0,       SPI4,         UARTA,       SDMMC1,   0x3054,  N,  N,  N),
2549 	PINGROUP(sdmmc1_dat1_py6,        SDMMC1,     PWM1,       SPI4,         UARTA,       SDMMC1,   0x3058,  N,  N,  N),
2550 	PINGROUP(sdmmc1_dat0_py7,        SDMMC1,     RSVD2,      SPI4,         UARTA,       RSVD2,    0x305c,  N,  N,  N),
2551 	PINGROUP(clk2_out_pw5,           EXTPERIPH2, RSVD2,      RSVD3,        RSVD4,       RSVD4,    0x3068,  N,  N,  N),
2552 	PINGROUP(clk2_req_pcc5,          DAP,        RSVD2,      RSVD3,        RSVD4,       RSVD4,    0x306c,  N,  N,  N),
2553 	PINGROUP(hdmi_int_pn7,           RSVD1,      RSVD2,      RSVD3,        RSVD4,       RSVD4,    0x3110,  N,  N,  Y),
2554 	PINGROUP(ddc_scl_pv4,            I2C4,       RSVD2,      RSVD3,        RSVD4,       RSVD4,    0x3114,  N,  N,  Y),
2555 	PINGROUP(ddc_sda_pv5,            I2C4,       RSVD2,      RSVD3,        RSVD4,       RSVD4,    0x3118,  N,  N,  Y),
2556 	PINGROUP(uart2_rxd_pc3,          IRDA,       SPDIF,      UARTA,        SPI4,        IRDA,     0x3164,  N,  N,  N),
2557 	PINGROUP(uart2_txd_pc2,          IRDA,       SPDIF,      UARTA,        SPI4,        IRDA,     0x3168,  N,  N,  N),
2558 	PINGROUP(uart2_rts_n_pj6,        UARTA,      UARTB,      RSVD3,        SPI4,        RSVD3,    0x316c,  N,  N,  N),
2559 	PINGROUP(uart2_cts_n_pj5,        UARTA,      UARTB,      RSVD3,        SPI4,        RSVD3,    0x3170,  N,  N,  N),
2560 	PINGROUP(uart3_txd_pw6,          UARTC,      RSVD2,      RSVD3,        SPI4,        RSVD3,    0x3174,  N,  N,  N),
2561 	PINGROUP(uart3_rxd_pw7,          UARTC,      RSVD2,      RSVD3,        SPI4,        RSVD3,    0x3178,  N,  N,  N),
2562 	PINGROUP(uart3_cts_n_pa1,        UARTC,      SDMMC1,     DTV,          SPI4,        UARTC,    0x317c,  N,  N,  N),
2563 	PINGROUP(uart3_rts_n_pc0,        UARTC,      PWM0,       DTV,          DISPLAYA,    UARTC,    0x3180,  N,  N,  N),
2564 	PINGROUP(pu0,                    OWR,        UARTA,      RSVD3,        RSVD4,       RSVD4,    0x3184,  N,  N,  N),
2565 	PINGROUP(pu1,                    RSVD1,      UARTA,      RSVD3,        RSVD4,       RSVD4,    0x3188,  N,  N,  N),
2566 	PINGROUP(pu2,                    RSVD1,      UARTA,      RSVD3,        RSVD4,       RSVD4,    0x318c,  N,  N,  N),
2567 	PINGROUP(pu3,                    PWM0,       UARTA,      DISPLAYA,     DISPLAYB,    PWM0,     0x3190,  N,  N,  N),
2568 	PINGROUP(pu4,                    PWM1,       UARTA,      DISPLAYA,     DISPLAYB,    PWM1,     0x3194,  N,  N,  N),
2569 	PINGROUP(pu5,                    PWM2,       UARTA,      DISPLAYA,     DISPLAYB,    PWM2,     0x3198,  N,  N,  N),
2570 	PINGROUP(pu6,                    PWM3,       UARTA,      USB,          DISPLAYB,    PWM3,     0x319c,  N,  N,  N),
2571 	PINGROUP(gen1_i2c_sda_pc5,       I2C1,       RSVD2,      RSVD3,        RSVD4,       RSVD4,    0x31a0,  Y,  N,  N),
2572 	PINGROUP(gen1_i2c_scl_pc4,       I2C1,       RSVD2,      RSVD3,        RSVD4,       RSVD4,    0x31a4,  Y,  N,  N),
2573 	PINGROUP(dap4_fs_pp4,            I2S3,       RSVD2,      DTV,          RSVD4,       RSVD4,    0x31a8,  N,  N,  N),
2574 	PINGROUP(dap4_din_pp5,           I2S3,       RSVD2,      RSVD3,        RSVD4,       RSVD4,    0x31ac,  N,  N,  N),
2575 	PINGROUP(dap4_dout_pp6,          I2S3,       RSVD2,      DTV,          RSVD4,       RSVD4,    0x31b0,  N,  N,  N),
2576 	PINGROUP(dap4_sclk_pp7,          I2S3,       RSVD2,      RSVD3,        RSVD4,       RSVD4,    0x31b4,  N,  N,  N),
2577 	PINGROUP(clk3_out_pee0,          EXTPERIPH3, RSVD2,      RSVD3,        RSVD4,       RSVD4,    0x31b8,  N,  N,  N),
2578 	PINGROUP(clk3_req_pee1,          DEV3,       RSVD2,      RSVD3,        RSVD4,       RSVD4,    0x31bc,  N,  N,  N),
2579 	PINGROUP(gmi_wp_n_pc7,           RSVD1,      NAND,       GMI,          GMI_ALT,     RSVD1,    0x31c0,  N,  N,  N),
2580 	PINGROUP(gmi_iordy_pi5,          SDMMC2,     RSVD2,      GMI,          TRACE,       RSVD2,    0x31c4,  N,  N,  N),
2581 	PINGROUP(gmi_wait_pi7,           SPI4,       NAND,       GMI,          DTV,         NAND,     0x31c8,  N,  N,  N),
2582 	PINGROUP(gmi_adv_n_pk0,          RSVD1,      NAND,       GMI,          TRACE,       RSVD1,    0x31cc,  N,  N,  N),
2583 	PINGROUP(gmi_clk_pk1,            SDMMC2,     NAND,       GMI,          TRACE,       GMI,      0x31d0,  N,  N,  N),
2584 	PINGROUP(gmi_cs0_n_pj0,          RSVD1,      NAND,       GMI,          USB,         RSVD1,    0x31d4,  N,  N,  N),
2585 	PINGROUP(gmi_cs1_n_pj2,          RSVD1,      NAND,       GMI,          SOC,         RSVD1,    0x31d8,  N,  N,  N),
2586 	PINGROUP(gmi_cs2_n_pk3,          SDMMC2,     NAND,       GMI,          TRACE,       GMI,      0x31dc,  N,  N,  N),
2587 	PINGROUP(gmi_cs3_n_pk4,          SDMMC2,     NAND,       GMI,          GMI_ALT,     GMI,      0x31e0,  N,  N,  N),
2588 	PINGROUP(gmi_cs4_n_pk2,          USB,        NAND,       GMI,          TRACE,       GMI,      0x31e4,  N,  N,  N),
2589 	PINGROUP(gmi_cs6_n_pi3,          NAND,       NAND_ALT,   GMI,          SPI4,        NAND,     0x31e8,  N,  N,  N),
2590 	PINGROUP(gmi_cs7_n_pi6,          NAND,       NAND_ALT,   GMI,          SDMMC2,      NAND,     0x31ec,  N,  N,  N),
2591 	PINGROUP(gmi_ad0_pg0,            RSVD1,      NAND,       GMI,          RSVD4,       RSVD4,    0x31f0,  N,  N,  N),
2592 	PINGROUP(gmi_ad1_pg1,            RSVD1,      NAND,       GMI,          RSVD4,       RSVD4,    0x31f4,  N,  N,  N),
2593 	PINGROUP(gmi_ad2_pg2,            RSVD1,      NAND,       GMI,          RSVD4,       RSVD4,    0x31f8,  N,  N,  N),
2594 	PINGROUP(gmi_ad3_pg3,            RSVD1,      NAND,       GMI,          RSVD4,       RSVD4,    0x31fc,  N,  N,  N),
2595 	PINGROUP(gmi_ad4_pg4,            RSVD1,      NAND,       GMI,          RSVD4,       RSVD4,    0x3200,  N,  N,  N),
2596 	PINGROUP(gmi_ad5_pg5,            RSVD1,      NAND,       GMI,          SPI4,        RSVD1,    0x3204,  N,  N,  N),
2597 	PINGROUP(gmi_ad6_pg6,            RSVD1,      NAND,       GMI,          SPI4,        RSVD1,    0x3208,  N,  N,  N),
2598 	PINGROUP(gmi_ad7_pg7,            RSVD1,      NAND,       GMI,          SPI4,        RSVD1,    0x320c,  N,  N,  N),
2599 	PINGROUP(gmi_ad8_ph0,            PWM0,       NAND,       GMI,          DTV,         GMI,      0x3210,  N,  N,  N),
2600 	PINGROUP(gmi_ad9_ph1,            PWM1,       NAND,       GMI,          CLDVFS,      GMI,      0x3214,  N,  N,  N),
2601 	PINGROUP(gmi_ad10_ph2,           PWM2,       NAND,       GMI,          CLDVFS,      GMI,      0x3218,  N,  N,  N),
2602 	PINGROUP(gmi_ad11_ph3,           PWM3,       NAND,       GMI,          USB,         GMI,      0x321c,  N,  N,  N),
2603 	PINGROUP(gmi_ad12_ph4,           SDMMC2,     NAND,       GMI,          RSVD4,       RSVD4,    0x3220,  N,  N,  N),
2604 	PINGROUP(gmi_ad13_ph5,           SDMMC2,     NAND,       GMI,          RSVD4,       RSVD4,    0x3224,  N,  N,  N),
2605 	PINGROUP(gmi_ad14_ph6,           SDMMC2,     NAND,       GMI,          DTV,         GMI,      0x3228,  N,  N,  N),
2606 	PINGROUP(gmi_ad15_ph7,           SDMMC2,     NAND,       GMI,          DTV,         GMI,      0x322c,  N,  N,  N),
2607 	PINGROUP(gmi_a16_pj7,            UARTD,      TRACE,      GMI,          GMI_ALT,     GMI,      0x3230,  N,  N,  N),
2608 	PINGROUP(gmi_a17_pb0,            UARTD,      RSVD2,      GMI,          TRACE,       RSVD2,    0x3234,  N,  N,  N),
2609 	PINGROUP(gmi_a18_pb1,            UARTD,      RSVD2,      GMI,          TRACE,       RSVD2,    0x3238,  N,  N,  N),
2610 	PINGROUP(gmi_a19_pk7,            UARTD,      SPI4,       GMI,          TRACE,       GMI,      0x323c,  N,  N,  N),
2611 	PINGROUP(gmi_wr_n_pi0,           RSVD1,      NAND,       GMI,          SPI4,        RSVD1,    0x3240,  N,  N,  N),
2612 	PINGROUP(gmi_oe_n_pi1,           RSVD1,      NAND,       GMI,          SOC,         RSVD1,    0x3244,  N,  N,  N),
2613 	PINGROUP(gmi_dqs_p_pj3,          SDMMC2,     NAND,       GMI,          TRACE,       NAND,     0x3248,  N,  N,  N),
2614 	PINGROUP(gmi_rst_n_pi4,          NAND,       NAND_ALT,   GMI,          RSVD4,       RSVD4,    0x324c,  N,  N,  N),
2615 	PINGROUP(gen2_i2c_scl_pt5,       I2C2,       RSVD2,      GMI,          RSVD4,       RSVD4,    0x3250,  Y,  N,  N),
2616 	PINGROUP(gen2_i2c_sda_pt6,       I2C2,       RSVD2,      GMI,          RSVD4,       RSVD4,    0x3254,  Y,  N,  N),
2617 	PINGROUP(sdmmc4_clk_pcc4,        SDMMC4,     RSVD2,      GMI,          RSVD4,       RSVD4,    0x3258,  N,  Y,  N),
2618 	PINGROUP(sdmmc4_cmd_pt7,         SDMMC4,     RSVD2,      GMI,          RSVD4,       RSVD4,    0x325c,  N,  Y,  N),
2619 	PINGROUP(sdmmc4_dat0_paa0,       SDMMC4,     SPI3,       GMI,          RSVD4,       RSVD4,    0x3260,  N,  Y,  N),
2620 	PINGROUP(sdmmc4_dat1_paa1,       SDMMC4,     SPI3,       GMI,          RSVD4,       RSVD4,    0x3264,  N,  Y,  N),
2621 	PINGROUP(sdmmc4_dat2_paa2,       SDMMC4,     SPI3,       GMI,          RSVD4,       RSVD4,    0x3268,  N,  Y,  N),
2622 	PINGROUP(sdmmc4_dat3_paa3,       SDMMC4,     SPI3,       GMI,          RSVD4,       RSVD4,    0x326c,  N,  Y,  N),
2623 	PINGROUP(sdmmc4_dat4_paa4,       SDMMC4,     SPI3,       GMI,          RSVD4,       RSVD4,    0x3270,  N,  Y,  N),
2624 	PINGROUP(sdmmc4_dat5_paa5,       SDMMC4,     SPI3,       GMI,          RSVD4,       RSVD4,    0x3274,  N,  Y,  N),
2625 	PINGROUP(sdmmc4_dat6_paa6,       SDMMC4,     SPI3,       GMI,          RSVD4,       RSVD4,    0x3278,  N,  Y,  N),
2626 	PINGROUP(sdmmc4_dat7_paa7,       SDMMC4,     RSVD2,      GMI,          RSVD4,       RSVD4,    0x327c,  N,  Y,  N),
2627 	PINGROUP(cam_mclk_pcc0,          VI,         VI_ALT1,    VI_ALT3,      RSVD4,       RSVD4,    0x3284,  N,  N,  N),
2628 	PINGROUP(pcc1,                   I2S4,       RSVD2,      RSVD3,        RSVD4,       RSVD4,    0x3288,  N,  N,  N),
2629 	PINGROUP(pbb0,                   I2S4,       VI,         VI_ALT1,      VI_ALT3,     I2S4,     0x328c,  N,  N,  N),
2630 	PINGROUP(cam_i2c_scl_pbb1,       VGP1,       I2C3,       RSVD3,        RSVD4,       RSVD4,    0x3290,  Y,  N,  N),
2631 	PINGROUP(cam_i2c_sda_pbb2,       VGP2,       I2C3,       RSVD3,        RSVD4,       RSVD4,    0x3294,  Y,  N,  N),
2632 	PINGROUP(pbb3,                   VGP3,       DISPLAYA,   DISPLAYB,     RSVD4,       RSVD4,    0x3298,  N,  N,  N),
2633 	PINGROUP(pbb4,                   VGP4,       DISPLAYA,   DISPLAYB,     RSVD4,       RSVD4,    0x329c,  N,  N,  N),
2634 	PINGROUP(pbb5,                   VGP5,       DISPLAYA,   DISPLAYB,     RSVD4,       RSVD4,    0x32a0,  N,  N,  N),
2635 	PINGROUP(pbb6,                   VGP6,       DISPLAYA,   DISPLAYB,     RSVD4,       RSVD4,    0x32a4,  N,  N,  N),
2636 	PINGROUP(pbb7,                   I2S4,       RSVD2,      RSVD3,        RSVD4,       RSVD4,    0x32a8,  N,  N,  N),
2637 	PINGROUP(pcc2,                   I2S4,       RSVD2,      RSVD3,        RSVD4,       RSVD4,    0x32ac,  N,  N,  N),
2638 	PINGROUP(pwr_i2c_scl_pz6,        I2CPWR,     RSVD2,      RSVD3,        RSVD4,       RSVD4,    0x32b4,  Y,  N,  N),
2639 	PINGROUP(pwr_i2c_sda_pz7,        I2CPWR,     RSVD2,      RSVD3,        RSVD4,       RSVD4,    0x32b8,  Y,  N,  N),
2640 	PINGROUP(kb_row0_pr0,            KBC,        RSVD2,      RSVD3,        RSVD4,       RSVD4,    0x32bc,  N,  N,  N),
2641 	PINGROUP(kb_row1_pr1,            KBC,        RSVD2,      RSVD3,        RSVD4,       RSVD4,    0x32c0,  N,  N,  N),
2642 	PINGROUP(kb_row2_pr2,            KBC,        RSVD2,      RSVD3,        RSVD4,       RSVD4,    0x32c4,  N,  N,  N),
2643 	PINGROUP(kb_row3_pr3,            KBC,        DISPLAYA,   RSVD3,        DISPLAYB,    RSVD3,    0x32c8,  N,  N,  N),
2644 	PINGROUP(kb_row4_pr4,            KBC,        DISPLAYA,   SPI2,         DISPLAYB,    KBC,      0x32cc,  N,  N,  N),
2645 	PINGROUP(kb_row5_pr5,            KBC,        DISPLAYA,   SPI2,         DISPLAYB,    KBC,      0x32d0,  N,  N,  N),
2646 	PINGROUP(kb_row6_pr6,            KBC,        DISPLAYA,   DISPLAYA_ALT, DISPLAYB,    KBC,      0x32d4,  N,  N,  N),
2647 	PINGROUP(kb_row7_pr7,            KBC,        RSVD2,      CLDVFS,       UARTA,       RSVD2,    0x32d8,  N,  N,  N),
2648 	PINGROUP(kb_row8_ps0,            KBC,        RSVD2,      CLDVFS,       UARTA,       RSVD2,    0x32dc,  N,  N,  N),
2649 	PINGROUP(kb_row9_ps1,            KBC,        RSVD2,      RSVD3,        UARTA,       RSVD3,    0x32e0,  N,  N,  N),
2650 	PINGROUP(kb_row10_ps2,           KBC,        RSVD2,      RSVD3,        UARTA,       RSVD3,    0x32e4,  N,  N,  N),
2651 	PINGROUP(kb_col0_pq0,            KBC,        USB,        SPI2,         EMC_DLL,     KBC,      0x32fc,  N,  N,  N),
2652 	PINGROUP(kb_col1_pq1,            KBC,        RSVD2,      SPI2,         EMC_DLL,     RSVD2,    0x3300,  N,  N,  N),
2653 	PINGROUP(kb_col2_pq2,            KBC,        RSVD2,      SPI2,         RSVD4,       RSVD2,    0x3304,  N,  N,  N),
2654 	PINGROUP(kb_col3_pq3,            KBC,        DISPLAYA,   PWM2,         UARTA,       KBC,      0x3308,  N,  N,  N),
2655 	PINGROUP(kb_col4_pq4,            KBC,        OWR,        SDMMC3,       UARTA,       KBC,      0x330c,  N,  N,  N),
2656 	PINGROUP(kb_col5_pq5,            KBC,        RSVD2,      SDMMC1,       RSVD4,       RSVD4,    0x3310,  N,  N,  N),
2657 	PINGROUP(kb_col6_pq6,            KBC,        RSVD2,      SPI2,         RSVD4,       RSVD4,    0x3314,  N,  N,  N),
2658 	PINGROUP(kb_col7_pq7,            KBC,        RSVD2,      SPI2,         RSVD4,       RSVD4,    0x3318,  N,  N,  N),
2659 	PINGROUP(clk_32k_out_pa0,        BLINK,      SOC,        RSVD3,        RSVD4,       RSVD4,    0x331c,  N,  N,  N),
2660 	PINGROUP(sys_clk_req_pz5,        SYSCLK,     RSVD2,      RSVD3,        RSVD4,       RSVD4,    0x3320,  N,  N,  N),
2661 	PINGROUP(core_pwr_req,           PWRON,      RSVD2,      RSVD3,        RSVD4,       RSVD4,    0x3324,  N,  N,  N),
2662 	PINGROUP(cpu_pwr_req,            CPU,        RSVD2,      RSVD3,        RSVD4,       RSVD4,    0x3328,  N,  N,  N),
2663 	PINGROUP(pwr_int_n,              PMI,        RSVD2,      RSVD3,        RSVD4,       RSVD4,    0x332c,  N,  N,  N),
2664 	PINGROUP(owr,                    OWR,        RSVD2,      RSVD3,        RSVD4,       RSVD4,    0x3334,  N,  N,  Y),
2665 	PINGROUP(dap1_fs_pn0,            I2S0,       HDA,        GMI,          RSVD4,       RSVD4,    0x3338,  N,  N,  N),
2666 	PINGROUP(dap1_din_pn1,           I2S0,       HDA,        GMI,          RSVD4,       RSVD4,    0x333c,  N,  N,  N),
2667 	PINGROUP(dap1_dout_pn2,          I2S0,       HDA,        GMI,          RSVD4,       RSVD4,    0x3340,  N,  N,  N),
2668 	PINGROUP(dap1_sclk_pn3,          I2S0,       HDA,        GMI,          RSVD4,       RSVD4,    0x3344,  N,  N,  N),
2669 	PINGROUP(clk1_req_pee2,          DAP,        DAP1,       RSVD3,        RSVD4,       RSVD4,    0x3348,  N,  N,  N),
2670 	PINGROUP(clk1_out_pw4,           EXTPERIPH1, DAP2,       RSVD3,        RSVD4,       RSVD4,    0x334c,  N,  N,  N),
2671 	PINGROUP(spdif_in_pk6,           SPDIF,      USB,        RSVD3,        RSVD4,       RSVD4,    0x3350,  N,  N,  N),
2672 	PINGROUP(spdif_out_pk5,          SPDIF,      RSVD2,      RSVD3,        RSVD4,       RSVD4,    0x3354,  N,  N,  N),
2673 	PINGROUP(dap2_fs_pa2,            I2S1,       HDA,        RSVD3,        RSVD4,       RSVD4,    0x3358,  N,  N,  N),
2674 	PINGROUP(dap2_din_pa4,           I2S1,       HDA,        RSVD3,        RSVD4,       RSVD4,    0x335c,  N,  N,  N),
2675 	PINGROUP(dap2_dout_pa5,          I2S1,       HDA,        RSVD3,        RSVD4,       RSVD4,    0x3360,  N,  N,  N),
2676 	PINGROUP(dap2_sclk_pa3,          I2S1,       HDA,        RSVD3,        RSVD4,       RSVD4,    0x3364,  N,  N,  N),
2677 	PINGROUP(dvfs_pwm_px0,           SPI6,       CLDVFS,     RSVD3,        RSVD4,       RSVD4,    0x3368,  N,  N,  N),
2678 	PINGROUP(gpio_x1_aud_px1,        SPI6,       RSVD2,      RSVD3,        RSVD4,       RSVD4,    0x336c,  N,  N,  N),
2679 	PINGROUP(gpio_x3_aud_px3,        SPI6,       SPI1,       RSVD3,        RSVD4,       RSVD4,    0x3370,  N,  N,  N),
2680 	PINGROUP(dvfs_clk_px2,           SPI6,       CLDVFS,     RSVD3,        RSVD4,       RSVD4,    0x3374,  N,  N,  N),
2681 	PINGROUP(gpio_x4_aud_px4,        RSVD1,      SPI1,       SPI2,         DAP2,        RSVD1,    0x3378,  N,  N,  N),
2682 	PINGROUP(gpio_x5_aud_px5,        RSVD1,      SPI1,       SPI2,         RSVD4,       RSVD1,    0x337c,  N,  N,  N),
2683 	PINGROUP(gpio_x6_aud_px6,        SPI6,       SPI1,       SPI2,         RSVD4,       RSVD4,    0x3380,  N,  N,  N),
2684 	PINGROUP(gpio_x7_aud_px7,        RSVD1,      SPI1,       SPI2,         RSVD4,       RSVD4,    0x3384,  N,  N,  N),
2685 	PINGROUP(sdmmc3_clk_pa6,         SDMMC3,     RSVD2,      RSVD3,        SPI3,        RSVD3,    0x3390,  N,  N,  N),
2686 	PINGROUP(sdmmc3_cmd_pa7,         SDMMC3,     PWM3,       UARTA,        SPI3,        SDMMC3,   0x3394,  N,  N,  N),
2687 	PINGROUP(sdmmc3_dat0_pb7,        SDMMC3,     RSVD2,      RSVD3,        SPI3,        RSVD3,    0x3398,  N,  N,  N),
2688 	PINGROUP(sdmmc3_dat1_pb6,        SDMMC3,     PWM2,       UARTA,        SPI3,        SDMMC3,   0x339c,  N,  N,  N),
2689 	PINGROUP(sdmmc3_dat2_pb5,        SDMMC3,     PWM1,       DISPLAYA,     SPI3,        SDMMC3,   0x33a0,  N,  N,  N),
2690 	PINGROUP(sdmmc3_dat3_pb4,        SDMMC3,     PWM0,       DISPLAYB,     SPI3,        SDMMC3,   0x33a4,  N,  N,  N),
2691 	PINGROUP(hdmi_cec_pee3,          CEC,        SDMMC3,     RSVD3,        SOC,         RSVD3,    0x33e0,  Y,  N,  N),
2692 	PINGROUP(sdmmc1_wp_n_pv3,        SDMMC1,     CLK12,      SPI4,         UARTA,       SDMMC1,   0x33e4,  N,  N,  N),
2693 	PINGROUP(sdmmc3_cd_n_pv2,        SDMMC3,     OWR,        RSVD3,        RSVD4,       RSVD4,    0x33e8,  N,  N,  N),
2694 	PINGROUP(gpio_w2_aud_pw2,        SPI6,       RSVD2,      SPI2,         I2C1,        RSVD2,    0x33ec,  N,  N,  N),
2695 	PINGROUP(gpio_w3_aud_pw3,        SPI6,       SPI1,       SPI2,         I2C1,        SPI6,     0x33f0,  N,  N,  N),
2696 	PINGROUP(usb_vbus_en0_pn4,       USB,        RSVD2,      RSVD3,        RSVD4,       RSVD4,    0x33f4,  Y,  N,  N),
2697 	PINGROUP(usb_vbus_en1_pn5,       USB,        RSVD2,      RSVD3,        RSVD4,       RSVD4,    0x33f8,  Y,  N,  N),
2698 	PINGROUP(sdmmc3_clk_lb_in_pee5,  SDMMC3,     RSVD2,      RSVD3,        RSVD4,       RSVD4,    0x33fc,  N,  N,  N),
2699 	PINGROUP(sdmmc3_clk_lb_out_pee4, SDMMC3,     RSVD2,      RSVD3,        RSVD4,       RSVD4,    0x3400,  N,  N,  N),
2700 	PINGROUP(reset_out_n,            RSVD1,      RSVD2,      RSVD3,        RESET_OUT_N, RSVD3,    0x3408,  N,  N,  N),
2701 
2702 	/* 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 */
2703 	DRV_PINGROUP(ao1,   0x868,  2,  3,  4,  12,  5,  20,  5,  28,  2,  30,  2,  N),
2704 	DRV_PINGROUP(ao2,   0x86c,  2,  3,  4,  12,  5,  20,  5,  28,  2,  30,  2,  N),
2705 	DRV_PINGROUP(at1,   0x870,  2,  3,  4,  12,  7,  20,  7,  28,  2,  30,  2,  Y),
2706 	DRV_PINGROUP(at2,   0x874,  2,  3,  4,  12,  7,  20,  7,  28,  2,  30,  2,  Y),
2707 	DRV_PINGROUP(at3,   0x878,  2,  3,  4,  12,  7,  20,  7,  28,  2,  30,  2,  Y),
2708 	DRV_PINGROUP(at4,   0x87c,  2,  3,  4,  12,  7,  20,  7,  28,  2,  30,  2,  Y),
2709 	DRV_PINGROUP(at5,   0x880,  2,  3,  4,  14,  5,  19,  5,  28,  2,  30,  2,  N),
2710 	DRV_PINGROUP(cdev1, 0x884,  2,  3,  4,  12,  5,  20,  5,  28,  2,  30,  2,  N),
2711 	DRV_PINGROUP(cdev2, 0x888,  2,  3,  4,  12,  5,  20,  5,  28,  2,  30,  2,  N),
2712 	DRV_PINGROUP(dap1,  0x890,  2,  3,  4,  12,  5,  20,  5,  28,  2,  30,  2,  N),
2713 	DRV_PINGROUP(dap2,  0x894,  2,  3,  4,  12,  5,  20,  5,  28,  2,  30,  2,  N),
2714 	DRV_PINGROUP(dap3,  0x898,  2,  3,  4,  12,  5,  20,  5,  28,  2,  30,  2,  N),
2715 	DRV_PINGROUP(dap4,  0x89c,  2,  3,  4,  12,  5,  20,  5,  28,  2,  30,  2,  N),
2716 	DRV_PINGROUP(dbg,   0x8a0,  2,  3,  4,  12,  5,  20,  5,  28,  2,  30,  2,  N),
2717 	DRV_PINGROUP(sdio3, 0x8b0,  2,  3, -1,  12,  7,  20,  7,  28,  2,  30,  2,  N),
2718 	DRV_PINGROUP(spi,   0x8b4,  2,  3,  4,  12,  5,  20,  5,  28,  2,  30,  2,  N),
2719 	DRV_PINGROUP(uaa,   0x8b8,  2,  3,  4,  12,  5,  20,  5,  28,  2,  30,  2,  N),
2720 	DRV_PINGROUP(uab,   0x8bc,  2,  3,  4,  12,  5,  20,  5,  28,  2,  30,  2,  N),
2721 	DRV_PINGROUP(uart2, 0x8c0,  2,  3,  4,  12,  5,  20,  5,  28,  2,  30,  2,  N),
2722 	DRV_PINGROUP(uart3, 0x8c4,  2,  3,  4,  12,  5,  20,  5,  28,  2,  30,  2,  N),
2723 	DRV_PINGROUP(sdio1, 0x8ec,  2,  3, -1,  12,  7,  20,  7,  28,  2,  30,  2,  N),
2724 	DRV_PINGROUP(ddc,   0x8fc,  2,  3,  4,  12,  5,  20,  5,  28,  2,  30,  2,  N),
2725 	DRV_PINGROUP(gma,   0x900,  2,  3,  4,  14,  5,  20,  5,  28,  2,  30,  2,  Y),
2726 	DRV_PINGROUP(gme,   0x910,  2,  3,  4,  14,  5,  19,  5,  28,  2,  30,  2,  N),
2727 	DRV_PINGROUP(gmf,   0x914,  2,  3,  4,  14,  5,  19,  5,  28,  2,  30,  2,  N),
2728 	DRV_PINGROUP(gmg,   0x918,  2,  3,  4,  14,  5,  19,  5,  28,  2,  30,  2,  N),
2729 	DRV_PINGROUP(gmh,   0x91c,  2,  3,  4,  14,  5,  19,  5,  28,  2,  30,  2,  N),
2730 	DRV_PINGROUP(owr,   0x920,  2,  3,  4,  12,  5,  20,  5,  28,  2,  30,  2,  N),
2731 	DRV_PINGROUP(uda,   0x924,  2,  3,  4,  12,  5,  20,  5,  28,  2,  30,  2,  N),
2732 };
2733 
2734 static const struct tegra_pinctrl_soc_data tegra114_pinctrl = {
2735 	.ngpios = NUM_GPIOS,
2736 	.pins = tegra114_pins,
2737 	.npins = ARRAY_SIZE(tegra114_pins),
2738 	.functions = tegra114_functions,
2739 	.nfunctions = ARRAY_SIZE(tegra114_functions),
2740 	.groups = tegra114_groups,
2741 	.ngroups = ARRAY_SIZE(tegra114_groups),
2742 };
2743 
tegra114_pinctrl_probe(struct platform_device * pdev)2744 static int tegra114_pinctrl_probe(struct platform_device *pdev)
2745 {
2746 	return tegra_pinctrl_probe(pdev, &tegra114_pinctrl);
2747 }
2748 
2749 static struct of_device_id tegra114_pinctrl_of_match[] = {
2750 	{ .compatible = "nvidia,tegra114-pinmux", },
2751 	{ },
2752 };
2753 MODULE_DEVICE_TABLE(of, tegra114_pinctrl_of_match);
2754 
2755 static struct platform_driver tegra114_pinctrl_driver = {
2756 	.driver = {
2757 		.name = "tegra114-pinctrl",
2758 		.owner = THIS_MODULE,
2759 		.of_match_table = tegra114_pinctrl_of_match,
2760 	},
2761 	.probe = tegra114_pinctrl_probe,
2762 	.remove = tegra_pinctrl_remove,
2763 };
2764 module_platform_driver(tegra114_pinctrl_driver);
2765 
2766 MODULE_ALIAS("platform:tegra114-pinctrl");
2767 MODULE_AUTHOR("Pritesh Raithatha <praithatha@nvidia.com>");
2768 MODULE_DESCRIPTION("NVIDIA Tegra114 pincontrol driver");
2769 MODULE_LICENSE("GPL v2");
2770