GNU Linux-libre 6.9.1-gnu
[releases.git] / drivers / pinctrl / qcom / pinctrl-msm8953.c
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
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_new = msm_pinctrl_remove,
1820 };
1821
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
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);