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