1ef1ea54eSSricharan R // SPDX-License-Identifier: GPL-2.0
2ef1ea54eSSricharan R /*
3ef1ea54eSSricharan R * Copyright (c) 2016-2018, The Linux Foundation. All rights reserved.
4ef1ea54eSSricharan R */
5ef1ea54eSSricharan R
6ef1ea54eSSricharan R #include <linux/module.h>
7ef1ea54eSSricharan R #include <linux/of.h>
8ef1ea54eSSricharan R #include <linux/platform_device.h>
9ef1ea54eSSricharan R
10ef1ea54eSSricharan R #include "pinctrl-msm.h"
11ef1ea54eSSricharan R
12ef1ea54eSSricharan R #define REG_SIZE 0x1000
13ef1ea54eSSricharan R #define PINGROUP(id, f1, f2, f3, f4, f5, f6, f7, f8, f9) \
14ef1ea54eSSricharan R { \
156a16d1a5SRohit Agarwal .grp = PINCTRL_PINGROUP("gpio" #id, \
166a16d1a5SRohit Agarwal gpio##id##_pins, \
176a16d1a5SRohit Agarwal ARRAY_SIZE(gpio##id##_pins)), \
18ef1ea54eSSricharan R .funcs = (int[]){ \
19ef1ea54eSSricharan R msm_mux_gpio, /* gpio mode */ \
20ef1ea54eSSricharan R msm_mux_##f1, \
21ef1ea54eSSricharan R msm_mux_##f2, \
22ef1ea54eSSricharan R msm_mux_##f3, \
23ef1ea54eSSricharan R msm_mux_##f4, \
24ef1ea54eSSricharan R msm_mux_##f5, \
25ef1ea54eSSricharan R msm_mux_##f6, \
26ef1ea54eSSricharan R msm_mux_##f7, \
27ef1ea54eSSricharan R msm_mux_##f8, \
28ef1ea54eSSricharan R msm_mux_##f9 \
29ef1ea54eSSricharan R }, \
30ef1ea54eSSricharan R .nfuncs = 10, \
31ef1ea54eSSricharan R .ctl_reg = REG_SIZE * id, \
32ef1ea54eSSricharan R .io_reg = 0x4 + REG_SIZE * id, \
33ef1ea54eSSricharan R .intr_cfg_reg = 0x8 + REG_SIZE * id, \
34ef1ea54eSSricharan R .intr_status_reg = 0xc + REG_SIZE * id, \
35ef1ea54eSSricharan R .intr_target_reg = 0x8 + REG_SIZE * id, \
36ef1ea54eSSricharan R .mux_bit = 2, \
37ef1ea54eSSricharan R .pull_bit = 0, \
38ef1ea54eSSricharan R .drv_bit = 6, \
39ef1ea54eSSricharan R .oe_bit = 9, \
40ef1ea54eSSricharan R .in_bit = 0, \
41ef1ea54eSSricharan R .out_bit = 1, \
42ef1ea54eSSricharan R .intr_enable_bit = 0, \
43ef1ea54eSSricharan R .intr_status_bit = 0, \
44ef1ea54eSSricharan R .intr_target_bit = 5, \
45ef1ea54eSSricharan R .intr_target_kpss_val = 3, \
46ef1ea54eSSricharan R .intr_raw_status_bit = 4, \
47ef1ea54eSSricharan R .intr_polarity_bit = 1, \
48ef1ea54eSSricharan R .intr_detection_bit = 2, \
49ef1ea54eSSricharan R .intr_detection_width = 2, \
50ef1ea54eSSricharan R }
51ef1ea54eSSricharan R
52ef1ea54eSSricharan R static const struct pinctrl_pin_desc ipq6018_pins[] = {
53ef1ea54eSSricharan R PINCTRL_PIN(0, "GPIO_0"),
54ef1ea54eSSricharan R PINCTRL_PIN(1, "GPIO_1"),
55ef1ea54eSSricharan R PINCTRL_PIN(2, "GPIO_2"),
56ef1ea54eSSricharan R PINCTRL_PIN(3, "GPIO_3"),
57ef1ea54eSSricharan R PINCTRL_PIN(4, "GPIO_4"),
58ef1ea54eSSricharan R PINCTRL_PIN(5, "GPIO_5"),
59ef1ea54eSSricharan R PINCTRL_PIN(6, "GPIO_6"),
60ef1ea54eSSricharan R PINCTRL_PIN(7, "GPIO_7"),
61ef1ea54eSSricharan R PINCTRL_PIN(8, "GPIO_8"),
62ef1ea54eSSricharan R PINCTRL_PIN(9, "GPIO_9"),
63ef1ea54eSSricharan R PINCTRL_PIN(10, "GPIO_10"),
64ef1ea54eSSricharan R PINCTRL_PIN(11, "GPIO_11"),
65ef1ea54eSSricharan R PINCTRL_PIN(12, "GPIO_12"),
66ef1ea54eSSricharan R PINCTRL_PIN(13, "GPIO_13"),
67ef1ea54eSSricharan R PINCTRL_PIN(14, "GPIO_14"),
68ef1ea54eSSricharan R PINCTRL_PIN(15, "GPIO_15"),
69ef1ea54eSSricharan R PINCTRL_PIN(16, "GPIO_16"),
70ef1ea54eSSricharan R PINCTRL_PIN(17, "GPIO_17"),
71ef1ea54eSSricharan R PINCTRL_PIN(18, "GPIO_18"),
72ef1ea54eSSricharan R PINCTRL_PIN(19, "GPIO_19"),
73ef1ea54eSSricharan R PINCTRL_PIN(20, "GPIO_20"),
74ef1ea54eSSricharan R PINCTRL_PIN(21, "GPIO_21"),
75ef1ea54eSSricharan R PINCTRL_PIN(22, "GPIO_22"),
76ef1ea54eSSricharan R PINCTRL_PIN(23, "GPIO_23"),
77ef1ea54eSSricharan R PINCTRL_PIN(24, "GPIO_24"),
78ef1ea54eSSricharan R PINCTRL_PIN(25, "GPIO_25"),
79ef1ea54eSSricharan R PINCTRL_PIN(26, "GPIO_26"),
80ef1ea54eSSricharan R PINCTRL_PIN(27, "GPIO_27"),
81ef1ea54eSSricharan R PINCTRL_PIN(28, "GPIO_28"),
82ef1ea54eSSricharan R PINCTRL_PIN(29, "GPIO_29"),
83ef1ea54eSSricharan R PINCTRL_PIN(30, "GPIO_30"),
84ef1ea54eSSricharan R PINCTRL_PIN(31, "GPIO_31"),
85ef1ea54eSSricharan R PINCTRL_PIN(32, "GPIO_32"),
86ef1ea54eSSricharan R PINCTRL_PIN(33, "GPIO_33"),
87ef1ea54eSSricharan R PINCTRL_PIN(34, "GPIO_34"),
88ef1ea54eSSricharan R PINCTRL_PIN(35, "GPIO_35"),
89ef1ea54eSSricharan R PINCTRL_PIN(36, "GPIO_36"),
90ef1ea54eSSricharan R PINCTRL_PIN(37, "GPIO_37"),
91ef1ea54eSSricharan R PINCTRL_PIN(38, "GPIO_38"),
92ef1ea54eSSricharan R PINCTRL_PIN(39, "GPIO_39"),
93ef1ea54eSSricharan R PINCTRL_PIN(40, "GPIO_40"),
94ef1ea54eSSricharan R PINCTRL_PIN(41, "GPIO_41"),
95ef1ea54eSSricharan R PINCTRL_PIN(42, "GPIO_42"),
96ef1ea54eSSricharan R PINCTRL_PIN(43, "GPIO_43"),
97ef1ea54eSSricharan R PINCTRL_PIN(44, "GPIO_44"),
98ef1ea54eSSricharan R PINCTRL_PIN(45, "GPIO_45"),
99ef1ea54eSSricharan R PINCTRL_PIN(46, "GPIO_46"),
100ef1ea54eSSricharan R PINCTRL_PIN(47, "GPIO_47"),
101ef1ea54eSSricharan R PINCTRL_PIN(48, "GPIO_48"),
102ef1ea54eSSricharan R PINCTRL_PIN(49, "GPIO_49"),
103ef1ea54eSSricharan R PINCTRL_PIN(50, "GPIO_50"),
104ef1ea54eSSricharan R PINCTRL_PIN(51, "GPIO_51"),
105ef1ea54eSSricharan R PINCTRL_PIN(52, "GPIO_52"),
106ef1ea54eSSricharan R PINCTRL_PIN(53, "GPIO_53"),
107ef1ea54eSSricharan R PINCTRL_PIN(54, "GPIO_54"),
108ef1ea54eSSricharan R PINCTRL_PIN(55, "GPIO_55"),
109ef1ea54eSSricharan R PINCTRL_PIN(56, "GPIO_56"),
110ef1ea54eSSricharan R PINCTRL_PIN(57, "GPIO_57"),
111ef1ea54eSSricharan R PINCTRL_PIN(58, "GPIO_58"),
112ef1ea54eSSricharan R PINCTRL_PIN(59, "GPIO_59"),
113ef1ea54eSSricharan R PINCTRL_PIN(60, "GPIO_60"),
114ef1ea54eSSricharan R PINCTRL_PIN(61, "GPIO_61"),
115ef1ea54eSSricharan R PINCTRL_PIN(62, "GPIO_62"),
116ef1ea54eSSricharan R PINCTRL_PIN(63, "GPIO_63"),
117ef1ea54eSSricharan R PINCTRL_PIN(64, "GPIO_64"),
118ef1ea54eSSricharan R PINCTRL_PIN(65, "GPIO_65"),
119ef1ea54eSSricharan R PINCTRL_PIN(66, "GPIO_66"),
120ef1ea54eSSricharan R PINCTRL_PIN(67, "GPIO_67"),
121ef1ea54eSSricharan R PINCTRL_PIN(68, "GPIO_68"),
122ef1ea54eSSricharan R PINCTRL_PIN(69, "GPIO_69"),
123ef1ea54eSSricharan R PINCTRL_PIN(70, "GPIO_70"),
124ef1ea54eSSricharan R PINCTRL_PIN(71, "GPIO_71"),
125ef1ea54eSSricharan R PINCTRL_PIN(72, "GPIO_72"),
126ef1ea54eSSricharan R PINCTRL_PIN(73, "GPIO_73"),
127ef1ea54eSSricharan R PINCTRL_PIN(74, "GPIO_74"),
128ef1ea54eSSricharan R PINCTRL_PIN(75, "GPIO_75"),
129ef1ea54eSSricharan R PINCTRL_PIN(76, "GPIO_76"),
130ef1ea54eSSricharan R PINCTRL_PIN(77, "GPIO_77"),
131ef1ea54eSSricharan R PINCTRL_PIN(78, "GPIO_78"),
132ef1ea54eSSricharan R PINCTRL_PIN(79, "GPIO_79"),
133ef1ea54eSSricharan R };
134ef1ea54eSSricharan R
135ef1ea54eSSricharan R #define DECLARE_MSM_GPIO_PINS(pin) \
136ef1ea54eSSricharan R static const unsigned int gpio##pin##_pins[] = { pin }
137ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(0);
138ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(1);
139ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(2);
140ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(3);
141ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(4);
142ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(5);
143ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(6);
144ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(7);
145ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(8);
146ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(9);
147ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(10);
148ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(11);
149ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(12);
150ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(13);
151ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(14);
152ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(15);
153ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(16);
154ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(17);
155ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(18);
156ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(19);
157ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(20);
158ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(21);
159ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(22);
160ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(23);
161ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(24);
162ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(25);
163ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(26);
164ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(27);
165ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(28);
166ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(29);
167ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(30);
168ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(31);
169ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(32);
170ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(33);
171ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(34);
172ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(35);
173ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(36);
174ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(37);
175ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(38);
176ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(39);
177ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(40);
178ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(41);
179ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(42);
180ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(43);
181ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(44);
182ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(45);
183ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(46);
184ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(47);
185ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(48);
186ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(49);
187ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(50);
188ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(51);
189ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(52);
190ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(53);
191ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(54);
192ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(55);
193ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(56);
194ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(57);
195ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(58);
196ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(59);
197ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(60);
198ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(61);
199ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(62);
200ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(63);
201ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(64);
202ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(65);
203ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(66);
204ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(67);
205ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(68);
206ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(69);
207ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(70);
208ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(71);
209ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(72);
210ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(73);
211ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(74);
212ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(75);
213ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(76);
214ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(77);
215ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(78);
216ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(79);
217ef1ea54eSSricharan R
218ef1ea54eSSricharan R enum ipq6018_functions {
219ef1ea54eSSricharan R msm_mux_atest_char,
220ef1ea54eSSricharan R msm_mux_atest_char0,
221ef1ea54eSSricharan R msm_mux_atest_char1,
222ef1ea54eSSricharan R msm_mux_atest_char2,
223ef1ea54eSSricharan R msm_mux_atest_char3,
224ef1ea54eSSricharan R msm_mux_audio0,
225ef1ea54eSSricharan R msm_mux_audio1,
226ef1ea54eSSricharan R msm_mux_audio2,
227ef1ea54eSSricharan R msm_mux_audio3,
228ef1ea54eSSricharan R msm_mux_audio_rxbclk,
229ef1ea54eSSricharan R msm_mux_audio_rxfsync,
230ef1ea54eSSricharan R msm_mux_audio_rxmclk,
231ef1ea54eSSricharan R msm_mux_audio_rxmclkin,
232ef1ea54eSSricharan R msm_mux_audio_txbclk,
233ef1ea54eSSricharan R msm_mux_audio_txfsync,
234ef1ea54eSSricharan R msm_mux_audio_txmclk,
235ef1ea54eSSricharan R msm_mux_audio_txmclkin,
236ef1ea54eSSricharan R msm_mux_blsp0_i2c,
237ef1ea54eSSricharan R msm_mux_blsp0_spi,
238ef1ea54eSSricharan R msm_mux_blsp0_uart,
239ef1ea54eSSricharan R msm_mux_blsp1_i2c,
240ef1ea54eSSricharan R msm_mux_blsp1_spi,
241ef1ea54eSSricharan R msm_mux_blsp1_uart,
242ef1ea54eSSricharan R msm_mux_blsp2_i2c,
243ef1ea54eSSricharan R msm_mux_blsp2_spi,
244ef1ea54eSSricharan R msm_mux_blsp2_uart,
245ef1ea54eSSricharan R msm_mux_blsp3_i2c,
246ef1ea54eSSricharan R msm_mux_blsp3_spi,
247ef1ea54eSSricharan R msm_mux_blsp3_uart,
248ef1ea54eSSricharan R msm_mux_blsp4_i2c,
249ef1ea54eSSricharan R msm_mux_blsp4_spi,
250ef1ea54eSSricharan R msm_mux_blsp4_uart,
251ef1ea54eSSricharan R msm_mux_blsp5_i2c,
252ef1ea54eSSricharan R msm_mux_blsp5_uart,
253ef1ea54eSSricharan R msm_mux_burn0,
254ef1ea54eSSricharan R msm_mux_burn1,
255ef1ea54eSSricharan R msm_mux_cri_trng,
256ef1ea54eSSricharan R msm_mux_cri_trng0,
257ef1ea54eSSricharan R msm_mux_cri_trng1,
258ef1ea54eSSricharan R msm_mux_cxc0,
259ef1ea54eSSricharan R msm_mux_cxc1,
260ef1ea54eSSricharan R msm_mux_dbg_out,
261ef1ea54eSSricharan R msm_mux_gcc_plltest,
262ef1ea54eSSricharan R msm_mux_gcc_tlmm,
263ef1ea54eSSricharan R msm_mux_gpio,
264ef1ea54eSSricharan R msm_mux_lpass_aud,
265ef1ea54eSSricharan R msm_mux_lpass_aud0,
266ef1ea54eSSricharan R msm_mux_lpass_aud1,
267ef1ea54eSSricharan R msm_mux_lpass_aud2,
268ef1ea54eSSricharan R msm_mux_lpass_pcm,
269ef1ea54eSSricharan R msm_mux_lpass_pdm,
270ef1ea54eSSricharan R msm_mux_mac00,
271ef1ea54eSSricharan R msm_mux_mac01,
272ef1ea54eSSricharan R msm_mux_mac10,
273ef1ea54eSSricharan R msm_mux_mac11,
274ef1ea54eSSricharan R msm_mux_mac12,
275ef1ea54eSSricharan R msm_mux_mac13,
276ef1ea54eSSricharan R msm_mux_mac20,
277ef1ea54eSSricharan R msm_mux_mac21,
278ef1ea54eSSricharan R msm_mux_mdc,
279ef1ea54eSSricharan R msm_mux_mdio,
280ef1ea54eSSricharan R msm_mux_pcie0_clk,
281ef1ea54eSSricharan R msm_mux_pcie0_rst,
282ef1ea54eSSricharan R msm_mux_pcie0_wake,
283ef1ea54eSSricharan R msm_mux_prng_rosc,
284ef1ea54eSSricharan R msm_mux_pta1_0,
285ef1ea54eSSricharan R msm_mux_pta1_1,
286ef1ea54eSSricharan R msm_mux_pta1_2,
287ef1ea54eSSricharan R msm_mux_pta2_0,
288ef1ea54eSSricharan R msm_mux_pta2_1,
289ef1ea54eSSricharan R msm_mux_pta2_2,
290ef1ea54eSSricharan R msm_mux_pwm00,
291ef1ea54eSSricharan R msm_mux_pwm01,
292ef1ea54eSSricharan R msm_mux_pwm02,
293ef1ea54eSSricharan R msm_mux_pwm03,
294ef1ea54eSSricharan R msm_mux_pwm04,
295ef1ea54eSSricharan R msm_mux_pwm10,
296ef1ea54eSSricharan R msm_mux_pwm11,
297ef1ea54eSSricharan R msm_mux_pwm12,
298ef1ea54eSSricharan R msm_mux_pwm13,
299ef1ea54eSSricharan R msm_mux_pwm14,
300ef1ea54eSSricharan R msm_mux_pwm20,
301ef1ea54eSSricharan R msm_mux_pwm21,
302ef1ea54eSSricharan R msm_mux_pwm22,
303ef1ea54eSSricharan R msm_mux_pwm23,
304ef1ea54eSSricharan R msm_mux_pwm24,
305ef1ea54eSSricharan R msm_mux_pwm30,
306ef1ea54eSSricharan R msm_mux_pwm31,
307ef1ea54eSSricharan R msm_mux_pwm32,
308ef1ea54eSSricharan R msm_mux_pwm33,
309ef1ea54eSSricharan R msm_mux_qdss_cti_trig_in_a0,
310ef1ea54eSSricharan R msm_mux_qdss_cti_trig_in_a1,
311ef1ea54eSSricharan R msm_mux_qdss_cti_trig_out_a0,
312ef1ea54eSSricharan R msm_mux_qdss_cti_trig_out_a1,
313ef1ea54eSSricharan R msm_mux_qdss_cti_trig_in_b0,
314ef1ea54eSSricharan R msm_mux_qdss_cti_trig_in_b1,
315ef1ea54eSSricharan R msm_mux_qdss_cti_trig_out_b0,
316ef1ea54eSSricharan R msm_mux_qdss_cti_trig_out_b1,
317ef1ea54eSSricharan R msm_mux_qdss_traceclk_a,
318ef1ea54eSSricharan R msm_mux_qdss_tracectl_a,
319ef1ea54eSSricharan R msm_mux_qdss_tracedata_a,
320ef1ea54eSSricharan R msm_mux_qdss_traceclk_b,
321ef1ea54eSSricharan R msm_mux_qdss_tracectl_b,
322ef1ea54eSSricharan R msm_mux_qdss_tracedata_b,
323ef1ea54eSSricharan R msm_mux_qpic_pad,
324ef1ea54eSSricharan R msm_mux_rx0,
325ef1ea54eSSricharan R msm_mux_rx1,
326ef1ea54eSSricharan R msm_mux_rx_swrm,
327ef1ea54eSSricharan R msm_mux_rx_swrm0,
328ef1ea54eSSricharan R msm_mux_rx_swrm1,
329ef1ea54eSSricharan R msm_mux_sd_card,
330ef1ea54eSSricharan R msm_mux_sd_write,
331ef1ea54eSSricharan R msm_mux_tsens_max,
332ef1ea54eSSricharan R msm_mux_tx_swrm,
333ef1ea54eSSricharan R msm_mux_tx_swrm0,
334ef1ea54eSSricharan R msm_mux_tx_swrm1,
335ef1ea54eSSricharan R msm_mux_tx_swrm2,
336ef1ea54eSSricharan R msm_mux_wci20,
337ef1ea54eSSricharan R msm_mux_wci21,
338ef1ea54eSSricharan R msm_mux_wci22,
339ef1ea54eSSricharan R msm_mux_wci23,
340ef1ea54eSSricharan R msm_mux_wsa_swrm,
341ef1ea54eSSricharan R msm_mux__,
342ef1ea54eSSricharan R };
343ef1ea54eSSricharan R
344ef1ea54eSSricharan R static const char * const blsp3_uart_groups[] = {
345ef1ea54eSSricharan R "gpio73", "gpio74", "gpio75", "gpio76",
346ef1ea54eSSricharan R };
347ef1ea54eSSricharan R
348ef1ea54eSSricharan R static const char * const blsp3_i2c_groups[] = {
349ef1ea54eSSricharan R "gpio73", "gpio74",
350ef1ea54eSSricharan R };
351ef1ea54eSSricharan R
352ef1ea54eSSricharan R static const char * const blsp3_spi_groups[] = {
353ef1ea54eSSricharan R "gpio73", "gpio74", "gpio75", "gpio76", "gpio77", "gpio78", "gpio79",
354ef1ea54eSSricharan R };
355ef1ea54eSSricharan R
356ef1ea54eSSricharan R static const char * const wci20_groups[] = {
357ef1ea54eSSricharan R "gpio0", "gpio2",
358ef1ea54eSSricharan R };
359ef1ea54eSSricharan R
360ef1ea54eSSricharan R static const char * const qpic_pad_groups[] = {
361ef1ea54eSSricharan R "gpio0", "gpio1", "gpio2", "gpio3", "gpio4", "gpio9", "gpio10",
3627f5f4de8SSivaprakash Murugesan "gpio11", "gpio17", "gpio15", "gpio12", "gpio13", "gpio14", "gpio5",
3637f5f4de8SSivaprakash Murugesan "gpio6", "gpio7", "gpio8",
364ef1ea54eSSricharan R };
365ef1ea54eSSricharan R
366ef1ea54eSSricharan R static const char * const burn0_groups[] = {
367ef1ea54eSSricharan R "gpio0",
368ef1ea54eSSricharan R };
369ef1ea54eSSricharan R
370ef1ea54eSSricharan R static const char * const mac12_groups[] = {
371ef1ea54eSSricharan R "gpio1", "gpio11",
372ef1ea54eSSricharan R };
373ef1ea54eSSricharan R
374ef1ea54eSSricharan R static const char * const qdss_tracectl_b_groups[] = {
375ef1ea54eSSricharan R "gpio1",
376ef1ea54eSSricharan R };
377ef1ea54eSSricharan R
378ef1ea54eSSricharan R static const char * const burn1_groups[] = {
379ef1ea54eSSricharan R "gpio1",
380ef1ea54eSSricharan R };
381ef1ea54eSSricharan R
382ef1ea54eSSricharan R static const char * const qdss_traceclk_b_groups[] = {
383ef1ea54eSSricharan R "gpio0",
384ef1ea54eSSricharan R };
385ef1ea54eSSricharan R
386ef1ea54eSSricharan R static const char * const qdss_tracedata_b_groups[] = {
387ef1ea54eSSricharan R "gpio2", "gpio3", "gpio4", "gpio5", "gpio6", "gpio7", "gpio8", "gpio9",
388ef1ea54eSSricharan R "gpio10", "gpio11", "gpio12", "gpio13", "gpio14", "gpio15", "gpio16",
389ef1ea54eSSricharan R "gpio17",
390ef1ea54eSSricharan R };
391ef1ea54eSSricharan R
392ef1ea54eSSricharan R static const char * const mac01_groups[] = {
393ef1ea54eSSricharan R "gpio3", "gpio4",
394ef1ea54eSSricharan R };
395ef1ea54eSSricharan R
396ef1ea54eSSricharan R static const char * const mac21_groups[] = {
397ef1ea54eSSricharan R "gpio5", "gpio6",
398ef1ea54eSSricharan R };
399ef1ea54eSSricharan R
400ef1ea54eSSricharan R static const char * const atest_char_groups[] = {
401ef1ea54eSSricharan R "gpio9",
402ef1ea54eSSricharan R };
403ef1ea54eSSricharan R
404ef1ea54eSSricharan R static const char * const cxc0_groups[] = {
405ef1ea54eSSricharan R "gpio9", "gpio16",
406ef1ea54eSSricharan R };
407ef1ea54eSSricharan R
408ef1ea54eSSricharan R static const char * const mac13_groups[] = {
409ef1ea54eSSricharan R "gpio9", "gpio16",
410ef1ea54eSSricharan R };
411ef1ea54eSSricharan R
412ef1ea54eSSricharan R static const char * const dbg_out_groups[] = {
413ef1ea54eSSricharan R "gpio9",
414ef1ea54eSSricharan R };
415ef1ea54eSSricharan R
416ef1ea54eSSricharan R static const char * const wci22_groups[] = {
417ef1ea54eSSricharan R "gpio11", "gpio17",
418ef1ea54eSSricharan R };
419ef1ea54eSSricharan R
420ef1ea54eSSricharan R static const char * const pwm00_groups[] = {
421ef1ea54eSSricharan R "gpio18",
422ef1ea54eSSricharan R };
423ef1ea54eSSricharan R
424ef1ea54eSSricharan R static const char * const atest_char0_groups[] = {
425ef1ea54eSSricharan R "gpio18",
426ef1ea54eSSricharan R };
427ef1ea54eSSricharan R
428ef1ea54eSSricharan R static const char * const wci23_groups[] = {
429ef1ea54eSSricharan R "gpio18", "gpio19",
430ef1ea54eSSricharan R };
431ef1ea54eSSricharan R
432ef1ea54eSSricharan R static const char * const mac11_groups[] = {
433ef1ea54eSSricharan R "gpio18", "gpio19",
434ef1ea54eSSricharan R };
435ef1ea54eSSricharan R
436ef1ea54eSSricharan R static const char * const pwm10_groups[] = {
437ef1ea54eSSricharan R "gpio19",
438ef1ea54eSSricharan R };
439ef1ea54eSSricharan R
440ef1ea54eSSricharan R static const char * const atest_char1_groups[] = {
441ef1ea54eSSricharan R "gpio19",
442ef1ea54eSSricharan R };
443ef1ea54eSSricharan R
444ef1ea54eSSricharan R static const char * const pwm20_groups[] = {
445ef1ea54eSSricharan R "gpio20",
446ef1ea54eSSricharan R };
447ef1ea54eSSricharan R
448ef1ea54eSSricharan R static const char * const atest_char2_groups[] = {
449ef1ea54eSSricharan R "gpio20",
450ef1ea54eSSricharan R };
451ef1ea54eSSricharan R
452ef1ea54eSSricharan R static const char * const pwm30_groups[] = {
453ef1ea54eSSricharan R "gpio21",
454ef1ea54eSSricharan R };
455ef1ea54eSSricharan R
456ef1ea54eSSricharan R static const char * const atest_char3_groups[] = {
457ef1ea54eSSricharan R "gpio21",
458ef1ea54eSSricharan R };
459ef1ea54eSSricharan R
460ef1ea54eSSricharan R static const char * const audio_txmclk_groups[] = {
461ef1ea54eSSricharan R "gpio22",
462ef1ea54eSSricharan R };
463ef1ea54eSSricharan R
464ef1ea54eSSricharan R static const char * const audio_txmclkin_groups[] = {
465ef1ea54eSSricharan R "gpio22",
466ef1ea54eSSricharan R };
467ef1ea54eSSricharan R
468ef1ea54eSSricharan R static const char * const pwm02_groups[] = {
469ef1ea54eSSricharan R "gpio22",
470ef1ea54eSSricharan R };
471ef1ea54eSSricharan R
472ef1ea54eSSricharan R static const char * const tx_swrm0_groups[] = {
473ef1ea54eSSricharan R "gpio22",
474ef1ea54eSSricharan R };
475ef1ea54eSSricharan R
476ef1ea54eSSricharan R static const char * const qdss_cti_trig_out_b0_groups[] = {
477ef1ea54eSSricharan R "gpio22",
478ef1ea54eSSricharan R };
479ef1ea54eSSricharan R
480ef1ea54eSSricharan R static const char * const audio_txbclk_groups[] = {
481ef1ea54eSSricharan R "gpio23",
482ef1ea54eSSricharan R };
483ef1ea54eSSricharan R
484ef1ea54eSSricharan R static const char * const pwm12_groups[] = {
485ef1ea54eSSricharan R "gpio23",
486ef1ea54eSSricharan R };
487ef1ea54eSSricharan R
488ef1ea54eSSricharan R static const char * const wsa_swrm_groups[] = {
489ef1ea54eSSricharan R "gpio23", "gpio24",
490ef1ea54eSSricharan R };
491ef1ea54eSSricharan R
492ef1ea54eSSricharan R static const char * const tx_swrm1_groups[] = {
493ef1ea54eSSricharan R "gpio23",
494ef1ea54eSSricharan R };
495ef1ea54eSSricharan R
496ef1ea54eSSricharan R static const char * const qdss_cti_trig_in_b0_groups[] = {
497ef1ea54eSSricharan R "gpio23",
498ef1ea54eSSricharan R };
499ef1ea54eSSricharan R
500ef1ea54eSSricharan R static const char * const audio_txfsync_groups[] = {
501ef1ea54eSSricharan R "gpio24",
502ef1ea54eSSricharan R };
503ef1ea54eSSricharan R
504ef1ea54eSSricharan R static const char * const pwm22_groups[] = {
505ef1ea54eSSricharan R "gpio24",
506ef1ea54eSSricharan R };
507ef1ea54eSSricharan R
508ef1ea54eSSricharan R static const char * const tx_swrm2_groups[] = {
509ef1ea54eSSricharan R "gpio24",
510ef1ea54eSSricharan R };
511ef1ea54eSSricharan R
512ef1ea54eSSricharan R static const char * const qdss_cti_trig_out_b1_groups[] = {
513ef1ea54eSSricharan R "gpio24",
514ef1ea54eSSricharan R };
515ef1ea54eSSricharan R
516ef1ea54eSSricharan R static const char * const audio0_groups[] = {
517ef1ea54eSSricharan R "gpio25", "gpio32",
518ef1ea54eSSricharan R };
519ef1ea54eSSricharan R
520ef1ea54eSSricharan R static const char * const pwm32_groups[] = {
521ef1ea54eSSricharan R "gpio25",
522ef1ea54eSSricharan R };
523ef1ea54eSSricharan R
524ef1ea54eSSricharan R static const char * const tx_swrm_groups[] = {
525ef1ea54eSSricharan R "gpio25",
526ef1ea54eSSricharan R };
527ef1ea54eSSricharan R
528ef1ea54eSSricharan R static const char * const qdss_cti_trig_in_b1_groups[] = {
529ef1ea54eSSricharan R "gpio25",
530ef1ea54eSSricharan R };
531ef1ea54eSSricharan R
532ef1ea54eSSricharan R static const char * const audio1_groups[] = {
533ef1ea54eSSricharan R "gpio26", "gpio33",
534ef1ea54eSSricharan R };
535ef1ea54eSSricharan R
536ef1ea54eSSricharan R static const char * const pwm04_groups[] = {
537ef1ea54eSSricharan R "gpio26",
538ef1ea54eSSricharan R };
539ef1ea54eSSricharan R
540ef1ea54eSSricharan R static const char * const audio2_groups[] = {
541ef1ea54eSSricharan R "gpio27",
542ef1ea54eSSricharan R };
543ef1ea54eSSricharan R
544ef1ea54eSSricharan R static const char * const pwm14_groups[] = {
545ef1ea54eSSricharan R "gpio27",
546ef1ea54eSSricharan R };
547ef1ea54eSSricharan R
548ef1ea54eSSricharan R static const char * const audio3_groups[] = {
549ef1ea54eSSricharan R "gpio28",
550ef1ea54eSSricharan R };
551ef1ea54eSSricharan R
552ef1ea54eSSricharan R static const char * const pwm24_groups[] = {
553ef1ea54eSSricharan R "gpio28",
554ef1ea54eSSricharan R };
555ef1ea54eSSricharan R
556ef1ea54eSSricharan R static const char * const audio_rxmclk_groups[] = {
557ef1ea54eSSricharan R "gpio29",
558ef1ea54eSSricharan R };
559ef1ea54eSSricharan R
560ef1ea54eSSricharan R static const char * const audio_rxmclkin_groups[] = {
561ef1ea54eSSricharan R "gpio29",
562ef1ea54eSSricharan R };
563ef1ea54eSSricharan R
564ef1ea54eSSricharan R static const char * const pwm03_groups[] = {
565ef1ea54eSSricharan R "gpio29",
566ef1ea54eSSricharan R };
567ef1ea54eSSricharan R
568ef1ea54eSSricharan R static const char * const lpass_pdm_groups[] = {
569ef1ea54eSSricharan R "gpio29", "gpio30", "gpio31", "gpio32",
570ef1ea54eSSricharan R };
571ef1ea54eSSricharan R
572ef1ea54eSSricharan R static const char * const lpass_aud_groups[] = {
573ef1ea54eSSricharan R "gpio29",
574ef1ea54eSSricharan R };
575ef1ea54eSSricharan R
576ef1ea54eSSricharan R static const char * const qdss_cti_trig_in_a1_groups[] = {
577ef1ea54eSSricharan R "gpio29",
578ef1ea54eSSricharan R };
579ef1ea54eSSricharan R
580ef1ea54eSSricharan R static const char * const audio_rxbclk_groups[] = {
581ef1ea54eSSricharan R "gpio30",
582ef1ea54eSSricharan R };
583ef1ea54eSSricharan R
584ef1ea54eSSricharan R static const char * const pwm13_groups[] = {
585ef1ea54eSSricharan R "gpio30",
586ef1ea54eSSricharan R };
587ef1ea54eSSricharan R
588ef1ea54eSSricharan R static const char * const lpass_aud0_groups[] = {
589ef1ea54eSSricharan R "gpio30",
590ef1ea54eSSricharan R };
591ef1ea54eSSricharan R
592ef1ea54eSSricharan R static const char * const rx_swrm_groups[] = {
593ef1ea54eSSricharan R "gpio30",
594ef1ea54eSSricharan R };
595ef1ea54eSSricharan R
596ef1ea54eSSricharan R static const char * const qdss_cti_trig_out_a1_groups[] = {
597ef1ea54eSSricharan R "gpio30",
598ef1ea54eSSricharan R };
599ef1ea54eSSricharan R
600ef1ea54eSSricharan R static const char * const audio_rxfsync_groups[] = {
601ef1ea54eSSricharan R "gpio31",
602ef1ea54eSSricharan R };
603ef1ea54eSSricharan R
604ef1ea54eSSricharan R static const char * const pwm23_groups[] = {
605ef1ea54eSSricharan R "gpio31",
606ef1ea54eSSricharan R };
607ef1ea54eSSricharan R
608ef1ea54eSSricharan R static const char * const lpass_aud1_groups[] = {
609ef1ea54eSSricharan R "gpio31",
610ef1ea54eSSricharan R };
611ef1ea54eSSricharan R
612ef1ea54eSSricharan R static const char * const rx_swrm0_groups[] = {
613ef1ea54eSSricharan R "gpio31",
614ef1ea54eSSricharan R };
615ef1ea54eSSricharan R
616ef1ea54eSSricharan R static const char * const qdss_cti_trig_in_a0_groups[] = {
617ef1ea54eSSricharan R "gpio31",
618ef1ea54eSSricharan R };
619ef1ea54eSSricharan R
620ef1ea54eSSricharan R static const char * const pwm33_groups[] = {
621ef1ea54eSSricharan R "gpio32",
622ef1ea54eSSricharan R };
623ef1ea54eSSricharan R
624ef1ea54eSSricharan R static const char * const lpass_aud2_groups[] = {
625ef1ea54eSSricharan R "gpio32",
626ef1ea54eSSricharan R };
627ef1ea54eSSricharan R
628ef1ea54eSSricharan R static const char * const rx_swrm1_groups[] = {
629ef1ea54eSSricharan R "gpio32",
630ef1ea54eSSricharan R };
631ef1ea54eSSricharan R
632ef1ea54eSSricharan R static const char * const qdss_cti_trig_out_a0_groups[] = {
633ef1ea54eSSricharan R "gpio32",
634ef1ea54eSSricharan R };
635ef1ea54eSSricharan R
636ef1ea54eSSricharan R static const char * const lpass_pcm_groups[] = {
637ef1ea54eSSricharan R "gpio34", "gpio35", "gpio36", "gpio37",
638ef1ea54eSSricharan R };
639ef1ea54eSSricharan R
640ef1ea54eSSricharan R static const char * const mac10_groups[] = {
641ef1ea54eSSricharan R "gpio34", "gpio35",
642ef1ea54eSSricharan R };
643ef1ea54eSSricharan R
644ef1ea54eSSricharan R static const char * const mac00_groups[] = {
645ef1ea54eSSricharan R "gpio34", "gpio35",
646ef1ea54eSSricharan R };
647ef1ea54eSSricharan R
648ef1ea54eSSricharan R static const char * const mac20_groups[] = {
649ef1ea54eSSricharan R "gpio36", "gpio37",
650ef1ea54eSSricharan R };
651ef1ea54eSSricharan R
652ef1ea54eSSricharan R static const char * const blsp0_uart_groups[] = {
653ef1ea54eSSricharan R "gpio38", "gpio39", "gpio40", "gpio41",
654ef1ea54eSSricharan R };
655ef1ea54eSSricharan R
656ef1ea54eSSricharan R static const char * const blsp0_i2c_groups[] = {
657ef1ea54eSSricharan R "gpio38", "gpio39",
658ef1ea54eSSricharan R };
659ef1ea54eSSricharan R
660ef1ea54eSSricharan R static const char * const blsp0_spi_groups[] = {
661ef1ea54eSSricharan R "gpio38", "gpio39", "gpio40", "gpio41",
662ef1ea54eSSricharan R };
663ef1ea54eSSricharan R
664ef1ea54eSSricharan R static const char * const blsp2_uart_groups[] = {
665ef1ea54eSSricharan R "gpio42", "gpio43", "gpio44", "gpio45",
666ef1ea54eSSricharan R };
667ef1ea54eSSricharan R
668ef1ea54eSSricharan R static const char * const blsp2_i2c_groups[] = {
669ef1ea54eSSricharan R "gpio42", "gpio43",
670ef1ea54eSSricharan R };
671ef1ea54eSSricharan R
672ef1ea54eSSricharan R static const char * const blsp2_spi_groups[] = {
673ef1ea54eSSricharan R "gpio42", "gpio43", "gpio44", "gpio45",
674ef1ea54eSSricharan R };
675ef1ea54eSSricharan R
676ef1ea54eSSricharan R static const char * const blsp5_i2c_groups[] = {
677ef1ea54eSSricharan R "gpio46", "gpio47",
678ef1ea54eSSricharan R };
679ef1ea54eSSricharan R
680ef1ea54eSSricharan R static const char * const blsp5_uart_groups[] = {
681ef1ea54eSSricharan R "gpio48", "gpio49",
682ef1ea54eSSricharan R };
683ef1ea54eSSricharan R
684ef1ea54eSSricharan R static const char * const qdss_traceclk_a_groups[] = {
685ef1ea54eSSricharan R "gpio48",
686ef1ea54eSSricharan R };
687ef1ea54eSSricharan R
688ef1ea54eSSricharan R static const char * const qdss_tracectl_a_groups[] = {
689ef1ea54eSSricharan R "gpio49",
690ef1ea54eSSricharan R };
691ef1ea54eSSricharan R
692ef1ea54eSSricharan R static const char * const pwm01_groups[] = {
693ef1ea54eSSricharan R "gpio50",
694ef1ea54eSSricharan R };
695ef1ea54eSSricharan R
696ef1ea54eSSricharan R static const char * const pta1_1_groups[] = {
697ef1ea54eSSricharan R "gpio51",
698ef1ea54eSSricharan R };
699ef1ea54eSSricharan R
700ef1ea54eSSricharan R static const char * const pwm11_groups[] = {
701ef1ea54eSSricharan R "gpio51",
702ef1ea54eSSricharan R };
703ef1ea54eSSricharan R
704ef1ea54eSSricharan R static const char * const rx1_groups[] = {
705ef1ea54eSSricharan R "gpio51",
706ef1ea54eSSricharan R };
707ef1ea54eSSricharan R
708ef1ea54eSSricharan R static const char * const pta1_2_groups[] = {
709ef1ea54eSSricharan R "gpio52",
710ef1ea54eSSricharan R };
711ef1ea54eSSricharan R
712ef1ea54eSSricharan R static const char * const pwm21_groups[] = {
713ef1ea54eSSricharan R "gpio52",
714ef1ea54eSSricharan R };
715ef1ea54eSSricharan R
716ef1ea54eSSricharan R static const char * const pta1_0_groups[] = {
717ef1ea54eSSricharan R "gpio53",
718ef1ea54eSSricharan R };
719ef1ea54eSSricharan R
720ef1ea54eSSricharan R static const char * const pwm31_groups[] = {
721ef1ea54eSSricharan R "gpio53",
722ef1ea54eSSricharan R };
723ef1ea54eSSricharan R
724ef1ea54eSSricharan R static const char * const prng_rosc_groups[] = {
725ef1ea54eSSricharan R "gpio53",
726ef1ea54eSSricharan R };
727ef1ea54eSSricharan R
728ef1ea54eSSricharan R static const char * const blsp4_uart_groups[] = {
729ef1ea54eSSricharan R "gpio55", "gpio56", "gpio57", "gpio58",
730ef1ea54eSSricharan R };
731ef1ea54eSSricharan R
732ef1ea54eSSricharan R static const char * const blsp4_i2c_groups[] = {
733ef1ea54eSSricharan R "gpio55", "gpio56",
734ef1ea54eSSricharan R };
735ef1ea54eSSricharan R
736ef1ea54eSSricharan R static const char * const blsp4_spi_groups[] = {
737ef1ea54eSSricharan R "gpio55", "gpio56", "gpio57", "gpio58",
738ef1ea54eSSricharan R };
739ef1ea54eSSricharan R
740ef1ea54eSSricharan R static const char * const pcie0_clk_groups[] = {
741ef1ea54eSSricharan R "gpio59",
742ef1ea54eSSricharan R };
743ef1ea54eSSricharan R
744ef1ea54eSSricharan R static const char * const cri_trng0_groups[] = {
745ef1ea54eSSricharan R "gpio59",
746ef1ea54eSSricharan R };
747ef1ea54eSSricharan R
748ef1ea54eSSricharan R static const char * const pcie0_rst_groups[] = {
749ef1ea54eSSricharan R "gpio60",
750ef1ea54eSSricharan R };
751ef1ea54eSSricharan R
752ef1ea54eSSricharan R static const char * const cri_trng1_groups[] = {
753ef1ea54eSSricharan R "gpio60",
754ef1ea54eSSricharan R };
755ef1ea54eSSricharan R
756ef1ea54eSSricharan R static const char * const pcie0_wake_groups[] = {
757ef1ea54eSSricharan R "gpio61",
758ef1ea54eSSricharan R };
759ef1ea54eSSricharan R
760ef1ea54eSSricharan R static const char * const cri_trng_groups[] = {
761ef1ea54eSSricharan R "gpio61",
762ef1ea54eSSricharan R };
763ef1ea54eSSricharan R
764ef1ea54eSSricharan R static const char * const sd_card_groups[] = {
765ef1ea54eSSricharan R "gpio62",
766ef1ea54eSSricharan R };
767ef1ea54eSSricharan R
768ef1ea54eSSricharan R static const char * const sd_write_groups[] = {
769ef1ea54eSSricharan R "gpio63",
770ef1ea54eSSricharan R };
771ef1ea54eSSricharan R
772ef1ea54eSSricharan R static const char * const rx0_groups[] = {
773ef1ea54eSSricharan R "gpio63",
774ef1ea54eSSricharan R };
775ef1ea54eSSricharan R
776ef1ea54eSSricharan R static const char * const tsens_max_groups[] = {
777ef1ea54eSSricharan R "gpio63",
778ef1ea54eSSricharan R };
779ef1ea54eSSricharan R
780ef1ea54eSSricharan R static const char * const mdc_groups[] = {
781ef1ea54eSSricharan R "gpio64",
782ef1ea54eSSricharan R };
783ef1ea54eSSricharan R
784ef1ea54eSSricharan R static const char * const qdss_tracedata_a_groups[] = {
785ef1ea54eSSricharan R "gpio64", "gpio65", "gpio66", "gpio67", "gpio68", "gpio69", "gpio70",
786ef1ea54eSSricharan R "gpio71", "gpio72", "gpio73", "gpio74", "gpio75", "gpio76", "gpio77",
787ef1ea54eSSricharan R "gpio78", "gpio79",
788ef1ea54eSSricharan R };
789ef1ea54eSSricharan R
790ef1ea54eSSricharan R static const char * const mdio_groups[] = {
791ef1ea54eSSricharan R "gpio65",
792ef1ea54eSSricharan R };
793ef1ea54eSSricharan R
794ef1ea54eSSricharan R static const char * const pta2_0_groups[] = {
795ef1ea54eSSricharan R "gpio66",
796ef1ea54eSSricharan R };
797ef1ea54eSSricharan R
798ef1ea54eSSricharan R static const char * const wci21_groups[] = {
799ef1ea54eSSricharan R "gpio66", "gpio68",
800ef1ea54eSSricharan R };
801ef1ea54eSSricharan R
802ef1ea54eSSricharan R static const char * const cxc1_groups[] = {
803ef1ea54eSSricharan R "gpio66", "gpio68",
804ef1ea54eSSricharan R };
805ef1ea54eSSricharan R
806ef1ea54eSSricharan R static const char * const pta2_1_groups[] = {
807ef1ea54eSSricharan R "gpio67",
808ef1ea54eSSricharan R };
809ef1ea54eSSricharan R
810ef1ea54eSSricharan R static const char * const pta2_2_groups[] = {
811ef1ea54eSSricharan R "gpio68",
812ef1ea54eSSricharan R };
813ef1ea54eSSricharan R
814ef1ea54eSSricharan R static const char * const blsp1_uart_groups[] = {
815ef1ea54eSSricharan R "gpio69", "gpio70", "gpio71", "gpio72",
816ef1ea54eSSricharan R };
817ef1ea54eSSricharan R
818ef1ea54eSSricharan R static const char * const blsp1_i2c_groups[] = {
819ef1ea54eSSricharan R "gpio69", "gpio70",
820ef1ea54eSSricharan R };
821ef1ea54eSSricharan R
822ef1ea54eSSricharan R static const char * const blsp1_spi_groups[] = {
823ef1ea54eSSricharan R "gpio69", "gpio70", "gpio71", "gpio72",
824ef1ea54eSSricharan R };
825ef1ea54eSSricharan R
826ef1ea54eSSricharan R static const char * const gcc_plltest_groups[] = {
827ef1ea54eSSricharan R "gpio69", "gpio71",
828ef1ea54eSSricharan R };
829ef1ea54eSSricharan R
830ef1ea54eSSricharan R static const char * const gcc_tlmm_groups[] = {
831ef1ea54eSSricharan R "gpio70",
832ef1ea54eSSricharan R };
833ef1ea54eSSricharan R
834ef1ea54eSSricharan R static const char * const gpio_groups[] = {
835ef1ea54eSSricharan R "gpio0", "gpio1", "gpio2", "gpio3", "gpio4", "gpio5", "gpio6", "gpio7",
836ef1ea54eSSricharan R "gpio8", "gpio9", "gpio10", "gpio11", "gpio12", "gpio13", "gpio14",
837ef1ea54eSSricharan R "gpio15", "gpio16", "gpio17", "gpio18", "gpio19", "gpio20", "gpio21",
838ef1ea54eSSricharan R "gpio22", "gpio23", "gpio24", "gpio25", "gpio26", "gpio27", "gpio28",
839ef1ea54eSSricharan R "gpio29", "gpio30", "gpio31", "gpio32", "gpio33", "gpio34", "gpio35",
840ef1ea54eSSricharan R "gpio36", "gpio37", "gpio38", "gpio39", "gpio40", "gpio41", "gpio42",
841ef1ea54eSSricharan R "gpio43", "gpio44", "gpio45", "gpio46", "gpio47", "gpio48", "gpio49",
842ef1ea54eSSricharan R "gpio50", "gpio51", "gpio52", "gpio53", "gpio54", "gpio55", "gpio56",
843ef1ea54eSSricharan R "gpio57", "gpio58", "gpio59", "gpio60", "gpio61", "gpio62", "gpio63",
844ef1ea54eSSricharan R "gpio64", "gpio65", "gpio66", "gpio67", "gpio68", "gpio69", "gpio70",
845ef1ea54eSSricharan R "gpio71", "gpio72", "gpio73", "gpio74", "gpio75", "gpio76", "gpio77",
846ef1ea54eSSricharan R "gpio78", "gpio79",
847ef1ea54eSSricharan R };
848ef1ea54eSSricharan R
849c7a291dbSRohit Agarwal static const struct pinfunction ipq6018_functions[] = {
850c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(atest_char),
851c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(atest_char0),
852c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(atest_char1),
853c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(atest_char2),
854c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(atest_char3),
855c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(audio0),
856c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(audio1),
857c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(audio2),
858c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(audio3),
859c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(audio_rxbclk),
860c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(audio_rxfsync),
861c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(audio_rxmclk),
862c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(audio_rxmclkin),
863c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(audio_txbclk),
864c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(audio_txfsync),
865c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(audio_txmclk),
866c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(audio_txmclkin),
867c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(blsp0_i2c),
868c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(blsp0_spi),
869c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(blsp0_uart),
870c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(blsp1_i2c),
871c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(blsp1_spi),
872c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(blsp1_uart),
873c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(blsp2_i2c),
874c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(blsp2_spi),
875c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(blsp2_uart),
876c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(blsp3_i2c),
877c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(blsp3_spi),
878c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(blsp3_uart),
879c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(blsp4_i2c),
880c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(blsp4_spi),
881c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(blsp4_uart),
882c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(blsp5_i2c),
883c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(blsp5_uart),
884c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(burn0),
885c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(burn1),
886c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(cri_trng),
887c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(cri_trng0),
888c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(cri_trng1),
889c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(cxc0),
890c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(cxc1),
891c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(dbg_out),
892c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(gcc_plltest),
893c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(gcc_tlmm),
894c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(gpio),
895c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(lpass_aud),
896c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(lpass_aud0),
897c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(lpass_aud1),
898c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(lpass_aud2),
899c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(lpass_pcm),
900c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(lpass_pdm),
901c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(mac00),
902c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(mac01),
903c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(mac10),
904c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(mac11),
905c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(mac12),
906c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(mac13),
907c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(mac20),
908c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(mac21),
909c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(mdc),
910c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(mdio),
911c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pcie0_clk),
912c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pcie0_rst),
913c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pcie0_wake),
914c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(prng_rosc),
915c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pta1_0),
916c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pta1_1),
917c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pta1_2),
918c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pta2_0),
919c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pta2_1),
920c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pta2_2),
921c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pwm00),
922c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pwm01),
923c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pwm02),
924c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pwm03),
925c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pwm04),
926c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pwm10),
927c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pwm11),
928c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pwm12),
929c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pwm13),
930c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pwm14),
931c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pwm20),
932c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pwm21),
933c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pwm22),
934c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pwm23),
935c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pwm24),
936c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pwm30),
937c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pwm31),
938c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pwm32),
939c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pwm33),
940c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(qdss_cti_trig_in_a0),
941c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(qdss_cti_trig_in_a1),
942c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(qdss_cti_trig_out_a0),
943c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(qdss_cti_trig_out_a1),
944c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(qdss_cti_trig_in_b0),
945c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(qdss_cti_trig_in_b1),
946c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(qdss_cti_trig_out_b0),
947c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(qdss_cti_trig_out_b1),
948c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(qdss_traceclk_a),
949c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(qdss_tracectl_a),
950c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(qdss_tracedata_a),
951c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(qdss_traceclk_b),
952c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(qdss_tracectl_b),
953c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(qdss_tracedata_b),
954c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(qpic_pad),
955c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(rx0),
956c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(rx1),
957c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(rx_swrm),
958c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(rx_swrm0),
959c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(rx_swrm1),
960c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(sd_card),
961c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(sd_write),
962c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(tsens_max),
963c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(tx_swrm),
964c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(tx_swrm0),
965c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(tx_swrm1),
966c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(tx_swrm2),
967c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(wci20),
968c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(wci21),
969c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(wci22),
970c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(wci23),
971c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(wsa_swrm),
972ef1ea54eSSricharan R };
973ef1ea54eSSricharan R
974ef1ea54eSSricharan R static const struct msm_pingroup ipq6018_groups[] = {
975ef1ea54eSSricharan R PINGROUP(0, qpic_pad, wci20, qdss_traceclk_b, _, burn0, _, _, _, _),
976ef1ea54eSSricharan R PINGROUP(1, qpic_pad, mac12, qdss_tracectl_b, _, burn1, _, _, _, _),
977ef1ea54eSSricharan R PINGROUP(2, qpic_pad, wci20, qdss_tracedata_b, _, _, _, _, _, _),
978ef1ea54eSSricharan R PINGROUP(3, qpic_pad, mac01, qdss_tracedata_b, _, _, _, _, _, _),
979ef1ea54eSSricharan R PINGROUP(4, qpic_pad, mac01, qdss_tracedata_b, _, _, _, _, _, _),
980ef1ea54eSSricharan R PINGROUP(5, qpic_pad, mac21, qdss_tracedata_b, _, _, _, _, _, _),
981ef1ea54eSSricharan R PINGROUP(6, qpic_pad, mac21, qdss_tracedata_b, _, _, _, _, _, _),
982ef1ea54eSSricharan R PINGROUP(7, qpic_pad, qdss_tracedata_b, _, _, _, _, _, _, _),
983ef1ea54eSSricharan R PINGROUP(8, qpic_pad, qdss_tracedata_b, _, _, _, _, _, _, _),
984ef1ea54eSSricharan R PINGROUP(9, qpic_pad, atest_char, cxc0, mac13, dbg_out, qdss_tracedata_b, _, _, _),
985ef1ea54eSSricharan R PINGROUP(10, qpic_pad, qdss_tracedata_b, _, _, _, _, _, _, _),
986ef1ea54eSSricharan R PINGROUP(11, qpic_pad, wci22, mac12, qdss_tracedata_b, _, _, _, _, _),
987ef1ea54eSSricharan R PINGROUP(12, qpic_pad, qdss_tracedata_b, _, _, _, _, _, _, _),
988ef1ea54eSSricharan R PINGROUP(13, qpic_pad, qdss_tracedata_b, _, _, _, _, _, _, _),
989ef1ea54eSSricharan R PINGROUP(14, qpic_pad, qdss_tracedata_b, _, _, _, _, _, _, _),
990ef1ea54eSSricharan R PINGROUP(15, qpic_pad, qdss_tracedata_b, _, _, _, _, _, _, _),
991ef1ea54eSSricharan R PINGROUP(16, qpic_pad, cxc0, mac13, qdss_tracedata_b, _, _, _, _, _),
992ef1ea54eSSricharan R PINGROUP(17, qpic_pad, qdss_tracedata_b, wci22, _, _, _, _, _, _),
993ef1ea54eSSricharan R PINGROUP(18, pwm00, atest_char0, wci23, mac11, _, _, _, _, _),
994ef1ea54eSSricharan R PINGROUP(19, pwm10, atest_char1, wci23, mac11, _, _, _, _, _),
995ef1ea54eSSricharan R PINGROUP(20, pwm20, atest_char2, _, _, _, _, _, _, _),
996ef1ea54eSSricharan R PINGROUP(21, pwm30, atest_char3, _, _, _, _, _, _, _),
997ef1ea54eSSricharan R PINGROUP(22, audio_txmclk, audio_txmclkin, pwm02, tx_swrm0, _, qdss_cti_trig_out_b0, _, _, _),
998ef1ea54eSSricharan R PINGROUP(23, audio_txbclk, pwm12, wsa_swrm, tx_swrm1, _, qdss_cti_trig_in_b0, _, _, _),
999ef1ea54eSSricharan R PINGROUP(24, audio_txfsync, pwm22, wsa_swrm, tx_swrm2, _, qdss_cti_trig_out_b1, _, _, _),
1000ef1ea54eSSricharan R PINGROUP(25, audio0, pwm32, tx_swrm, _, qdss_cti_trig_in_b1, _, _, _, _),
1001ef1ea54eSSricharan R PINGROUP(26, audio1, pwm04, _, _, _, _, _, _, _),
1002ef1ea54eSSricharan R PINGROUP(27, audio2, pwm14, _, _, _, _, _, _, _),
1003ef1ea54eSSricharan R PINGROUP(28, audio3, pwm24, _, _, _, _, _, _, _),
1004ef1ea54eSSricharan R PINGROUP(29, audio_rxmclk, audio_rxmclkin, pwm03, lpass_pdm, lpass_aud, qdss_cti_trig_in_a1, _, _, _),
1005ef1ea54eSSricharan R PINGROUP(30, audio_rxbclk, pwm13, lpass_pdm, lpass_aud0, rx_swrm, _, qdss_cti_trig_out_a1, _, _),
1006ef1ea54eSSricharan R PINGROUP(31, audio_rxfsync, pwm23, lpass_pdm, lpass_aud1, rx_swrm0, _, qdss_cti_trig_in_a0, _, _),
1007ef1ea54eSSricharan R PINGROUP(32, audio0, pwm33, lpass_pdm, lpass_aud2, rx_swrm1, _, qdss_cti_trig_out_a0, _, _),
1008ef1ea54eSSricharan R PINGROUP(33, audio1, _, _, _, _, _, _, _, _),
1009ef1ea54eSSricharan R PINGROUP(34, lpass_pcm, mac10, mac00, _, _, _, _, _, _),
1010ef1ea54eSSricharan R PINGROUP(35, lpass_pcm, mac10, mac00, _, _, _, _, _, _),
1011ef1ea54eSSricharan R PINGROUP(36, lpass_pcm, mac20, _, _, _, _, _, _, _),
1012ef1ea54eSSricharan R PINGROUP(37, lpass_pcm, mac20, _, _, _, _, _, _, _),
1013ef1ea54eSSricharan R PINGROUP(38, blsp0_uart, blsp0_i2c, blsp0_spi, _, _, _, _, _, _),
1014ef1ea54eSSricharan R PINGROUP(39, blsp0_uart, blsp0_i2c, blsp0_spi, _, _, _, _, _, _),
1015ef1ea54eSSricharan R PINGROUP(40, blsp0_uart, blsp0_spi, _, _, _, _, _, _, _),
1016ef1ea54eSSricharan R PINGROUP(41, blsp0_uart, blsp0_spi, _, _, _, _, _, _, _),
1017ef1ea54eSSricharan R PINGROUP(42, blsp2_uart, blsp2_i2c, blsp2_spi, _, _, _, _, _, _),
1018ef1ea54eSSricharan R PINGROUP(43, blsp2_uart, blsp2_i2c, blsp2_spi, _, _, _, _, _, _),
1019ef1ea54eSSricharan R PINGROUP(44, blsp2_uart, blsp2_spi, _, _, _, _, _, _, _),
1020ef1ea54eSSricharan R PINGROUP(45, blsp2_uart, blsp2_spi, _, _, _, _, _, _, _),
1021ef1ea54eSSricharan R PINGROUP(46, blsp5_i2c, _, _, _, _, _, _, _, _),
1022ef1ea54eSSricharan R PINGROUP(47, blsp5_i2c, _, _, _, _, _, _, _, _),
1023ef1ea54eSSricharan R PINGROUP(48, blsp5_uart, _, qdss_traceclk_a, _, _, _, _, _, _),
1024ef1ea54eSSricharan R PINGROUP(49, blsp5_uart, _, qdss_tracectl_a, _, _, _, _, _, _),
1025ef1ea54eSSricharan R PINGROUP(50, pwm01, _, _, _, _, _, _, _, _),
1026ef1ea54eSSricharan R PINGROUP(51, pta1_1, pwm11, _, rx1, _, _, _, _, _),
1027ef1ea54eSSricharan R PINGROUP(52, pta1_2, pwm21, _, _, _, _, _, _, _),
1028ef1ea54eSSricharan R PINGROUP(53, pta1_0, pwm31, prng_rosc, _, _, _, _, _, _),
1029ef1ea54eSSricharan R PINGROUP(54, _, _, _, _, _, _, _, _, _),
1030ef1ea54eSSricharan R PINGROUP(55, blsp4_uart, blsp4_i2c, blsp4_spi, _, _, _, _, _, _),
1031ef1ea54eSSricharan R PINGROUP(56, blsp4_uart, blsp4_i2c, blsp4_spi, _, _, _, _, _, _),
1032ef1ea54eSSricharan R PINGROUP(57, blsp4_uart, blsp4_spi, _, _, _, _, _, _, _),
1033ef1ea54eSSricharan R PINGROUP(58, blsp4_uart, blsp4_spi, _, _, _, _, _, _, _),
1034ef1ea54eSSricharan R PINGROUP(59, pcie0_clk, _, _, cri_trng0, _, _, _, _, _),
1035ef1ea54eSSricharan R PINGROUP(60, pcie0_rst, _, _, cri_trng1, _, _, _, _, _),
1036ef1ea54eSSricharan R PINGROUP(61, pcie0_wake, _, _, cri_trng, _, _, _, _, _),
1037ef1ea54eSSricharan R PINGROUP(62, sd_card, _, _, _, _, _, _, _, _),
1038ef1ea54eSSricharan R PINGROUP(63, sd_write, rx0, _, tsens_max, _, _, _, _, _),
1039ef1ea54eSSricharan R PINGROUP(64, mdc, _, qdss_tracedata_a, _, _, _, _, _, _),
1040ef1ea54eSSricharan R PINGROUP(65, mdio, _, qdss_tracedata_a, _, _, _, _, _, _),
1041ef1ea54eSSricharan R PINGROUP(66, pta2_0, wci21, cxc1, qdss_tracedata_a, _, _, _, _, _),
1042ef1ea54eSSricharan R PINGROUP(67, pta2_1, qdss_tracedata_a, _, _, _, _, _, _, _),
1043ef1ea54eSSricharan R PINGROUP(68, pta2_2, wci21, cxc1, qdss_tracedata_a, _, _, _, _, _),
1044ef1ea54eSSricharan R PINGROUP(69, blsp1_uart, blsp1_i2c, blsp1_spi, gcc_plltest, qdss_tracedata_a, _, _, _, _),
1045ef1ea54eSSricharan R PINGROUP(70, blsp1_uart, blsp1_i2c, blsp1_spi, gcc_tlmm, qdss_tracedata_a, _, _, _, _),
1046ef1ea54eSSricharan R PINGROUP(71, blsp1_uart, blsp1_spi, gcc_plltest, qdss_tracedata_a, _, _, _, _, _),
1047ef1ea54eSSricharan R PINGROUP(72, blsp1_uart, blsp1_spi, qdss_tracedata_a, _, _, _, _, _, _),
1048ef1ea54eSSricharan R PINGROUP(73, blsp3_uart, blsp3_i2c, blsp3_spi, _, qdss_tracedata_a, _, _, _, _),
1049ef1ea54eSSricharan R PINGROUP(74, blsp3_uart, blsp3_i2c, blsp3_spi, _, qdss_tracedata_a, _, _, _, _),
1050ef1ea54eSSricharan R PINGROUP(75, blsp3_uart, blsp3_spi, _, qdss_tracedata_a, _, _, _, _, _),
1051ef1ea54eSSricharan R PINGROUP(76, blsp3_uart, blsp3_spi, _, qdss_tracedata_a, _, _, _, _, _),
1052ef1ea54eSSricharan R PINGROUP(77, blsp3_spi, _, qdss_tracedata_a, _, _, _, _, _, _),
1053ef1ea54eSSricharan R PINGROUP(78, blsp3_spi, _, qdss_tracedata_a, _, _, _, _, _, _),
1054ef1ea54eSSricharan R PINGROUP(79, blsp3_spi, _, qdss_tracedata_a, _, _, _, _, _, _),
1055ef1ea54eSSricharan R };
1056ef1ea54eSSricharan R
1057ef1ea54eSSricharan R static const struct msm_pinctrl_soc_data ipq6018_pinctrl = {
1058ef1ea54eSSricharan R .pins = ipq6018_pins,
1059ef1ea54eSSricharan R .npins = ARRAY_SIZE(ipq6018_pins),
1060ef1ea54eSSricharan R .functions = ipq6018_functions,
1061ef1ea54eSSricharan R .nfunctions = ARRAY_SIZE(ipq6018_functions),
1062ef1ea54eSSricharan R .groups = ipq6018_groups,
1063ef1ea54eSSricharan R .ngroups = ARRAY_SIZE(ipq6018_groups),
1064ef1ea54eSSricharan R .ngpios = 80,
1065ef1ea54eSSricharan R };
1066ef1ea54eSSricharan R
ipq6018_pinctrl_probe(struct platform_device * pdev)1067ef1ea54eSSricharan R static int ipq6018_pinctrl_probe(struct platform_device *pdev)
1068ef1ea54eSSricharan R {
1069ef1ea54eSSricharan R return msm_pinctrl_probe(pdev, &ipq6018_pinctrl);
1070ef1ea54eSSricharan R }
1071ef1ea54eSSricharan R
1072ef1ea54eSSricharan R static const struct of_device_id ipq6018_pinctrl_of_match[] = {
1073ef1ea54eSSricharan R { .compatible = "qcom,ipq6018-pinctrl", },
1074ef1ea54eSSricharan R { },
1075ef1ea54eSSricharan R };
1076ef1ea54eSSricharan R
1077ef1ea54eSSricharan R static struct platform_driver ipq6018_pinctrl_driver = {
1078ef1ea54eSSricharan R .driver = {
1079ef1ea54eSSricharan R .name = "ipq6018-pinctrl",
1080ef1ea54eSSricharan R .of_match_table = ipq6018_pinctrl_of_match,
1081ef1ea54eSSricharan R },
1082ef1ea54eSSricharan R .probe = ipq6018_pinctrl_probe,
1083*22ee670aSUwe Kleine-König .remove_new = msm_pinctrl_remove,
1084ef1ea54eSSricharan R };
1085ef1ea54eSSricharan R
ipq6018_pinctrl_init(void)1086ef1ea54eSSricharan R static int __init ipq6018_pinctrl_init(void)
1087ef1ea54eSSricharan R {
1088ef1ea54eSSricharan R return platform_driver_register(&ipq6018_pinctrl_driver);
1089ef1ea54eSSricharan R }
1090ef1ea54eSSricharan R arch_initcall(ipq6018_pinctrl_init);
1091ef1ea54eSSricharan R
ipq6018_pinctrl_exit(void)1092ef1ea54eSSricharan R static void __exit ipq6018_pinctrl_exit(void)
1093ef1ea54eSSricharan R {
1094ef1ea54eSSricharan R platform_driver_unregister(&ipq6018_pinctrl_driver);
1095ef1ea54eSSricharan R }
1096ef1ea54eSSricharan R module_exit(ipq6018_pinctrl_exit);
1097ef1ea54eSSricharan R
1098ef1ea54eSSricharan R MODULE_DESCRIPTION("QTI ipq6018 pinctrl driver");
1099ef1ea54eSSricharan R MODULE_LICENSE("GPL v2");
1100ef1ea54eSSricharan R MODULE_DEVICE_TABLE(of, ipq6018_pinctrl_of_match);
1101