File Index
Files and directories
Sign in
FILE

pinctrl-msm8917.c

File preview with syntax highlighting.

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