xref: /openbmc/linux/drivers/pinctrl/qcom/pinctrl-ipq8074.c (revision 2612e3bbc0386368a850140a6c9b990cd496a5ec)
197fb5e8dSThomas Gleixner // SPDX-License-Identifier: GPL-2.0-only
2d2a2c808SVaradarajan Narayanan /*
3d2a2c808SVaradarajan Narayanan  * Copyright (c) 2017, The Linux Foundation. All rights reserved.
4d2a2c808SVaradarajan Narayanan  */
5d2a2c808SVaradarajan Narayanan 
6d2a2c808SVaradarajan Narayanan #include <linux/module.h>
7d2a2c808SVaradarajan Narayanan #include <linux/of.h>
8d2a2c808SVaradarajan Narayanan #include <linux/platform_device.h>
9d2a2c808SVaradarajan Narayanan 
10d2a2c808SVaradarajan Narayanan #include "pinctrl-msm.h"
11d2a2c808SVaradarajan Narayanan 
12d2a2c808SVaradarajan Narayanan #define REG_SIZE 0x1000
13d2a2c808SVaradarajan Narayanan #define PINGROUP(id, f1, f2, f3, f4, f5, f6, f7, f8, f9)	\
14d2a2c808SVaradarajan Narayanan 	{					        \
15*6a16d1a5SRohit Agarwal 		.grp = PINCTRL_PINGROUP("gpio" #id, 	\
16*6a16d1a5SRohit Agarwal 			gpio##id##_pins, 		\
17*6a16d1a5SRohit Agarwal 			ARRAY_SIZE(gpio##id##_pins)),	\
18d2a2c808SVaradarajan Narayanan 		.funcs = (int[]){			\
19d2a2c808SVaradarajan Narayanan 			msm_mux_gpio, /* gpio mode */	\
20d2a2c808SVaradarajan Narayanan 			msm_mux_##f1,			\
21d2a2c808SVaradarajan Narayanan 			msm_mux_##f2,			\
22d2a2c808SVaradarajan Narayanan 			msm_mux_##f3,			\
23d2a2c808SVaradarajan Narayanan 			msm_mux_##f4,			\
24d2a2c808SVaradarajan Narayanan 			msm_mux_##f5,			\
25d2a2c808SVaradarajan Narayanan 			msm_mux_##f6,			\
26d2a2c808SVaradarajan Narayanan 			msm_mux_##f7,			\
27d2a2c808SVaradarajan Narayanan 			msm_mux_##f8,			\
28d2a2c808SVaradarajan Narayanan 			msm_mux_##f9			\
29d2a2c808SVaradarajan Narayanan 		},				        \
30d2a2c808SVaradarajan Narayanan 		.nfuncs = 10,				\
31d2a2c808SVaradarajan Narayanan 		.ctl_reg = REG_SIZE * id,		\
32d2a2c808SVaradarajan Narayanan 		.io_reg = 0x4 + REG_SIZE * id,		\
33d2a2c808SVaradarajan Narayanan 		.intr_cfg_reg = 0x8 + REG_SIZE * id,		\
34d2a2c808SVaradarajan Narayanan 		.intr_status_reg = 0xc + REG_SIZE * id,	\
35d2a2c808SVaradarajan Narayanan 		.intr_target_reg = 0x8 + REG_SIZE * id,	\
36d2a2c808SVaradarajan Narayanan 		.mux_bit = 2,			\
37d2a2c808SVaradarajan Narayanan 		.pull_bit = 0,			\
38d2a2c808SVaradarajan Narayanan 		.drv_bit = 6,			\
39d2a2c808SVaradarajan Narayanan 		.oe_bit = 9,			\
40d2a2c808SVaradarajan Narayanan 		.in_bit = 0,			\
41d2a2c808SVaradarajan Narayanan 		.out_bit = 1,			\
42d2a2c808SVaradarajan Narayanan 		.intr_enable_bit = 0,		\
43d2a2c808SVaradarajan Narayanan 		.intr_status_bit = 0,		\
44d2a2c808SVaradarajan Narayanan 		.intr_target_bit = 5,		\
4589b060a0SKathiravan T 		.intr_target_kpss_val = 3,	\
46d2a2c808SVaradarajan Narayanan 		.intr_raw_status_bit = 4,	\
47d2a2c808SVaradarajan Narayanan 		.intr_polarity_bit = 1,		\
48d2a2c808SVaradarajan Narayanan 		.intr_detection_bit = 2,	\
49d2a2c808SVaradarajan Narayanan 		.intr_detection_width = 2,	\
50d2a2c808SVaradarajan Narayanan 	}
51d2a2c808SVaradarajan Narayanan 
52d2a2c808SVaradarajan Narayanan static const struct pinctrl_pin_desc ipq8074_pins[] = {
53d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(0, "GPIO_0"),
54d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(1, "GPIO_1"),
55d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(2, "GPIO_2"),
56d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(3, "GPIO_3"),
57d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(4, "GPIO_4"),
58d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(5, "GPIO_5"),
59d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(6, "GPIO_6"),
60d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(7, "GPIO_7"),
61d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(8, "GPIO_8"),
62d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(9, "GPIO_9"),
63d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(10, "GPIO_10"),
64d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(11, "GPIO_11"),
65d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(12, "GPIO_12"),
66d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(13, "GPIO_13"),
67d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(14, "GPIO_14"),
68d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(15, "GPIO_15"),
69d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(16, "GPIO_16"),
70d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(17, "GPIO_17"),
71d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(18, "GPIO_18"),
72d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(19, "GPIO_19"),
73d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(20, "GPIO_20"),
74d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(21, "GPIO_21"),
75d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(22, "GPIO_22"),
76d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(23, "GPIO_23"),
77d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(24, "GPIO_24"),
78d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(25, "GPIO_25"),
79d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(26, "GPIO_26"),
80d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(27, "GPIO_27"),
81d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(28, "GPIO_28"),
82d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(29, "GPIO_29"),
83d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(30, "GPIO_30"),
84d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(31, "GPIO_31"),
85d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(32, "GPIO_32"),
86d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(33, "GPIO_33"),
87d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(34, "GPIO_34"),
88d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(35, "GPIO_35"),
89d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(36, "GPIO_36"),
90d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(37, "GPIO_37"),
91d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(38, "GPIO_38"),
92d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(39, "GPIO_39"),
93d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(40, "GPIO_40"),
94d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(41, "GPIO_41"),
95d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(42, "GPIO_42"),
96d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(43, "GPIO_43"),
97d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(44, "GPIO_44"),
98d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(45, "GPIO_45"),
99d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(46, "GPIO_46"),
100d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(47, "GPIO_47"),
101d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(48, "GPIO_48"),
102d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(49, "GPIO_49"),
103d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(50, "GPIO_50"),
104d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(51, "GPIO_51"),
105d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(52, "GPIO_52"),
106d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(53, "GPIO_53"),
107d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(54, "GPIO_54"),
108d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(55, "GPIO_55"),
109d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(56, "GPIO_56"),
110d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(57, "GPIO_57"),
111d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(58, "GPIO_58"),
112d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(59, "GPIO_59"),
113d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(60, "GPIO_60"),
114d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(61, "GPIO_61"),
115d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(62, "GPIO_62"),
116d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(63, "GPIO_63"),
117d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(64, "GPIO_64"),
118d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(65, "GPIO_65"),
119d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(66, "GPIO_66"),
120d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(67, "GPIO_67"),
121d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(68, "GPIO_68"),
122d2a2c808SVaradarajan Narayanan 	PINCTRL_PIN(69, "GPIO_69"),
123d2a2c808SVaradarajan Narayanan };
124d2a2c808SVaradarajan Narayanan 
125d2a2c808SVaradarajan Narayanan #define DECLARE_MSM_GPIO_PINS(pin) \
126d2a2c808SVaradarajan Narayanan 	static const unsigned int gpio##pin##_pins[] = { pin }
127d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(0);
128d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(1);
129d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(2);
130d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(3);
131d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(4);
132d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(5);
133d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(6);
134d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(7);
135d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(8);
136d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(9);
137d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(10);
138d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(11);
139d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(12);
140d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(13);
141d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(14);
142d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(15);
143d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(16);
144d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(17);
145d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(18);
146d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(19);
147d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(20);
148d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(21);
149d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(22);
150d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(23);
151d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(24);
152d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(25);
153d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(26);
154d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(27);
155d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(28);
156d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(29);
157d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(30);
158d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(31);
159d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(32);
160d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(33);
161d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(34);
162d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(35);
163d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(36);
164d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(37);
165d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(38);
166d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(39);
167d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(40);
168d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(41);
169d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(42);
170d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(43);
171d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(44);
172d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(45);
173d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(46);
174d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(47);
175d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(48);
176d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(49);
177d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(50);
178d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(51);
179d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(52);
180d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(53);
181d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(54);
182d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(55);
183d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(56);
184d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(57);
185d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(58);
186d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(59);
187d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(60);
188d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(61);
189d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(62);
190d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(63);
191d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(64);
192d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(65);
193d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(66);
194d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(67);
195d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(68);
196d2a2c808SVaradarajan Narayanan DECLARE_MSM_GPIO_PINS(69);
197d2a2c808SVaradarajan Narayanan 
198d2a2c808SVaradarajan Narayanan enum ipq8074_functions {
199d2a2c808SVaradarajan Narayanan 	msm_mux_atest_char,
200d2a2c808SVaradarajan Narayanan 	msm_mux_atest_char0,
201d2a2c808SVaradarajan Narayanan 	msm_mux_atest_char1,
202d2a2c808SVaradarajan Narayanan 	msm_mux_atest_char2,
203d2a2c808SVaradarajan Narayanan 	msm_mux_atest_char3,
204d2a2c808SVaradarajan Narayanan 	msm_mux_audio_rxbclk,
205d2a2c808SVaradarajan Narayanan 	msm_mux_audio_rxd,
206d2a2c808SVaradarajan Narayanan 	msm_mux_audio_rxfsync,
207d2a2c808SVaradarajan Narayanan 	msm_mux_audio_rxmclk,
208d2a2c808SVaradarajan Narayanan 	msm_mux_audio_txbclk,
209d2a2c808SVaradarajan Narayanan 	msm_mux_audio_txd,
210d2a2c808SVaradarajan Narayanan 	msm_mux_audio_txfsync,
211d2a2c808SVaradarajan Narayanan 	msm_mux_audio_txmclk,
212d2a2c808SVaradarajan Narayanan 	msm_mux_blsp0_i2c,
213d2a2c808SVaradarajan Narayanan 	msm_mux_blsp0_spi,
214d2a2c808SVaradarajan Narayanan 	msm_mux_blsp0_uart,
215d2a2c808SVaradarajan Narayanan 	msm_mux_blsp1_i2c,
216d2a2c808SVaradarajan Narayanan 	msm_mux_blsp1_spi,
217d2a2c808SVaradarajan Narayanan 	msm_mux_blsp1_uart,
218d2a2c808SVaradarajan Narayanan 	msm_mux_blsp2_i2c,
219d2a2c808SVaradarajan Narayanan 	msm_mux_blsp2_spi,
220d2a2c808SVaradarajan Narayanan 	msm_mux_blsp2_uart,
221d2a2c808SVaradarajan Narayanan 	msm_mux_blsp3_i2c,
222d2a2c808SVaradarajan Narayanan 	msm_mux_blsp3_spi,
223d2a2c808SVaradarajan Narayanan 	msm_mux_blsp3_spi0,
224d2a2c808SVaradarajan Narayanan 	msm_mux_blsp3_spi1,
225d2a2c808SVaradarajan Narayanan 	msm_mux_blsp3_spi2,
226d2a2c808SVaradarajan Narayanan 	msm_mux_blsp3_spi3,
227d2a2c808SVaradarajan Narayanan 	msm_mux_blsp3_uart,
228d2a2c808SVaradarajan Narayanan 	msm_mux_blsp4_i2c0,
229d2a2c808SVaradarajan Narayanan 	msm_mux_blsp4_i2c1,
230d2a2c808SVaradarajan Narayanan 	msm_mux_blsp4_spi0,
231d2a2c808SVaradarajan Narayanan 	msm_mux_blsp4_spi1,
232d2a2c808SVaradarajan Narayanan 	msm_mux_blsp4_uart0,
233d2a2c808SVaradarajan Narayanan 	msm_mux_blsp4_uart1,
234d2a2c808SVaradarajan Narayanan 	msm_mux_blsp5_i2c,
235d2a2c808SVaradarajan Narayanan 	msm_mux_blsp5_spi,
236d2a2c808SVaradarajan Narayanan 	msm_mux_blsp5_uart,
237d2a2c808SVaradarajan Narayanan 	msm_mux_burn0,
238d2a2c808SVaradarajan Narayanan 	msm_mux_burn1,
239d2a2c808SVaradarajan Narayanan 	msm_mux_cri_trng,
240d2a2c808SVaradarajan Narayanan 	msm_mux_cri_trng0,
241d2a2c808SVaradarajan Narayanan 	msm_mux_cri_trng1,
242d2a2c808SVaradarajan Narayanan 	msm_mux_cxc0,
243d2a2c808SVaradarajan Narayanan 	msm_mux_cxc1,
244d2a2c808SVaradarajan Narayanan 	msm_mux_dbg_out,
245d2a2c808SVaradarajan Narayanan 	msm_mux_gcc_plltest,
246d2a2c808SVaradarajan Narayanan 	msm_mux_gcc_tlmm,
247d2a2c808SVaradarajan Narayanan 	msm_mux_gpio,
248d2a2c808SVaradarajan Narayanan 	msm_mux_ldo_en,
249d2a2c808SVaradarajan Narayanan 	msm_mux_ldo_update,
250d2a2c808SVaradarajan Narayanan 	msm_mux_led0,
251d2a2c808SVaradarajan Narayanan 	msm_mux_led1,
252d2a2c808SVaradarajan Narayanan 	msm_mux_led2,
253d2a2c808SVaradarajan Narayanan 	msm_mux_mac0_sa0,
254d2a2c808SVaradarajan Narayanan 	msm_mux_mac0_sa1,
255d2a2c808SVaradarajan Narayanan 	msm_mux_mac1_sa0,
256d2a2c808SVaradarajan Narayanan 	msm_mux_mac1_sa1,
257d2a2c808SVaradarajan Narayanan 	msm_mux_mac1_sa2,
258d2a2c808SVaradarajan Narayanan 	msm_mux_mac1_sa3,
259d2a2c808SVaradarajan Narayanan 	msm_mux_mac2_sa0,
260d2a2c808SVaradarajan Narayanan 	msm_mux_mac2_sa1,
261d2a2c808SVaradarajan Narayanan 	msm_mux_mdc,
262d2a2c808SVaradarajan Narayanan 	msm_mux_mdio,
263d2a2c808SVaradarajan Narayanan 	msm_mux_pcie0_clk,
264d2a2c808SVaradarajan Narayanan 	msm_mux_pcie0_rst,
265d2a2c808SVaradarajan Narayanan 	msm_mux_pcie0_wake,
266d2a2c808SVaradarajan Narayanan 	msm_mux_pcie1_clk,
267d2a2c808SVaradarajan Narayanan 	msm_mux_pcie1_rst,
268d2a2c808SVaradarajan Narayanan 	msm_mux_pcie1_wake,
269d2a2c808SVaradarajan Narayanan 	msm_mux_pcm_drx,
270d2a2c808SVaradarajan Narayanan 	msm_mux_pcm_dtx,
271d2a2c808SVaradarajan Narayanan 	msm_mux_pcm_fsync,
272d2a2c808SVaradarajan Narayanan 	msm_mux_pcm_pclk,
273d2a2c808SVaradarajan Narayanan 	msm_mux_pcm_zsi0,
274d2a2c808SVaradarajan Narayanan 	msm_mux_pcm_zsi1,
275d2a2c808SVaradarajan Narayanan 	msm_mux_prng_rosc,
276d2a2c808SVaradarajan Narayanan 	msm_mux_pta1_0,
277d2a2c808SVaradarajan Narayanan 	msm_mux_pta1_1,
278d2a2c808SVaradarajan Narayanan 	msm_mux_pta1_2,
279d2a2c808SVaradarajan Narayanan 	msm_mux_pta2_0,
280d2a2c808SVaradarajan Narayanan 	msm_mux_pta2_1,
281d2a2c808SVaradarajan Narayanan 	msm_mux_pta2_2,
282d2a2c808SVaradarajan Narayanan 	msm_mux_pwm0,
283d2a2c808SVaradarajan Narayanan 	msm_mux_pwm1,
284d2a2c808SVaradarajan Narayanan 	msm_mux_pwm2,
285d2a2c808SVaradarajan Narayanan 	msm_mux_pwm3,
286d2a2c808SVaradarajan Narayanan 	msm_mux_qdss_cti_trig_in_a0,
287d2a2c808SVaradarajan Narayanan 	msm_mux_qdss_cti_trig_in_a1,
288d2a2c808SVaradarajan Narayanan 	msm_mux_qdss_cti_trig_in_b0,
289d2a2c808SVaradarajan Narayanan 	msm_mux_qdss_cti_trig_in_b1,
290d2a2c808SVaradarajan Narayanan 	msm_mux_qdss_cti_trig_out_a0,
291d2a2c808SVaradarajan Narayanan 	msm_mux_qdss_cti_trig_out_a1,
292d2a2c808SVaradarajan Narayanan 	msm_mux_qdss_cti_trig_out_b0,
293d2a2c808SVaradarajan Narayanan 	msm_mux_qdss_cti_trig_out_b1,
294d2a2c808SVaradarajan Narayanan 	msm_mux_qdss_traceclk_a,
295d2a2c808SVaradarajan Narayanan 	msm_mux_qdss_traceclk_b,
296d2a2c808SVaradarajan Narayanan 	msm_mux_qdss_tracectl_a,
297d2a2c808SVaradarajan Narayanan 	msm_mux_qdss_tracectl_b,
298d2a2c808SVaradarajan Narayanan 	msm_mux_qdss_tracedata_a,
299d2a2c808SVaradarajan Narayanan 	msm_mux_qdss_tracedata_b,
300d2a2c808SVaradarajan Narayanan 	msm_mux_qpic,
301d2a2c808SVaradarajan Narayanan 	msm_mux_rx0,
302d2a2c808SVaradarajan Narayanan 	msm_mux_rx1,
303d2a2c808SVaradarajan Narayanan 	msm_mux_rx2,
304d2a2c808SVaradarajan Narayanan 	msm_mux_sd_card,
305d2a2c808SVaradarajan Narayanan 	msm_mux_sd_write,
306d2a2c808SVaradarajan Narayanan 	msm_mux_tsens_max,
307d2a2c808SVaradarajan Narayanan 	msm_mux_wci2a,
308d2a2c808SVaradarajan Narayanan 	msm_mux_wci2b,
309d2a2c808SVaradarajan Narayanan 	msm_mux_wci2c,
310d2a2c808SVaradarajan Narayanan 	msm_mux_wci2d,
311d2a2c808SVaradarajan Narayanan 	msm_mux_NA,
312d2a2c808SVaradarajan Narayanan };
313d2a2c808SVaradarajan Narayanan 
314d2a2c808SVaradarajan Narayanan static const char * const qpic_groups[] = {
315d2a2c808SVaradarajan Narayanan 	"gpio0",	/* LCD_TE */
316d2a2c808SVaradarajan Narayanan 	"gpio1",	/* BUSY_N */
317d2a2c808SVaradarajan Narayanan 	"gpio2",	/* LCD_RS_N */
318d2a2c808SVaradarajan Narayanan 	"gpio3",	/* WE_N */
319d2a2c808SVaradarajan Narayanan 	"gpio4",	/* OE_N */
320d2a2c808SVaradarajan Narayanan 	"gpio5",	/* DATA[0] */
321d2a2c808SVaradarajan Narayanan 	"gpio6",	/* DATA[1] */
322d2a2c808SVaradarajan Narayanan 	"gpio7",	/* DATA[2] */
323d2a2c808SVaradarajan Narayanan 	"gpio8",	/* DATA[3] */
324d2a2c808SVaradarajan Narayanan 	"gpio9",	/* CS_CSR_LCD */
325d2a2c808SVaradarajan Narayanan 	"gpio10",	/* CLE */
326d2a2c808SVaradarajan Narayanan 	"gpio11",	/* NAND_CS_N */
327d2a2c808SVaradarajan Narayanan 	"gpio12",	/* DATA[4] */
328d2a2c808SVaradarajan Narayanan 	"gpio13",	/* DATA[5] */
329d2a2c808SVaradarajan Narayanan 	"gpio14",	/* DATA[6] */
330d2a2c808SVaradarajan Narayanan 	"gpio15",	/* DATA[7] */
331d2a2c808SVaradarajan Narayanan 	"gpio16",	/* DATA[8] */
332d2a2c808SVaradarajan Narayanan 	"gpio17",	/* ALE */
333d2a2c808SVaradarajan Narayanan };
334d2a2c808SVaradarajan Narayanan 
335d2a2c808SVaradarajan Narayanan static const char * const blsp5_i2c_groups[] = {
336d2a2c808SVaradarajan Narayanan 	"gpio0", "gpio2",
337d2a2c808SVaradarajan Narayanan };
338d2a2c808SVaradarajan Narayanan 
339d2a2c808SVaradarajan Narayanan static const char * const blsp5_spi_groups[] = {
340d2a2c808SVaradarajan Narayanan 	"gpio0", "gpio2", "gpio9", "gpio16",
341d2a2c808SVaradarajan Narayanan };
342d2a2c808SVaradarajan Narayanan 
343d2a2c808SVaradarajan Narayanan static const char * const wci2a_groups[] = {
344d2a2c808SVaradarajan Narayanan 	"gpio0", "gpio2",
345d2a2c808SVaradarajan Narayanan };
346d2a2c808SVaradarajan Narayanan 
347d2a2c808SVaradarajan Narayanan static const char * const blsp3_spi3_groups[] = {
348d2a2c808SVaradarajan Narayanan 	"gpio0", "gpio2", "gpio9",
349d2a2c808SVaradarajan Narayanan };
350d2a2c808SVaradarajan Narayanan 
351d2a2c808SVaradarajan Narayanan static const char * const burn0_groups[] = {
352d2a2c808SVaradarajan Narayanan 	"gpio0",
353d2a2c808SVaradarajan Narayanan };
354d2a2c808SVaradarajan Narayanan 
355d2a2c808SVaradarajan Narayanan static const char * const pcm_zsi0_groups[] = {
356d2a2c808SVaradarajan Narayanan 	"gpio1",
357d2a2c808SVaradarajan Narayanan };
358d2a2c808SVaradarajan Narayanan 
359d2a2c808SVaradarajan Narayanan static const char * const blsp5_uart_groups[] = {
360d2a2c808SVaradarajan Narayanan 	"gpio0", "gpio2", "gpio9", "gpio16",
361d2a2c808SVaradarajan Narayanan };
362d2a2c808SVaradarajan Narayanan 
363d2a2c808SVaradarajan Narayanan static const char * const mac1_sa2_groups[] = {
364d2a2c808SVaradarajan Narayanan 	"gpio1", "gpio11",
365d2a2c808SVaradarajan Narayanan };
366d2a2c808SVaradarajan Narayanan 
367d2a2c808SVaradarajan Narayanan static const char * const blsp3_spi0_groups[] = {
368d2a2c808SVaradarajan Narayanan 	"gpio1", "gpio3", "gpio4",
369d2a2c808SVaradarajan Narayanan };
370d2a2c808SVaradarajan Narayanan 
371d2a2c808SVaradarajan Narayanan static const char * const burn1_groups[] = {
372d2a2c808SVaradarajan Narayanan 	"gpio1",
373d2a2c808SVaradarajan Narayanan };
374d2a2c808SVaradarajan Narayanan 
375d2a2c808SVaradarajan Narayanan static const char * const mac0_sa1_groups[] = {
376d2a2c808SVaradarajan Narayanan 	"gpio3", "gpio4",
377d2a2c808SVaradarajan Narayanan };
378d2a2c808SVaradarajan Narayanan 
379d2a2c808SVaradarajan Narayanan static const char * const qdss_cti_trig_out_b0_groups[] = {
380d2a2c808SVaradarajan Narayanan 	"gpio3",
381d2a2c808SVaradarajan Narayanan };
382d2a2c808SVaradarajan Narayanan 
383d2a2c808SVaradarajan Narayanan static const char * const qdss_cti_trig_in_b0_groups[] = {
384d2a2c808SVaradarajan Narayanan 	"gpio4",
385d2a2c808SVaradarajan Narayanan };
386d2a2c808SVaradarajan Narayanan 
387d2a2c808SVaradarajan Narayanan static const char * const blsp4_uart0_groups[] = {
388d2a2c808SVaradarajan Narayanan 	"gpio5", "gpio6", "gpio7", "gpio8",
389d2a2c808SVaradarajan Narayanan };
390d2a2c808SVaradarajan Narayanan 
391d2a2c808SVaradarajan Narayanan static const char * const blsp4_i2c0_groups[] = {
392d2a2c808SVaradarajan Narayanan 	"gpio5", "gpio6",
393d2a2c808SVaradarajan Narayanan };
394d2a2c808SVaradarajan Narayanan 
395d2a2c808SVaradarajan Narayanan static const char * const blsp4_spi0_groups[] = {
396d2a2c808SVaradarajan Narayanan 	"gpio5", "gpio6", "gpio7", "gpio8",
397d2a2c808SVaradarajan Narayanan };
398d2a2c808SVaradarajan Narayanan 
399d2a2c808SVaradarajan Narayanan static const char * const mac2_sa1_groups[] = {
400d2a2c808SVaradarajan Narayanan 	"gpio5", "gpio6",
401d2a2c808SVaradarajan Narayanan };
402d2a2c808SVaradarajan Narayanan 
403d2a2c808SVaradarajan Narayanan static const char * const qdss_cti_trig_out_b1_groups[] = {
404d2a2c808SVaradarajan Narayanan 	"gpio5",
405d2a2c808SVaradarajan Narayanan };
406d2a2c808SVaradarajan Narayanan 
407d2a2c808SVaradarajan Narayanan static const char * const qdss_cti_trig_in_b1_groups[] = {
408d2a2c808SVaradarajan Narayanan 	"gpio6",
409d2a2c808SVaradarajan Narayanan };
410d2a2c808SVaradarajan Narayanan 
411d2a2c808SVaradarajan Narayanan static const char * const cxc0_groups[] = {
412d2a2c808SVaradarajan Narayanan 	"gpio9", "gpio16",
413d2a2c808SVaradarajan Narayanan };
414d2a2c808SVaradarajan Narayanan 
415d2a2c808SVaradarajan Narayanan static const char * const mac1_sa3_groups[] = {
416d2a2c808SVaradarajan Narayanan 	"gpio9", "gpio16",
417d2a2c808SVaradarajan Narayanan };
418d2a2c808SVaradarajan Narayanan 
419d2a2c808SVaradarajan Narayanan static const char * const qdss_cti_trig_in_a1_groups[] = {
420d2a2c808SVaradarajan Narayanan 	"gpio9",
421d2a2c808SVaradarajan Narayanan };
422d2a2c808SVaradarajan Narayanan 
423d2a2c808SVaradarajan Narayanan static const char * const qdss_cti_trig_out_a1_groups[] = {
424d2a2c808SVaradarajan Narayanan 	"gpio10",
425d2a2c808SVaradarajan Narayanan };
426d2a2c808SVaradarajan Narayanan 
427d2a2c808SVaradarajan Narayanan static const char * const wci2c_groups[] = {
428d2a2c808SVaradarajan Narayanan 	"gpio11", "gpio17",
429d2a2c808SVaradarajan Narayanan };
430d2a2c808SVaradarajan Narayanan 
431d2a2c808SVaradarajan Narayanan static const char * const qdss_cti_trig_in_a0_groups[] = {
432d2a2c808SVaradarajan Narayanan 	"gpio11",
433d2a2c808SVaradarajan Narayanan };
434d2a2c808SVaradarajan Narayanan 
435d2a2c808SVaradarajan Narayanan static const char * const qdss_cti_trig_out_a0_groups[] = {
436d2a2c808SVaradarajan Narayanan 	"gpio12",
437d2a2c808SVaradarajan Narayanan };
438d2a2c808SVaradarajan Narayanan 
439d2a2c808SVaradarajan Narayanan static const char * const qdss_traceclk_b_groups[] = {
440d2a2c808SVaradarajan Narayanan 	"gpio14",
441d2a2c808SVaradarajan Narayanan };
442d2a2c808SVaradarajan Narayanan 
443d2a2c808SVaradarajan Narayanan static const char * const qdss_tracectl_b_groups[] = {
444d2a2c808SVaradarajan Narayanan 	"gpio15",
445d2a2c808SVaradarajan Narayanan };
446d2a2c808SVaradarajan Narayanan 
447d2a2c808SVaradarajan Narayanan static const char * const pcm_zsi1_groups[] = {
448d2a2c808SVaradarajan Narayanan 	"gpio16",
449d2a2c808SVaradarajan Narayanan };
450d2a2c808SVaradarajan Narayanan 
451d2a2c808SVaradarajan Narayanan static const char * const qdss_tracedata_b_groups[] = {
452d2a2c808SVaradarajan Narayanan 	"gpio16", "gpio17", "gpio18", "gpio19", "gpio20", "gpio21", "gpio22",
453d2a2c808SVaradarajan Narayanan 	"gpio23", "gpio24", "gpio25", "gpio26", "gpio27", "gpio28", "gpio29",
454d2a2c808SVaradarajan Narayanan 	"gpio30", "gpio31",
455d2a2c808SVaradarajan Narayanan };
456d2a2c808SVaradarajan Narayanan 
457d2a2c808SVaradarajan Narayanan static const char * const led0_groups[] = {
458d2a2c808SVaradarajan Narayanan 	"gpio18",
459d2a2c808SVaradarajan Narayanan };
460d2a2c808SVaradarajan Narayanan 
461d2a2c808SVaradarajan Narayanan static const char * const pwm0_groups[] = {
462d2a2c808SVaradarajan Narayanan 	"gpio18", "gpio21", "gpio25", "gpio29", "gpio63",
463d2a2c808SVaradarajan Narayanan };
464d2a2c808SVaradarajan Narayanan 
465d2a2c808SVaradarajan Narayanan static const char * const led1_groups[] = {
466d2a2c808SVaradarajan Narayanan 	"gpio19",
467d2a2c808SVaradarajan Narayanan };
468d2a2c808SVaradarajan Narayanan 
469d2a2c808SVaradarajan Narayanan static const char * const pwm1_groups[] = {
470d2a2c808SVaradarajan Narayanan 	"gpio19", "gpio22", "gpio26", "gpio30", "gpio64",
471d2a2c808SVaradarajan Narayanan };
472d2a2c808SVaradarajan Narayanan 
473d2a2c808SVaradarajan Narayanan static const char * const led2_groups[] = {
474d2a2c808SVaradarajan Narayanan 	"gpio20",
475d2a2c808SVaradarajan Narayanan };
476d2a2c808SVaradarajan Narayanan 
477d2a2c808SVaradarajan Narayanan static const char * const pwm2_groups[] = {
478d2a2c808SVaradarajan Narayanan 	"gpio20", "gpio23", "gpio27", "gpio31", "gpio66",
479d2a2c808SVaradarajan Narayanan };
480d2a2c808SVaradarajan Narayanan 
481d2a2c808SVaradarajan Narayanan static const char * const blsp4_uart1_groups[] = {
482d2a2c808SVaradarajan Narayanan 	"gpio21", "gpio22", "gpio23", "gpio24",
483d2a2c808SVaradarajan Narayanan };
484d2a2c808SVaradarajan Narayanan 
485d2a2c808SVaradarajan Narayanan static const char * const blsp4_i2c1_groups[] = {
486d2a2c808SVaradarajan Narayanan 	"gpio21", "gpio22",
487d2a2c808SVaradarajan Narayanan };
488d2a2c808SVaradarajan Narayanan 
489d2a2c808SVaradarajan Narayanan static const char * const blsp4_spi1_groups[] = {
490d2a2c808SVaradarajan Narayanan 	"gpio21", "gpio22", "gpio23", "gpio24",
491d2a2c808SVaradarajan Narayanan };
492d2a2c808SVaradarajan Narayanan 
493d2a2c808SVaradarajan Narayanan static const char * const wci2d_groups[] = {
494d2a2c808SVaradarajan Narayanan 	"gpio21", "gpio22",
495d2a2c808SVaradarajan Narayanan };
496d2a2c808SVaradarajan Narayanan 
497d2a2c808SVaradarajan Narayanan static const char * const mac1_sa1_groups[] = {
498d2a2c808SVaradarajan Narayanan 	"gpio21", "gpio22",
499d2a2c808SVaradarajan Narayanan };
500d2a2c808SVaradarajan Narayanan 
501d2a2c808SVaradarajan Narayanan static const char * const blsp3_spi2_groups[] = {
502d2a2c808SVaradarajan Narayanan 	"gpio21", "gpio22", "gpio23",
503d2a2c808SVaradarajan Narayanan };
504d2a2c808SVaradarajan Narayanan 
505d2a2c808SVaradarajan Narayanan static const char * const pwm3_groups[] = {
506d2a2c808SVaradarajan Narayanan 	"gpio24", "gpio28", "gpio32", "gpio67",
507d2a2c808SVaradarajan Narayanan };
508d2a2c808SVaradarajan Narayanan 
509d2a2c808SVaradarajan Narayanan static const char * const audio_txmclk_groups[] = {
510d2a2c808SVaradarajan Narayanan 	"gpio25",
511d2a2c808SVaradarajan Narayanan };
512d2a2c808SVaradarajan Narayanan 
513d2a2c808SVaradarajan Narayanan static const char * const audio_txbclk_groups[] = {
514d2a2c808SVaradarajan Narayanan 	"gpio26",
515d2a2c808SVaradarajan Narayanan };
516d2a2c808SVaradarajan Narayanan 
517d2a2c808SVaradarajan Narayanan static const char * const audio_txfsync_groups[] = {
518d2a2c808SVaradarajan Narayanan 	"gpio27",
519d2a2c808SVaradarajan Narayanan };
520d2a2c808SVaradarajan Narayanan 
521d2a2c808SVaradarajan Narayanan static const char * const audio_txd_groups[] = {
522d2a2c808SVaradarajan Narayanan 	"gpio28",
523d2a2c808SVaradarajan Narayanan };
524d2a2c808SVaradarajan Narayanan 
525d2a2c808SVaradarajan Narayanan static const char * const audio_rxmclk_groups[] = {
526d2a2c808SVaradarajan Narayanan 	"gpio29",
527d2a2c808SVaradarajan Narayanan };
528d2a2c808SVaradarajan Narayanan 
529d2a2c808SVaradarajan Narayanan static const char * const atest_char0_groups[] = {
530d2a2c808SVaradarajan Narayanan 	"gpio29",
531d2a2c808SVaradarajan Narayanan };
532d2a2c808SVaradarajan Narayanan 
533d2a2c808SVaradarajan Narayanan static const char * const audio_rxbclk_groups[] = {
534d2a2c808SVaradarajan Narayanan 	"gpio30",
535d2a2c808SVaradarajan Narayanan };
536d2a2c808SVaradarajan Narayanan 
537d2a2c808SVaradarajan Narayanan static const char * const atest_char1_groups[] = {
538d2a2c808SVaradarajan Narayanan 	"gpio30",
539d2a2c808SVaradarajan Narayanan };
540d2a2c808SVaradarajan Narayanan 
541d2a2c808SVaradarajan Narayanan static const char * const audio_rxfsync_groups[] = {
542d2a2c808SVaradarajan Narayanan 	"gpio31",
543d2a2c808SVaradarajan Narayanan };
544d2a2c808SVaradarajan Narayanan 
545d2a2c808SVaradarajan Narayanan static const char * const atest_char2_groups[] = {
546d2a2c808SVaradarajan Narayanan 	"gpio31",
547d2a2c808SVaradarajan Narayanan };
548d2a2c808SVaradarajan Narayanan 
549d2a2c808SVaradarajan Narayanan static const char * const audio_rxd_groups[] = {
550d2a2c808SVaradarajan Narayanan 	"gpio32",
551d2a2c808SVaradarajan Narayanan };
552d2a2c808SVaradarajan Narayanan 
553d2a2c808SVaradarajan Narayanan static const char * const atest_char3_groups[] = {
554d2a2c808SVaradarajan Narayanan 	"gpio32",
555d2a2c808SVaradarajan Narayanan };
556d2a2c808SVaradarajan Narayanan 
557d2a2c808SVaradarajan Narayanan static const char * const pcm_drx_groups[] = {
558d2a2c808SVaradarajan Narayanan 	"gpio33",
559d2a2c808SVaradarajan Narayanan };
560d2a2c808SVaradarajan Narayanan 
561d2a2c808SVaradarajan Narayanan static const char * const mac1_sa0_groups[] = {
562d2a2c808SVaradarajan Narayanan 	"gpio33", "gpio34",
563d2a2c808SVaradarajan Narayanan };
564d2a2c808SVaradarajan Narayanan 
565d2a2c808SVaradarajan Narayanan static const char * const mac0_sa0_groups[] = {
566d2a2c808SVaradarajan Narayanan 	"gpio33", "gpio34",
567d2a2c808SVaradarajan Narayanan };
568d2a2c808SVaradarajan Narayanan 
569d2a2c808SVaradarajan Narayanan static const char * const pcm_dtx_groups[] = {
570d2a2c808SVaradarajan Narayanan 	"gpio34",
571d2a2c808SVaradarajan Narayanan };
572d2a2c808SVaradarajan Narayanan 
573d2a2c808SVaradarajan Narayanan static const char * const pcm_fsync_groups[] = {
574d2a2c808SVaradarajan Narayanan 	"gpio35",
575d2a2c808SVaradarajan Narayanan };
576d2a2c808SVaradarajan Narayanan 
577d2a2c808SVaradarajan Narayanan static const char * const mac2_sa0_groups[] = {
578d2a2c808SVaradarajan Narayanan 	"gpio35", "gpio36",
579d2a2c808SVaradarajan Narayanan };
580d2a2c808SVaradarajan Narayanan 
581d2a2c808SVaradarajan Narayanan static const char * const qdss_traceclk_a_groups[] = {
582d2a2c808SVaradarajan Narayanan 	"gpio35",
583d2a2c808SVaradarajan Narayanan };
584d2a2c808SVaradarajan Narayanan 
585d2a2c808SVaradarajan Narayanan static const char * const pcm_pclk_groups[] = {
586d2a2c808SVaradarajan Narayanan 	"gpio36",
587d2a2c808SVaradarajan Narayanan };
588d2a2c808SVaradarajan Narayanan 
589d2a2c808SVaradarajan Narayanan static const char * const qdss_tracectl_a_groups[] = {
590d2a2c808SVaradarajan Narayanan 	"gpio36",
591d2a2c808SVaradarajan Narayanan };
592d2a2c808SVaradarajan Narayanan 
593d2a2c808SVaradarajan Narayanan static const char * const atest_char_groups[] = {
594d2a2c808SVaradarajan Narayanan 	"gpio37",
595d2a2c808SVaradarajan Narayanan };
596d2a2c808SVaradarajan Narayanan 
597d2a2c808SVaradarajan Narayanan static const char * const qdss_tracedata_a_groups[] = {
598d2a2c808SVaradarajan Narayanan 	"gpio37", "gpio38", "gpio39", "gpio40", "gpio41", "gpio42", "gpio43",
599d2a2c808SVaradarajan Narayanan 	"gpio44", "gpio45", "gpio46", "gpio47", "gpio48", "gpio49", "gpio50",
600d2a2c808SVaradarajan Narayanan 	"gpio51", "gpio52",
601d2a2c808SVaradarajan Narayanan };
602d2a2c808SVaradarajan Narayanan 
603d2a2c808SVaradarajan Narayanan static const char * const blsp0_uart_groups[] = {
604d2a2c808SVaradarajan Narayanan 	"gpio38", "gpio39", "gpio40", "gpio41",
605d2a2c808SVaradarajan Narayanan };
606d2a2c808SVaradarajan Narayanan 
607d2a2c808SVaradarajan Narayanan static const char * const blsp0_i2c_groups[] = {
608d2a2c808SVaradarajan Narayanan 	"gpio38", "gpio39",
609d2a2c808SVaradarajan Narayanan };
610d2a2c808SVaradarajan Narayanan 
611d2a2c808SVaradarajan Narayanan static const char * const blsp0_spi_groups[] = {
612d2a2c808SVaradarajan Narayanan 	"gpio38", "gpio39", "gpio40", "gpio41",
613d2a2c808SVaradarajan Narayanan };
614d2a2c808SVaradarajan Narayanan 
615d2a2c808SVaradarajan Narayanan static const char * const blsp1_uart_groups[] = {
616d2a2c808SVaradarajan Narayanan 	"gpio42", "gpio43", "gpio44", "gpio45",
617d2a2c808SVaradarajan Narayanan };
618d2a2c808SVaradarajan Narayanan 
619d2a2c808SVaradarajan Narayanan static const char * const blsp1_i2c_groups[] = {
620d2a2c808SVaradarajan Narayanan 	"gpio42", "gpio43",
621d2a2c808SVaradarajan Narayanan };
622d2a2c808SVaradarajan Narayanan 
623d2a2c808SVaradarajan Narayanan static const char * const blsp1_spi_groups[] = {
624d2a2c808SVaradarajan Narayanan 	"gpio42", "gpio43", "gpio44", "gpio45",
625d2a2c808SVaradarajan Narayanan };
626d2a2c808SVaradarajan Narayanan 
627d2a2c808SVaradarajan Narayanan static const char * const blsp2_uart_groups[] = {
628d2a2c808SVaradarajan Narayanan 	"gpio46", "gpio47", "gpio48", "gpio49",
629d2a2c808SVaradarajan Narayanan };
630d2a2c808SVaradarajan Narayanan 
631d2a2c808SVaradarajan Narayanan static const char * const blsp2_i2c_groups[] = {
632d2a2c808SVaradarajan Narayanan 	"gpio46", "gpio47",
633d2a2c808SVaradarajan Narayanan };
634d2a2c808SVaradarajan Narayanan 
635d2a2c808SVaradarajan Narayanan static const char * const blsp2_spi_groups[] = {
636d2a2c808SVaradarajan Narayanan 	"gpio46", "gpio47", "gpio48", "gpio49",
637d2a2c808SVaradarajan Narayanan };
638d2a2c808SVaradarajan Narayanan 
639d2a2c808SVaradarajan Narayanan static const char * const blsp3_uart_groups[] = {
640d2a2c808SVaradarajan Narayanan 	"gpio50", "gpio51", "gpio52", "gpio53",
641d2a2c808SVaradarajan Narayanan };
642d2a2c808SVaradarajan Narayanan 
643d2a2c808SVaradarajan Narayanan static const char * const blsp3_i2c_groups[] = {
644d2a2c808SVaradarajan Narayanan 	"gpio50", "gpio51",
645d2a2c808SVaradarajan Narayanan };
646d2a2c808SVaradarajan Narayanan 
647d2a2c808SVaradarajan Narayanan static const char * const blsp3_spi_groups[] = {
648d2a2c808SVaradarajan Narayanan 	"gpio50", "gpio51", "gpio52", "gpio53",
649d2a2c808SVaradarajan Narayanan };
650d2a2c808SVaradarajan Narayanan 
651d2a2c808SVaradarajan Narayanan static const char * const pta2_0_groups[] = {
652d2a2c808SVaradarajan Narayanan 	"gpio54",
653d2a2c808SVaradarajan Narayanan };
654d2a2c808SVaradarajan Narayanan 
655d2a2c808SVaradarajan Narayanan static const char * const wci2b_groups[] = {
656d2a2c808SVaradarajan Narayanan 	"gpio54", "gpio56",
657d2a2c808SVaradarajan Narayanan };
658d2a2c808SVaradarajan Narayanan 
659d2a2c808SVaradarajan Narayanan static const char * const cxc1_groups[] = {
660d2a2c808SVaradarajan Narayanan 	"gpio54", "gpio56",
661d2a2c808SVaradarajan Narayanan };
662d2a2c808SVaradarajan Narayanan 
663d2a2c808SVaradarajan Narayanan static const char * const blsp3_spi1_groups[] = {
664d2a2c808SVaradarajan Narayanan 	"gpio54", "gpio55", "gpio56",
665d2a2c808SVaradarajan Narayanan };
666d2a2c808SVaradarajan Narayanan 
667d2a2c808SVaradarajan Narayanan static const char * const pta2_1_groups[] = {
668d2a2c808SVaradarajan Narayanan 	"gpio55",
669d2a2c808SVaradarajan Narayanan };
670d2a2c808SVaradarajan Narayanan 
671d2a2c808SVaradarajan Narayanan static const char * const pta2_2_groups[] = {
672d2a2c808SVaradarajan Narayanan 	"gpio56",
673d2a2c808SVaradarajan Narayanan };
674d2a2c808SVaradarajan Narayanan 
675d2a2c808SVaradarajan Narayanan static const char * const pcie0_clk_groups[] = {
676d2a2c808SVaradarajan Narayanan 	"gpio57",
677d2a2c808SVaradarajan Narayanan };
678d2a2c808SVaradarajan Narayanan 
679d2a2c808SVaradarajan Narayanan static const char * const dbg_out_groups[] = {
680d2a2c808SVaradarajan Narayanan 	"gpio57",
681d2a2c808SVaradarajan Narayanan };
682d2a2c808SVaradarajan Narayanan 
683d2a2c808SVaradarajan Narayanan static const char * const cri_trng0_groups[] = {
684d2a2c808SVaradarajan Narayanan 	"gpio57",
685d2a2c808SVaradarajan Narayanan };
686d2a2c808SVaradarajan Narayanan 
687d2a2c808SVaradarajan Narayanan static const char * const pcie0_rst_groups[] = {
688d2a2c808SVaradarajan Narayanan 	"gpio58",
689d2a2c808SVaradarajan Narayanan };
690d2a2c808SVaradarajan Narayanan 
691d2a2c808SVaradarajan Narayanan static const char * const cri_trng1_groups[] = {
692d2a2c808SVaradarajan Narayanan 	"gpio58",
693d2a2c808SVaradarajan Narayanan };
694d2a2c808SVaradarajan Narayanan 
695d2a2c808SVaradarajan Narayanan static const char * const pcie0_wake_groups[] = {
696d2a2c808SVaradarajan Narayanan 	"gpio59",
697d2a2c808SVaradarajan Narayanan };
698d2a2c808SVaradarajan Narayanan 
699d2a2c808SVaradarajan Narayanan static const char * const cri_trng_groups[] = {
700d2a2c808SVaradarajan Narayanan 	"gpio59",
701d2a2c808SVaradarajan Narayanan };
702d2a2c808SVaradarajan Narayanan 
703d2a2c808SVaradarajan Narayanan static const char * const pcie1_clk_groups[] = {
704d2a2c808SVaradarajan Narayanan 	"gpio60",
705d2a2c808SVaradarajan Narayanan };
706d2a2c808SVaradarajan Narayanan 
707d2a2c808SVaradarajan Narayanan static const char * const rx2_groups[] = {
708d2a2c808SVaradarajan Narayanan 	"gpio60",
709d2a2c808SVaradarajan Narayanan };
710d2a2c808SVaradarajan Narayanan 
711d2a2c808SVaradarajan Narayanan static const char * const ldo_update_groups[] = {
712d2a2c808SVaradarajan Narayanan 	"gpio60",
713d2a2c808SVaradarajan Narayanan };
714d2a2c808SVaradarajan Narayanan 
715d2a2c808SVaradarajan Narayanan static const char * const pcie1_rst_groups[] = {
716d2a2c808SVaradarajan Narayanan 	"gpio61",
717d2a2c808SVaradarajan Narayanan };
718d2a2c808SVaradarajan Narayanan 
719d2a2c808SVaradarajan Narayanan static const char * const ldo_en_groups[] = {
720d2a2c808SVaradarajan Narayanan 	"gpio61",
721d2a2c808SVaradarajan Narayanan };
722d2a2c808SVaradarajan Narayanan 
723d2a2c808SVaradarajan Narayanan static const char * const pcie1_wake_groups[] = {
724d2a2c808SVaradarajan Narayanan 	"gpio62",
725d2a2c808SVaradarajan Narayanan };
726d2a2c808SVaradarajan Narayanan 
727d2a2c808SVaradarajan Narayanan static const char * const gcc_plltest_groups[] = {
728d2a2c808SVaradarajan Narayanan 	"gpio62", "gpio63",
729d2a2c808SVaradarajan Narayanan };
730d2a2c808SVaradarajan Narayanan 
731d2a2c808SVaradarajan Narayanan static const char * const sd_card_groups[] = {
732d2a2c808SVaradarajan Narayanan 	"gpio63",
733d2a2c808SVaradarajan Narayanan };
734d2a2c808SVaradarajan Narayanan 
735d2a2c808SVaradarajan Narayanan static const char * const pta1_1_groups[] = {
736d2a2c808SVaradarajan Narayanan 	"gpio64",
737d2a2c808SVaradarajan Narayanan };
738d2a2c808SVaradarajan Narayanan 
739d2a2c808SVaradarajan Narayanan static const char * const rx1_groups[] = {
740d2a2c808SVaradarajan Narayanan 	"gpio64",
741d2a2c808SVaradarajan Narayanan };
742d2a2c808SVaradarajan Narayanan 
743d2a2c808SVaradarajan Narayanan static const char * const pta1_2_groups[] = {
744d2a2c808SVaradarajan Narayanan 	"gpio65",
745d2a2c808SVaradarajan Narayanan };
746d2a2c808SVaradarajan Narayanan 
747d2a2c808SVaradarajan Narayanan static const char * const gcc_tlmm_groups[] = {
748d2a2c808SVaradarajan Narayanan 	"gpio65",
749d2a2c808SVaradarajan Narayanan };
750d2a2c808SVaradarajan Narayanan 
751d2a2c808SVaradarajan Narayanan static const char * const pta1_0_groups[] = {
752d2a2c808SVaradarajan Narayanan 	"gpio66",
753d2a2c808SVaradarajan Narayanan };
754d2a2c808SVaradarajan Narayanan 
755d2a2c808SVaradarajan Narayanan static const char * const prng_rosc_groups[] = {
756d2a2c808SVaradarajan Narayanan 	"gpio66",
757d2a2c808SVaradarajan Narayanan };
758d2a2c808SVaradarajan Narayanan 
759d2a2c808SVaradarajan Narayanan static const char * const sd_write_groups[] = {
760d2a2c808SVaradarajan Narayanan 	"gpio67",
761d2a2c808SVaradarajan Narayanan };
762d2a2c808SVaradarajan Narayanan 
763d2a2c808SVaradarajan Narayanan static const char * const rx0_groups[] = {
764d2a2c808SVaradarajan Narayanan 	"gpio67",
765d2a2c808SVaradarajan Narayanan };
766d2a2c808SVaradarajan Narayanan 
767d2a2c808SVaradarajan Narayanan static const char * const tsens_max_groups[] = {
768d2a2c808SVaradarajan Narayanan 	"gpio67",
769d2a2c808SVaradarajan Narayanan };
770d2a2c808SVaradarajan Narayanan 
771d2a2c808SVaradarajan Narayanan static const char * const mdc_groups[] = {
772d2a2c808SVaradarajan Narayanan 	"gpio68",
773d2a2c808SVaradarajan Narayanan };
774d2a2c808SVaradarajan Narayanan 
775d2a2c808SVaradarajan Narayanan static const char * const mdio_groups[] = {
776d2a2c808SVaradarajan Narayanan 	"gpio69",
777d2a2c808SVaradarajan Narayanan };
778d2a2c808SVaradarajan Narayanan 
779d2a2c808SVaradarajan Narayanan static const char * const gpio_groups[] = {
780d2a2c808SVaradarajan Narayanan 	"gpio0", "gpio1", "gpio2", "gpio3", "gpio4", "gpio5", "gpio6", "gpio7",
781d2a2c808SVaradarajan Narayanan 	"gpio8", "gpio9", "gpio10", "gpio11", "gpio12", "gpio13", "gpio14",
782d2a2c808SVaradarajan Narayanan 	"gpio15", "gpio16", "gpio17", "gpio18", "gpio19", "gpio20", "gpio21",
783d2a2c808SVaradarajan Narayanan 	"gpio22", "gpio23", "gpio24", "gpio25", "gpio26", "gpio27", "gpio28",
784d2a2c808SVaradarajan Narayanan 	"gpio29", "gpio30", "gpio31", "gpio32", "gpio33", "gpio34", "gpio35",
785d2a2c808SVaradarajan Narayanan 	"gpio36", "gpio37", "gpio38", "gpio39", "gpio40", "gpio41", "gpio42",
786d2a2c808SVaradarajan Narayanan 	"gpio43", "gpio44", "gpio45", "gpio46", "gpio47", "gpio48", "gpio49",
787d2a2c808SVaradarajan Narayanan 	"gpio50", "gpio51", "gpio52", "gpio53", "gpio54", "gpio55", "gpio56",
788d2a2c808SVaradarajan Narayanan 	"gpio57", "gpio58", "gpio59", "gpio60", "gpio61", "gpio62", "gpio63",
789d2a2c808SVaradarajan Narayanan 	"gpio64", "gpio65", "gpio66", "gpio67", "gpio68", "gpio69",
790d2a2c808SVaradarajan Narayanan };
791d2a2c808SVaradarajan Narayanan 
792c7a291dbSRohit Agarwal static const struct pinfunction ipq8074_functions[] = {
793c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(atest_char),
794c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(atest_char0),
795c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(atest_char1),
796c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(atest_char2),
797c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(atest_char3),
798c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(audio_rxbclk),
799c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(audio_rxd),
800c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(audio_rxfsync),
801c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(audio_rxmclk),
802c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(audio_txbclk),
803c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(audio_txd),
804c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(audio_txfsync),
805c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(audio_txmclk),
806c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp0_i2c),
807c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp0_spi),
808c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp0_uart),
809c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp1_i2c),
810c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp1_spi),
811c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp1_uart),
812c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp2_i2c),
813c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp2_spi),
814c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp2_uart),
815c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp3_i2c),
816c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp3_spi),
817c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp3_spi0),
818c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp3_spi1),
819c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp3_spi2),
820c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp3_spi3),
821c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp3_uart),
822c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp4_i2c0),
823c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp4_i2c1),
824c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp4_spi0),
825c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp4_spi1),
826c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp4_uart0),
827c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp4_uart1),
828c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp5_i2c),
829c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp5_spi),
830c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp5_uart),
831c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(burn0),
832c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(burn1),
833c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(cri_trng),
834c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(cri_trng0),
835c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(cri_trng1),
836c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(cxc0),
837c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(cxc1),
838c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(dbg_out),
839c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(gcc_plltest),
840c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(gcc_tlmm),
841c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(gpio),
842c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(ldo_en),
843c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(ldo_update),
844c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(led0),
845c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(led1),
846c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(led2),
847c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(mac0_sa0),
848c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(mac0_sa1),
849c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(mac1_sa0),
850c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(mac1_sa1),
851c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(mac1_sa2),
852c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(mac1_sa3),
853c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(mac2_sa0),
854c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(mac2_sa1),
855c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(mdc),
856c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(mdio),
857c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pcie0_clk),
858c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pcie0_rst),
859c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pcie0_wake),
860c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pcie1_clk),
861c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pcie1_rst),
862c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pcie1_wake),
863c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pcm_drx),
864c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pcm_dtx),
865c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pcm_fsync),
866c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pcm_pclk),
867c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pcm_zsi0),
868c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pcm_zsi1),
869c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(prng_rosc),
870c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pta1_0),
871c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pta1_1),
872c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pta1_2),
873c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pta2_0),
874c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pta2_1),
875c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pta2_2),
876c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pwm0),
877c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pwm1),
878c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pwm2),
879c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pwm3),
880c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qdss_cti_trig_in_a0),
881c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qdss_cti_trig_in_a1),
882c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qdss_cti_trig_in_b0),
883c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qdss_cti_trig_in_b1),
884c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qdss_cti_trig_out_a0),
885c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qdss_cti_trig_out_a1),
886c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qdss_cti_trig_out_b0),
887c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qdss_cti_trig_out_b1),
888c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qdss_traceclk_a),
889c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qdss_traceclk_b),
890c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qdss_tracectl_a),
891c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qdss_tracectl_b),
892c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qdss_tracedata_a),
893c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qdss_tracedata_b),
894c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qpic),
895c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(rx0),
896c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(rx1),
897c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(rx2),
898c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(sd_card),
899c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(sd_write),
900c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(tsens_max),
901c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(wci2a),
902c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(wci2b),
903c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(wci2c),
904c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(wci2d),
905d2a2c808SVaradarajan Narayanan };
906d2a2c808SVaradarajan Narayanan 
907d2a2c808SVaradarajan Narayanan static const struct msm_pingroup ipq8074_groups[] = {
908d2a2c808SVaradarajan Narayanan 	PINGROUP(0, qpic, blsp5_uart, blsp5_i2c, blsp5_spi, wci2a,
909d2a2c808SVaradarajan Narayanan 		 blsp3_spi3, NA, burn0, NA),
910d2a2c808SVaradarajan Narayanan 	PINGROUP(1, qpic, pcm_zsi0, mac1_sa2, blsp3_spi0, NA, burn1, NA, NA,
911d2a2c808SVaradarajan Narayanan 		 NA),
912d2a2c808SVaradarajan Narayanan 	PINGROUP(2, qpic, blsp5_uart, blsp5_i2c, blsp5_spi, wci2a,
913d2a2c808SVaradarajan Narayanan 		 blsp3_spi3, NA, NA, NA),
914d2a2c808SVaradarajan Narayanan 	PINGROUP(3, qpic, mac0_sa1, blsp3_spi0, qdss_cti_trig_out_b0, NA, NA,
915d2a2c808SVaradarajan Narayanan 		 NA, NA, NA),
916d2a2c808SVaradarajan Narayanan 	PINGROUP(4, qpic, mac0_sa1, blsp3_spi0, qdss_cti_trig_in_b0, NA, NA,
917d2a2c808SVaradarajan Narayanan 		 NA, NA, NA),
918d2a2c808SVaradarajan Narayanan 	PINGROUP(5, qpic, blsp4_uart0, blsp4_i2c0, blsp4_spi0, mac2_sa1,
919d2a2c808SVaradarajan Narayanan 		 qdss_cti_trig_out_b1, NA, NA, NA),
920d2a2c808SVaradarajan Narayanan 	PINGROUP(6, qpic, blsp4_uart0, blsp4_i2c0, blsp4_spi0, mac2_sa1,
921d2a2c808SVaradarajan Narayanan 		 qdss_cti_trig_in_b1, NA, NA, NA),
922d2a2c808SVaradarajan Narayanan 	PINGROUP(7, qpic, blsp4_uart0, blsp4_spi0, NA, NA, NA, NA, NA, NA),
923d2a2c808SVaradarajan Narayanan 	PINGROUP(8, qpic, blsp4_uart0, blsp4_spi0, NA, NA, NA, NA, NA, NA),
924d2a2c808SVaradarajan Narayanan 	PINGROUP(9, qpic, blsp5_uart, blsp5_spi, cxc0, mac1_sa3, blsp3_spi3,
925d2a2c808SVaradarajan Narayanan 		 qdss_cti_trig_in_a1, NA, NA),
926d2a2c808SVaradarajan Narayanan 	PINGROUP(10, qpic, qdss_cti_trig_out_a1, NA, NA, NA, NA, NA, NA,
927d2a2c808SVaradarajan Narayanan 		 NA),
928d2a2c808SVaradarajan Narayanan 	PINGROUP(11, qpic, wci2c, mac1_sa2, qdss_cti_trig_in_a0, NA, NA, NA,
929d2a2c808SVaradarajan Narayanan 		 NA, NA),
930d2a2c808SVaradarajan Narayanan 	PINGROUP(12, qpic, qdss_cti_trig_out_a0, NA, NA, NA, NA, NA, NA,
931d2a2c808SVaradarajan Narayanan 		 NA),
932d2a2c808SVaradarajan Narayanan 	PINGROUP(13, qpic, NA, NA, NA, NA, NA, NA, NA, NA),
933d2a2c808SVaradarajan Narayanan 	PINGROUP(14, qpic, qdss_traceclk_b, NA, NA, NA, NA, NA, NA, NA),
934d2a2c808SVaradarajan Narayanan 	PINGROUP(15, qpic, qdss_tracectl_b, NA, NA, NA, NA, NA, NA, NA),
935d2a2c808SVaradarajan Narayanan 	PINGROUP(16, qpic, blsp5_uart, pcm_zsi1, blsp5_spi, cxc0, mac1_sa3,
936d2a2c808SVaradarajan Narayanan 		 qdss_tracedata_b, NA, NA),
937d2a2c808SVaradarajan Narayanan 	PINGROUP(17, qpic, wci2c, qdss_tracedata_b, NA, NA, NA, NA, NA, NA),
938d2a2c808SVaradarajan Narayanan 	PINGROUP(18, led0, pwm0, qdss_tracedata_b, NA, NA, NA, NA, NA, NA),
939d2a2c808SVaradarajan Narayanan 	PINGROUP(19, led1, pwm1, NA, qdss_tracedata_b, NA, NA, NA, NA, NA),
940d2a2c808SVaradarajan Narayanan 	PINGROUP(20, led2, pwm2, NA, qdss_tracedata_b, NA, NA, NA, NA, NA),
941d2a2c808SVaradarajan Narayanan 	PINGROUP(21, pwm0, blsp4_uart1, blsp4_i2c1, blsp4_spi1, wci2d, mac1_sa1,
942d2a2c808SVaradarajan Narayanan 		 blsp3_spi2, NA, qdss_tracedata_b),
943d2a2c808SVaradarajan Narayanan 	PINGROUP(22, pwm1, blsp4_uart1, blsp4_i2c1, blsp4_spi1, wci2d, mac1_sa1,
944d2a2c808SVaradarajan Narayanan 		 blsp3_spi2, NA, qdss_tracedata_b),
945d2a2c808SVaradarajan Narayanan 	PINGROUP(23, pwm2, blsp4_uart1, blsp4_spi1, blsp3_spi2, NA,
946d2a2c808SVaradarajan Narayanan 		 qdss_tracedata_b, NA, NA, NA),
947d2a2c808SVaradarajan Narayanan 	PINGROUP(24, pwm3, blsp4_uart1, blsp4_spi1, NA, qdss_tracedata_b, NA,
948d2a2c808SVaradarajan Narayanan 		 NA, NA, NA),
949d2a2c808SVaradarajan Narayanan 	PINGROUP(25, audio_txmclk, pwm0, NA, qdss_tracedata_b, NA, NA, NA, NA,
950d2a2c808SVaradarajan Narayanan 		 NA),
951d2a2c808SVaradarajan Narayanan 	PINGROUP(26, audio_txbclk, pwm1, NA, qdss_tracedata_b, NA, NA, NA, NA,
952d2a2c808SVaradarajan Narayanan 		 NA),
953d2a2c808SVaradarajan Narayanan 	PINGROUP(27, audio_txfsync, pwm2, NA, qdss_tracedata_b, NA, NA, NA,
954d2a2c808SVaradarajan Narayanan 		 NA, NA),
955d2a2c808SVaradarajan Narayanan 	PINGROUP(28, audio_txd, pwm3, NA, qdss_tracedata_b, NA, NA, NA, NA,
956d2a2c808SVaradarajan Narayanan 		 NA),
957d2a2c808SVaradarajan Narayanan 	PINGROUP(29, audio_rxmclk, pwm0, atest_char0, NA, qdss_tracedata_b,
958d2a2c808SVaradarajan Narayanan 		 NA, NA, NA, NA),
959d2a2c808SVaradarajan Narayanan 	PINGROUP(30, audio_rxbclk, pwm1, atest_char1, NA, qdss_tracedata_b,
960d2a2c808SVaradarajan Narayanan 		 NA, NA, NA, NA),
961d2a2c808SVaradarajan Narayanan 	PINGROUP(31, audio_rxfsync, pwm2, atest_char2, NA, qdss_tracedata_b,
962d2a2c808SVaradarajan Narayanan 		 NA, NA, NA, NA),
963d2a2c808SVaradarajan Narayanan 	PINGROUP(32, audio_rxd, pwm3, atest_char3, NA, NA, NA, NA, NA, NA),
964d2a2c808SVaradarajan Narayanan 	PINGROUP(33, pcm_drx, mac1_sa0, mac0_sa0, NA, NA, NA, NA, NA, NA),
965d2a2c808SVaradarajan Narayanan 	PINGROUP(34, pcm_dtx, mac1_sa0, mac0_sa0, NA, NA, NA, NA, NA, NA),
966d2a2c808SVaradarajan Narayanan 	PINGROUP(35, pcm_fsync, mac2_sa0, qdss_traceclk_a, NA, NA, NA, NA, NA, NA),
967d2a2c808SVaradarajan Narayanan 	PINGROUP(36, pcm_pclk, mac2_sa0, NA, qdss_tracectl_a, NA, NA, NA, NA, NA),
968d2a2c808SVaradarajan Narayanan 	PINGROUP(37, atest_char, NA, qdss_tracedata_a, NA, NA, NA, NA, NA, NA),
969d2a2c808SVaradarajan Narayanan 	PINGROUP(38, blsp0_uart, blsp0_i2c, blsp0_spi, NA, qdss_tracedata_a,
970d2a2c808SVaradarajan Narayanan 		 NA, NA, NA, NA),
971d2a2c808SVaradarajan Narayanan 	PINGROUP(39, blsp0_uart, blsp0_i2c, blsp0_spi, NA, qdss_tracedata_a,
972d2a2c808SVaradarajan Narayanan 		 NA, NA, NA, NA),
973d2a2c808SVaradarajan Narayanan 	PINGROUP(40, blsp0_uart, blsp0_spi, NA, qdss_tracedata_a, NA, NA, NA,
974d2a2c808SVaradarajan Narayanan 		 NA, NA),
975d2a2c808SVaradarajan Narayanan 	PINGROUP(41, blsp0_uart, blsp0_spi, NA, qdss_tracedata_a, NA, NA, NA,
976d2a2c808SVaradarajan Narayanan 		 NA, NA),
977d2a2c808SVaradarajan Narayanan 	PINGROUP(42, blsp1_uart, blsp1_i2c, blsp1_spi, NA, qdss_tracedata_a,
978d2a2c808SVaradarajan Narayanan 		 NA, NA, NA, NA),
979d2a2c808SVaradarajan Narayanan 	PINGROUP(43, blsp1_uart, blsp1_i2c, blsp1_spi, NA, qdss_tracedata_a,
980d2a2c808SVaradarajan Narayanan 		 NA, NA, NA, NA),
981d2a2c808SVaradarajan Narayanan 	PINGROUP(44, blsp1_uart, blsp1_spi, NA, qdss_tracedata_a, NA, NA, NA,
982d2a2c808SVaradarajan Narayanan 		 NA, NA),
983d2a2c808SVaradarajan Narayanan 	PINGROUP(45, blsp1_uart, blsp1_spi, qdss_tracedata_a, NA, NA, NA, NA,
984d2a2c808SVaradarajan Narayanan 		 NA, NA),
985d2a2c808SVaradarajan Narayanan 	PINGROUP(46, blsp2_uart, blsp2_i2c, blsp2_spi, qdss_tracedata_a, NA,
986d2a2c808SVaradarajan Narayanan 		 NA, NA, NA, NA),
987d2a2c808SVaradarajan Narayanan 	PINGROUP(47, blsp2_uart, blsp2_i2c, blsp2_spi, NA, qdss_tracedata_a,
988d2a2c808SVaradarajan Narayanan 		 NA, NA, NA, NA),
989d2a2c808SVaradarajan Narayanan 	PINGROUP(48, blsp2_uart, blsp2_spi, NA, qdss_tracedata_a, NA, NA, NA,
990d2a2c808SVaradarajan Narayanan 		 NA, NA),
991d2a2c808SVaradarajan Narayanan 	PINGROUP(49, blsp2_uart, blsp2_spi, NA, qdss_tracedata_a, NA, NA, NA,
992d2a2c808SVaradarajan Narayanan 		 NA, NA),
993d2a2c808SVaradarajan Narayanan 	PINGROUP(50, blsp3_uart, blsp3_i2c, blsp3_spi, NA, qdss_tracedata_a,
994d2a2c808SVaradarajan Narayanan 		 NA, NA, NA, NA),
995d2a2c808SVaradarajan Narayanan 	PINGROUP(51, blsp3_uart, blsp3_i2c, blsp3_spi, NA, qdss_tracedata_a,
996d2a2c808SVaradarajan Narayanan 		 NA, NA, NA, NA),
997d2a2c808SVaradarajan Narayanan 	PINGROUP(52, blsp3_uart, blsp3_spi, NA, qdss_tracedata_a, NA, NA, NA,
998d2a2c808SVaradarajan Narayanan 		 NA, NA),
999d2a2c808SVaradarajan Narayanan 	PINGROUP(53, blsp3_uart, blsp3_spi, NA, NA, NA, NA, NA, NA, NA),
1000d2a2c808SVaradarajan Narayanan 	PINGROUP(54, pta2_0, wci2b, cxc1, blsp3_spi1, NA, NA, NA, NA, NA),
1001d2a2c808SVaradarajan Narayanan 	PINGROUP(55, pta2_1, blsp3_spi1, NA, NA, NA, NA, NA, NA, NA),
1002d2a2c808SVaradarajan Narayanan 	PINGROUP(56, pta2_2, wci2b, cxc1, blsp3_spi1, NA, NA, NA, NA, NA),
1003d2a2c808SVaradarajan Narayanan 	PINGROUP(57, pcie0_clk, NA, dbg_out, cri_trng0, NA, NA, NA, NA, NA),
1004d2a2c808SVaradarajan Narayanan 	PINGROUP(58, pcie0_rst, NA, cri_trng1, NA, NA, NA, NA, NA, NA),
1005d2a2c808SVaradarajan Narayanan 	PINGROUP(59, pcie0_wake, NA, cri_trng, NA, NA, NA, NA, NA, NA),
1006d2a2c808SVaradarajan Narayanan 	PINGROUP(60, pcie1_clk, rx2, ldo_update, NA, NA, NA, NA, NA, NA),
1007d2a2c808SVaradarajan Narayanan 	PINGROUP(61, pcie1_rst, ldo_en, NA, NA, NA, NA, NA, NA, NA),
1008d2a2c808SVaradarajan Narayanan 	PINGROUP(62, pcie1_wake, gcc_plltest, NA, NA, NA, NA, NA, NA, NA),
1009d2a2c808SVaradarajan Narayanan 	PINGROUP(63, sd_card, pwm0, NA, gcc_plltest, NA, NA, NA, NA, NA),
1010d2a2c808SVaradarajan Narayanan 	PINGROUP(64, pta1_1, pwm1, NA, rx1, NA, NA, NA, NA, NA),
1011d2a2c808SVaradarajan Narayanan 	PINGROUP(65, pta1_2, NA, gcc_tlmm, NA, NA, NA, NA, NA, NA),
1012d2a2c808SVaradarajan Narayanan 	PINGROUP(66, pta1_0, pwm2, prng_rosc, NA, NA, NA, NA, NA, NA),
1013d2a2c808SVaradarajan Narayanan 	PINGROUP(67, sd_write, pwm3, rx0, tsens_max, NA, NA, NA, NA, NA),
1014d2a2c808SVaradarajan Narayanan 	PINGROUP(68, mdc, NA, NA, NA, NA, NA, NA, NA, NA),
1015d2a2c808SVaradarajan Narayanan 	PINGROUP(69, mdio, NA, NA, NA, NA, NA, NA, NA, NA),
1016d2a2c808SVaradarajan Narayanan };
1017d2a2c808SVaradarajan Narayanan 
1018d2a2c808SVaradarajan Narayanan static const struct msm_pinctrl_soc_data ipq8074_pinctrl = {
1019d2a2c808SVaradarajan Narayanan 	.pins = ipq8074_pins,
1020d2a2c808SVaradarajan Narayanan 	.npins = ARRAY_SIZE(ipq8074_pins),
1021d2a2c808SVaradarajan Narayanan 	.functions = ipq8074_functions,
1022d2a2c808SVaradarajan Narayanan 	.nfunctions = ARRAY_SIZE(ipq8074_functions),
1023d2a2c808SVaradarajan Narayanan 	.groups = ipq8074_groups,
1024d2a2c808SVaradarajan Narayanan 	.ngroups = ARRAY_SIZE(ipq8074_groups),
1025d2a2c808SVaradarajan Narayanan 	.ngpios = 70,
1026d2a2c808SVaradarajan Narayanan };
1027d2a2c808SVaradarajan Narayanan 
ipq8074_pinctrl_probe(struct platform_device * pdev)1028d2a2c808SVaradarajan Narayanan static int ipq8074_pinctrl_probe(struct platform_device *pdev)
1029d2a2c808SVaradarajan Narayanan {
1030d2a2c808SVaradarajan Narayanan 	return msm_pinctrl_probe(pdev, &ipq8074_pinctrl);
1031d2a2c808SVaradarajan Narayanan }
1032d2a2c808SVaradarajan Narayanan 
1033d2a2c808SVaradarajan Narayanan static const struct of_device_id ipq8074_pinctrl_of_match[] = {
1034d2a2c808SVaradarajan Narayanan 	{ .compatible = "qcom,ipq8074-pinctrl", },
1035d2a2c808SVaradarajan Narayanan 	{ },
1036d2a2c808SVaradarajan Narayanan };
1037d2a2c808SVaradarajan Narayanan 
1038d2a2c808SVaradarajan Narayanan static struct platform_driver ipq8074_pinctrl_driver = {
1039d2a2c808SVaradarajan Narayanan 	.driver = {
1040d2a2c808SVaradarajan Narayanan 		.name = "ipq8074-pinctrl",
1041d2a2c808SVaradarajan Narayanan 		.of_match_table = ipq8074_pinctrl_of_match,
1042d2a2c808SVaradarajan Narayanan 	},
1043d2a2c808SVaradarajan Narayanan 	.probe = ipq8074_pinctrl_probe,
1044d2a2c808SVaradarajan Narayanan 	.remove = msm_pinctrl_remove,
1045d2a2c808SVaradarajan Narayanan };
1046d2a2c808SVaradarajan Narayanan 
ipq8074_pinctrl_init(void)1047d2a2c808SVaradarajan Narayanan static int __init ipq8074_pinctrl_init(void)
1048d2a2c808SVaradarajan Narayanan {
1049d2a2c808SVaradarajan Narayanan 	return platform_driver_register(&ipq8074_pinctrl_driver);
1050d2a2c808SVaradarajan Narayanan }
1051d2a2c808SVaradarajan Narayanan arch_initcall(ipq8074_pinctrl_init);
1052d2a2c808SVaradarajan Narayanan 
ipq8074_pinctrl_exit(void)1053d2a2c808SVaradarajan Narayanan static void __exit ipq8074_pinctrl_exit(void)
1054d2a2c808SVaradarajan Narayanan {
1055d2a2c808SVaradarajan Narayanan 	platform_driver_unregister(&ipq8074_pinctrl_driver);
1056d2a2c808SVaradarajan Narayanan }
1057d2a2c808SVaradarajan Narayanan module_exit(ipq8074_pinctrl_exit);
1058d2a2c808SVaradarajan Narayanan 
1059d2a2c808SVaradarajan Narayanan MODULE_DESCRIPTION("Qualcomm ipq8074 pinctrl driver");
1060d2a2c808SVaradarajan Narayanan MODULE_LICENSE("GPL v2");
1061d2a2c808SVaradarajan Narayanan MODULE_DEVICE_TABLE(of, ipq8074_pinctrl_of_match);
1062