Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0
0002 // Copyright (c) 2020, The Linux Foundation. All rights reserved.
0003 
0004 #include <linux/module.h>
0005 #include <linux/of.h>
0006 #include <linux/platform_device.h>
0007 #include <linux/pinctrl/pinctrl.h>
0008 
0009 #include "pinctrl-msm.h"
0010 
0011 #define FUNCTION(fname)                 \
0012     [msm_mux_##fname] = {               \
0013         .name = #fname,             \
0014         .groups = fname##_groups,               \
0015         .ngroups = ARRAY_SIZE(fname##_groups),  \
0016     }
0017 
0018 #define PINGROUP(id, f1, f2, f3, f4, f5, f6, f7, f8, f9)    \
0019     {                           \
0020         .name = "gpio" #id,             \
0021         .pins = gpio##id##_pins,            \
0022         .npins = ARRAY_SIZE(gpio##id##_pins),       \
0023         .funcs = (int[]){               \
0024             msm_mux_gpio, /* gpio mode */       \
0025             msm_mux_##f1,               \
0026             msm_mux_##f2,               \
0027             msm_mux_##f3,               \
0028             msm_mux_##f4,               \
0029             msm_mux_##f5,               \
0030             msm_mux_##f6,               \
0031             msm_mux_##f7,               \
0032             msm_mux_##f8,               \
0033             msm_mux_##f9                \
0034         },                      \
0035         .nfuncs = 10,                   \
0036         .ctl_reg = 0x1000 * id,             \
0037         .io_reg = 0x4 + 0x1000 * id,            \
0038         .intr_cfg_reg = 0x8 + 0x1000 * id,      \
0039         .intr_status_reg = 0xc + 0x1000 * id,       \
0040         .intr_target_reg = 0x8 + 0x1000 * id,       \
0041         .mux_bit = 2,                   \
0042         .pull_bit = 0,                  \
0043         .drv_bit = 6,                   \
0044         .oe_bit = 9,                    \
0045         .in_bit = 0,                    \
0046         .out_bit = 1,                   \
0047         .intr_enable_bit = 0,               \
0048         .intr_status_bit = 0,               \
0049         .intr_target_bit = 5,               \
0050         .intr_target_kpss_val = 4,          \
0051         .intr_raw_status_bit = 4,           \
0052         .intr_polarity_bit = 1,             \
0053         .intr_detection_bit = 2,            \
0054         .intr_detection_width = 2,          \
0055     }
0056 
0057 #define SDC_QDSD_PINGROUP(pg_name, ctl, pull, drv)  \
0058     {                           \
0059         .name = #pg_name,           \
0060         .pins = pg_name##_pins,         \
0061         .npins = ARRAY_SIZE(pg_name##_pins),    \
0062         .ctl_reg = ctl,             \
0063         .io_reg = 0,                \
0064         .intr_cfg_reg = 0,          \
0065         .intr_status_reg = 0,           \
0066         .intr_target_reg = 0,           \
0067         .mux_bit = -1,              \
0068         .pull_bit = pull,           \
0069         .drv_bit = drv,             \
0070         .oe_bit = -1,               \
0071         .in_bit = -1,               \
0072         .out_bit = -1,              \
0073         .intr_enable_bit = -1,          \
0074         .intr_status_bit = -1,          \
0075         .intr_target_bit = -1,          \
0076         .intr_raw_status_bit = -1,      \
0077         .intr_polarity_bit = -1,        \
0078         .intr_detection_bit = -1,       \
0079         .intr_detection_width = -1,     \
0080     }
0081 
0082 static const struct pinctrl_pin_desc msm8953_pins[] = {
0083     PINCTRL_PIN(0, "GPIO_0"),
0084     PINCTRL_PIN(1, "GPIO_1"),
0085     PINCTRL_PIN(2, "GPIO_2"),
0086     PINCTRL_PIN(3, "GPIO_3"),
0087     PINCTRL_PIN(4, "GPIO_4"),
0088     PINCTRL_PIN(5, "GPIO_5"),
0089     PINCTRL_PIN(6, "GPIO_6"),
0090     PINCTRL_PIN(7, "GPIO_7"),
0091     PINCTRL_PIN(8, "GPIO_8"),
0092     PINCTRL_PIN(9, "GPIO_9"),
0093     PINCTRL_PIN(10, "GPIO_10"),
0094     PINCTRL_PIN(11, "GPIO_11"),
0095     PINCTRL_PIN(12, "GPIO_12"),
0096     PINCTRL_PIN(13, "GPIO_13"),
0097     PINCTRL_PIN(14, "GPIO_14"),
0098     PINCTRL_PIN(15, "GPIO_15"),
0099     PINCTRL_PIN(16, "GPIO_16"),
0100     PINCTRL_PIN(17, "GPIO_17"),
0101     PINCTRL_PIN(18, "GPIO_18"),
0102     PINCTRL_PIN(19, "GPIO_19"),
0103     PINCTRL_PIN(20, "GPIO_20"),
0104     PINCTRL_PIN(21, "GPIO_21"),
0105     PINCTRL_PIN(22, "GPIO_22"),
0106     PINCTRL_PIN(23, "GPIO_23"),
0107     PINCTRL_PIN(24, "GPIO_24"),
0108     PINCTRL_PIN(25, "GPIO_25"),
0109     PINCTRL_PIN(26, "GPIO_26"),
0110     PINCTRL_PIN(27, "GPIO_27"),
0111     PINCTRL_PIN(28, "GPIO_28"),
0112     PINCTRL_PIN(29, "GPIO_29"),
0113     PINCTRL_PIN(30, "GPIO_30"),
0114     PINCTRL_PIN(31, "GPIO_31"),
0115     PINCTRL_PIN(32, "GPIO_32"),
0116     PINCTRL_PIN(33, "GPIO_33"),
0117     PINCTRL_PIN(34, "GPIO_34"),
0118     PINCTRL_PIN(35, "GPIO_35"),
0119     PINCTRL_PIN(36, "GPIO_36"),
0120     PINCTRL_PIN(37, "GPIO_37"),
0121     PINCTRL_PIN(38, "GPIO_38"),
0122     PINCTRL_PIN(39, "GPIO_39"),
0123     PINCTRL_PIN(40, "GPIO_40"),
0124     PINCTRL_PIN(41, "GPIO_41"),
0125     PINCTRL_PIN(42, "GPIO_42"),
0126     PINCTRL_PIN(43, "GPIO_43"),
0127     PINCTRL_PIN(44, "GPIO_44"),
0128     PINCTRL_PIN(45, "GPIO_45"),
0129     PINCTRL_PIN(46, "GPIO_46"),
0130     PINCTRL_PIN(47, "GPIO_47"),
0131     PINCTRL_PIN(48, "GPIO_48"),
0132     PINCTRL_PIN(49, "GPIO_49"),
0133     PINCTRL_PIN(50, "GPIO_50"),
0134     PINCTRL_PIN(51, "GPIO_51"),
0135     PINCTRL_PIN(52, "GPIO_52"),
0136     PINCTRL_PIN(53, "GPIO_53"),
0137     PINCTRL_PIN(54, "GPIO_54"),
0138     PINCTRL_PIN(55, "GPIO_55"),
0139     PINCTRL_PIN(56, "GPIO_56"),
0140     PINCTRL_PIN(57, "GPIO_57"),
0141     PINCTRL_PIN(58, "GPIO_58"),
0142     PINCTRL_PIN(59, "GPIO_59"),
0143     PINCTRL_PIN(60, "GPIO_60"),
0144     PINCTRL_PIN(61, "GPIO_61"),
0145     PINCTRL_PIN(62, "GPIO_62"),
0146     PINCTRL_PIN(63, "GPIO_63"),
0147     PINCTRL_PIN(64, "GPIO_64"),
0148     PINCTRL_PIN(65, "GPIO_65"),
0149     PINCTRL_PIN(66, "GPIO_66"),
0150     PINCTRL_PIN(67, "GPIO_67"),
0151     PINCTRL_PIN(68, "GPIO_68"),
0152     PINCTRL_PIN(69, "GPIO_69"),
0153     PINCTRL_PIN(70, "GPIO_70"),
0154     PINCTRL_PIN(71, "GPIO_71"),
0155     PINCTRL_PIN(72, "GPIO_72"),
0156     PINCTRL_PIN(73, "GPIO_73"),
0157     PINCTRL_PIN(74, "GPIO_74"),
0158     PINCTRL_PIN(75, "GPIO_75"),
0159     PINCTRL_PIN(76, "GPIO_76"),
0160     PINCTRL_PIN(77, "GPIO_77"),
0161     PINCTRL_PIN(78, "GPIO_78"),
0162     PINCTRL_PIN(79, "GPIO_79"),
0163     PINCTRL_PIN(80, "GPIO_80"),
0164     PINCTRL_PIN(81, "GPIO_81"),
0165     PINCTRL_PIN(82, "GPIO_82"),
0166     PINCTRL_PIN(83, "GPIO_83"),
0167     PINCTRL_PIN(84, "GPIO_84"),
0168     PINCTRL_PIN(85, "GPIO_85"),
0169     PINCTRL_PIN(86, "GPIO_86"),
0170     PINCTRL_PIN(87, "GPIO_87"),
0171     PINCTRL_PIN(88, "GPIO_88"),
0172     PINCTRL_PIN(89, "GPIO_89"),
0173     PINCTRL_PIN(90, "GPIO_90"),
0174     PINCTRL_PIN(91, "GPIO_91"),
0175     PINCTRL_PIN(92, "GPIO_92"),
0176     PINCTRL_PIN(93, "GPIO_93"),
0177     PINCTRL_PIN(94, "GPIO_94"),
0178     PINCTRL_PIN(95, "GPIO_95"),
0179     PINCTRL_PIN(96, "GPIO_96"),
0180     PINCTRL_PIN(97, "GPIO_97"),
0181     PINCTRL_PIN(98, "GPIO_98"),
0182     PINCTRL_PIN(99, "GPIO_99"),
0183     PINCTRL_PIN(100, "GPIO_100"),
0184     PINCTRL_PIN(101, "GPIO_101"),
0185     PINCTRL_PIN(102, "GPIO_102"),
0186     PINCTRL_PIN(103, "GPIO_103"),
0187     PINCTRL_PIN(104, "GPIO_104"),
0188     PINCTRL_PIN(105, "GPIO_105"),
0189     PINCTRL_PIN(106, "GPIO_106"),
0190     PINCTRL_PIN(107, "GPIO_107"),
0191     PINCTRL_PIN(108, "GPIO_108"),
0192     PINCTRL_PIN(109, "GPIO_109"),
0193     PINCTRL_PIN(110, "GPIO_110"),
0194     PINCTRL_PIN(111, "GPIO_111"),
0195     PINCTRL_PIN(112, "GPIO_112"),
0196     PINCTRL_PIN(113, "GPIO_113"),
0197     PINCTRL_PIN(114, "GPIO_114"),
0198     PINCTRL_PIN(115, "GPIO_115"),
0199     PINCTRL_PIN(116, "GPIO_116"),
0200     PINCTRL_PIN(117, "GPIO_117"),
0201     PINCTRL_PIN(118, "GPIO_118"),
0202     PINCTRL_PIN(119, "GPIO_119"),
0203     PINCTRL_PIN(120, "GPIO_120"),
0204     PINCTRL_PIN(121, "GPIO_121"),
0205     PINCTRL_PIN(122, "GPIO_122"),
0206     PINCTRL_PIN(123, "GPIO_123"),
0207     PINCTRL_PIN(124, "GPIO_124"),
0208     PINCTRL_PIN(125, "GPIO_125"),
0209     PINCTRL_PIN(126, "GPIO_126"),
0210     PINCTRL_PIN(127, "GPIO_127"),
0211     PINCTRL_PIN(128, "GPIO_128"),
0212     PINCTRL_PIN(129, "GPIO_129"),
0213     PINCTRL_PIN(130, "GPIO_130"),
0214     PINCTRL_PIN(131, "GPIO_131"),
0215     PINCTRL_PIN(132, "GPIO_132"),
0216     PINCTRL_PIN(133, "GPIO_133"),
0217     PINCTRL_PIN(134, "GPIO_134"),
0218     PINCTRL_PIN(135, "GPIO_135"),
0219     PINCTRL_PIN(136, "GPIO_136"),
0220     PINCTRL_PIN(137, "GPIO_137"),
0221     PINCTRL_PIN(138, "GPIO_138"),
0222     PINCTRL_PIN(139, "GPIO_139"),
0223     PINCTRL_PIN(140, "GPIO_140"),
0224     PINCTRL_PIN(141, "GPIO_141"),
0225     PINCTRL_PIN(142, "SDC1_CLK"),
0226     PINCTRL_PIN(143, "SDC1_CMD"),
0227     PINCTRL_PIN(144, "SDC1_DATA"),
0228     PINCTRL_PIN(145, "SDC1_RCLK"),
0229     PINCTRL_PIN(146, "SDC2_CLK"),
0230     PINCTRL_PIN(147, "SDC2_CMD"),
0231     PINCTRL_PIN(148, "SDC2_DATA"),
0232     PINCTRL_PIN(149, "QDSD_CLK"),
0233     PINCTRL_PIN(150, "QDSD_CMD"),
0234     PINCTRL_PIN(151, "QDSD_DATA0"),
0235     PINCTRL_PIN(152, "QDSD_DATA1"),
0236     PINCTRL_PIN(153, "QDSD_DATA2"),
0237     PINCTRL_PIN(154, "QDSD_DATA3"),
0238 };
0239 
0240 #define DECLARE_MSM_GPIO_PINS(pin) \
0241     static const unsigned int gpio##pin##_pins[] = { pin }
0242 DECLARE_MSM_GPIO_PINS(0);
0243 DECLARE_MSM_GPIO_PINS(1);
0244 DECLARE_MSM_GPIO_PINS(2);
0245 DECLARE_MSM_GPIO_PINS(3);
0246 DECLARE_MSM_GPIO_PINS(4);
0247 DECLARE_MSM_GPIO_PINS(5);
0248 DECLARE_MSM_GPIO_PINS(6);
0249 DECLARE_MSM_GPIO_PINS(7);
0250 DECLARE_MSM_GPIO_PINS(8);
0251 DECLARE_MSM_GPIO_PINS(9);
0252 DECLARE_MSM_GPIO_PINS(10);
0253 DECLARE_MSM_GPIO_PINS(11);
0254 DECLARE_MSM_GPIO_PINS(12);
0255 DECLARE_MSM_GPIO_PINS(13);
0256 DECLARE_MSM_GPIO_PINS(14);
0257 DECLARE_MSM_GPIO_PINS(15);
0258 DECLARE_MSM_GPIO_PINS(16);
0259 DECLARE_MSM_GPIO_PINS(17);
0260 DECLARE_MSM_GPIO_PINS(18);
0261 DECLARE_MSM_GPIO_PINS(19);
0262 DECLARE_MSM_GPIO_PINS(20);
0263 DECLARE_MSM_GPIO_PINS(21);
0264 DECLARE_MSM_GPIO_PINS(22);
0265 DECLARE_MSM_GPIO_PINS(23);
0266 DECLARE_MSM_GPIO_PINS(24);
0267 DECLARE_MSM_GPIO_PINS(25);
0268 DECLARE_MSM_GPIO_PINS(26);
0269 DECLARE_MSM_GPIO_PINS(27);
0270 DECLARE_MSM_GPIO_PINS(28);
0271 DECLARE_MSM_GPIO_PINS(29);
0272 DECLARE_MSM_GPIO_PINS(30);
0273 DECLARE_MSM_GPIO_PINS(31);
0274 DECLARE_MSM_GPIO_PINS(32);
0275 DECLARE_MSM_GPIO_PINS(33);
0276 DECLARE_MSM_GPIO_PINS(34);
0277 DECLARE_MSM_GPIO_PINS(35);
0278 DECLARE_MSM_GPIO_PINS(36);
0279 DECLARE_MSM_GPIO_PINS(37);
0280 DECLARE_MSM_GPIO_PINS(38);
0281 DECLARE_MSM_GPIO_PINS(39);
0282 DECLARE_MSM_GPIO_PINS(40);
0283 DECLARE_MSM_GPIO_PINS(41);
0284 DECLARE_MSM_GPIO_PINS(42);
0285 DECLARE_MSM_GPIO_PINS(43);
0286 DECLARE_MSM_GPIO_PINS(44);
0287 DECLARE_MSM_GPIO_PINS(45);
0288 DECLARE_MSM_GPIO_PINS(46);
0289 DECLARE_MSM_GPIO_PINS(47);
0290 DECLARE_MSM_GPIO_PINS(48);
0291 DECLARE_MSM_GPIO_PINS(49);
0292 DECLARE_MSM_GPIO_PINS(50);
0293 DECLARE_MSM_GPIO_PINS(51);
0294 DECLARE_MSM_GPIO_PINS(52);
0295 DECLARE_MSM_GPIO_PINS(53);
0296 DECLARE_MSM_GPIO_PINS(54);
0297 DECLARE_MSM_GPIO_PINS(55);
0298 DECLARE_MSM_GPIO_PINS(56);
0299 DECLARE_MSM_GPIO_PINS(57);
0300 DECLARE_MSM_GPIO_PINS(58);
0301 DECLARE_MSM_GPIO_PINS(59);
0302 DECLARE_MSM_GPIO_PINS(60);
0303 DECLARE_MSM_GPIO_PINS(61);
0304 DECLARE_MSM_GPIO_PINS(62);
0305 DECLARE_MSM_GPIO_PINS(63);
0306 DECLARE_MSM_GPIO_PINS(64);
0307 DECLARE_MSM_GPIO_PINS(65);
0308 DECLARE_MSM_GPIO_PINS(66);
0309 DECLARE_MSM_GPIO_PINS(67);
0310 DECLARE_MSM_GPIO_PINS(68);
0311 DECLARE_MSM_GPIO_PINS(69);
0312 DECLARE_MSM_GPIO_PINS(70);
0313 DECLARE_MSM_GPIO_PINS(71);
0314 DECLARE_MSM_GPIO_PINS(72);
0315 DECLARE_MSM_GPIO_PINS(73);
0316 DECLARE_MSM_GPIO_PINS(74);
0317 DECLARE_MSM_GPIO_PINS(75);
0318 DECLARE_MSM_GPIO_PINS(76);
0319 DECLARE_MSM_GPIO_PINS(77);
0320 DECLARE_MSM_GPIO_PINS(78);
0321 DECLARE_MSM_GPIO_PINS(79);
0322 DECLARE_MSM_GPIO_PINS(80);
0323 DECLARE_MSM_GPIO_PINS(81);
0324 DECLARE_MSM_GPIO_PINS(82);
0325 DECLARE_MSM_GPIO_PINS(83);
0326 DECLARE_MSM_GPIO_PINS(84);
0327 DECLARE_MSM_GPIO_PINS(85);
0328 DECLARE_MSM_GPIO_PINS(86);
0329 DECLARE_MSM_GPIO_PINS(87);
0330 DECLARE_MSM_GPIO_PINS(88);
0331 DECLARE_MSM_GPIO_PINS(89);
0332 DECLARE_MSM_GPIO_PINS(90);
0333 DECLARE_MSM_GPIO_PINS(91);
0334 DECLARE_MSM_GPIO_PINS(92);
0335 DECLARE_MSM_GPIO_PINS(93);
0336 DECLARE_MSM_GPIO_PINS(94);
0337 DECLARE_MSM_GPIO_PINS(95);
0338 DECLARE_MSM_GPIO_PINS(96);
0339 DECLARE_MSM_GPIO_PINS(97);
0340 DECLARE_MSM_GPIO_PINS(98);
0341 DECLARE_MSM_GPIO_PINS(99);
0342 DECLARE_MSM_GPIO_PINS(100);
0343 DECLARE_MSM_GPIO_PINS(101);
0344 DECLARE_MSM_GPIO_PINS(102);
0345 DECLARE_MSM_GPIO_PINS(103);
0346 DECLARE_MSM_GPIO_PINS(104);
0347 DECLARE_MSM_GPIO_PINS(105);
0348 DECLARE_MSM_GPIO_PINS(106);
0349 DECLARE_MSM_GPIO_PINS(107);
0350 DECLARE_MSM_GPIO_PINS(108);
0351 DECLARE_MSM_GPIO_PINS(109);
0352 DECLARE_MSM_GPIO_PINS(110);
0353 DECLARE_MSM_GPIO_PINS(111);
0354 DECLARE_MSM_GPIO_PINS(112);
0355 DECLARE_MSM_GPIO_PINS(113);
0356 DECLARE_MSM_GPIO_PINS(114);
0357 DECLARE_MSM_GPIO_PINS(115);
0358 DECLARE_MSM_GPIO_PINS(116);
0359 DECLARE_MSM_GPIO_PINS(117);
0360 DECLARE_MSM_GPIO_PINS(118);
0361 DECLARE_MSM_GPIO_PINS(119);
0362 DECLARE_MSM_GPIO_PINS(120);
0363 DECLARE_MSM_GPIO_PINS(121);
0364 DECLARE_MSM_GPIO_PINS(122);
0365 DECLARE_MSM_GPIO_PINS(123);
0366 DECLARE_MSM_GPIO_PINS(124);
0367 DECLARE_MSM_GPIO_PINS(125);
0368 DECLARE_MSM_GPIO_PINS(126);
0369 DECLARE_MSM_GPIO_PINS(127);
0370 DECLARE_MSM_GPIO_PINS(128);
0371 DECLARE_MSM_GPIO_PINS(129);
0372 DECLARE_MSM_GPIO_PINS(130);
0373 DECLARE_MSM_GPIO_PINS(131);
0374 DECLARE_MSM_GPIO_PINS(132);
0375 DECLARE_MSM_GPIO_PINS(133);
0376 DECLARE_MSM_GPIO_PINS(134);
0377 DECLARE_MSM_GPIO_PINS(135);
0378 DECLARE_MSM_GPIO_PINS(136);
0379 DECLARE_MSM_GPIO_PINS(137);
0380 DECLARE_MSM_GPIO_PINS(138);
0381 DECLARE_MSM_GPIO_PINS(139);
0382 DECLARE_MSM_GPIO_PINS(140);
0383 DECLARE_MSM_GPIO_PINS(141);
0384 
0385 static const unsigned int qdsd_clk_pins[] = { 142 };
0386 static const unsigned int qdsd_cmd_pins[] = { 143 };
0387 static const unsigned int qdsd_data0_pins[] = { 144 };
0388 static const unsigned int qdsd_data1_pins[] = { 145 };
0389 static const unsigned int qdsd_data2_pins[] = { 146 };
0390 static const unsigned int qdsd_data3_pins[] = { 147 };
0391 static const unsigned int sdc1_clk_pins[] = { 148 };
0392 static const unsigned int sdc1_cmd_pins[] = { 149 };
0393 static const unsigned int sdc1_data_pins[] = { 150 };
0394 static const unsigned int sdc1_rclk_pins[] = { 151 };
0395 static const unsigned int sdc2_clk_pins[] = { 152 };
0396 static const unsigned int sdc2_cmd_pins[] = { 153 };
0397 static const unsigned int sdc2_data_pins[] = { 154 };
0398 
0399 enum msm8953_functions {
0400     msm_mux_accel_int,
0401     msm_mux_adsp_ext,
0402     msm_mux_alsp_int,
0403     msm_mux_atest_bbrx0,
0404     msm_mux_atest_bbrx1,
0405     msm_mux_atest_char,
0406     msm_mux_atest_char0,
0407     msm_mux_atest_char1,
0408     msm_mux_atest_char2,
0409     msm_mux_atest_char3,
0410     msm_mux_atest_gpsadc_dtest0_native,
0411     msm_mux_atest_gpsadc_dtest1_native,
0412     msm_mux_atest_tsens,
0413     msm_mux_atest_wlan0,
0414     msm_mux_atest_wlan1,
0415     msm_mux_bimc_dte0,
0416     msm_mux_bimc_dte1,
0417     msm_mux_blsp1_spi,
0418     msm_mux_blsp3_spi,
0419     msm_mux_blsp6_spi,
0420     msm_mux_blsp7_spi,
0421     msm_mux_blsp_i2c1,
0422     msm_mux_blsp_i2c2,
0423     msm_mux_blsp_i2c3,
0424     msm_mux_blsp_i2c4,
0425     msm_mux_blsp_i2c5,
0426     msm_mux_blsp_i2c6,
0427     msm_mux_blsp_i2c7,
0428     msm_mux_blsp_i2c8,
0429     msm_mux_blsp_spi1,
0430     msm_mux_blsp_spi2,
0431     msm_mux_blsp_spi3,
0432     msm_mux_blsp_spi4,
0433     msm_mux_blsp_spi5,
0434     msm_mux_blsp_spi6,
0435     msm_mux_blsp_spi7,
0436     msm_mux_blsp_spi8,
0437     msm_mux_blsp_uart2,
0438     msm_mux_blsp_uart4,
0439     msm_mux_blsp_uart5,
0440     msm_mux_blsp_uart6,
0441     msm_mux_cam0_ldo,
0442     msm_mux_cam1_ldo,
0443     msm_mux_cam1_rst,
0444     msm_mux_cam1_standby,
0445     msm_mux_cam2_rst,
0446     msm_mux_cam2_standby,
0447     msm_mux_cam3_rst,
0448     msm_mux_cam3_standby,
0449     msm_mux_cam_irq,
0450     msm_mux_cam_mclk,
0451     msm_mux_cap_int,
0452     msm_mux_cci_async,
0453     msm_mux_cci_i2c,
0454     msm_mux_cci_timer0,
0455     msm_mux_cci_timer1,
0456     msm_mux_cci_timer2,
0457     msm_mux_cci_timer3,
0458     msm_mux_cci_timer4,
0459     msm_mux_cdc_pdm0,
0460     msm_mux_codec_int1,
0461     msm_mux_codec_int2,
0462     msm_mux_codec_reset,
0463     msm_mux_cri_trng,
0464     msm_mux_cri_trng0,
0465     msm_mux_cri_trng1,
0466     msm_mux_dac_calib0,
0467     msm_mux_dac_calib1,
0468     msm_mux_dac_calib2,
0469     msm_mux_dac_calib3,
0470     msm_mux_dac_calib4,
0471     msm_mux_dac_calib5,
0472     msm_mux_dac_calib6,
0473     msm_mux_dac_calib7,
0474     msm_mux_dac_calib8,
0475     msm_mux_dac_calib9,
0476     msm_mux_dac_calib10,
0477     msm_mux_dac_calib11,
0478     msm_mux_dac_calib12,
0479     msm_mux_dac_calib13,
0480     msm_mux_dac_calib14,
0481     msm_mux_dac_calib15,
0482     msm_mux_dac_calib16,
0483     msm_mux_dac_calib17,
0484     msm_mux_dac_calib18,
0485     msm_mux_dac_calib19,
0486     msm_mux_dac_calib20,
0487     msm_mux_dac_calib21,
0488     msm_mux_dac_calib22,
0489     msm_mux_dac_calib23,
0490     msm_mux_dac_calib24,
0491     msm_mux_dac_calib25,
0492     msm_mux_dbg_out,
0493     msm_mux_ddr_bist,
0494     msm_mux_dmic0_clk,
0495     msm_mux_dmic0_data,
0496     msm_mux_ebi_cdc,
0497     msm_mux_ebi_ch0,
0498     msm_mux_ext_lpass,
0499     msm_mux_flash_strobe,
0500     msm_mux_fp_int,
0501     msm_mux_gcc_gp1_clk_a,
0502     msm_mux_gcc_gp1_clk_b,
0503     msm_mux_gcc_gp2_clk_a,
0504     msm_mux_gcc_gp2_clk_b,
0505     msm_mux_gcc_gp3_clk_a,
0506     msm_mux_gcc_gp3_clk_b,
0507     msm_mux_gcc_plltest,
0508     msm_mux_gcc_tlmm,
0509     msm_mux_gpio,
0510     msm_mux_gsm0_tx,
0511     msm_mux_gsm1_tx,
0512     msm_mux_gyro_int,
0513     msm_mux_hall_int,
0514     msm_mux_hdmi_int,
0515     msm_mux_key_focus,
0516     msm_mux_key_home,
0517     msm_mux_key_snapshot,
0518     msm_mux_key_volp,
0519     msm_mux_ldo_en,
0520     msm_mux_ldo_update,
0521     msm_mux_lpass_slimbus,
0522     msm_mux_lpass_slimbus0,
0523     msm_mux_lpass_slimbus1,
0524     msm_mux_m_voc,
0525     msm_mux_mag_int,
0526     msm_mux_mdp_vsync,
0527     msm_mux_mipi_dsi0,
0528     msm_mux_modem_tsync,
0529     msm_mux_mss_lte,
0530     msm_mux_nav_pps,
0531     msm_mux_nav_pps_in_a,
0532     msm_mux_nav_pps_in_b,
0533     msm_mux_nav_tsync,
0534     msm_mux_nfc_disable,
0535     msm_mux_nfc_dwl,
0536     msm_mux_nfc_irq,
0537     msm_mux_ois_sync,
0538     msm_mux_pa_indicator,
0539     msm_mux_pbs0,
0540     msm_mux_pbs1,
0541     msm_mux_pbs2,
0542     msm_mux_pressure_int,
0543     msm_mux_pri_mi2s,
0544     msm_mux_pri_mi2s_mclk_a,
0545     msm_mux_pri_mi2s_mclk_b,
0546     msm_mux_pri_mi2s_ws,
0547     msm_mux_prng_rosc,
0548     msm_mux_pwr_crypto_enabled_a,
0549     msm_mux_pwr_crypto_enabled_b,
0550     msm_mux_pwr_down,
0551     msm_mux_pwr_modem_enabled_a,
0552     msm_mux_pwr_modem_enabled_b,
0553     msm_mux_pwr_nav_enabled_a,
0554     msm_mux_pwr_nav_enabled_b,
0555     msm_mux_qdss_cti_trig_in_a0,
0556     msm_mux_qdss_cti_trig_in_a1,
0557     msm_mux_qdss_cti_trig_in_b0,
0558     msm_mux_qdss_cti_trig_in_b1,
0559     msm_mux_qdss_cti_trig_out_a0,
0560     msm_mux_qdss_cti_trig_out_a1,
0561     msm_mux_qdss_cti_trig_out_b0,
0562     msm_mux_qdss_cti_trig_out_b1,
0563     msm_mux_qdss_traceclk_a,
0564     msm_mux_qdss_traceclk_b,
0565     msm_mux_qdss_tracectl_a,
0566     msm_mux_qdss_tracectl_b,
0567     msm_mux_qdss_tracedata_a,
0568     msm_mux_qdss_tracedata_b,
0569     msm_mux_sd_write,
0570     msm_mux_sdcard_det,
0571     msm_mux_sec_mi2s,
0572     msm_mux_sec_mi2s_mclk_a,
0573     msm_mux_sec_mi2s_mclk_b,
0574     msm_mux_smb_int,
0575     msm_mux_ss_switch,
0576     msm_mux_ssbi_wtr1,
0577     msm_mux_ts_resout,
0578     msm_mux_ts_sample,
0579     msm_mux_ts_xvdd,
0580     msm_mux_tsens_max,
0581     msm_mux_uim1_clk,
0582     msm_mux_uim1_data,
0583     msm_mux_uim1_present,
0584     msm_mux_uim1_reset,
0585     msm_mux_uim2_clk,
0586     msm_mux_uim2_data,
0587     msm_mux_uim2_present,
0588     msm_mux_uim2_reset,
0589     msm_mux_uim_batt,
0590     msm_mux_us_emitter,
0591     msm_mux_us_euro,
0592     msm_mux_wcss_bt,
0593     msm_mux_wcss_fm,
0594     msm_mux_wcss_wlan,
0595     msm_mux_wcss_wlan0,
0596     msm_mux_wcss_wlan1,
0597     msm_mux_wcss_wlan2,
0598     msm_mux_wsa_en,
0599     msm_mux_wsa_io,
0600     msm_mux_wsa_irq,
0601     msm_mux__,
0602 };
0603 
0604 static const char * const accel_int_groups[] = {
0605     "gpio42",
0606 };
0607 
0608 static const char * const adsp_ext_groups[] = {
0609     "gpio1",
0610 };
0611 
0612 static const char * const alsp_int_groups[] = {
0613     "gpio43",
0614 };
0615 
0616 static const char * const atest_bbrx0_groups[] = {
0617     "gpio17",
0618 };
0619 
0620 static const char * const atest_bbrx1_groups[] = {
0621     "gpio16",
0622 };
0623 
0624 static const char * const atest_char0_groups[] = {
0625     "gpio68",
0626 };
0627 
0628 static const char * const atest_char1_groups[] = {
0629     "gpio67",
0630 };
0631 
0632 static const char * const atest_char2_groups[] = {
0633     "gpio75",
0634 };
0635 
0636 static const char * const atest_char3_groups[] = {
0637     "gpio63",
0638 };
0639 
0640 static const char * const atest_char_groups[] = {
0641     "gpio120",
0642 };
0643 
0644 static const char * const atest_gpsadc_dtest0_native_groups[] = {
0645     "gpio7",
0646 };
0647 
0648 static const char * const atest_gpsadc_dtest1_native_groups[] = {
0649     "gpio18",
0650 };
0651 
0652 static const char * const atest_tsens_groups[] = {
0653     "gpio120",
0654 };
0655 
0656 static const char * const atest_wlan0_groups[] = {
0657     "gpio22",
0658 };
0659 
0660 static const char * const atest_wlan1_groups[] = {
0661     "gpio23",
0662 };
0663 
0664 static const char * const bimc_dte0_groups[] = {
0665     "gpio63", "gpio65",
0666 };
0667 
0668 static const char * const bimc_dte1_groups[] = {
0669     "gpio121", "gpio122",
0670 };
0671 
0672 static const char * const blsp1_spi_groups[] = {
0673     "gpio35", "gpio36",
0674 };
0675 
0676 static const char * const blsp3_spi_groups[] = {
0677     "gpio41", "gpio50",
0678 };
0679 
0680 static const char * const blsp6_spi_groups[] = {
0681     "gpio47", "gpio48",
0682 };
0683 
0684 static const char * const blsp7_spi_groups[] = {
0685     "gpio89", "gpio90",
0686 };
0687 
0688 static const char * const blsp_i2c1_groups[] = {
0689     "gpio2", "gpio3",
0690 };
0691 
0692 static const char * const blsp_i2c2_groups[] = {
0693     "gpio6", "gpio7",
0694 };
0695 
0696 static const char * const blsp_i2c3_groups[] = {
0697     "gpio10", "gpio11",
0698 };
0699 
0700 static const char * const blsp_i2c4_groups[] = {
0701     "gpio14", "gpio15",
0702 };
0703 
0704 static const char * const blsp_i2c5_groups[] = {
0705     "gpio18", "gpio19",
0706 };
0707 
0708 static const char * const blsp_i2c6_groups[] = {
0709     "gpio22", "gpio23",
0710 };
0711 
0712 static const char * const blsp_i2c7_groups[] = {
0713     "gpio135", "gpio136",
0714 };
0715 
0716 static const char * const blsp_i2c8_groups[] = {
0717     "gpio98", "gpio99",
0718 };
0719 
0720 static const char * const blsp_spi1_groups[] = {
0721     "gpio0", "gpio1", "gpio2", "gpio3",
0722 };
0723 
0724 static const char * const blsp_spi2_groups[] = {
0725     "gpio4", "gpio5", "gpio6", "gpio7",
0726 };
0727 
0728 static const char * const blsp_spi3_groups[] = {
0729     "gpio8", "gpio9", "gpio10", "gpio11",
0730 };
0731 
0732 static const char * const blsp_spi4_groups[] = {
0733     "gpio12", "gpio13", "gpio14", "gpio15",
0734 };
0735 
0736 static const char * const blsp_spi5_groups[] = {
0737     "gpio16", "gpio17", "gpio18", "gpio19",
0738 };
0739 
0740 static const char * const blsp_spi6_groups[] = {
0741     "gpio20", "gpio21", "gpio22", "gpio23",
0742 };
0743 
0744 static const char * const blsp_spi7_groups[] = {
0745     "gpio135", "gpio136", "gpio137", "gpio138",
0746 };
0747 
0748 static const char * const blsp_spi8_groups[] = {
0749     "gpio96", "gpio97", "gpio98", "gpio99",
0750 };
0751 
0752 static const char * const blsp_uart2_groups[] = {
0753     "gpio4", "gpio5", "gpio6", "gpio7",
0754 };
0755 
0756 static const char * const blsp_uart4_groups[] = {
0757     "gpio12", "gpio13", "gpio14", "gpio15",
0758 };
0759 
0760 static const char * const blsp_uart5_groups[] = {
0761     "gpio16", "gpio17", "gpio18", "gpio19",
0762 };
0763 
0764 static const char * const blsp_uart6_groups[] = {
0765     "gpio20", "gpio21", "gpio22", "gpio23",
0766 };
0767 
0768 static const char * const cam0_ldo_groups[] = {
0769     "gpio50",
0770 };
0771 
0772 static const char * const cam1_ldo_groups[] = {
0773     "gpio134",
0774 };
0775 
0776 static const char * const cam1_rst_groups[] = {
0777     "gpio40",
0778 };
0779 
0780 static const char * const cam1_standby_groups[] = {
0781     "gpio39",
0782 };
0783 
0784 static const char * const cam2_rst_groups[] = {
0785     "gpio129",
0786 };
0787 
0788 static const char * const cam2_standby_groups[] = {
0789     "gpio130",
0790 };
0791 
0792 static const char * const cam3_rst_groups[] = {
0793     "gpio131",
0794 };
0795 
0796 static const char * const cam3_standby_groups[] = {
0797     "gpio132",
0798 };
0799 
0800 static const char * const cam_irq_groups[] = {
0801     "gpio35",
0802 };
0803 
0804 static const char * const cam_mclk_groups[] = {
0805     "gpio26", "gpio27", "gpio28", "gpio128",
0806 };
0807 
0808 static const char * const cap_int_groups[] = {
0809     "gpio13",
0810 };
0811 
0812 static const char * const cci_async_groups[] = {
0813     "gpio38",
0814 };
0815 
0816 static const char * const cci_i2c_groups[] = {
0817     "gpio29", "gpio30", "gpio31", "gpio32",
0818 };
0819 
0820 static const char * const cci_timer0_groups[] = {
0821     "gpio33",
0822 };
0823 
0824 static const char * const cci_timer1_groups[] = {
0825     "gpio34",
0826 };
0827 
0828 static const char * const cci_timer2_groups[] = {
0829     "gpio35",
0830 };
0831 
0832 static const char * const cci_timer3_groups[] = {
0833     "gpio36",
0834 };
0835 
0836 static const char * const cci_timer4_groups[] = {
0837     "gpio41",
0838 };
0839 
0840 static const char * const cdc_pdm0_groups[] = {
0841     "gpio67", "gpio68", "gpio69", "gpio70", "gpio71", "gpio72", "gpio73",
0842     "gpio74",
0843 };
0844 
0845 static const char * const codec_int1_groups[] = {
0846     "gpio73",
0847 };
0848 
0849 static const char * const codec_int2_groups[] = {
0850     "gpio74",
0851 };
0852 
0853 static const char * const codec_reset_groups[] = {
0854     "gpio67",
0855 };
0856 
0857 static const char * const cri_trng0_groups[] = {
0858     "gpio85",
0859 };
0860 
0861 static const char * const cri_trng1_groups[] = {
0862     "gpio86",
0863 };
0864 
0865 static const char * const cri_trng_groups[] = {
0866     "gpio87",
0867 };
0868 
0869 static const char * const dac_calib0_groups[] = {
0870     "gpio4",
0871 };
0872 
0873 static const char * const dac_calib1_groups[] = {
0874     "gpio12",
0875 };
0876 
0877 static const char * const dac_calib2_groups[] = {
0878     "gpio13",
0879 };
0880 
0881 static const char * const dac_calib3_groups[] = {
0882     "gpio28",
0883 };
0884 
0885 static const char * const dac_calib4_groups[] = {
0886     "gpio29",
0887 };
0888 
0889 static const char * const dac_calib5_groups[] = {
0890     "gpio39",
0891 };
0892 
0893 static const char * const dac_calib6_groups[] = {
0894     "gpio40",
0895 };
0896 
0897 static const char * const dac_calib7_groups[] = {
0898     "gpio41",
0899 };
0900 
0901 static const char * const dac_calib8_groups[] = {
0902     "gpio42",
0903 };
0904 
0905 static const char * const dac_calib9_groups[] = {
0906     "gpio43",
0907 };
0908 
0909 static const char * const dac_calib10_groups[] = {
0910     "gpio44",
0911 };
0912 
0913 static const char * const dac_calib11_groups[] = {
0914     "gpio45",
0915 };
0916 
0917 static const char * const dac_calib12_groups[] = {
0918     "gpio46",
0919 };
0920 
0921 static const char * const dac_calib13_groups[] = {
0922     "gpio47",
0923 };
0924 
0925 static const char * const dac_calib14_groups[] = {
0926     "gpio48",
0927 };
0928 
0929 static const char * const dac_calib15_groups[] = {
0930     "gpio20",
0931 };
0932 
0933 static const char * const dac_calib16_groups[] = {
0934     "gpio21",
0935 };
0936 
0937 static const char * const dac_calib17_groups[] = {
0938     "gpio67",
0939 };
0940 
0941 static const char * const dac_calib18_groups[] = {
0942     "gpio115",
0943 };
0944 
0945 static const char * const dac_calib19_groups[] = {
0946     "gpio30",
0947 };
0948 
0949 static const char * const dac_calib20_groups[] = {
0950     "gpio128",
0951 };
0952 
0953 static const char * const dac_calib21_groups[] = {
0954     "gpio129",
0955 };
0956 
0957 static const char * const dac_calib22_groups[] = {
0958     "gpio130",
0959 };
0960 
0961 static const char * const dac_calib23_groups[] = {
0962     "gpio131",
0963 };
0964 
0965 static const char * const dac_calib24_groups[] = {
0966     "gpio132",
0967 };
0968 
0969 static const char * const dac_calib25_groups[] = {
0970     "gpio133",
0971 };
0972 
0973 static const char * const dbg_out_groups[] = {
0974     "gpio63",
0975 };
0976 
0977 static const char * const ddr_bist_groups[] = {
0978     "gpio129", "gpio130", "gpio131", "gpio132",
0979 };
0980 
0981 static const char * const dmic0_clk_groups[] = {
0982     "gpio89",
0983 };
0984 
0985 static const char * const dmic0_data_groups[] = {
0986     "gpio90",
0987 };
0988 
0989 static const char * const ebi_cdc_groups[] = {
0990     "gpio67", "gpio69", "gpio118", "gpio119", "gpio120", "gpio123",
0991 };
0992 
0993 static const char * const ebi_ch0_groups[] = {
0994     "gpio75",
0995 };
0996 
0997 static const char * const ext_lpass_groups[] = {
0998     "gpio81",
0999 };
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);