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