xref: /openbmc/linux/drivers/pinctrl/qcom/pinctrl-msm8953.c (revision 2612e3bbc0386368a850140a6c9b990cd496a5ec)
1  // SPDX-License-Identifier: GPL-2.0
2  // Copyright (c) 2020, The Linux Foundation. All rights reserved.
3  
4  #include <linux/module.h>
5  #include <linux/of.h>
6  #include <linux/platform_device.h>
7  
8  #include "pinctrl-msm.h"
9  
10  #define PINGROUP(id, f1, f2, f3, f4, f5, f6, f7, f8, f9)	\
11  	{							\
12  		.grp = PINCTRL_PINGROUP("gpio" #id, 	\
13  			gpio##id##_pins, 		\
14  			ARRAY_SIZE(gpio##id##_pins)),	\
15  		.funcs = (int[]){				\
16  			msm_mux_gpio, /* gpio mode */		\
17  			msm_mux_##f1,				\
18  			msm_mux_##f2,				\
19  			msm_mux_##f3,				\
20  			msm_mux_##f4,				\
21  			msm_mux_##f5,				\
22  			msm_mux_##f6,				\
23  			msm_mux_##f7,				\
24  			msm_mux_##f8,				\
25  			msm_mux_##f9				\
26  		},						\
27  		.nfuncs = 10,					\
28  		.ctl_reg = 0x1000 * id,				\
29  		.io_reg = 0x4 + 0x1000 * id,			\
30  		.intr_cfg_reg = 0x8 + 0x1000 * id,		\
31  		.intr_status_reg = 0xc + 0x1000 * id,		\
32  		.intr_target_reg = 0x8 + 0x1000 * id,		\
33  		.mux_bit = 2,					\
34  		.pull_bit = 0,					\
35  		.drv_bit = 6,					\
36  		.oe_bit = 9,					\
37  		.in_bit = 0,					\
38  		.out_bit = 1,					\
39  		.intr_enable_bit = 0,				\
40  		.intr_status_bit = 0,				\
41  		.intr_target_bit = 5,				\
42  		.intr_target_kpss_val = 4,			\
43  		.intr_raw_status_bit = 4,			\
44  		.intr_polarity_bit = 1,				\
45  		.intr_detection_bit = 2,			\
46  		.intr_detection_width = 2,			\
47  	}
48  
49  #define SDC_QDSD_PINGROUP(pg_name, ctl, pull, drv)	\
50  	{					        \
51  		.grp = PINCTRL_PINGROUP(#pg_name, 	\
52  			pg_name##_pins, 		\
53  			ARRAY_SIZE(pg_name##_pins)),	\
54  		.ctl_reg = ctl,				\
55  		.io_reg = 0,				\
56  		.intr_cfg_reg = 0,			\
57  		.intr_status_reg = 0,			\
58  		.intr_target_reg = 0,			\
59  		.mux_bit = -1,				\
60  		.pull_bit = pull,			\
61  		.drv_bit = drv,				\
62  		.oe_bit = -1,				\
63  		.in_bit = -1,				\
64  		.out_bit = -1,				\
65  		.intr_enable_bit = -1,			\
66  		.intr_status_bit = -1,			\
67  		.intr_target_bit = -1,			\
68  		.intr_raw_status_bit = -1,		\
69  		.intr_polarity_bit = -1,		\
70  		.intr_detection_bit = -1,		\
71  		.intr_detection_width = -1,		\
72  	}
73  
74  static const struct pinctrl_pin_desc msm8953_pins[] = {
75  	PINCTRL_PIN(0, "GPIO_0"),
76  	PINCTRL_PIN(1, "GPIO_1"),
77  	PINCTRL_PIN(2, "GPIO_2"),
78  	PINCTRL_PIN(3, "GPIO_3"),
79  	PINCTRL_PIN(4, "GPIO_4"),
80  	PINCTRL_PIN(5, "GPIO_5"),
81  	PINCTRL_PIN(6, "GPIO_6"),
82  	PINCTRL_PIN(7, "GPIO_7"),
83  	PINCTRL_PIN(8, "GPIO_8"),
84  	PINCTRL_PIN(9, "GPIO_9"),
85  	PINCTRL_PIN(10, "GPIO_10"),
86  	PINCTRL_PIN(11, "GPIO_11"),
87  	PINCTRL_PIN(12, "GPIO_12"),
88  	PINCTRL_PIN(13, "GPIO_13"),
89  	PINCTRL_PIN(14, "GPIO_14"),
90  	PINCTRL_PIN(15, "GPIO_15"),
91  	PINCTRL_PIN(16, "GPIO_16"),
92  	PINCTRL_PIN(17, "GPIO_17"),
93  	PINCTRL_PIN(18, "GPIO_18"),
94  	PINCTRL_PIN(19, "GPIO_19"),
95  	PINCTRL_PIN(20, "GPIO_20"),
96  	PINCTRL_PIN(21, "GPIO_21"),
97  	PINCTRL_PIN(22, "GPIO_22"),
98  	PINCTRL_PIN(23, "GPIO_23"),
99  	PINCTRL_PIN(24, "GPIO_24"),
100  	PINCTRL_PIN(25, "GPIO_25"),
101  	PINCTRL_PIN(26, "GPIO_26"),
102  	PINCTRL_PIN(27, "GPIO_27"),
103  	PINCTRL_PIN(28, "GPIO_28"),
104  	PINCTRL_PIN(29, "GPIO_29"),
105  	PINCTRL_PIN(30, "GPIO_30"),
106  	PINCTRL_PIN(31, "GPIO_31"),
107  	PINCTRL_PIN(32, "GPIO_32"),
108  	PINCTRL_PIN(33, "GPIO_33"),
109  	PINCTRL_PIN(34, "GPIO_34"),
110  	PINCTRL_PIN(35, "GPIO_35"),
111  	PINCTRL_PIN(36, "GPIO_36"),
112  	PINCTRL_PIN(37, "GPIO_37"),
113  	PINCTRL_PIN(38, "GPIO_38"),
114  	PINCTRL_PIN(39, "GPIO_39"),
115  	PINCTRL_PIN(40, "GPIO_40"),
116  	PINCTRL_PIN(41, "GPIO_41"),
117  	PINCTRL_PIN(42, "GPIO_42"),
118  	PINCTRL_PIN(43, "GPIO_43"),
119  	PINCTRL_PIN(44, "GPIO_44"),
120  	PINCTRL_PIN(45, "GPIO_45"),
121  	PINCTRL_PIN(46, "GPIO_46"),
122  	PINCTRL_PIN(47, "GPIO_47"),
123  	PINCTRL_PIN(48, "GPIO_48"),
124  	PINCTRL_PIN(49, "GPIO_49"),
125  	PINCTRL_PIN(50, "GPIO_50"),
126  	PINCTRL_PIN(51, "GPIO_51"),
127  	PINCTRL_PIN(52, "GPIO_52"),
128  	PINCTRL_PIN(53, "GPIO_53"),
129  	PINCTRL_PIN(54, "GPIO_54"),
130  	PINCTRL_PIN(55, "GPIO_55"),
131  	PINCTRL_PIN(56, "GPIO_56"),
132  	PINCTRL_PIN(57, "GPIO_57"),
133  	PINCTRL_PIN(58, "GPIO_58"),
134  	PINCTRL_PIN(59, "GPIO_59"),
135  	PINCTRL_PIN(60, "GPIO_60"),
136  	PINCTRL_PIN(61, "GPIO_61"),
137  	PINCTRL_PIN(62, "GPIO_62"),
138  	PINCTRL_PIN(63, "GPIO_63"),
139  	PINCTRL_PIN(64, "GPIO_64"),
140  	PINCTRL_PIN(65, "GPIO_65"),
141  	PINCTRL_PIN(66, "GPIO_66"),
142  	PINCTRL_PIN(67, "GPIO_67"),
143  	PINCTRL_PIN(68, "GPIO_68"),
144  	PINCTRL_PIN(69, "GPIO_69"),
145  	PINCTRL_PIN(70, "GPIO_70"),
146  	PINCTRL_PIN(71, "GPIO_71"),
147  	PINCTRL_PIN(72, "GPIO_72"),
148  	PINCTRL_PIN(73, "GPIO_73"),
149  	PINCTRL_PIN(74, "GPIO_74"),
150  	PINCTRL_PIN(75, "GPIO_75"),
151  	PINCTRL_PIN(76, "GPIO_76"),
152  	PINCTRL_PIN(77, "GPIO_77"),
153  	PINCTRL_PIN(78, "GPIO_78"),
154  	PINCTRL_PIN(79, "GPIO_79"),
155  	PINCTRL_PIN(80, "GPIO_80"),
156  	PINCTRL_PIN(81, "GPIO_81"),
157  	PINCTRL_PIN(82, "GPIO_82"),
158  	PINCTRL_PIN(83, "GPIO_83"),
159  	PINCTRL_PIN(84, "GPIO_84"),
160  	PINCTRL_PIN(85, "GPIO_85"),
161  	PINCTRL_PIN(86, "GPIO_86"),
162  	PINCTRL_PIN(87, "GPIO_87"),
163  	PINCTRL_PIN(88, "GPIO_88"),
164  	PINCTRL_PIN(89, "GPIO_89"),
165  	PINCTRL_PIN(90, "GPIO_90"),
166  	PINCTRL_PIN(91, "GPIO_91"),
167  	PINCTRL_PIN(92, "GPIO_92"),
168  	PINCTRL_PIN(93, "GPIO_93"),
169  	PINCTRL_PIN(94, "GPIO_94"),
170  	PINCTRL_PIN(95, "GPIO_95"),
171  	PINCTRL_PIN(96, "GPIO_96"),
172  	PINCTRL_PIN(97, "GPIO_97"),
173  	PINCTRL_PIN(98, "GPIO_98"),
174  	PINCTRL_PIN(99, "GPIO_99"),
175  	PINCTRL_PIN(100, "GPIO_100"),
176  	PINCTRL_PIN(101, "GPIO_101"),
177  	PINCTRL_PIN(102, "GPIO_102"),
178  	PINCTRL_PIN(103, "GPIO_103"),
179  	PINCTRL_PIN(104, "GPIO_104"),
180  	PINCTRL_PIN(105, "GPIO_105"),
181  	PINCTRL_PIN(106, "GPIO_106"),
182  	PINCTRL_PIN(107, "GPIO_107"),
183  	PINCTRL_PIN(108, "GPIO_108"),
184  	PINCTRL_PIN(109, "GPIO_109"),
185  	PINCTRL_PIN(110, "GPIO_110"),
186  	PINCTRL_PIN(111, "GPIO_111"),
187  	PINCTRL_PIN(112, "GPIO_112"),
188  	PINCTRL_PIN(113, "GPIO_113"),
189  	PINCTRL_PIN(114, "GPIO_114"),
190  	PINCTRL_PIN(115, "GPIO_115"),
191  	PINCTRL_PIN(116, "GPIO_116"),
192  	PINCTRL_PIN(117, "GPIO_117"),
193  	PINCTRL_PIN(118, "GPIO_118"),
194  	PINCTRL_PIN(119, "GPIO_119"),
195  	PINCTRL_PIN(120, "GPIO_120"),
196  	PINCTRL_PIN(121, "GPIO_121"),
197  	PINCTRL_PIN(122, "GPIO_122"),
198  	PINCTRL_PIN(123, "GPIO_123"),
199  	PINCTRL_PIN(124, "GPIO_124"),
200  	PINCTRL_PIN(125, "GPIO_125"),
201  	PINCTRL_PIN(126, "GPIO_126"),
202  	PINCTRL_PIN(127, "GPIO_127"),
203  	PINCTRL_PIN(128, "GPIO_128"),
204  	PINCTRL_PIN(129, "GPIO_129"),
205  	PINCTRL_PIN(130, "GPIO_130"),
206  	PINCTRL_PIN(131, "GPIO_131"),
207  	PINCTRL_PIN(132, "GPIO_132"),
208  	PINCTRL_PIN(133, "GPIO_133"),
209  	PINCTRL_PIN(134, "GPIO_134"),
210  	PINCTRL_PIN(135, "GPIO_135"),
211  	PINCTRL_PIN(136, "GPIO_136"),
212  	PINCTRL_PIN(137, "GPIO_137"),
213  	PINCTRL_PIN(138, "GPIO_138"),
214  	PINCTRL_PIN(139, "GPIO_139"),
215  	PINCTRL_PIN(140, "GPIO_140"),
216  	PINCTRL_PIN(141, "GPIO_141"),
217  	PINCTRL_PIN(142, "SDC1_CLK"),
218  	PINCTRL_PIN(143, "SDC1_CMD"),
219  	PINCTRL_PIN(144, "SDC1_DATA"),
220  	PINCTRL_PIN(145, "SDC1_RCLK"),
221  	PINCTRL_PIN(146, "SDC2_CLK"),
222  	PINCTRL_PIN(147, "SDC2_CMD"),
223  	PINCTRL_PIN(148, "SDC2_DATA"),
224  	PINCTRL_PIN(149, "QDSD_CLK"),
225  	PINCTRL_PIN(150, "QDSD_CMD"),
226  	PINCTRL_PIN(151, "QDSD_DATA0"),
227  	PINCTRL_PIN(152, "QDSD_DATA1"),
228  	PINCTRL_PIN(153, "QDSD_DATA2"),
229  	PINCTRL_PIN(154, "QDSD_DATA3"),
230  };
231  
232  #define DECLARE_MSM_GPIO_PINS(pin) \
233  	static const unsigned int gpio##pin##_pins[] = { pin }
234  DECLARE_MSM_GPIO_PINS(0);
235  DECLARE_MSM_GPIO_PINS(1);
236  DECLARE_MSM_GPIO_PINS(2);
237  DECLARE_MSM_GPIO_PINS(3);
238  DECLARE_MSM_GPIO_PINS(4);
239  DECLARE_MSM_GPIO_PINS(5);
240  DECLARE_MSM_GPIO_PINS(6);
241  DECLARE_MSM_GPIO_PINS(7);
242  DECLARE_MSM_GPIO_PINS(8);
243  DECLARE_MSM_GPIO_PINS(9);
244  DECLARE_MSM_GPIO_PINS(10);
245  DECLARE_MSM_GPIO_PINS(11);
246  DECLARE_MSM_GPIO_PINS(12);
247  DECLARE_MSM_GPIO_PINS(13);
248  DECLARE_MSM_GPIO_PINS(14);
249  DECLARE_MSM_GPIO_PINS(15);
250  DECLARE_MSM_GPIO_PINS(16);
251  DECLARE_MSM_GPIO_PINS(17);
252  DECLARE_MSM_GPIO_PINS(18);
253  DECLARE_MSM_GPIO_PINS(19);
254  DECLARE_MSM_GPIO_PINS(20);
255  DECLARE_MSM_GPIO_PINS(21);
256  DECLARE_MSM_GPIO_PINS(22);
257  DECLARE_MSM_GPIO_PINS(23);
258  DECLARE_MSM_GPIO_PINS(24);
259  DECLARE_MSM_GPIO_PINS(25);
260  DECLARE_MSM_GPIO_PINS(26);
261  DECLARE_MSM_GPIO_PINS(27);
262  DECLARE_MSM_GPIO_PINS(28);
263  DECLARE_MSM_GPIO_PINS(29);
264  DECLARE_MSM_GPIO_PINS(30);
265  DECLARE_MSM_GPIO_PINS(31);
266  DECLARE_MSM_GPIO_PINS(32);
267  DECLARE_MSM_GPIO_PINS(33);
268  DECLARE_MSM_GPIO_PINS(34);
269  DECLARE_MSM_GPIO_PINS(35);
270  DECLARE_MSM_GPIO_PINS(36);
271  DECLARE_MSM_GPIO_PINS(37);
272  DECLARE_MSM_GPIO_PINS(38);
273  DECLARE_MSM_GPIO_PINS(39);
274  DECLARE_MSM_GPIO_PINS(40);
275  DECLARE_MSM_GPIO_PINS(41);
276  DECLARE_MSM_GPIO_PINS(42);
277  DECLARE_MSM_GPIO_PINS(43);
278  DECLARE_MSM_GPIO_PINS(44);
279  DECLARE_MSM_GPIO_PINS(45);
280  DECLARE_MSM_GPIO_PINS(46);
281  DECLARE_MSM_GPIO_PINS(47);
282  DECLARE_MSM_GPIO_PINS(48);
283  DECLARE_MSM_GPIO_PINS(49);
284  DECLARE_MSM_GPIO_PINS(50);
285  DECLARE_MSM_GPIO_PINS(51);
286  DECLARE_MSM_GPIO_PINS(52);
287  DECLARE_MSM_GPIO_PINS(53);
288  DECLARE_MSM_GPIO_PINS(54);
289  DECLARE_MSM_GPIO_PINS(55);
290  DECLARE_MSM_GPIO_PINS(56);
291  DECLARE_MSM_GPIO_PINS(57);
292  DECLARE_MSM_GPIO_PINS(58);
293  DECLARE_MSM_GPIO_PINS(59);
294  DECLARE_MSM_GPIO_PINS(60);
295  DECLARE_MSM_GPIO_PINS(61);
296  DECLARE_MSM_GPIO_PINS(62);
297  DECLARE_MSM_GPIO_PINS(63);
298  DECLARE_MSM_GPIO_PINS(64);
299  DECLARE_MSM_GPIO_PINS(65);
300  DECLARE_MSM_GPIO_PINS(66);
301  DECLARE_MSM_GPIO_PINS(67);
302  DECLARE_MSM_GPIO_PINS(68);
303  DECLARE_MSM_GPIO_PINS(69);
304  DECLARE_MSM_GPIO_PINS(70);
305  DECLARE_MSM_GPIO_PINS(71);
306  DECLARE_MSM_GPIO_PINS(72);
307  DECLARE_MSM_GPIO_PINS(73);
308  DECLARE_MSM_GPIO_PINS(74);
309  DECLARE_MSM_GPIO_PINS(75);
310  DECLARE_MSM_GPIO_PINS(76);
311  DECLARE_MSM_GPIO_PINS(77);
312  DECLARE_MSM_GPIO_PINS(78);
313  DECLARE_MSM_GPIO_PINS(79);
314  DECLARE_MSM_GPIO_PINS(80);
315  DECLARE_MSM_GPIO_PINS(81);
316  DECLARE_MSM_GPIO_PINS(82);
317  DECLARE_MSM_GPIO_PINS(83);
318  DECLARE_MSM_GPIO_PINS(84);
319  DECLARE_MSM_GPIO_PINS(85);
320  DECLARE_MSM_GPIO_PINS(86);
321  DECLARE_MSM_GPIO_PINS(87);
322  DECLARE_MSM_GPIO_PINS(88);
323  DECLARE_MSM_GPIO_PINS(89);
324  DECLARE_MSM_GPIO_PINS(90);
325  DECLARE_MSM_GPIO_PINS(91);
326  DECLARE_MSM_GPIO_PINS(92);
327  DECLARE_MSM_GPIO_PINS(93);
328  DECLARE_MSM_GPIO_PINS(94);
329  DECLARE_MSM_GPIO_PINS(95);
330  DECLARE_MSM_GPIO_PINS(96);
331  DECLARE_MSM_GPIO_PINS(97);
332  DECLARE_MSM_GPIO_PINS(98);
333  DECLARE_MSM_GPIO_PINS(99);
334  DECLARE_MSM_GPIO_PINS(100);
335  DECLARE_MSM_GPIO_PINS(101);
336  DECLARE_MSM_GPIO_PINS(102);
337  DECLARE_MSM_GPIO_PINS(103);
338  DECLARE_MSM_GPIO_PINS(104);
339  DECLARE_MSM_GPIO_PINS(105);
340  DECLARE_MSM_GPIO_PINS(106);
341  DECLARE_MSM_GPIO_PINS(107);
342  DECLARE_MSM_GPIO_PINS(108);
343  DECLARE_MSM_GPIO_PINS(109);
344  DECLARE_MSM_GPIO_PINS(110);
345  DECLARE_MSM_GPIO_PINS(111);
346  DECLARE_MSM_GPIO_PINS(112);
347  DECLARE_MSM_GPIO_PINS(113);
348  DECLARE_MSM_GPIO_PINS(114);
349  DECLARE_MSM_GPIO_PINS(115);
350  DECLARE_MSM_GPIO_PINS(116);
351  DECLARE_MSM_GPIO_PINS(117);
352  DECLARE_MSM_GPIO_PINS(118);
353  DECLARE_MSM_GPIO_PINS(119);
354  DECLARE_MSM_GPIO_PINS(120);
355  DECLARE_MSM_GPIO_PINS(121);
356  DECLARE_MSM_GPIO_PINS(122);
357  DECLARE_MSM_GPIO_PINS(123);
358  DECLARE_MSM_GPIO_PINS(124);
359  DECLARE_MSM_GPIO_PINS(125);
360  DECLARE_MSM_GPIO_PINS(126);
361  DECLARE_MSM_GPIO_PINS(127);
362  DECLARE_MSM_GPIO_PINS(128);
363  DECLARE_MSM_GPIO_PINS(129);
364  DECLARE_MSM_GPIO_PINS(130);
365  DECLARE_MSM_GPIO_PINS(131);
366  DECLARE_MSM_GPIO_PINS(132);
367  DECLARE_MSM_GPIO_PINS(133);
368  DECLARE_MSM_GPIO_PINS(134);
369  DECLARE_MSM_GPIO_PINS(135);
370  DECLARE_MSM_GPIO_PINS(136);
371  DECLARE_MSM_GPIO_PINS(137);
372  DECLARE_MSM_GPIO_PINS(138);
373  DECLARE_MSM_GPIO_PINS(139);
374  DECLARE_MSM_GPIO_PINS(140);
375  DECLARE_MSM_GPIO_PINS(141);
376  
377  static const unsigned int qdsd_clk_pins[] = { 142 };
378  static const unsigned int qdsd_cmd_pins[] = { 143 };
379  static const unsigned int qdsd_data0_pins[] = { 144 };
380  static const unsigned int qdsd_data1_pins[] = { 145 };
381  static const unsigned int qdsd_data2_pins[] = { 146 };
382  static const unsigned int qdsd_data3_pins[] = { 147 };
383  static const unsigned int sdc1_clk_pins[] = { 148 };
384  static const unsigned int sdc1_cmd_pins[] = { 149 };
385  static const unsigned int sdc1_data_pins[] = { 150 };
386  static const unsigned int sdc1_rclk_pins[] = { 151 };
387  static const unsigned int sdc2_clk_pins[] = { 152 };
388  static const unsigned int sdc2_cmd_pins[] = { 153 };
389  static const unsigned int sdc2_data_pins[] = { 154 };
390  
391  enum msm8953_functions {
392  	msm_mux_accel_int,
393  	msm_mux_adsp_ext,
394  	msm_mux_alsp_int,
395  	msm_mux_atest_bbrx0,
396  	msm_mux_atest_bbrx1,
397  	msm_mux_atest_char,
398  	msm_mux_atest_char0,
399  	msm_mux_atest_char1,
400  	msm_mux_atest_char2,
401  	msm_mux_atest_char3,
402  	msm_mux_atest_gpsadc_dtest0_native,
403  	msm_mux_atest_gpsadc_dtest1_native,
404  	msm_mux_atest_tsens,
405  	msm_mux_atest_wlan0,
406  	msm_mux_atest_wlan1,
407  	msm_mux_bimc_dte0,
408  	msm_mux_bimc_dte1,
409  	msm_mux_blsp1_spi,
410  	msm_mux_blsp3_spi,
411  	msm_mux_blsp6_spi,
412  	msm_mux_blsp7_spi,
413  	msm_mux_blsp_i2c1,
414  	msm_mux_blsp_i2c2,
415  	msm_mux_blsp_i2c3,
416  	msm_mux_blsp_i2c4,
417  	msm_mux_blsp_i2c5,
418  	msm_mux_blsp_i2c6,
419  	msm_mux_blsp_i2c7,
420  	msm_mux_blsp_i2c8,
421  	msm_mux_blsp_spi1,
422  	msm_mux_blsp_spi2,
423  	msm_mux_blsp_spi3,
424  	msm_mux_blsp_spi4,
425  	msm_mux_blsp_spi5,
426  	msm_mux_blsp_spi6,
427  	msm_mux_blsp_spi7,
428  	msm_mux_blsp_spi8,
429  	msm_mux_blsp_uart2,
430  	msm_mux_blsp_uart4,
431  	msm_mux_blsp_uart5,
432  	msm_mux_blsp_uart6,
433  	msm_mux_cam0_ldo,
434  	msm_mux_cam1_ldo,
435  	msm_mux_cam1_rst,
436  	msm_mux_cam1_standby,
437  	msm_mux_cam2_rst,
438  	msm_mux_cam2_standby,
439  	msm_mux_cam3_rst,
440  	msm_mux_cam3_standby,
441  	msm_mux_cam_irq,
442  	msm_mux_cam_mclk,
443  	msm_mux_cap_int,
444  	msm_mux_cci_async,
445  	msm_mux_cci_i2c,
446  	msm_mux_cci_timer0,
447  	msm_mux_cci_timer1,
448  	msm_mux_cci_timer2,
449  	msm_mux_cci_timer3,
450  	msm_mux_cci_timer4,
451  	msm_mux_cdc_pdm0,
452  	msm_mux_codec_int1,
453  	msm_mux_codec_int2,
454  	msm_mux_codec_reset,
455  	msm_mux_cri_trng,
456  	msm_mux_cri_trng0,
457  	msm_mux_cri_trng1,
458  	msm_mux_dac_calib0,
459  	msm_mux_dac_calib1,
460  	msm_mux_dac_calib2,
461  	msm_mux_dac_calib3,
462  	msm_mux_dac_calib4,
463  	msm_mux_dac_calib5,
464  	msm_mux_dac_calib6,
465  	msm_mux_dac_calib7,
466  	msm_mux_dac_calib8,
467  	msm_mux_dac_calib9,
468  	msm_mux_dac_calib10,
469  	msm_mux_dac_calib11,
470  	msm_mux_dac_calib12,
471  	msm_mux_dac_calib13,
472  	msm_mux_dac_calib14,
473  	msm_mux_dac_calib15,
474  	msm_mux_dac_calib16,
475  	msm_mux_dac_calib17,
476  	msm_mux_dac_calib18,
477  	msm_mux_dac_calib19,
478  	msm_mux_dac_calib20,
479  	msm_mux_dac_calib21,
480  	msm_mux_dac_calib22,
481  	msm_mux_dac_calib23,
482  	msm_mux_dac_calib24,
483  	msm_mux_dac_calib25,
484  	msm_mux_dbg_out,
485  	msm_mux_ddr_bist,
486  	msm_mux_dmic0_clk,
487  	msm_mux_dmic0_data,
488  	msm_mux_ebi_cdc,
489  	msm_mux_ebi_ch0,
490  	msm_mux_ext_lpass,
491  	msm_mux_flash_strobe,
492  	msm_mux_fp_int,
493  	msm_mux_gcc_gp1_clk_a,
494  	msm_mux_gcc_gp1_clk_b,
495  	msm_mux_gcc_gp2_clk_a,
496  	msm_mux_gcc_gp2_clk_b,
497  	msm_mux_gcc_gp3_clk_a,
498  	msm_mux_gcc_gp3_clk_b,
499  	msm_mux_gcc_plltest,
500  	msm_mux_gcc_tlmm,
501  	msm_mux_gpio,
502  	msm_mux_gsm0_tx,
503  	msm_mux_gsm1_tx,
504  	msm_mux_gyro_int,
505  	msm_mux_hall_int,
506  	msm_mux_hdmi_int,
507  	msm_mux_key_focus,
508  	msm_mux_key_home,
509  	msm_mux_key_snapshot,
510  	msm_mux_key_volp,
511  	msm_mux_ldo_en,
512  	msm_mux_ldo_update,
513  	msm_mux_lpass_slimbus,
514  	msm_mux_lpass_slimbus0,
515  	msm_mux_lpass_slimbus1,
516  	msm_mux_m_voc,
517  	msm_mux_mag_int,
518  	msm_mux_mdp_vsync,
519  	msm_mux_mipi_dsi0,
520  	msm_mux_modem_tsync,
521  	msm_mux_mss_lte,
522  	msm_mux_nav_pps,
523  	msm_mux_nav_pps_in_a,
524  	msm_mux_nav_pps_in_b,
525  	msm_mux_nav_tsync,
526  	msm_mux_nfc_disable,
527  	msm_mux_nfc_dwl,
528  	msm_mux_nfc_irq,
529  	msm_mux_ois_sync,
530  	msm_mux_pa_indicator,
531  	msm_mux_pbs0,
532  	msm_mux_pbs1,
533  	msm_mux_pbs2,
534  	msm_mux_pressure_int,
535  	msm_mux_pri_mi2s,
536  	msm_mux_pri_mi2s_mclk_a,
537  	msm_mux_pri_mi2s_mclk_b,
538  	msm_mux_pri_mi2s_ws,
539  	msm_mux_prng_rosc,
540  	msm_mux_pwr_crypto_enabled_a,
541  	msm_mux_pwr_crypto_enabled_b,
542  	msm_mux_pwr_down,
543  	msm_mux_pwr_modem_enabled_a,
544  	msm_mux_pwr_modem_enabled_b,
545  	msm_mux_pwr_nav_enabled_a,
546  	msm_mux_pwr_nav_enabled_b,
547  	msm_mux_qdss_cti_trig_in_a0,
548  	msm_mux_qdss_cti_trig_in_a1,
549  	msm_mux_qdss_cti_trig_in_b0,
550  	msm_mux_qdss_cti_trig_in_b1,
551  	msm_mux_qdss_cti_trig_out_a0,
552  	msm_mux_qdss_cti_trig_out_a1,
553  	msm_mux_qdss_cti_trig_out_b0,
554  	msm_mux_qdss_cti_trig_out_b1,
555  	msm_mux_qdss_traceclk_a,
556  	msm_mux_qdss_traceclk_b,
557  	msm_mux_qdss_tracectl_a,
558  	msm_mux_qdss_tracectl_b,
559  	msm_mux_qdss_tracedata_a,
560  	msm_mux_qdss_tracedata_b,
561  	msm_mux_sd_write,
562  	msm_mux_sdcard_det,
563  	msm_mux_sec_mi2s,
564  	msm_mux_sec_mi2s_mclk_a,
565  	msm_mux_sec_mi2s_mclk_b,
566  	msm_mux_smb_int,
567  	msm_mux_ss_switch,
568  	msm_mux_ssbi_wtr1,
569  	msm_mux_ts_resout,
570  	msm_mux_ts_sample,
571  	msm_mux_ts_xvdd,
572  	msm_mux_tsens_max,
573  	msm_mux_uim1_clk,
574  	msm_mux_uim1_data,
575  	msm_mux_uim1_present,
576  	msm_mux_uim1_reset,
577  	msm_mux_uim2_clk,
578  	msm_mux_uim2_data,
579  	msm_mux_uim2_present,
580  	msm_mux_uim2_reset,
581  	msm_mux_uim_batt,
582  	msm_mux_us_emitter,
583  	msm_mux_us_euro,
584  	msm_mux_wcss_bt,
585  	msm_mux_wcss_fm,
586  	msm_mux_wcss_wlan,
587  	msm_mux_wcss_wlan0,
588  	msm_mux_wcss_wlan1,
589  	msm_mux_wcss_wlan2,
590  	msm_mux_wsa_en,
591  	msm_mux_wsa_io,
592  	msm_mux_wsa_irq,
593  	msm_mux__,
594  };
595  
596  static const char * const accel_int_groups[] = {
597  	"gpio42",
598  };
599  
600  static const char * const adsp_ext_groups[] = {
601  	"gpio1",
602  };
603  
604  static const char * const alsp_int_groups[] = {
605  	"gpio43",
606  };
607  
608  static const char * const atest_bbrx0_groups[] = {
609  	"gpio17",
610  };
611  
612  static const char * const atest_bbrx1_groups[] = {
613  	"gpio16",
614  };
615  
616  static const char * const atest_char0_groups[] = {
617  	"gpio68",
618  };
619  
620  static const char * const atest_char1_groups[] = {
621  	"gpio67",
622  };
623  
624  static const char * const atest_char2_groups[] = {
625  	"gpio75",
626  };
627  
628  static const char * const atest_char3_groups[] = {
629  	"gpio63",
630  };
631  
632  static const char * const atest_char_groups[] = {
633  	"gpio120",
634  };
635  
636  static const char * const atest_gpsadc_dtest0_native_groups[] = {
637  	"gpio7",
638  };
639  
640  static const char * const atest_gpsadc_dtest1_native_groups[] = {
641  	"gpio18",
642  };
643  
644  static const char * const atest_tsens_groups[] = {
645  	"gpio120",
646  };
647  
648  static const char * const atest_wlan0_groups[] = {
649  	"gpio22",
650  };
651  
652  static const char * const atest_wlan1_groups[] = {
653  	"gpio23",
654  };
655  
656  static const char * const bimc_dte0_groups[] = {
657  	"gpio63", "gpio65",
658  };
659  
660  static const char * const bimc_dte1_groups[] = {
661  	"gpio121", "gpio122",
662  };
663  
664  static const char * const blsp1_spi_groups[] = {
665  	"gpio35", "gpio36",
666  };
667  
668  static const char * const blsp3_spi_groups[] = {
669  	"gpio41", "gpio50",
670  };
671  
672  static const char * const blsp6_spi_groups[] = {
673  	"gpio47", "gpio48",
674  };
675  
676  static const char * const blsp7_spi_groups[] = {
677  	"gpio89", "gpio90",
678  };
679  
680  static const char * const blsp_i2c1_groups[] = {
681  	"gpio2", "gpio3",
682  };
683  
684  static const char * const blsp_i2c2_groups[] = {
685  	"gpio6", "gpio7",
686  };
687  
688  static const char * const blsp_i2c3_groups[] = {
689  	"gpio10", "gpio11",
690  };
691  
692  static const char * const blsp_i2c4_groups[] = {
693  	"gpio14", "gpio15",
694  };
695  
696  static const char * const blsp_i2c5_groups[] = {
697  	"gpio18", "gpio19",
698  };
699  
700  static const char * const blsp_i2c6_groups[] = {
701  	"gpio22", "gpio23",
702  };
703  
704  static const char * const blsp_i2c7_groups[] = {
705  	"gpio135", "gpio136",
706  };
707  
708  static const char * const blsp_i2c8_groups[] = {
709  	"gpio98", "gpio99",
710  };
711  
712  static const char * const blsp_spi1_groups[] = {
713  	"gpio0", "gpio1", "gpio2", "gpio3",
714  };
715  
716  static const char * const blsp_spi2_groups[] = {
717  	"gpio4", "gpio5", "gpio6", "gpio7",
718  };
719  
720  static const char * const blsp_spi3_groups[] = {
721  	"gpio8", "gpio9", "gpio10", "gpio11",
722  };
723  
724  static const char * const blsp_spi4_groups[] = {
725  	"gpio12", "gpio13", "gpio14", "gpio15",
726  };
727  
728  static const char * const blsp_spi5_groups[] = {
729  	"gpio16", "gpio17", "gpio18", "gpio19",
730  };
731  
732  static const char * const blsp_spi6_groups[] = {
733  	"gpio20", "gpio21", "gpio22", "gpio23",
734  };
735  
736  static const char * const blsp_spi7_groups[] = {
737  	"gpio135", "gpio136", "gpio137", "gpio138",
738  };
739  
740  static const char * const blsp_spi8_groups[] = {
741  	"gpio96", "gpio97", "gpio98", "gpio99",
742  };
743  
744  static const char * const blsp_uart2_groups[] = {
745  	"gpio4", "gpio5", "gpio6", "gpio7",
746  };
747  
748  static const char * const blsp_uart4_groups[] = {
749  	"gpio12", "gpio13", "gpio14", "gpio15",
750  };
751  
752  static const char * const blsp_uart5_groups[] = {
753  	"gpio16", "gpio17", "gpio18", "gpio19",
754  };
755  
756  static const char * const blsp_uart6_groups[] = {
757  	"gpio20", "gpio21", "gpio22", "gpio23",
758  };
759  
760  static const char * const cam0_ldo_groups[] = {
761  	"gpio50",
762  };
763  
764  static const char * const cam1_ldo_groups[] = {
765  	"gpio134",
766  };
767  
768  static const char * const cam1_rst_groups[] = {
769  	"gpio40",
770  };
771  
772  static const char * const cam1_standby_groups[] = {
773  	"gpio39",
774  };
775  
776  static const char * const cam2_rst_groups[] = {
777  	"gpio129",
778  };
779  
780  static const char * const cam2_standby_groups[] = {
781  	"gpio130",
782  };
783  
784  static const char * const cam3_rst_groups[] = {
785  	"gpio131",
786  };
787  
788  static const char * const cam3_standby_groups[] = {
789  	"gpio132",
790  };
791  
792  static const char * const cam_irq_groups[] = {
793  	"gpio35",
794  };
795  
796  static const char * const cam_mclk_groups[] = {
797  	"gpio26", "gpio27", "gpio28", "gpio128",
798  };
799  
800  static const char * const cap_int_groups[] = {
801  	"gpio13",
802  };
803  
804  static const char * const cci_async_groups[] = {
805  	"gpio38",
806  };
807  
808  static const char * const cci_i2c_groups[] = {
809  	"gpio29", "gpio30", "gpio31", "gpio32",
810  };
811  
812  static const char * const cci_timer0_groups[] = {
813  	"gpio33",
814  };
815  
816  static const char * const cci_timer1_groups[] = {
817  	"gpio34",
818  };
819  
820  static const char * const cci_timer2_groups[] = {
821  	"gpio35",
822  };
823  
824  static const char * const cci_timer3_groups[] = {
825  	"gpio36",
826  };
827  
828  static const char * const cci_timer4_groups[] = {
829  	"gpio41",
830  };
831  
832  static const char * const cdc_pdm0_groups[] = {
833  	"gpio67", "gpio68", "gpio69", "gpio70", "gpio71", "gpio72", "gpio73",
834  	"gpio74",
835  };
836  
837  static const char * const codec_int1_groups[] = {
838  	"gpio73",
839  };
840  
841  static const char * const codec_int2_groups[] = {
842  	"gpio74",
843  };
844  
845  static const char * const codec_reset_groups[] = {
846  	"gpio67",
847  };
848  
849  static const char * const cri_trng0_groups[] = {
850  	"gpio85",
851  };
852  
853  static const char * const cri_trng1_groups[] = {
854  	"gpio86",
855  };
856  
857  static const char * const cri_trng_groups[] = {
858  	"gpio87",
859  };
860  
861  static const char * const dac_calib0_groups[] = {
862  	"gpio4",
863  };
864  
865  static const char * const dac_calib1_groups[] = {
866  	"gpio12",
867  };
868  
869  static const char * const dac_calib2_groups[] = {
870  	"gpio13",
871  };
872  
873  static const char * const dac_calib3_groups[] = {
874  	"gpio28",
875  };
876  
877  static const char * const dac_calib4_groups[] = {
878  	"gpio29",
879  };
880  
881  static const char * const dac_calib5_groups[] = {
882  	"gpio39",
883  };
884  
885  static const char * const dac_calib6_groups[] = {
886  	"gpio40",
887  };
888  
889  static const char * const dac_calib7_groups[] = {
890  	"gpio41",
891  };
892  
893  static const char * const dac_calib8_groups[] = {
894  	"gpio42",
895  };
896  
897  static const char * const dac_calib9_groups[] = {
898  	"gpio43",
899  };
900  
901  static const char * const dac_calib10_groups[] = {
902  	"gpio44",
903  };
904  
905  static const char * const dac_calib11_groups[] = {
906  	"gpio45",
907  };
908  
909  static const char * const dac_calib12_groups[] = {
910  	"gpio46",
911  };
912  
913  static const char * const dac_calib13_groups[] = {
914  	"gpio47",
915  };
916  
917  static const char * const dac_calib14_groups[] = {
918  	"gpio48",
919  };
920  
921  static const char * const dac_calib15_groups[] = {
922  	"gpio20",
923  };
924  
925  static const char * const dac_calib16_groups[] = {
926  	"gpio21",
927  };
928  
929  static const char * const dac_calib17_groups[] = {
930  	"gpio67",
931  };
932  
933  static const char * const dac_calib18_groups[] = {
934  	"gpio115",
935  };
936  
937  static const char * const dac_calib19_groups[] = {
938  	"gpio30",
939  };
940  
941  static const char * const dac_calib20_groups[] = {
942  	"gpio128",
943  };
944  
945  static const char * const dac_calib21_groups[] = {
946  	"gpio129",
947  };
948  
949  static const char * const dac_calib22_groups[] = {
950  	"gpio130",
951  };
952  
953  static const char * const dac_calib23_groups[] = {
954  	"gpio131",
955  };
956  
957  static const char * const dac_calib24_groups[] = {
958  	"gpio132",
959  };
960  
961  static const char * const dac_calib25_groups[] = {
962  	"gpio133",
963  };
964  
965  static const char * const dbg_out_groups[] = {
966  	"gpio63",
967  };
968  
969  static const char * const ddr_bist_groups[] = {
970  	"gpio129", "gpio130", "gpio131", "gpio132",
971  };
972  
973  static const char * const dmic0_clk_groups[] = {
974  	"gpio89",
975  };
976  
977  static const char * const dmic0_data_groups[] = {
978  	"gpio90",
979  };
980  
981  static const char * const ebi_cdc_groups[] = {
982  	"gpio67", "gpio69", "gpio118", "gpio119", "gpio120", "gpio123",
983  };
984  
985  static const char * const ebi_ch0_groups[] = {
986  	"gpio75",
987  };
988  
989  static const char * const ext_lpass_groups[] = {
990  	"gpio81",
991  };
992  
993  static const char * const flash_strobe_groups[] = {
994  	"gpio33", "gpio34",
995  };
996  
997  static const char * const fp_int_groups[] = {
998  	"gpio48",
999  };
1000  
1001  static const char * const gcc_gp1_clk_a_groups[] = {
1002  	"gpio42",
1003  };
1004  
1005  static const char * const gcc_gp1_clk_b_groups[] = {
1006  	"gpio6", "gpio41",
1007  };
1008  
1009  static const char * const gcc_gp2_clk_a_groups[] = {
1010  	"gpio43",
1011  };
1012  
1013  static const char * const gcc_gp2_clk_b_groups[] = {
1014  	"gpio10",
1015  };
1016  
1017  static const char * const gcc_gp3_clk_a_groups[] = {
1018  	"gpio44",
1019  };
1020  
1021  static const char * const gcc_gp3_clk_b_groups[] = {
1022  	"gpio11",
1023  };
1024  
1025  static const char * const gcc_plltest_groups[] = {
1026  	"gpio98", "gpio99",
1027  };
1028  
1029  static const char * const gcc_tlmm_groups[] = {
1030  	"gpio87",
1031  };
1032  
1033  static const char * const gpio_groups[] = {
1034  	"gpio0", "gpio1", "gpio2", "gpio3", "gpio4", "gpio5", "gpio6", "gpio7",
1035  	"gpio8", "gpio9", "gpio10", "gpio11", "gpio12", "gpio13", "gpio14",
1036  	"gpio15", "gpio16", "gpio17", "gpio18", "gpio19", "gpio20", "gpio21",
1037  	"gpio22", "gpio23", "gpio24", "gpio25", "gpio26", "gpio27", "gpio28",
1038  	"gpio29", "gpio30", "gpio31", "gpio32", "gpio33", "gpio34", "gpio35",
1039  	"gpio36", "gpio37", "gpio38", "gpio39", "gpio40", "gpio41", "gpio42",
1040  	"gpio43", "gpio44", "gpio45", "gpio46", "gpio47", "gpio48", "gpio49",
1041  	"gpio50", "gpio51", "gpio52", "gpio53", "gpio54", "gpio55", "gpio56",
1042  	"gpio57", "gpio58", "gpio59", "gpio60", "gpio61", "gpio62", "gpio63",
1043  	"gpio64", "gpio65", "gpio66", "gpio67", "gpio68", "gpio69", "gpio70",
1044  	"gpio71", "gpio72", "gpio73", "gpio74", "gpio75", "gpio76", "gpio77",
1045  	"gpio78", "gpio79", "gpio80", "gpio81", "gpio82", "gpio83", "gpio84",
1046  	"gpio85", "gpio86", "gpio87", "gpio88", "gpio89", "gpio90", "gpio91",
1047  	"gpio92", "gpio93", "gpio94", "gpio95", "gpio96", "gpio97", "gpio98",
1048  	"gpio99", "gpio100", "gpio101", "gpio102", "gpio103", "gpio104",
1049  	"gpio105", "gpio106", "gpio107", "gpio108", "gpio109", "gpio110",
1050  	"gpio111", "gpio112", "gpio113", "gpio114", "gpio115", "gpio116",
1051  	"gpio117", "gpio118", "gpio119", "gpio120", "gpio121", "gpio122",
1052  	"gpio123", "gpio124", "gpio125", "gpio126", "gpio127", "gpio128",
1053  	"gpio129", "gpio130", "gpio131", "gpio132", "gpio133", "gpio134",
1054  	"gpio135", "gpio136", "gpio137", "gpio138", "gpio139", "gpio140",
1055  	"gpio141",
1056  };
1057  
1058  static const char * const gsm0_tx_groups[] = {
1059  	"gpio117",
1060  };
1061  
1062  static const char * const gsm1_tx_groups[] = {
1063  	"gpio115",
1064  };
1065  
1066  static const char * const gyro_int_groups[] = {
1067  	"gpio45",
1068  };
1069  
1070  static const char * const hall_int_groups[] = {
1071  	"gpio12",
1072  };
1073  
1074  static const char * const hdmi_int_groups[] = {
1075  	"gpio90",
1076  };
1077  
1078  static const char * const key_focus_groups[] = {
1079  	"gpio87",
1080  };
1081  
1082  static const char * const key_home_groups[] = {
1083  	"gpio88",
1084  };
1085  
1086  static const char * const key_snapshot_groups[] = {
1087  	"gpio86",
1088  };
1089  
1090  static const char * const key_volp_groups[] = {
1091  	"gpio85",
1092  };
1093  
1094  static const char * const ldo_en_groups[] = {
1095  	"gpio5",
1096  };
1097  
1098  static const char * const ldo_update_groups[] = {
1099  	"gpio4",
1100  };
1101  
1102  static const char * const lpass_slimbus0_groups[] = {
1103  	"gpio71",
1104  };
1105  
1106  static const char * const lpass_slimbus1_groups[] = {
1107  	"gpio72",
1108  };
1109  
1110  static const char * const lpass_slimbus_groups[] = {
1111  	"gpio70",
1112  };
1113  
1114  static const char * const m_voc_groups[] = {
1115  	"gpio17", "gpio21",
1116  };
1117  
1118  static const char * const mag_int_groups[] = {
1119  	"gpio44",
1120  };
1121  
1122  static const char * const mdp_vsync_groups[] = {
1123  	"gpio24", "gpio25",
1124  };
1125  
1126  static const char * const mipi_dsi0_groups[] = {
1127  	"gpio61",
1128  };
1129  
1130  static const char * const modem_tsync_groups[] = {
1131  	"gpio113",
1132  };
1133  
1134  static const char * const mss_lte_groups[] = {
1135  	"gpio82", "gpio83",
1136  };
1137  
1138  static const char * const nav_pps_groups[] = {
1139  	"gpio113",
1140  };
1141  
1142  static const char * const nav_pps_in_a_groups[] = {
1143  	"gpio111",
1144  };
1145  
1146  static const char * const nav_pps_in_b_groups[] = {
1147  	"gpio113",
1148  };
1149  
1150  static const char * const nav_tsync_groups[] = {
1151  	"gpio113",
1152  };
1153  
1154  static const char * const nfc_disable_groups[] = {
1155  	"gpio16",
1156  };
1157  
1158  static const char * const nfc_dwl_groups[] = {
1159  	"gpio62",
1160  };
1161  
1162  static const char * const nfc_irq_groups[] = {
1163  	"gpio17",
1164  };
1165  
1166  static const char * const ois_sync_groups[] = {
1167  	"gpio36",
1168  };
1169  
1170  static const char * const pa_indicator_groups[] = {
1171  	"gpio112",
1172  };
1173  
1174  static const char * const pbs0_groups[] = {
1175  	"gpio85",
1176  };
1177  
1178  static const char * const pbs1_groups[] = {
1179  	"gpio86",
1180  };
1181  
1182  static const char * const pbs2_groups[] = {
1183  	"gpio87",
1184  };
1185  
1186  static const char * const pressure_int_groups[] = {
1187  	"gpio46",
1188  };
1189  
1190  static const char * const pri_mi2s_groups[] = {
1191  	"gpio66", "gpio88", "gpio91", "gpio93", "gpio94", "gpio95",
1192  };
1193  
1194  static const char * const pri_mi2s_mclk_a_groups[] = {
1195  	"gpio25",
1196  };
1197  
1198  static const char * const pri_mi2s_mclk_b_groups[] = {
1199  	"gpio69",
1200  };
1201  
1202  static const char * const pri_mi2s_ws_groups[] = {
1203  	"gpio92",
1204  };
1205  
1206  static const char * const prng_rosc_groups[] = {
1207  	"gpio2",
1208  };
1209  
1210  static const char * const pwr_crypto_enabled_a_groups[] = {
1211  	"gpio36",
1212  };
1213  
1214  static const char * const pwr_crypto_enabled_b_groups[] = {
1215  	"gpio13",
1216  };
1217  
1218  static const char * const pwr_down_groups[] = {
1219  	"gpio89",
1220  };
1221  
1222  static const char * const pwr_modem_enabled_a_groups[] = {
1223  	"gpio29",
1224  };
1225  
1226  static const char * const pwr_modem_enabled_b_groups[] = {
1227  	"gpio9",
1228  };
1229  
1230  static const char * const pwr_nav_enabled_a_groups[] = {
1231  	"gpio35",
1232  };
1233  
1234  static const char * const pwr_nav_enabled_b_groups[] = {
1235  	"gpio12",
1236  };
1237  
1238  static const char * const qdss_cti_trig_in_a0_groups[] = {
1239  	"gpio17",
1240  };
1241  
1242  static const char * const qdss_cti_trig_in_a1_groups[] = {
1243  	"gpio91",
1244  };
1245  
1246  static const char * const qdss_cti_trig_in_b0_groups[] = {
1247  	"gpio21",
1248  };
1249  
1250  static const char * const qdss_cti_trig_in_b1_groups[] = {
1251  	"gpio48",
1252  };
1253  
1254  static const char * const qdss_cti_trig_out_a0_groups[] = {
1255  	"gpio41",
1256  };
1257  
1258  static const char * const qdss_cti_trig_out_a1_groups[] = {
1259  	"gpio3",
1260  };
1261  
1262  static const char * const qdss_cti_trig_out_b0_groups[] = {
1263  	"gpio2",
1264  };
1265  
1266  static const char * const qdss_cti_trig_out_b1_groups[] = {
1267  	"gpio25",
1268  };
1269  
1270  static const char * const qdss_traceclk_a_groups[] = {
1271  	"gpio16",
1272  };
1273  
1274  static const char * const qdss_traceclk_b_groups[] = {
1275  	"gpio22",
1276  };
1277  
1278  static const char * const qdss_tracectl_a_groups[] = {
1279  	"gpio18",
1280  };
1281  
1282  static const char * const qdss_tracectl_b_groups[] = {
1283  	"gpio20",
1284  };
1285  
1286  static const char * const qdss_tracedata_a_groups[] = {
1287  	"gpio19", "gpio26", "gpio27", "gpio28", "gpio29", "gpio30", "gpio31",
1288  	"gpio32", "gpio33", "gpio34", "gpio35", "gpio36", "gpio38", "gpio39",
1289  	"gpio40", "gpio50",
1290  };
1291  
1292  static const char * const qdss_tracedata_b_groups[] = {
1293  	"gpio8", "gpio9", "gpio12", "gpio13", "gpio23", "gpio42", "gpio43",
1294  	"gpio44", "gpio45", "gpio46", "gpio47", "gpio66", "gpio86", "gpio87",
1295  	"gpio88", "gpio92",
1296  };
1297  
1298  static const char * const sd_write_groups[] = {
1299  	"gpio50",
1300  };
1301  
1302  static const char * const sdcard_det_groups[] = {
1303  	"gpio133",
1304  };
1305  
1306  static const char * const sec_mi2s_groups[] = {
1307  	"gpio135", "gpio136", "gpio137", "gpio138",
1308  };
1309  
1310  static const char * const sec_mi2s_mclk_a_groups[] = {
1311  	"gpio25",
1312  };
1313  
1314  static const char * const sec_mi2s_mclk_b_groups[] = {
1315  	"gpio66",
1316  };
1317  
1318  static const char * const smb_int_groups[] = {
1319  	"gpio1",
1320  };
1321  
1322  static const char * const ss_switch_groups[] = {
1323  	"gpio139",
1324  };
1325  
1326  static const char * const ssbi_wtr1_groups[] = {
1327  	"gpio114", "gpio123",
1328  };
1329  
1330  static const char * const ts_resout_groups[] = {
1331  	"gpio64",
1332  };
1333  
1334  static const char * const ts_sample_groups[] = {
1335  	"gpio65",
1336  };
1337  
1338  static const char * const ts_xvdd_groups[] = {
1339  	"gpio60",
1340  };
1341  
1342  static const char * const tsens_max_groups[] = {
1343  	"gpio139",
1344  };
1345  
1346  static const char * const uim1_clk_groups[] = {
1347  	"gpio52",
1348  };
1349  
1350  static const char * const uim1_data_groups[] = {
1351  	"gpio51",
1352  };
1353  
1354  static const char * const uim1_present_groups[] = {
1355  	"gpio54",
1356  };
1357  
1358  static const char * const uim1_reset_groups[] = {
1359  	"gpio53",
1360  };
1361  
1362  static const char * const uim2_clk_groups[] = {
1363  	"gpio56",
1364  };
1365  
1366  static const char * const uim2_data_groups[] = {
1367  	"gpio55",
1368  };
1369  
1370  static const char * const uim2_present_groups[] = {
1371  	"gpio58",
1372  };
1373  
1374  static const char * const uim2_reset_groups[] = {
1375  	"gpio57",
1376  };
1377  
1378  static const char * const uim_batt_groups[] = {
1379  	"gpio49",
1380  };
1381  
1382  static const char * const us_emitter_groups[] = {
1383  	"gpio68",
1384  };
1385  
1386  static const char * const us_euro_groups[] = {
1387  	"gpio63",
1388  };
1389  
1390  static const char * const wcss_bt_groups[] = {
1391  	"gpio75", "gpio83", "gpio84",
1392  };
1393  
1394  static const char * const wcss_fm_groups[] = {
1395  	"gpio81", "gpio82",
1396  };
1397  
1398  static const char * const wcss_wlan0_groups[] = {
1399  	"gpio78",
1400  };
1401  
1402  static const char * const wcss_wlan1_groups[] = {
1403  	"gpio77",
1404  };
1405  
1406  static const char * const wcss_wlan2_groups[] = {
1407  	"gpio76",
1408  };
1409  
1410  static const char * const wcss_wlan_groups[] = {
1411  	"gpio79", "gpio80",
1412  };
1413  
1414  static const char * const wsa_en_groups[] = {
1415  	"gpio96",
1416  };
1417  
1418  static const char * const wsa_io_groups[] = {
1419  	"gpio94", "gpio95",
1420  };
1421  
1422  static const char * const wsa_irq_groups[] = {
1423  	"gpio97",
1424  };
1425  
1426  static const struct pinfunction msm8953_functions[] = {
1427  	MSM_PIN_FUNCTION(accel_int),
1428  	MSM_PIN_FUNCTION(adsp_ext),
1429  	MSM_PIN_FUNCTION(alsp_int),
1430  	MSM_PIN_FUNCTION(atest_bbrx0),
1431  	MSM_PIN_FUNCTION(atest_bbrx1),
1432  	MSM_PIN_FUNCTION(atest_char),
1433  	MSM_PIN_FUNCTION(atest_char0),
1434  	MSM_PIN_FUNCTION(atest_char1),
1435  	MSM_PIN_FUNCTION(atest_char2),
1436  	MSM_PIN_FUNCTION(atest_char3),
1437  	MSM_PIN_FUNCTION(atest_gpsadc_dtest0_native),
1438  	MSM_PIN_FUNCTION(atest_gpsadc_dtest1_native),
1439  	MSM_PIN_FUNCTION(atest_tsens),
1440  	MSM_PIN_FUNCTION(atest_wlan0),
1441  	MSM_PIN_FUNCTION(atest_wlan1),
1442  	MSM_PIN_FUNCTION(bimc_dte0),
1443  	MSM_PIN_FUNCTION(bimc_dte1),
1444  	MSM_PIN_FUNCTION(blsp1_spi),
1445  	MSM_PIN_FUNCTION(blsp3_spi),
1446  	MSM_PIN_FUNCTION(blsp6_spi),
1447  	MSM_PIN_FUNCTION(blsp7_spi),
1448  	MSM_PIN_FUNCTION(blsp_i2c1),
1449  	MSM_PIN_FUNCTION(blsp_i2c2),
1450  	MSM_PIN_FUNCTION(blsp_i2c3),
1451  	MSM_PIN_FUNCTION(blsp_i2c4),
1452  	MSM_PIN_FUNCTION(blsp_i2c5),
1453  	MSM_PIN_FUNCTION(blsp_i2c6),
1454  	MSM_PIN_FUNCTION(blsp_i2c7),
1455  	MSM_PIN_FUNCTION(blsp_i2c8),
1456  	MSM_PIN_FUNCTION(blsp_spi1),
1457  	MSM_PIN_FUNCTION(blsp_spi2),
1458  	MSM_PIN_FUNCTION(blsp_spi3),
1459  	MSM_PIN_FUNCTION(blsp_spi4),
1460  	MSM_PIN_FUNCTION(blsp_spi5),
1461  	MSM_PIN_FUNCTION(blsp_spi6),
1462  	MSM_PIN_FUNCTION(blsp_spi7),
1463  	MSM_PIN_FUNCTION(blsp_spi8),
1464  	MSM_PIN_FUNCTION(blsp_uart2),
1465  	MSM_PIN_FUNCTION(blsp_uart4),
1466  	MSM_PIN_FUNCTION(blsp_uart5),
1467  	MSM_PIN_FUNCTION(blsp_uart6),
1468  	MSM_PIN_FUNCTION(cam0_ldo),
1469  	MSM_PIN_FUNCTION(cam1_ldo),
1470  	MSM_PIN_FUNCTION(cam1_rst),
1471  	MSM_PIN_FUNCTION(cam1_standby),
1472  	MSM_PIN_FUNCTION(cam2_rst),
1473  	MSM_PIN_FUNCTION(cam2_standby),
1474  	MSM_PIN_FUNCTION(cam3_rst),
1475  	MSM_PIN_FUNCTION(cam3_standby),
1476  	MSM_PIN_FUNCTION(cam_irq),
1477  	MSM_PIN_FUNCTION(cam_mclk),
1478  	MSM_PIN_FUNCTION(cap_int),
1479  	MSM_PIN_FUNCTION(cci_async),
1480  	MSM_PIN_FUNCTION(cci_i2c),
1481  	MSM_PIN_FUNCTION(cci_timer0),
1482  	MSM_PIN_FUNCTION(cci_timer1),
1483  	MSM_PIN_FUNCTION(cci_timer2),
1484  	MSM_PIN_FUNCTION(cci_timer3),
1485  	MSM_PIN_FUNCTION(cci_timer4),
1486  	MSM_PIN_FUNCTION(cdc_pdm0),
1487  	MSM_PIN_FUNCTION(codec_int1),
1488  	MSM_PIN_FUNCTION(codec_int2),
1489  	MSM_PIN_FUNCTION(codec_reset),
1490  	MSM_PIN_FUNCTION(cri_trng),
1491  	MSM_PIN_FUNCTION(cri_trng0),
1492  	MSM_PIN_FUNCTION(cri_trng1),
1493  	MSM_PIN_FUNCTION(dac_calib0),
1494  	MSM_PIN_FUNCTION(dac_calib1),
1495  	MSM_PIN_FUNCTION(dac_calib10),
1496  	MSM_PIN_FUNCTION(dac_calib11),
1497  	MSM_PIN_FUNCTION(dac_calib12),
1498  	MSM_PIN_FUNCTION(dac_calib13),
1499  	MSM_PIN_FUNCTION(dac_calib14),
1500  	MSM_PIN_FUNCTION(dac_calib15),
1501  	MSM_PIN_FUNCTION(dac_calib16),
1502  	MSM_PIN_FUNCTION(dac_calib17),
1503  	MSM_PIN_FUNCTION(dac_calib18),
1504  	MSM_PIN_FUNCTION(dac_calib19),
1505  	MSM_PIN_FUNCTION(dac_calib2),
1506  	MSM_PIN_FUNCTION(dac_calib20),
1507  	MSM_PIN_FUNCTION(dac_calib21),
1508  	MSM_PIN_FUNCTION(dac_calib22),
1509  	MSM_PIN_FUNCTION(dac_calib23),
1510  	MSM_PIN_FUNCTION(dac_calib24),
1511  	MSM_PIN_FUNCTION(dac_calib25),
1512  	MSM_PIN_FUNCTION(dac_calib3),
1513  	MSM_PIN_FUNCTION(dac_calib4),
1514  	MSM_PIN_FUNCTION(dac_calib5),
1515  	MSM_PIN_FUNCTION(dac_calib6),
1516  	MSM_PIN_FUNCTION(dac_calib7),
1517  	MSM_PIN_FUNCTION(dac_calib8),
1518  	MSM_PIN_FUNCTION(dac_calib9),
1519  	MSM_PIN_FUNCTION(dbg_out),
1520  	MSM_PIN_FUNCTION(ddr_bist),
1521  	MSM_PIN_FUNCTION(dmic0_clk),
1522  	MSM_PIN_FUNCTION(dmic0_data),
1523  	MSM_PIN_FUNCTION(ebi_cdc),
1524  	MSM_PIN_FUNCTION(ebi_ch0),
1525  	MSM_PIN_FUNCTION(ext_lpass),
1526  	MSM_PIN_FUNCTION(flash_strobe),
1527  	MSM_PIN_FUNCTION(fp_int),
1528  	MSM_PIN_FUNCTION(gcc_gp1_clk_a),
1529  	MSM_PIN_FUNCTION(gcc_gp1_clk_b),
1530  	MSM_PIN_FUNCTION(gcc_gp2_clk_a),
1531  	MSM_PIN_FUNCTION(gcc_gp2_clk_b),
1532  	MSM_PIN_FUNCTION(gcc_gp3_clk_a),
1533  	MSM_PIN_FUNCTION(gcc_gp3_clk_b),
1534  	MSM_PIN_FUNCTION(gcc_plltest),
1535  	MSM_PIN_FUNCTION(gcc_tlmm),
1536  	MSM_PIN_FUNCTION(gpio),
1537  	MSM_PIN_FUNCTION(gsm0_tx),
1538  	MSM_PIN_FUNCTION(gsm1_tx),
1539  	MSM_PIN_FUNCTION(gyro_int),
1540  	MSM_PIN_FUNCTION(hall_int),
1541  	MSM_PIN_FUNCTION(hdmi_int),
1542  	MSM_PIN_FUNCTION(key_focus),
1543  	MSM_PIN_FUNCTION(key_home),
1544  	MSM_PIN_FUNCTION(key_snapshot),
1545  	MSM_PIN_FUNCTION(key_volp),
1546  	MSM_PIN_FUNCTION(ldo_en),
1547  	MSM_PIN_FUNCTION(ldo_update),
1548  	MSM_PIN_FUNCTION(lpass_slimbus),
1549  	MSM_PIN_FUNCTION(lpass_slimbus0),
1550  	MSM_PIN_FUNCTION(lpass_slimbus1),
1551  	MSM_PIN_FUNCTION(m_voc),
1552  	MSM_PIN_FUNCTION(mag_int),
1553  	MSM_PIN_FUNCTION(mdp_vsync),
1554  	MSM_PIN_FUNCTION(mipi_dsi0),
1555  	MSM_PIN_FUNCTION(modem_tsync),
1556  	MSM_PIN_FUNCTION(mss_lte),
1557  	MSM_PIN_FUNCTION(nav_pps),
1558  	MSM_PIN_FUNCTION(nav_pps_in_a),
1559  	MSM_PIN_FUNCTION(nav_pps_in_b),
1560  	MSM_PIN_FUNCTION(nav_tsync),
1561  	MSM_PIN_FUNCTION(nfc_disable),
1562  	MSM_PIN_FUNCTION(nfc_dwl),
1563  	MSM_PIN_FUNCTION(nfc_irq),
1564  	MSM_PIN_FUNCTION(ois_sync),
1565  	MSM_PIN_FUNCTION(pa_indicator),
1566  	MSM_PIN_FUNCTION(pbs0),
1567  	MSM_PIN_FUNCTION(pbs1),
1568  	MSM_PIN_FUNCTION(pbs2),
1569  	MSM_PIN_FUNCTION(pressure_int),
1570  	MSM_PIN_FUNCTION(pri_mi2s),
1571  	MSM_PIN_FUNCTION(pri_mi2s_mclk_a),
1572  	MSM_PIN_FUNCTION(pri_mi2s_mclk_b),
1573  	MSM_PIN_FUNCTION(pri_mi2s_ws),
1574  	MSM_PIN_FUNCTION(prng_rosc),
1575  	MSM_PIN_FUNCTION(pwr_crypto_enabled_a),
1576  	MSM_PIN_FUNCTION(pwr_crypto_enabled_b),
1577  	MSM_PIN_FUNCTION(pwr_down),
1578  	MSM_PIN_FUNCTION(pwr_modem_enabled_a),
1579  	MSM_PIN_FUNCTION(pwr_modem_enabled_b),
1580  	MSM_PIN_FUNCTION(pwr_nav_enabled_a),
1581  	MSM_PIN_FUNCTION(pwr_nav_enabled_b),
1582  	MSM_PIN_FUNCTION(qdss_cti_trig_in_a0),
1583  	MSM_PIN_FUNCTION(qdss_cti_trig_in_a1),
1584  	MSM_PIN_FUNCTION(qdss_cti_trig_in_b0),
1585  	MSM_PIN_FUNCTION(qdss_cti_trig_in_b1),
1586  	MSM_PIN_FUNCTION(qdss_cti_trig_out_a0),
1587  	MSM_PIN_FUNCTION(qdss_cti_trig_out_a1),
1588  	MSM_PIN_FUNCTION(qdss_cti_trig_out_b0),
1589  	MSM_PIN_FUNCTION(qdss_cti_trig_out_b1),
1590  	MSM_PIN_FUNCTION(qdss_traceclk_a),
1591  	MSM_PIN_FUNCTION(qdss_traceclk_b),
1592  	MSM_PIN_FUNCTION(qdss_tracectl_a),
1593  	MSM_PIN_FUNCTION(qdss_tracectl_b),
1594  	MSM_PIN_FUNCTION(qdss_tracedata_a),
1595  	MSM_PIN_FUNCTION(qdss_tracedata_b),
1596  	MSM_PIN_FUNCTION(sd_write),
1597  	MSM_PIN_FUNCTION(sdcard_det),
1598  	MSM_PIN_FUNCTION(sec_mi2s),
1599  	MSM_PIN_FUNCTION(sec_mi2s_mclk_a),
1600  	MSM_PIN_FUNCTION(sec_mi2s_mclk_b),
1601  	MSM_PIN_FUNCTION(smb_int),
1602  	MSM_PIN_FUNCTION(ss_switch),
1603  	MSM_PIN_FUNCTION(ssbi_wtr1),
1604  	MSM_PIN_FUNCTION(ts_resout),
1605  	MSM_PIN_FUNCTION(ts_sample),
1606  	MSM_PIN_FUNCTION(ts_xvdd),
1607  	MSM_PIN_FUNCTION(tsens_max),
1608  	MSM_PIN_FUNCTION(uim1_clk),
1609  	MSM_PIN_FUNCTION(uim1_data),
1610  	MSM_PIN_FUNCTION(uim1_present),
1611  	MSM_PIN_FUNCTION(uim1_reset),
1612  	MSM_PIN_FUNCTION(uim2_clk),
1613  	MSM_PIN_FUNCTION(uim2_data),
1614  	MSM_PIN_FUNCTION(uim2_present),
1615  	MSM_PIN_FUNCTION(uim2_reset),
1616  	MSM_PIN_FUNCTION(uim_batt),
1617  	MSM_PIN_FUNCTION(us_emitter),
1618  	MSM_PIN_FUNCTION(us_euro),
1619  	MSM_PIN_FUNCTION(wcss_bt),
1620  	MSM_PIN_FUNCTION(wcss_fm),
1621  	MSM_PIN_FUNCTION(wcss_wlan),
1622  	MSM_PIN_FUNCTION(wcss_wlan0),
1623  	MSM_PIN_FUNCTION(wcss_wlan1),
1624  	MSM_PIN_FUNCTION(wcss_wlan2),
1625  	MSM_PIN_FUNCTION(wsa_en),
1626  	MSM_PIN_FUNCTION(wsa_io),
1627  	MSM_PIN_FUNCTION(wsa_irq),
1628  };
1629  
1630  static const struct msm_pingroup msm8953_groups[] = {
1631  	PINGROUP(0, blsp_spi1, _, _, _, _, _, _, _, _),
1632  	PINGROUP(1, blsp_spi1, adsp_ext, _, _, _, _, _, _, _),
1633  	PINGROUP(2, blsp_spi1, blsp_i2c1, prng_rosc, _, _, _, qdss_cti_trig_out_b0, _, _),
1634  	PINGROUP(3, blsp_spi1, blsp_i2c1, _, _, _, qdss_cti_trig_out_a1, _, _, _),
1635  	PINGROUP(4, blsp_spi2, blsp_uart2, ldo_update, _, dac_calib0, _, _, _, _),
1636  	PINGROUP(5, blsp_spi2, blsp_uart2, ldo_en, _, _, _, _, _, _),
1637  	PINGROUP(6, blsp_spi2, blsp_uart2, blsp_i2c2, gcc_gp1_clk_b, _, _, _, _, _),
1638  	PINGROUP(7, blsp_spi2, blsp_uart2, blsp_i2c2, _, atest_gpsadc_dtest0_native, _, _, _, _),
1639  	PINGROUP(8, blsp_spi3, _, _, qdss_tracedata_b, _, _, _, _, _),
1640  	PINGROUP(9, blsp_spi3, pwr_modem_enabled_b, _, _, qdss_tracedata_b, _, _, _, _),
1641  	PINGROUP(10, blsp_spi3, blsp_i2c3, gcc_gp2_clk_b, _, _, _, _, _, _),
1642  	PINGROUP(11, blsp_spi3, blsp_i2c3, gcc_gp3_clk_b, _, _, _, _, _, _),
1643  	PINGROUP(12, blsp_spi4, blsp_uart4, pwr_nav_enabled_b, _, _,
1644  		 qdss_tracedata_b, _, dac_calib1, _),
1645  	PINGROUP(13, blsp_spi4, blsp_uart4, pwr_crypto_enabled_b, _, _, _,
1646  		 qdss_tracedata_b, _, dac_calib2),
1647  	PINGROUP(14, blsp_spi4, blsp_uart4, blsp_i2c4, _, _, _, _, _, _),
1648  	PINGROUP(15, blsp_spi4, blsp_uart4, blsp_i2c4, _, _, _, _, _, _),
1649  	PINGROUP(16, blsp_spi5, blsp_uart5, _, _, qdss_traceclk_a, _, atest_bbrx1, _, _),
1650  	PINGROUP(17, blsp_spi5, blsp_uart5, m_voc, qdss_cti_trig_in_a0, _, atest_bbrx0, _, _, _),
1651  	PINGROUP(18, blsp_spi5, blsp_uart5, blsp_i2c5,
1652  		 qdss_tracectl_a, _, atest_gpsadc_dtest1_native, _, _, _),
1653  	PINGROUP(19, blsp_spi5, blsp_uart5, blsp_i2c5, qdss_tracedata_a, _, _, _, _, _),
1654  	PINGROUP(20, blsp_spi6, blsp_uart6, _, _, _, qdss_tracectl_b, _, dac_calib15, _),
1655  	PINGROUP(21, blsp_spi6, blsp_uart6, m_voc, _, _, _, qdss_cti_trig_in_b0, _, dac_calib16),
1656  	PINGROUP(22, blsp_spi6, blsp_uart6, blsp_i2c6, qdss_traceclk_b, _, atest_wlan0, _, _, _),
1657  	PINGROUP(23, blsp_spi6, blsp_uart6, blsp_i2c6, qdss_tracedata_b, _, atest_wlan1, _, _, _),
1658  	PINGROUP(24, mdp_vsync, _, _, _, _, _, _, _, _),
1659  	PINGROUP(25, mdp_vsync, pri_mi2s_mclk_a, sec_mi2s_mclk_a,
1660  		 qdss_cti_trig_out_b1, _, _, _, _, _),
1661  	PINGROUP(26, cam_mclk, _, _, _, qdss_tracedata_a, _, _, _, _),
1662  	PINGROUP(27, cam_mclk, _, _, _, qdss_tracedata_a, _, _, _, _),
1663  	PINGROUP(28, cam_mclk, _, _, _, qdss_tracedata_a, _, dac_calib3, _, _),
1664  	PINGROUP(29, cci_i2c, pwr_modem_enabled_a, _, _, _, qdss_tracedata_a, _, dac_calib4, _),
1665  	PINGROUP(30, cci_i2c, _, _, _, qdss_tracedata_a, _, dac_calib19, _, _),
1666  	PINGROUP(31, cci_i2c, _, _, _, qdss_tracedata_a, _, _, _, _),
1667  	PINGROUP(32, cci_i2c, _, _, _, qdss_tracedata_a, _, _, _, _),
1668  	PINGROUP(33, cci_timer0, _, _, _, _, qdss_tracedata_a, _, _, _),
1669  	PINGROUP(34, cci_timer1, _, _, _, _, qdss_tracedata_a, _, _, _),
1670  	PINGROUP(35, cci_timer2, blsp1_spi, pwr_nav_enabled_a, _, _, _, qdss_tracedata_a, _, _),
1671  	PINGROUP(36, cci_timer3, blsp1_spi, _, pwr_crypto_enabled_a, _, _, _, qdss_tracedata_a, _),
1672  	PINGROUP(37, _, _, _, _, _, _, _, _, _),
1673  	PINGROUP(38, cci_async, _, qdss_tracedata_a, _, _, _, _, _, _),
1674  	PINGROUP(39, _, _, _, qdss_tracedata_a, _, dac_calib5, _, _, _),
1675  	PINGROUP(40, _, _, qdss_tracedata_a, _, dac_calib6, _, _, _, _),
1676  	PINGROUP(41, cci_timer4, blsp3_spi, gcc_gp1_clk_b, _, _,
1677  		 qdss_cti_trig_out_a0, _, dac_calib7, _),
1678  	PINGROUP(42, gcc_gp1_clk_a, qdss_tracedata_b, _, dac_calib8, _, _, _, _, _),
1679  	PINGROUP(43, gcc_gp2_clk_a, qdss_tracedata_b, _, dac_calib9, _, _, _, _, _),
1680  	PINGROUP(44, gcc_gp3_clk_a, qdss_tracedata_b, _, dac_calib10, _, _, _, _, _),
1681  	PINGROUP(45, _, qdss_tracedata_b, _, dac_calib11, _, _, _, _, _),
1682  	PINGROUP(46, qdss_tracedata_b, _, dac_calib12, _, _, _, _, _, _),
1683  	PINGROUP(47, blsp6_spi, qdss_tracedata_b, _, dac_calib13, _, _, _, _, _),
1684  	PINGROUP(48, blsp6_spi, _, qdss_cti_trig_in_b1, _, dac_calib14, _, _, _, _),
1685  	PINGROUP(49, uim_batt, _, _, _, _, _, _, _, _),
1686  	PINGROUP(50, blsp3_spi, sd_write, _, _, _, qdss_tracedata_a, _, _, _),
1687  	PINGROUP(51, uim1_data, _, _, _, _, _, _, _, _),
1688  	PINGROUP(52, uim1_clk, _, _, _, _, _, _, _, _),
1689  	PINGROUP(53, uim1_reset, _, _, _, _, _, _, _, _),
1690  	PINGROUP(54, uim1_present, _, _, _, _, _, _, _, _),
1691  	PINGROUP(55, uim2_data, _, _, _, _, _, _, _, _),
1692  	PINGROUP(56, uim2_clk, _, _, _, _, _, _, _, _),
1693  	PINGROUP(57, uim2_reset, _, _, _, _, _, _, _, _),
1694  	PINGROUP(58, uim2_present, _, _, _, _, _, _, _, _),
1695  	PINGROUP(59, _, _, _, _, _, _, _, _, _),
1696  	PINGROUP(60, _, _, _, _, _, _, _, _, _),
1697  	PINGROUP(61, _, _, _, _, _, _, _, _, _),
1698  	PINGROUP(62, _, _, _, _, _, _, _, _, _),
1699  	PINGROUP(63, atest_char3, dbg_out, bimc_dte0, _, _, _, _, _, _),
1700  	PINGROUP(64, _, _, _, _, _, _, _, _, _),
1701  	PINGROUP(65, bimc_dte0, _, _, _, _, _, _, _, _),
1702  	PINGROUP(66, sec_mi2s_mclk_b, pri_mi2s, _, qdss_tracedata_b, _, _, _, _, _),
1703  	PINGROUP(67, cdc_pdm0, atest_char1, ebi_cdc, _, dac_calib17, _, _, _, _),
1704  	PINGROUP(68, cdc_pdm0, atest_char0, _, _, _, _, _, _, _),
1705  	PINGROUP(69, cdc_pdm0, pri_mi2s_mclk_b, ebi_cdc, _, _, _, _, _, _),
1706  	PINGROUP(70, lpass_slimbus, cdc_pdm0, _, _, _, _, _, _, _),
1707  	PINGROUP(71, lpass_slimbus0, cdc_pdm0, _, _, _, _, _, _, _),
1708  	PINGROUP(72, lpass_slimbus1, cdc_pdm0, _, _, _, _, _, _, _),
1709  	PINGROUP(73, cdc_pdm0, _, _, _, _, _, _, _, _),
1710  	PINGROUP(74, cdc_pdm0, _, _, _, _, _, _, _, _),
1711  	PINGROUP(75, wcss_bt, atest_char2, _, ebi_ch0, _, _, _, _, _),
1712  	PINGROUP(76, wcss_wlan2, _, _, _, _, _, _, _, _),
1713  	PINGROUP(77, wcss_wlan1, _, _, _, _, _, _, _, _),
1714  	PINGROUP(78, wcss_wlan0, _, _, _, _, _, _, _, _),
1715  	PINGROUP(79, wcss_wlan, _, _, _, _, _, _, _, _),
1716  	PINGROUP(80, wcss_wlan, _, _, _, _, _, _, _, _),
1717  	PINGROUP(81, wcss_fm, ext_lpass, _, _, _, _, _, _, _),
1718  	PINGROUP(82, wcss_fm, mss_lte, _, _, _, _, _, _, _),
1719  	PINGROUP(83, wcss_bt, mss_lte, _, _, _, _, _, _, _),
1720  	PINGROUP(84, wcss_bt, _, _, _, _, _, _, _, _),
1721  	PINGROUP(85, pbs0, cri_trng0, _, _, _, _, _, _, _),
1722  	PINGROUP(86, pbs1, cri_trng1, qdss_tracedata_b, _, _, _, _, _, _),
1723  	PINGROUP(87, pbs2, cri_trng, qdss_tracedata_b, gcc_tlmm, _, _, _, _, _),
1724  	PINGROUP(88, pri_mi2s, _, _, _, qdss_tracedata_b, _, _, _, _),
1725  	PINGROUP(89, dmic0_clk, blsp7_spi, _, _, _, _, _, _, _),
1726  	PINGROUP(90, dmic0_data, blsp7_spi, _, _, _, _, _, _, _),
1727  	PINGROUP(91, pri_mi2s, _, _, _, qdss_cti_trig_in_a1, _, _, _, _),
1728  	PINGROUP(92, pri_mi2s_ws, _, _, _, qdss_tracedata_b, _, _, _, _),
1729  	PINGROUP(93, pri_mi2s, _, _, _, _, _, _, _, _),
1730  	PINGROUP(94, wsa_io, pri_mi2s, _, _, _, _, _, _, _),
1731  	PINGROUP(95, wsa_io, pri_mi2s, _, _, _, _, _, _, _),
1732  	PINGROUP(96, blsp_spi8, _, _, _, _, _, _, _, _),
1733  	PINGROUP(97, blsp_spi8, _, _, _, _, _, _, _, _),
1734  	PINGROUP(98, blsp_i2c8, blsp_spi8, gcc_plltest, _, _, _, _, _, _),
1735  	PINGROUP(99, blsp_i2c8, blsp_spi8, gcc_plltest, _, _, _, _, _, _),
1736  	PINGROUP(100, _, _, _, _, _, _, _, _, _),
1737  	PINGROUP(101, _, _, _, _, _, _, _, _, _),
1738  	PINGROUP(102, _, _, _, _, _, _, _, _, _),
1739  	PINGROUP(103, _, _, _, _, _, _, _, _, _),
1740  	PINGROUP(104, _, _, _, _, _, _, _, _, _),
1741  	PINGROUP(105, _, _, _, _, _, _, _, _, _),
1742  	PINGROUP(106, _, _, _, _, _, _, _, _, _),
1743  	PINGROUP(107, _, _, _, _, _, _, _, _, _),
1744  	PINGROUP(108, _, _, _, _, _, _, _, _, _),
1745  	PINGROUP(109, _, _, _, _, _, _, _, _, _),
1746  	PINGROUP(110, _, _, _, _, _, _, _, _, _),
1747  	PINGROUP(111, _, _, nav_pps_in_a, _, _, _, _, _, _),
1748  	PINGROUP(112, _, pa_indicator, _, _, _, _, _, _, _),
1749  	PINGROUP(113, _, nav_pps_in_b, nav_pps, modem_tsync, nav_tsync, _, _, _, _),
1750  	PINGROUP(114, _, ssbi_wtr1, _, _, _, _, _, _, _),
1751  	PINGROUP(115, _, gsm1_tx, _, dac_calib18, _, _, _, _, _),
1752  	PINGROUP(116, _, _, _, _, _, _, _, _, _),
1753  	PINGROUP(117, gsm0_tx, _, _, _, _, _, _, _, _),
1754  	PINGROUP(118, _, ebi_cdc, _, _, _, _, _, _, _),
1755  	PINGROUP(119, _, ebi_cdc, _, _, _, _, _, _, _),
1756  	PINGROUP(120, _, atest_char, ebi_cdc, _, atest_tsens, _, _, _, _),
1757  	PINGROUP(121, _, _, _, bimc_dte1, _, _, _, _, _),
1758  	PINGROUP(122, _, _, _, bimc_dte1, _, _, _, _, _),
1759  	PINGROUP(123, _, ssbi_wtr1, ebi_cdc, _, _, _, _, _, _),
1760  	PINGROUP(124, _, _, _, _, _, _, _, _, _),
1761  	PINGROUP(125, _, _, _, _, _, _, _, _, _),
1762  	PINGROUP(126, _, _, _, _, _, _, _, _, _),
1763  	PINGROUP(127, _, _, _, _, _, _, _, _, _),
1764  	PINGROUP(128, cam_mclk, _, dac_calib20, _, _, _, _, _, _),
1765  	PINGROUP(129, ddr_bist, _, dac_calib21, _, _, _, _, _, _),
1766  	PINGROUP(130, ddr_bist, _, dac_calib22, _, _, _, _, _, _),
1767  	PINGROUP(131, ddr_bist, _, dac_calib23, _, _, _, _, _, _),
1768  	PINGROUP(132, ddr_bist, _, dac_calib24, _, _, _, _, _, _),
1769  	PINGROUP(133, _, dac_calib25, _, _, _, _, _, _, _),
1770  	PINGROUP(134, _, _, _, _, _, _, _, _, _),
1771  	PINGROUP(135, sec_mi2s, blsp_spi7, blsp_i2c7, _, _, _, _, _, _),
1772  	PINGROUP(136, sec_mi2s, blsp_spi7, blsp_i2c7, _, _, _, _, _, _),
1773  	PINGROUP(137, sec_mi2s, blsp_spi7, _, _, _, _, _, _, _),
1774  	PINGROUP(138, sec_mi2s, blsp_spi7, _, _, _, _, _, _, _),
1775  	PINGROUP(139, tsens_max, _, _, _, _, _, _, _, _),
1776  	PINGROUP(140, _, _, _, _, _, _, _, _, _),
1777  	PINGROUP(141, _, _, _, _, _, _, _, _, _),
1778  	SDC_QDSD_PINGROUP(qdsd_clk, 0x19c000, 3, 0),
1779  	SDC_QDSD_PINGROUP(qdsd_cmd, 0x19c000, 8, 5),
1780  	SDC_QDSD_PINGROUP(qdsd_data0, 0x19c000, 13, 10),
1781  	SDC_QDSD_PINGROUP(qdsd_data1, 0x19c000, 18, 15),
1782  	SDC_QDSD_PINGROUP(qdsd_data2, 0x19c000, 23, 20),
1783  	SDC_QDSD_PINGROUP(qdsd_data3, 0x19c000, 28, 25),
1784  	SDC_QDSD_PINGROUP(sdc1_clk, 0x10a000, 13, 6),
1785  	SDC_QDSD_PINGROUP(sdc1_cmd, 0x10a000, 11, 3),
1786  	SDC_QDSD_PINGROUP(sdc1_data, 0x10a000, 9, 0),
1787  	SDC_QDSD_PINGROUP(sdc1_rclk, 0x10a000, 15, 0),
1788  	SDC_QDSD_PINGROUP(sdc2_clk, 0x109000, 14, 6),
1789  	SDC_QDSD_PINGROUP(sdc2_cmd, 0x109000, 11, 3),
1790  	SDC_QDSD_PINGROUP(sdc2_data, 0x109000, 9, 0),
1791  };
1792  
1793  static const struct msm_pinctrl_soc_data msm8953_pinctrl = {
1794  	.pins = msm8953_pins,
1795  	.npins = ARRAY_SIZE(msm8953_pins),
1796  	.functions = msm8953_functions,
1797  	.nfunctions = ARRAY_SIZE(msm8953_functions),
1798  	.groups = msm8953_groups,
1799  	.ngroups = ARRAY_SIZE(msm8953_groups),
1800  	.ngpios = 142,
1801  };
1802  
msm8953_pinctrl_probe(struct platform_device * pdev)1803  static int msm8953_pinctrl_probe(struct platform_device *pdev)
1804  {
1805  	return msm_pinctrl_probe(pdev, &msm8953_pinctrl);
1806  }
1807  
1808  static const struct of_device_id msm8953_pinctrl_of_match[] = {
1809  	{ .compatible = "qcom,msm8953-pinctrl", },
1810  	{ },
1811  };
1812  
1813  static struct platform_driver msm8953_pinctrl_driver = {
1814  	.driver = {
1815  		.name = "msm8953-pinctrl",
1816  		.of_match_table = msm8953_pinctrl_of_match,
1817  	},
1818  	.probe = msm8953_pinctrl_probe,
1819  	.remove = msm_pinctrl_remove,
1820  };
1821  
msm8953_pinctrl_init(void)1822  static int __init msm8953_pinctrl_init(void)
1823  {
1824  	return platform_driver_register(&msm8953_pinctrl_driver);
1825  }
1826  arch_initcall(msm8953_pinctrl_init);
1827  
msm8953_pinctrl_exit(void)1828  static void __exit msm8953_pinctrl_exit(void)
1829  {
1830  	platform_driver_unregister(&msm8953_pinctrl_driver);
1831  }
1832  module_exit(msm8953_pinctrl_exit);
1833  
1834  MODULE_DESCRIPTION("QTI msm8953 pinctrl driver");
1835  MODULE_LICENSE("GPL v2");
1836  MODULE_DEVICE_TABLE(of, msm8953_pinctrl_of_match);
1837