cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

pinctrl-msm8953.c (46980B)


      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
     82static 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 }
    242DECLARE_MSM_GPIO_PINS(0);
    243DECLARE_MSM_GPIO_PINS(1);
    244DECLARE_MSM_GPIO_PINS(2);
    245DECLARE_MSM_GPIO_PINS(3);
    246DECLARE_MSM_GPIO_PINS(4);
    247DECLARE_MSM_GPIO_PINS(5);
    248DECLARE_MSM_GPIO_PINS(6);
    249DECLARE_MSM_GPIO_PINS(7);
    250DECLARE_MSM_GPIO_PINS(8);
    251DECLARE_MSM_GPIO_PINS(9);
    252DECLARE_MSM_GPIO_PINS(10);
    253DECLARE_MSM_GPIO_PINS(11);
    254DECLARE_MSM_GPIO_PINS(12);
    255DECLARE_MSM_GPIO_PINS(13);
    256DECLARE_MSM_GPIO_PINS(14);
    257DECLARE_MSM_GPIO_PINS(15);
    258DECLARE_MSM_GPIO_PINS(16);
    259DECLARE_MSM_GPIO_PINS(17);
    260DECLARE_MSM_GPIO_PINS(18);
    261DECLARE_MSM_GPIO_PINS(19);
    262DECLARE_MSM_GPIO_PINS(20);
    263DECLARE_MSM_GPIO_PINS(21);
    264DECLARE_MSM_GPIO_PINS(22);
    265DECLARE_MSM_GPIO_PINS(23);
    266DECLARE_MSM_GPIO_PINS(24);
    267DECLARE_MSM_GPIO_PINS(25);
    268DECLARE_MSM_GPIO_PINS(26);
    269DECLARE_MSM_GPIO_PINS(27);
    270DECLARE_MSM_GPIO_PINS(28);
    271DECLARE_MSM_GPIO_PINS(29);
    272DECLARE_MSM_GPIO_PINS(30);
    273DECLARE_MSM_GPIO_PINS(31);
    274DECLARE_MSM_GPIO_PINS(32);
    275DECLARE_MSM_GPIO_PINS(33);
    276DECLARE_MSM_GPIO_PINS(34);
    277DECLARE_MSM_GPIO_PINS(35);
    278DECLARE_MSM_GPIO_PINS(36);
    279DECLARE_MSM_GPIO_PINS(37);
    280DECLARE_MSM_GPIO_PINS(38);
    281DECLARE_MSM_GPIO_PINS(39);
    282DECLARE_MSM_GPIO_PINS(40);
    283DECLARE_MSM_GPIO_PINS(41);
    284DECLARE_MSM_GPIO_PINS(42);
    285DECLARE_MSM_GPIO_PINS(43);
    286DECLARE_MSM_GPIO_PINS(44);
    287DECLARE_MSM_GPIO_PINS(45);
    288DECLARE_MSM_GPIO_PINS(46);
    289DECLARE_MSM_GPIO_PINS(47);
    290DECLARE_MSM_GPIO_PINS(48);
    291DECLARE_MSM_GPIO_PINS(49);
    292DECLARE_MSM_GPIO_PINS(50);
    293DECLARE_MSM_GPIO_PINS(51);
    294DECLARE_MSM_GPIO_PINS(52);
    295DECLARE_MSM_GPIO_PINS(53);
    296DECLARE_MSM_GPIO_PINS(54);
    297DECLARE_MSM_GPIO_PINS(55);
    298DECLARE_MSM_GPIO_PINS(56);
    299DECLARE_MSM_GPIO_PINS(57);
    300DECLARE_MSM_GPIO_PINS(58);
    301DECLARE_MSM_GPIO_PINS(59);
    302DECLARE_MSM_GPIO_PINS(60);
    303DECLARE_MSM_GPIO_PINS(61);
    304DECLARE_MSM_GPIO_PINS(62);
    305DECLARE_MSM_GPIO_PINS(63);
    306DECLARE_MSM_GPIO_PINS(64);
    307DECLARE_MSM_GPIO_PINS(65);
    308DECLARE_MSM_GPIO_PINS(66);
    309DECLARE_MSM_GPIO_PINS(67);
    310DECLARE_MSM_GPIO_PINS(68);
    311DECLARE_MSM_GPIO_PINS(69);
    312DECLARE_MSM_GPIO_PINS(70);
    313DECLARE_MSM_GPIO_PINS(71);
    314DECLARE_MSM_GPIO_PINS(72);
    315DECLARE_MSM_GPIO_PINS(73);
    316DECLARE_MSM_GPIO_PINS(74);
    317DECLARE_MSM_GPIO_PINS(75);
    318DECLARE_MSM_GPIO_PINS(76);
    319DECLARE_MSM_GPIO_PINS(77);
    320DECLARE_MSM_GPIO_PINS(78);
    321DECLARE_MSM_GPIO_PINS(79);
    322DECLARE_MSM_GPIO_PINS(80);
    323DECLARE_MSM_GPIO_PINS(81);
    324DECLARE_MSM_GPIO_PINS(82);
    325DECLARE_MSM_GPIO_PINS(83);
    326DECLARE_MSM_GPIO_PINS(84);
    327DECLARE_MSM_GPIO_PINS(85);
    328DECLARE_MSM_GPIO_PINS(86);
    329DECLARE_MSM_GPIO_PINS(87);
    330DECLARE_MSM_GPIO_PINS(88);
    331DECLARE_MSM_GPIO_PINS(89);
    332DECLARE_MSM_GPIO_PINS(90);
    333DECLARE_MSM_GPIO_PINS(91);
    334DECLARE_MSM_GPIO_PINS(92);
    335DECLARE_MSM_GPIO_PINS(93);
    336DECLARE_MSM_GPIO_PINS(94);
    337DECLARE_MSM_GPIO_PINS(95);
    338DECLARE_MSM_GPIO_PINS(96);
    339DECLARE_MSM_GPIO_PINS(97);
    340DECLARE_MSM_GPIO_PINS(98);
    341DECLARE_MSM_GPIO_PINS(99);
    342DECLARE_MSM_GPIO_PINS(100);
    343DECLARE_MSM_GPIO_PINS(101);
    344DECLARE_MSM_GPIO_PINS(102);
    345DECLARE_MSM_GPIO_PINS(103);
    346DECLARE_MSM_GPIO_PINS(104);
    347DECLARE_MSM_GPIO_PINS(105);
    348DECLARE_MSM_GPIO_PINS(106);
    349DECLARE_MSM_GPIO_PINS(107);
    350DECLARE_MSM_GPIO_PINS(108);
    351DECLARE_MSM_GPIO_PINS(109);
    352DECLARE_MSM_GPIO_PINS(110);
    353DECLARE_MSM_GPIO_PINS(111);
    354DECLARE_MSM_GPIO_PINS(112);
    355DECLARE_MSM_GPIO_PINS(113);
    356DECLARE_MSM_GPIO_PINS(114);
    357DECLARE_MSM_GPIO_PINS(115);
    358DECLARE_MSM_GPIO_PINS(116);
    359DECLARE_MSM_GPIO_PINS(117);
    360DECLARE_MSM_GPIO_PINS(118);
    361DECLARE_MSM_GPIO_PINS(119);
    362DECLARE_MSM_GPIO_PINS(120);
    363DECLARE_MSM_GPIO_PINS(121);
    364DECLARE_MSM_GPIO_PINS(122);
    365DECLARE_MSM_GPIO_PINS(123);
    366DECLARE_MSM_GPIO_PINS(124);
    367DECLARE_MSM_GPIO_PINS(125);
    368DECLARE_MSM_GPIO_PINS(126);
    369DECLARE_MSM_GPIO_PINS(127);
    370DECLARE_MSM_GPIO_PINS(128);
    371DECLARE_MSM_GPIO_PINS(129);
    372DECLARE_MSM_GPIO_PINS(130);
    373DECLARE_MSM_GPIO_PINS(131);
    374DECLARE_MSM_GPIO_PINS(132);
    375DECLARE_MSM_GPIO_PINS(133);
    376DECLARE_MSM_GPIO_PINS(134);
    377DECLARE_MSM_GPIO_PINS(135);
    378DECLARE_MSM_GPIO_PINS(136);
    379DECLARE_MSM_GPIO_PINS(137);
    380DECLARE_MSM_GPIO_PINS(138);
    381DECLARE_MSM_GPIO_PINS(139);
    382DECLARE_MSM_GPIO_PINS(140);
    383DECLARE_MSM_GPIO_PINS(141);
    384
    385static const unsigned int qdsd_clk_pins[] = { 142 };
    386static const unsigned int qdsd_cmd_pins[] = { 143 };
    387static const unsigned int qdsd_data0_pins[] = { 144 };
    388static const unsigned int qdsd_data1_pins[] = { 145 };
    389static const unsigned int qdsd_data2_pins[] = { 146 };
    390static const unsigned int qdsd_data3_pins[] = { 147 };
    391static const unsigned int sdc1_clk_pins[] = { 148 };
    392static const unsigned int sdc1_cmd_pins[] = { 149 };
    393static const unsigned int sdc1_data_pins[] = { 150 };
    394static const unsigned int sdc1_rclk_pins[] = { 151 };
    395static const unsigned int sdc2_clk_pins[] = { 152 };
    396static const unsigned int sdc2_cmd_pins[] = { 153 };
    397static const unsigned int sdc2_data_pins[] = { 154 };
    398
    399enum 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
    604static const char * const accel_int_groups[] = {
    605	"gpio42",
    606};
    607
    608static const char * const adsp_ext_groups[] = {
    609	"gpio1",
    610};
    611
    612static const char * const alsp_int_groups[] = {
    613	"gpio43",
    614};
    615
    616static const char * const atest_bbrx0_groups[] = {
    617	"gpio17",
    618};
    619
    620static const char * const atest_bbrx1_groups[] = {
    621	"gpio16",
    622};
    623
    624static const char * const atest_char0_groups[] = {
    625	"gpio68",
    626};
    627
    628static const char * const atest_char1_groups[] = {
    629	"gpio67",
    630};
    631
    632static const char * const atest_char2_groups[] = {
    633	"gpio75",
    634};
    635
    636static const char * const atest_char3_groups[] = {
    637	"gpio63",
    638};
    639
    640static const char * const atest_char_groups[] = {
    641	"gpio120",
    642};
    643
    644static const char * const atest_gpsadc_dtest0_native_groups[] = {
    645	"gpio7",
    646};
    647
    648static const char * const atest_gpsadc_dtest1_native_groups[] = {
    649	"gpio18",
    650};
    651
    652static const char * const atest_tsens_groups[] = {
    653	"gpio120",
    654};
    655
    656static const char * const atest_wlan0_groups[] = {
    657	"gpio22",
    658};
    659
    660static const char * const atest_wlan1_groups[] = {
    661	"gpio23",
    662};
    663
    664static const char * const bimc_dte0_groups[] = {
    665	"gpio63", "gpio65",
    666};
    667
    668static const char * const bimc_dte1_groups[] = {
    669	"gpio121", "gpio122",
    670};
    671
    672static const char * const blsp1_spi_groups[] = {
    673	"gpio35", "gpio36",
    674};
    675
    676static const char * const blsp3_spi_groups[] = {
    677	"gpio41", "gpio50",
    678};
    679
    680static const char * const blsp6_spi_groups[] = {
    681	"gpio47", "gpio48",
    682};
    683
    684static const char * const blsp7_spi_groups[] = {
    685	"gpio89", "gpio90",
    686};
    687
    688static const char * const blsp_i2c1_groups[] = {
    689	"gpio2", "gpio3",
    690};
    691
    692static const char * const blsp_i2c2_groups[] = {
    693	"gpio6", "gpio7",
    694};
    695
    696static const char * const blsp_i2c3_groups[] = {
    697	"gpio10", "gpio11",
    698};
    699
    700static const char * const blsp_i2c4_groups[] = {
    701	"gpio14", "gpio15",
    702};
    703
    704static const char * const blsp_i2c5_groups[] = {
    705	"gpio18", "gpio19",
    706};
    707
    708static const char * const blsp_i2c6_groups[] = {
    709	"gpio22", "gpio23",
    710};
    711
    712static const char * const blsp_i2c7_groups[] = {
    713	"gpio135", "gpio136",
    714};
    715
    716static const char * const blsp_i2c8_groups[] = {
    717	"gpio98", "gpio99",
    718};
    719
    720static const char * const blsp_spi1_groups[] = {
    721	"gpio0", "gpio1", "gpio2", "gpio3",
    722};
    723
    724static const char * const blsp_spi2_groups[] = {
    725	"gpio4", "gpio5", "gpio6", "gpio7",
    726};
    727
    728static const char * const blsp_spi3_groups[] = {
    729	"gpio8", "gpio9", "gpio10", "gpio11",
    730};
    731
    732static const char * const blsp_spi4_groups[] = {
    733	"gpio12", "gpio13", "gpio14", "gpio15",
    734};
    735
    736static const char * const blsp_spi5_groups[] = {
    737	"gpio16", "gpio17", "gpio18", "gpio19",
    738};
    739
    740static const char * const blsp_spi6_groups[] = {
    741	"gpio20", "gpio21", "gpio22", "gpio23",
    742};
    743
    744static const char * const blsp_spi7_groups[] = {
    745	"gpio135", "gpio136", "gpio137", "gpio138",
    746};
    747
    748static const char * const blsp_spi8_groups[] = {
    749	"gpio96", "gpio97", "gpio98", "gpio99",
    750};
    751
    752static const char * const blsp_uart2_groups[] = {
    753	"gpio4", "gpio5", "gpio6", "gpio7",
    754};
    755
    756static const char * const blsp_uart4_groups[] = {
    757	"gpio12", "gpio13", "gpio14", "gpio15",
    758};
    759
    760static const char * const blsp_uart5_groups[] = {
    761	"gpio16", "gpio17", "gpio18", "gpio19",
    762};
    763
    764static const char * const blsp_uart6_groups[] = {
    765	"gpio20", "gpio21", "gpio22", "gpio23",
    766};
    767
    768static const char * const cam0_ldo_groups[] = {
    769	"gpio50",
    770};
    771
    772static const char * const cam1_ldo_groups[] = {
    773	"gpio134",
    774};
    775
    776static const char * const cam1_rst_groups[] = {
    777	"gpio40",
    778};
    779
    780static const char * const cam1_standby_groups[] = {
    781	"gpio39",
    782};
    783
    784static const char * const cam2_rst_groups[] = {
    785	"gpio129",
    786};
    787
    788static const char * const cam2_standby_groups[] = {
    789	"gpio130",
    790};
    791
    792static const char * const cam3_rst_groups[] = {
    793	"gpio131",
    794};
    795
    796static const char * const cam3_standby_groups[] = {
    797	"gpio132",
    798};
    799
    800static const char * const cam_irq_groups[] = {
    801	"gpio35",
    802};
    803
    804static const char * const cam_mclk_groups[] = {
    805	"gpio26", "gpio27", "gpio28", "gpio128",
    806};
    807
    808static const char * const cap_int_groups[] = {
    809	"gpio13",
    810};
    811
    812static const char * const cci_async_groups[] = {
    813	"gpio38",
    814};
    815
    816static const char * const cci_i2c_groups[] = {
    817	"gpio29", "gpio30", "gpio31", "gpio32",
    818};
    819
    820static const char * const cci_timer0_groups[] = {
    821	"gpio33",
    822};
    823
    824static const char * const cci_timer1_groups[] = {
    825	"gpio34",
    826};
    827
    828static const char * const cci_timer2_groups[] = {
    829	"gpio35",
    830};
    831
    832static const char * const cci_timer3_groups[] = {
    833	"gpio36",
    834};
    835
    836static const char * const cci_timer4_groups[] = {
    837	"gpio41",
    838};
    839
    840static const char * const cdc_pdm0_groups[] = {
    841	"gpio67", "gpio68", "gpio69", "gpio70", "gpio71", "gpio72", "gpio73",
    842	"gpio74",
    843};
    844
    845static const char * const codec_int1_groups[] = {
    846	"gpio73",
    847};
    848
    849static const char * const codec_int2_groups[] = {
    850	"gpio74",
    851};
    852
    853static const char * const codec_reset_groups[] = {
    854	"gpio67",
    855};
    856
    857static const char * const cri_trng0_groups[] = {
    858	"gpio85",
    859};
    860
    861static const char * const cri_trng1_groups[] = {
    862	"gpio86",
    863};
    864
    865static const char * const cri_trng_groups[] = {
    866	"gpio87",
    867};
    868
    869static const char * const dac_calib0_groups[] = {
    870	"gpio4",
    871};
    872
    873static const char * const dac_calib1_groups[] = {
    874	"gpio12",
    875};
    876
    877static const char * const dac_calib2_groups[] = {
    878	"gpio13",
    879};
    880
    881static const char * const dac_calib3_groups[] = {
    882	"gpio28",
    883};
    884
    885static const char * const dac_calib4_groups[] = {
    886	"gpio29",
    887};
    888
    889static const char * const dac_calib5_groups[] = {
    890	"gpio39",
    891};
    892
    893static const char * const dac_calib6_groups[] = {
    894	"gpio40",
    895};
    896
    897static const char * const dac_calib7_groups[] = {
    898	"gpio41",
    899};
    900
    901static const char * const dac_calib8_groups[] = {
    902	"gpio42",
    903};
    904
    905static const char * const dac_calib9_groups[] = {
    906	"gpio43",
    907};
    908
    909static const char * const dac_calib10_groups[] = {
    910	"gpio44",
    911};
    912
    913static const char * const dac_calib11_groups[] = {
    914	"gpio45",
    915};
    916
    917static const char * const dac_calib12_groups[] = {
    918	"gpio46",
    919};
    920
    921static const char * const dac_calib13_groups[] = {
    922	"gpio47",
    923};
    924
    925static const char * const dac_calib14_groups[] = {
    926	"gpio48",
    927};
    928
    929static const char * const dac_calib15_groups[] = {
    930	"gpio20",
    931};
    932
    933static const char * const dac_calib16_groups[] = {
    934	"gpio21",
    935};
    936
    937static const char * const dac_calib17_groups[] = {
    938	"gpio67",
    939};
    940
    941static const char * const dac_calib18_groups[] = {
    942	"gpio115",
    943};
    944
    945static const char * const dac_calib19_groups[] = {
    946	"gpio30",
    947};
    948
    949static const char * const dac_calib20_groups[] = {
    950	"gpio128",
    951};
    952
    953static const char * const dac_calib21_groups[] = {
    954	"gpio129",
    955};
    956
    957static const char * const dac_calib22_groups[] = {
    958	"gpio130",
    959};
    960
    961static const char * const dac_calib23_groups[] = {
    962	"gpio131",
    963};
    964
    965static const char * const dac_calib24_groups[] = {
    966	"gpio132",
    967};
    968
    969static const char * const dac_calib25_groups[] = {
    970	"gpio133",
    971};
    972
    973static const char * const dbg_out_groups[] = {
    974	"gpio63",
    975};
    976
    977static const char * const ddr_bist_groups[] = {
    978	"gpio129", "gpio130", "gpio131", "gpio132",
    979};
    980
    981static const char * const dmic0_clk_groups[] = {
    982	"gpio89",
    983};
    984
    985static const char * const dmic0_data_groups[] = {
    986	"gpio90",
    987};
    988
    989static const char * const ebi_cdc_groups[] = {
    990	"gpio67", "gpio69", "gpio118", "gpio119", "gpio120", "gpio123",
    991};
    992
    993static const char * const ebi_ch0_groups[] = {
    994	"gpio75",
    995};
    996
    997static const char * const ext_lpass_groups[] = {
    998	"gpio81",
    999};
   1000
   1001static const char * const flash_strobe_groups[] = {
   1002	"gpio33", "gpio34",
   1003};
   1004
   1005static const char * const fp_int_groups[] = {
   1006	"gpio48",
   1007};
   1008
   1009static const char * const gcc_gp1_clk_a_groups[] = {
   1010	"gpio42",
   1011};
   1012
   1013static const char * const gcc_gp1_clk_b_groups[] = {
   1014	"gpio6", "gpio41",
   1015};
   1016
   1017static const char * const gcc_gp2_clk_a_groups[] = {
   1018	"gpio43",
   1019};
   1020
   1021static const char * const gcc_gp2_clk_b_groups[] = {
   1022	"gpio10",
   1023};
   1024
   1025static const char * const gcc_gp3_clk_a_groups[] = {
   1026	"gpio44",
   1027};
   1028
   1029static const char * const gcc_gp3_clk_b_groups[] = {
   1030	"gpio11",
   1031};
   1032
   1033static const char * const gcc_plltest_groups[] = {
   1034	"gpio98", "gpio99",
   1035};
   1036
   1037static const char * const gcc_tlmm_groups[] = {
   1038	"gpio87",
   1039};
   1040
   1041static 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
   1066static const char * const gsm0_tx_groups[] = {
   1067	"gpio117",
   1068};
   1069
   1070static const char * const gsm1_tx_groups[] = {
   1071	"gpio115",
   1072};
   1073
   1074static const char * const gyro_int_groups[] = {
   1075	"gpio45",
   1076};
   1077
   1078static const char * const hall_int_groups[] = {
   1079	"gpio12",
   1080};
   1081
   1082static const char * const hdmi_int_groups[] = {
   1083	"gpio90",
   1084};
   1085
   1086static const char * const key_focus_groups[] = {
   1087	"gpio87",
   1088};
   1089
   1090static const char * const key_home_groups[] = {
   1091	"gpio88",
   1092};
   1093
   1094static const char * const key_snapshot_groups[] = {
   1095	"gpio86",
   1096};
   1097
   1098static const char * const key_volp_groups[] = {
   1099	"gpio85",
   1100};
   1101
   1102static const char * const ldo_en_groups[] = {
   1103	"gpio5",
   1104};
   1105
   1106static const char * const ldo_update_groups[] = {
   1107	"gpio4",
   1108};
   1109
   1110static const char * const lpass_slimbus0_groups[] = {
   1111	"gpio71",
   1112};
   1113
   1114static const char * const lpass_slimbus1_groups[] = {
   1115	"gpio72",
   1116};
   1117
   1118static const char * const lpass_slimbus_groups[] = {
   1119	"gpio70",
   1120};
   1121
   1122static const char * const m_voc_groups[] = {
   1123	"gpio17", "gpio21",
   1124};
   1125
   1126static const char * const mag_int_groups[] = {
   1127	"gpio44",
   1128};
   1129
   1130static const char * const mdp_vsync_groups[] = {
   1131	"gpio24", "gpio25",
   1132};
   1133
   1134static const char * const mipi_dsi0_groups[] = {
   1135	"gpio61",
   1136};
   1137
   1138static const char * const modem_tsync_groups[] = {
   1139	"gpio113",
   1140};
   1141
   1142static const char * const mss_lte_groups[] = {
   1143	"gpio82", "gpio83",
   1144};
   1145
   1146static const char * const nav_pps_groups[] = {
   1147	"gpio113",
   1148};
   1149
   1150static const char * const nav_pps_in_a_groups[] = {
   1151	"gpio111",
   1152};
   1153
   1154static const char * const nav_pps_in_b_groups[] = {
   1155	"gpio113",
   1156};
   1157
   1158static const char * const nav_tsync_groups[] = {
   1159	"gpio113",
   1160};
   1161
   1162static const char * const nfc_disable_groups[] = {
   1163	"gpio16",
   1164};
   1165
   1166static const char * const nfc_dwl_groups[] = {
   1167	"gpio62",
   1168};
   1169
   1170static const char * const nfc_irq_groups[] = {
   1171	"gpio17",
   1172};
   1173
   1174static const char * const ois_sync_groups[] = {
   1175	"gpio36",
   1176};
   1177
   1178static const char * const pa_indicator_groups[] = {
   1179	"gpio112",
   1180};
   1181
   1182static const char * const pbs0_groups[] = {
   1183	"gpio85",
   1184};
   1185
   1186static const char * const pbs1_groups[] = {
   1187	"gpio86",
   1188};
   1189
   1190static const char * const pbs2_groups[] = {
   1191	"gpio87",
   1192};
   1193
   1194static const char * const pressure_int_groups[] = {
   1195	"gpio46",
   1196};
   1197
   1198static const char * const pri_mi2s_groups[] = {
   1199	"gpio66", "gpio88", "gpio91", "gpio93", "gpio94", "gpio95",
   1200};
   1201
   1202static const char * const pri_mi2s_mclk_a_groups[] = {
   1203	"gpio25",
   1204};
   1205
   1206static const char * const pri_mi2s_mclk_b_groups[] = {
   1207	"gpio69",
   1208};
   1209
   1210static const char * const pri_mi2s_ws_groups[] = {
   1211	"gpio92",
   1212};
   1213
   1214static const char * const prng_rosc_groups[] = {
   1215	"gpio2",
   1216};
   1217
   1218static const char * const pwr_crypto_enabled_a_groups[] = {
   1219	"gpio36",
   1220};
   1221
   1222static const char * const pwr_crypto_enabled_b_groups[] = {
   1223	"gpio13",
   1224};
   1225
   1226static const char * const pwr_down_groups[] = {
   1227	"gpio89",
   1228};
   1229
   1230static const char * const pwr_modem_enabled_a_groups[] = {
   1231	"gpio29",
   1232};
   1233
   1234static const char * const pwr_modem_enabled_b_groups[] = {
   1235	"gpio9",
   1236};
   1237
   1238static const char * const pwr_nav_enabled_a_groups[] = {
   1239	"gpio35",
   1240};
   1241
   1242static const char * const pwr_nav_enabled_b_groups[] = {
   1243	"gpio12",
   1244};
   1245
   1246static const char * const qdss_cti_trig_in_a0_groups[] = {
   1247	"gpio17",
   1248};
   1249
   1250static const char * const qdss_cti_trig_in_a1_groups[] = {
   1251	"gpio91",
   1252};
   1253
   1254static const char * const qdss_cti_trig_in_b0_groups[] = {
   1255	"gpio21",
   1256};
   1257
   1258static const char * const qdss_cti_trig_in_b1_groups[] = {
   1259	"gpio48",
   1260};
   1261
   1262static const char * const qdss_cti_trig_out_a0_groups[] = {
   1263	"gpio41",
   1264};
   1265
   1266static const char * const qdss_cti_trig_out_a1_groups[] = {
   1267	"gpio3",
   1268};
   1269
   1270static const char * const qdss_cti_trig_out_b0_groups[] = {
   1271	"gpio2",
   1272};
   1273
   1274static const char * const qdss_cti_trig_out_b1_groups[] = {
   1275	"gpio25",
   1276};
   1277
   1278static const char * const qdss_traceclk_a_groups[] = {
   1279	"gpio16",
   1280};
   1281
   1282static const char * const qdss_traceclk_b_groups[] = {
   1283	"gpio22",
   1284};
   1285
   1286static const char * const qdss_tracectl_a_groups[] = {
   1287	"gpio18",
   1288};
   1289
   1290static const char * const qdss_tracectl_b_groups[] = {
   1291	"gpio20",
   1292};
   1293
   1294static 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
   1300static 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
   1306static const char * const sd_write_groups[] = {
   1307	"gpio50",
   1308};
   1309
   1310static const char * const sdcard_det_groups[] = {
   1311	"gpio133",
   1312};
   1313
   1314static const char * const sec_mi2s_groups[] = {
   1315	"gpio135", "gpio136", "gpio137", "gpio138",
   1316};
   1317
   1318static const char * const sec_mi2s_mclk_a_groups[] = {
   1319	"gpio25",
   1320};
   1321
   1322static const char * const sec_mi2s_mclk_b_groups[] = {
   1323	"gpio66",
   1324};
   1325
   1326static const char * const smb_int_groups[] = {
   1327	"gpio1",
   1328};
   1329
   1330static const char * const ss_switch_groups[] = {
   1331	"gpio139",
   1332};
   1333
   1334static const char * const ssbi_wtr1_groups[] = {
   1335	"gpio114", "gpio123",
   1336};
   1337
   1338static const char * const ts_resout_groups[] = {
   1339	"gpio64",
   1340};
   1341
   1342static const char * const ts_sample_groups[] = {
   1343	"gpio65",
   1344};
   1345
   1346static const char * const ts_xvdd_groups[] = {
   1347	"gpio60",
   1348};
   1349
   1350static const char * const tsens_max_groups[] = {
   1351	"gpio139",
   1352};
   1353
   1354static const char * const uim1_clk_groups[] = {
   1355	"gpio52",
   1356};
   1357
   1358static const char * const uim1_data_groups[] = {
   1359	"gpio51",
   1360};
   1361
   1362static const char * const uim1_present_groups[] = {
   1363	"gpio54",
   1364};
   1365
   1366static const char * const uim1_reset_groups[] = {
   1367	"gpio53",
   1368};
   1369
   1370static const char * const uim2_clk_groups[] = {
   1371	"gpio56",
   1372};
   1373
   1374static const char * const uim2_data_groups[] = {
   1375	"gpio55",
   1376};
   1377
   1378static const char * const uim2_present_groups[] = {
   1379	"gpio58",
   1380};
   1381
   1382static const char * const uim2_reset_groups[] = {
   1383	"gpio57",
   1384};
   1385
   1386static const char * const uim_batt_groups[] = {
   1387	"gpio49",
   1388};
   1389
   1390static const char * const us_emitter_groups[] = {
   1391	"gpio68",
   1392};
   1393
   1394static const char * const us_euro_groups[] = {
   1395	"gpio63",
   1396};
   1397
   1398static const char * const wcss_bt_groups[] = {
   1399	"gpio75", "gpio83", "gpio84",
   1400};
   1401
   1402static const char * const wcss_fm_groups[] = {
   1403	"gpio81", "gpio82",
   1404};
   1405
   1406static const char * const wcss_wlan0_groups[] = {
   1407	"gpio78",
   1408};
   1409
   1410static const char * const wcss_wlan1_groups[] = {
   1411	"gpio77",
   1412};
   1413
   1414static const char * const wcss_wlan2_groups[] = {
   1415	"gpio76",
   1416};
   1417
   1418static const char * const wcss_wlan_groups[] = {
   1419	"gpio79", "gpio80",
   1420};
   1421
   1422static const char * const wsa_en_groups[] = {
   1423	"gpio96",
   1424};
   1425
   1426static const char * const wsa_io_groups[] = {
   1427	"gpio94", "gpio95",
   1428};
   1429
   1430static const char * const wsa_irq_groups[] = {
   1431	"gpio97",
   1432};
   1433
   1434static 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
   1638static 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
   1801static 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
   1811static int msm8953_pinctrl_probe(struct platform_device *pdev)
   1812{
   1813	return msm_pinctrl_probe(pdev, &msm8953_pinctrl);
   1814}
   1815
   1816static const struct of_device_id msm8953_pinctrl_of_match[] = {
   1817	{ .compatible = "qcom,msm8953-pinctrl", },
   1818	{ },
   1819};
   1820
   1821static 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
   1830static int __init msm8953_pinctrl_init(void)
   1831{
   1832	return platform_driver_register(&msm8953_pinctrl_driver);
   1833}
   1834arch_initcall(msm8953_pinctrl_init);
   1835
   1836static void __exit msm8953_pinctrl_exit(void)
   1837{
   1838	platform_driver_unregister(&msm8953_pinctrl_driver);
   1839}
   1840module_exit(msm8953_pinctrl_exit);
   1841
   1842MODULE_DESCRIPTION("QTI msm8953 pinctrl driver");
   1843MODULE_LICENSE("GPL v2");
   1844MODULE_DEVICE_TABLE(of, msm8953_pinctrl_of_match);