1ef1ea54eSSricharan R // SPDX-License-Identifier: GPL-2.0 2ef1ea54eSSricharan R /* 3ef1ea54eSSricharan R * Copyright (c) 2016-2018, The Linux Foundation. All rights reserved. 4ef1ea54eSSricharan R */ 5ef1ea54eSSricharan R 6ef1ea54eSSricharan R #include <linux/module.h> 7ef1ea54eSSricharan R #include <linux/of.h> 8ef1ea54eSSricharan R #include <linux/platform_device.h> 9ef1ea54eSSricharan R 10ef1ea54eSSricharan R #include "pinctrl-msm.h" 11ef1ea54eSSricharan R 12ef1ea54eSSricharan R #define REG_SIZE 0x1000 13ef1ea54eSSricharan R #define PINGROUP(id, f1, f2, f3, f4, f5, f6, f7, f8, f9) \ 14ef1ea54eSSricharan R { \ 156a16d1a5SRohit Agarwal .grp = PINCTRL_PINGROUP("gpio" #id, \ 166a16d1a5SRohit Agarwal gpio##id##_pins, \ 176a16d1a5SRohit Agarwal ARRAY_SIZE(gpio##id##_pins)), \ 18ef1ea54eSSricharan R .funcs = (int[]){ \ 19ef1ea54eSSricharan R msm_mux_gpio, /* gpio mode */ \ 20ef1ea54eSSricharan R msm_mux_##f1, \ 21ef1ea54eSSricharan R msm_mux_##f2, \ 22ef1ea54eSSricharan R msm_mux_##f3, \ 23ef1ea54eSSricharan R msm_mux_##f4, \ 24ef1ea54eSSricharan R msm_mux_##f5, \ 25ef1ea54eSSricharan R msm_mux_##f6, \ 26ef1ea54eSSricharan R msm_mux_##f7, \ 27ef1ea54eSSricharan R msm_mux_##f8, \ 28ef1ea54eSSricharan R msm_mux_##f9 \ 29ef1ea54eSSricharan R }, \ 30ef1ea54eSSricharan R .nfuncs = 10, \ 31ef1ea54eSSricharan R .ctl_reg = REG_SIZE * id, \ 32ef1ea54eSSricharan R .io_reg = 0x4 + REG_SIZE * id, \ 33ef1ea54eSSricharan R .intr_cfg_reg = 0x8 + REG_SIZE * id, \ 34ef1ea54eSSricharan R .intr_status_reg = 0xc + REG_SIZE * id, \ 35ef1ea54eSSricharan R .intr_target_reg = 0x8 + REG_SIZE * id, \ 36ef1ea54eSSricharan R .mux_bit = 2, \ 37ef1ea54eSSricharan R .pull_bit = 0, \ 38ef1ea54eSSricharan R .drv_bit = 6, \ 39ef1ea54eSSricharan R .oe_bit = 9, \ 40ef1ea54eSSricharan R .in_bit = 0, \ 41ef1ea54eSSricharan R .out_bit = 1, \ 42ef1ea54eSSricharan R .intr_enable_bit = 0, \ 43ef1ea54eSSricharan R .intr_status_bit = 0, \ 44ef1ea54eSSricharan R .intr_target_bit = 5, \ 45ef1ea54eSSricharan R .intr_target_kpss_val = 3, \ 46ef1ea54eSSricharan R .intr_raw_status_bit = 4, \ 47ef1ea54eSSricharan R .intr_polarity_bit = 1, \ 48ef1ea54eSSricharan R .intr_detection_bit = 2, \ 49ef1ea54eSSricharan R .intr_detection_width = 2, \ 50ef1ea54eSSricharan R } 51ef1ea54eSSricharan R 52ef1ea54eSSricharan R static const struct pinctrl_pin_desc ipq6018_pins[] = { 53ef1ea54eSSricharan R PINCTRL_PIN(0, "GPIO_0"), 54ef1ea54eSSricharan R PINCTRL_PIN(1, "GPIO_1"), 55ef1ea54eSSricharan R PINCTRL_PIN(2, "GPIO_2"), 56ef1ea54eSSricharan R PINCTRL_PIN(3, "GPIO_3"), 57ef1ea54eSSricharan R PINCTRL_PIN(4, "GPIO_4"), 58ef1ea54eSSricharan R PINCTRL_PIN(5, "GPIO_5"), 59ef1ea54eSSricharan R PINCTRL_PIN(6, "GPIO_6"), 60ef1ea54eSSricharan R PINCTRL_PIN(7, "GPIO_7"), 61ef1ea54eSSricharan R PINCTRL_PIN(8, "GPIO_8"), 62ef1ea54eSSricharan R PINCTRL_PIN(9, "GPIO_9"), 63ef1ea54eSSricharan R PINCTRL_PIN(10, "GPIO_10"), 64ef1ea54eSSricharan R PINCTRL_PIN(11, "GPIO_11"), 65ef1ea54eSSricharan R PINCTRL_PIN(12, "GPIO_12"), 66ef1ea54eSSricharan R PINCTRL_PIN(13, "GPIO_13"), 67ef1ea54eSSricharan R PINCTRL_PIN(14, "GPIO_14"), 68ef1ea54eSSricharan R PINCTRL_PIN(15, "GPIO_15"), 69ef1ea54eSSricharan R PINCTRL_PIN(16, "GPIO_16"), 70ef1ea54eSSricharan R PINCTRL_PIN(17, "GPIO_17"), 71ef1ea54eSSricharan R PINCTRL_PIN(18, "GPIO_18"), 72ef1ea54eSSricharan R PINCTRL_PIN(19, "GPIO_19"), 73ef1ea54eSSricharan R PINCTRL_PIN(20, "GPIO_20"), 74ef1ea54eSSricharan R PINCTRL_PIN(21, "GPIO_21"), 75ef1ea54eSSricharan R PINCTRL_PIN(22, "GPIO_22"), 76ef1ea54eSSricharan R PINCTRL_PIN(23, "GPIO_23"), 77ef1ea54eSSricharan R PINCTRL_PIN(24, "GPIO_24"), 78ef1ea54eSSricharan R PINCTRL_PIN(25, "GPIO_25"), 79ef1ea54eSSricharan R PINCTRL_PIN(26, "GPIO_26"), 80ef1ea54eSSricharan R PINCTRL_PIN(27, "GPIO_27"), 81ef1ea54eSSricharan R PINCTRL_PIN(28, "GPIO_28"), 82ef1ea54eSSricharan R PINCTRL_PIN(29, "GPIO_29"), 83ef1ea54eSSricharan R PINCTRL_PIN(30, "GPIO_30"), 84ef1ea54eSSricharan R PINCTRL_PIN(31, "GPIO_31"), 85ef1ea54eSSricharan R PINCTRL_PIN(32, "GPIO_32"), 86ef1ea54eSSricharan R PINCTRL_PIN(33, "GPIO_33"), 87ef1ea54eSSricharan R PINCTRL_PIN(34, "GPIO_34"), 88ef1ea54eSSricharan R PINCTRL_PIN(35, "GPIO_35"), 89ef1ea54eSSricharan R PINCTRL_PIN(36, "GPIO_36"), 90ef1ea54eSSricharan R PINCTRL_PIN(37, "GPIO_37"), 91ef1ea54eSSricharan R PINCTRL_PIN(38, "GPIO_38"), 92ef1ea54eSSricharan R PINCTRL_PIN(39, "GPIO_39"), 93ef1ea54eSSricharan R PINCTRL_PIN(40, "GPIO_40"), 94ef1ea54eSSricharan R PINCTRL_PIN(41, "GPIO_41"), 95ef1ea54eSSricharan R PINCTRL_PIN(42, "GPIO_42"), 96ef1ea54eSSricharan R PINCTRL_PIN(43, "GPIO_43"), 97ef1ea54eSSricharan R PINCTRL_PIN(44, "GPIO_44"), 98ef1ea54eSSricharan R PINCTRL_PIN(45, "GPIO_45"), 99ef1ea54eSSricharan R PINCTRL_PIN(46, "GPIO_46"), 100ef1ea54eSSricharan R PINCTRL_PIN(47, "GPIO_47"), 101ef1ea54eSSricharan R PINCTRL_PIN(48, "GPIO_48"), 102ef1ea54eSSricharan R PINCTRL_PIN(49, "GPIO_49"), 103ef1ea54eSSricharan R PINCTRL_PIN(50, "GPIO_50"), 104ef1ea54eSSricharan R PINCTRL_PIN(51, "GPIO_51"), 105ef1ea54eSSricharan R PINCTRL_PIN(52, "GPIO_52"), 106ef1ea54eSSricharan R PINCTRL_PIN(53, "GPIO_53"), 107ef1ea54eSSricharan R PINCTRL_PIN(54, "GPIO_54"), 108ef1ea54eSSricharan R PINCTRL_PIN(55, "GPIO_55"), 109ef1ea54eSSricharan R PINCTRL_PIN(56, "GPIO_56"), 110ef1ea54eSSricharan R PINCTRL_PIN(57, "GPIO_57"), 111ef1ea54eSSricharan R PINCTRL_PIN(58, "GPIO_58"), 112ef1ea54eSSricharan R PINCTRL_PIN(59, "GPIO_59"), 113ef1ea54eSSricharan R PINCTRL_PIN(60, "GPIO_60"), 114ef1ea54eSSricharan R PINCTRL_PIN(61, "GPIO_61"), 115ef1ea54eSSricharan R PINCTRL_PIN(62, "GPIO_62"), 116ef1ea54eSSricharan R PINCTRL_PIN(63, "GPIO_63"), 117ef1ea54eSSricharan R PINCTRL_PIN(64, "GPIO_64"), 118ef1ea54eSSricharan R PINCTRL_PIN(65, "GPIO_65"), 119ef1ea54eSSricharan R PINCTRL_PIN(66, "GPIO_66"), 120ef1ea54eSSricharan R PINCTRL_PIN(67, "GPIO_67"), 121ef1ea54eSSricharan R PINCTRL_PIN(68, "GPIO_68"), 122ef1ea54eSSricharan R PINCTRL_PIN(69, "GPIO_69"), 123ef1ea54eSSricharan R PINCTRL_PIN(70, "GPIO_70"), 124ef1ea54eSSricharan R PINCTRL_PIN(71, "GPIO_71"), 125ef1ea54eSSricharan R PINCTRL_PIN(72, "GPIO_72"), 126ef1ea54eSSricharan R PINCTRL_PIN(73, "GPIO_73"), 127ef1ea54eSSricharan R PINCTRL_PIN(74, "GPIO_74"), 128ef1ea54eSSricharan R PINCTRL_PIN(75, "GPIO_75"), 129ef1ea54eSSricharan R PINCTRL_PIN(76, "GPIO_76"), 130ef1ea54eSSricharan R PINCTRL_PIN(77, "GPIO_77"), 131ef1ea54eSSricharan R PINCTRL_PIN(78, "GPIO_78"), 132ef1ea54eSSricharan R PINCTRL_PIN(79, "GPIO_79"), 133ef1ea54eSSricharan R }; 134ef1ea54eSSricharan R 135ef1ea54eSSricharan R #define DECLARE_MSM_GPIO_PINS(pin) \ 136ef1ea54eSSricharan R static const unsigned int gpio##pin##_pins[] = { pin } 137ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(0); 138ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(1); 139ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(2); 140ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(3); 141ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(4); 142ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(5); 143ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(6); 144ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(7); 145ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(8); 146ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(9); 147ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(10); 148ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(11); 149ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(12); 150ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(13); 151ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(14); 152ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(15); 153ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(16); 154ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(17); 155ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(18); 156ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(19); 157ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(20); 158ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(21); 159ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(22); 160ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(23); 161ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(24); 162ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(25); 163ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(26); 164ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(27); 165ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(28); 166ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(29); 167ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(30); 168ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(31); 169ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(32); 170ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(33); 171ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(34); 172ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(35); 173ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(36); 174ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(37); 175ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(38); 176ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(39); 177ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(40); 178ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(41); 179ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(42); 180ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(43); 181ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(44); 182ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(45); 183ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(46); 184ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(47); 185ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(48); 186ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(49); 187ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(50); 188ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(51); 189ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(52); 190ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(53); 191ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(54); 192ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(55); 193ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(56); 194ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(57); 195ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(58); 196ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(59); 197ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(60); 198ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(61); 199ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(62); 200ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(63); 201ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(64); 202ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(65); 203ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(66); 204ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(67); 205ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(68); 206ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(69); 207ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(70); 208ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(71); 209ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(72); 210ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(73); 211ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(74); 212ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(75); 213ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(76); 214ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(77); 215ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(78); 216ef1ea54eSSricharan R DECLARE_MSM_GPIO_PINS(79); 217ef1ea54eSSricharan R 218ef1ea54eSSricharan R enum ipq6018_functions { 219ef1ea54eSSricharan R msm_mux_atest_char, 220ef1ea54eSSricharan R msm_mux_atest_char0, 221ef1ea54eSSricharan R msm_mux_atest_char1, 222ef1ea54eSSricharan R msm_mux_atest_char2, 223ef1ea54eSSricharan R msm_mux_atest_char3, 224ef1ea54eSSricharan R msm_mux_audio0, 225ef1ea54eSSricharan R msm_mux_audio1, 226ef1ea54eSSricharan R msm_mux_audio2, 227ef1ea54eSSricharan R msm_mux_audio3, 228ef1ea54eSSricharan R msm_mux_audio_rxbclk, 229ef1ea54eSSricharan R msm_mux_audio_rxfsync, 230ef1ea54eSSricharan R msm_mux_audio_rxmclk, 231ef1ea54eSSricharan R msm_mux_audio_rxmclkin, 232ef1ea54eSSricharan R msm_mux_audio_txbclk, 233ef1ea54eSSricharan R msm_mux_audio_txfsync, 234ef1ea54eSSricharan R msm_mux_audio_txmclk, 235ef1ea54eSSricharan R msm_mux_audio_txmclkin, 236ef1ea54eSSricharan R msm_mux_blsp0_i2c, 237ef1ea54eSSricharan R msm_mux_blsp0_spi, 238ef1ea54eSSricharan R msm_mux_blsp0_uart, 239ef1ea54eSSricharan R msm_mux_blsp1_i2c, 240ef1ea54eSSricharan R msm_mux_blsp1_spi, 241ef1ea54eSSricharan R msm_mux_blsp1_uart, 242ef1ea54eSSricharan R msm_mux_blsp2_i2c, 243ef1ea54eSSricharan R msm_mux_blsp2_spi, 244ef1ea54eSSricharan R msm_mux_blsp2_uart, 245ef1ea54eSSricharan R msm_mux_blsp3_i2c, 246ef1ea54eSSricharan R msm_mux_blsp3_spi, 247ef1ea54eSSricharan R msm_mux_blsp3_uart, 248ef1ea54eSSricharan R msm_mux_blsp4_i2c, 249ef1ea54eSSricharan R msm_mux_blsp4_spi, 250ef1ea54eSSricharan R msm_mux_blsp4_uart, 251ef1ea54eSSricharan R msm_mux_blsp5_i2c, 252ef1ea54eSSricharan R msm_mux_blsp5_uart, 253ef1ea54eSSricharan R msm_mux_burn0, 254ef1ea54eSSricharan R msm_mux_burn1, 255ef1ea54eSSricharan R msm_mux_cri_trng, 256ef1ea54eSSricharan R msm_mux_cri_trng0, 257ef1ea54eSSricharan R msm_mux_cri_trng1, 258ef1ea54eSSricharan R msm_mux_cxc0, 259ef1ea54eSSricharan R msm_mux_cxc1, 260ef1ea54eSSricharan R msm_mux_dbg_out, 261ef1ea54eSSricharan R msm_mux_gcc_plltest, 262ef1ea54eSSricharan R msm_mux_gcc_tlmm, 263ef1ea54eSSricharan R msm_mux_gpio, 264ef1ea54eSSricharan R msm_mux_lpass_aud, 265ef1ea54eSSricharan R msm_mux_lpass_aud0, 266ef1ea54eSSricharan R msm_mux_lpass_aud1, 267ef1ea54eSSricharan R msm_mux_lpass_aud2, 268ef1ea54eSSricharan R msm_mux_lpass_pcm, 269ef1ea54eSSricharan R msm_mux_lpass_pdm, 270ef1ea54eSSricharan R msm_mux_mac00, 271ef1ea54eSSricharan R msm_mux_mac01, 272ef1ea54eSSricharan R msm_mux_mac10, 273ef1ea54eSSricharan R msm_mux_mac11, 274ef1ea54eSSricharan R msm_mux_mac12, 275ef1ea54eSSricharan R msm_mux_mac13, 276ef1ea54eSSricharan R msm_mux_mac20, 277ef1ea54eSSricharan R msm_mux_mac21, 278ef1ea54eSSricharan R msm_mux_mdc, 279ef1ea54eSSricharan R msm_mux_mdio, 280ef1ea54eSSricharan R msm_mux_pcie0_clk, 281ef1ea54eSSricharan R msm_mux_pcie0_rst, 282ef1ea54eSSricharan R msm_mux_pcie0_wake, 283ef1ea54eSSricharan R msm_mux_prng_rosc, 284ef1ea54eSSricharan R msm_mux_pta1_0, 285ef1ea54eSSricharan R msm_mux_pta1_1, 286ef1ea54eSSricharan R msm_mux_pta1_2, 287ef1ea54eSSricharan R msm_mux_pta2_0, 288ef1ea54eSSricharan R msm_mux_pta2_1, 289ef1ea54eSSricharan R msm_mux_pta2_2, 290ef1ea54eSSricharan R msm_mux_pwm00, 291ef1ea54eSSricharan R msm_mux_pwm01, 292ef1ea54eSSricharan R msm_mux_pwm02, 293ef1ea54eSSricharan R msm_mux_pwm03, 294ef1ea54eSSricharan R msm_mux_pwm04, 295ef1ea54eSSricharan R msm_mux_pwm10, 296ef1ea54eSSricharan R msm_mux_pwm11, 297ef1ea54eSSricharan R msm_mux_pwm12, 298ef1ea54eSSricharan R msm_mux_pwm13, 299ef1ea54eSSricharan R msm_mux_pwm14, 300ef1ea54eSSricharan R msm_mux_pwm20, 301ef1ea54eSSricharan R msm_mux_pwm21, 302ef1ea54eSSricharan R msm_mux_pwm22, 303ef1ea54eSSricharan R msm_mux_pwm23, 304ef1ea54eSSricharan R msm_mux_pwm24, 305ef1ea54eSSricharan R msm_mux_pwm30, 306ef1ea54eSSricharan R msm_mux_pwm31, 307ef1ea54eSSricharan R msm_mux_pwm32, 308ef1ea54eSSricharan R msm_mux_pwm33, 309ef1ea54eSSricharan R msm_mux_qdss_cti_trig_in_a0, 310ef1ea54eSSricharan R msm_mux_qdss_cti_trig_in_a1, 311ef1ea54eSSricharan R msm_mux_qdss_cti_trig_out_a0, 312ef1ea54eSSricharan R msm_mux_qdss_cti_trig_out_a1, 313ef1ea54eSSricharan R msm_mux_qdss_cti_trig_in_b0, 314ef1ea54eSSricharan R msm_mux_qdss_cti_trig_in_b1, 315ef1ea54eSSricharan R msm_mux_qdss_cti_trig_out_b0, 316ef1ea54eSSricharan R msm_mux_qdss_cti_trig_out_b1, 317ef1ea54eSSricharan R msm_mux_qdss_traceclk_a, 318ef1ea54eSSricharan R msm_mux_qdss_tracectl_a, 319ef1ea54eSSricharan R msm_mux_qdss_tracedata_a, 320ef1ea54eSSricharan R msm_mux_qdss_traceclk_b, 321ef1ea54eSSricharan R msm_mux_qdss_tracectl_b, 322ef1ea54eSSricharan R msm_mux_qdss_tracedata_b, 323ef1ea54eSSricharan R msm_mux_qpic_pad, 324ef1ea54eSSricharan R msm_mux_rx0, 325ef1ea54eSSricharan R msm_mux_rx1, 326ef1ea54eSSricharan R msm_mux_rx_swrm, 327ef1ea54eSSricharan R msm_mux_rx_swrm0, 328ef1ea54eSSricharan R msm_mux_rx_swrm1, 329ef1ea54eSSricharan R msm_mux_sd_card, 330ef1ea54eSSricharan R msm_mux_sd_write, 331ef1ea54eSSricharan R msm_mux_tsens_max, 332ef1ea54eSSricharan R msm_mux_tx_swrm, 333ef1ea54eSSricharan R msm_mux_tx_swrm0, 334ef1ea54eSSricharan R msm_mux_tx_swrm1, 335ef1ea54eSSricharan R msm_mux_tx_swrm2, 336ef1ea54eSSricharan R msm_mux_wci20, 337ef1ea54eSSricharan R msm_mux_wci21, 338ef1ea54eSSricharan R msm_mux_wci22, 339ef1ea54eSSricharan R msm_mux_wci23, 340ef1ea54eSSricharan R msm_mux_wsa_swrm, 341ef1ea54eSSricharan R msm_mux__, 342ef1ea54eSSricharan R }; 343ef1ea54eSSricharan R 344ef1ea54eSSricharan R static const char * const blsp3_uart_groups[] = { 345ef1ea54eSSricharan R "gpio73", "gpio74", "gpio75", "gpio76", 346ef1ea54eSSricharan R }; 347ef1ea54eSSricharan R 348ef1ea54eSSricharan R static const char * const blsp3_i2c_groups[] = { 349ef1ea54eSSricharan R "gpio73", "gpio74", 350ef1ea54eSSricharan R }; 351ef1ea54eSSricharan R 352ef1ea54eSSricharan R static const char * const blsp3_spi_groups[] = { 353ef1ea54eSSricharan R "gpio73", "gpio74", "gpio75", "gpio76", "gpio77", "gpio78", "gpio79", 354ef1ea54eSSricharan R }; 355ef1ea54eSSricharan R 356ef1ea54eSSricharan R static const char * const wci20_groups[] = { 357ef1ea54eSSricharan R "gpio0", "gpio2", 358ef1ea54eSSricharan R }; 359ef1ea54eSSricharan R 360ef1ea54eSSricharan R static const char * const qpic_pad_groups[] = { 361ef1ea54eSSricharan R "gpio0", "gpio1", "gpio2", "gpio3", "gpio4", "gpio9", "gpio10", 3627f5f4de8SSivaprakash Murugesan "gpio11", "gpio17", "gpio15", "gpio12", "gpio13", "gpio14", "gpio5", 3637f5f4de8SSivaprakash Murugesan "gpio6", "gpio7", "gpio8", 364ef1ea54eSSricharan R }; 365ef1ea54eSSricharan R 366ef1ea54eSSricharan R static const char * const burn0_groups[] = { 367ef1ea54eSSricharan R "gpio0", 368ef1ea54eSSricharan R }; 369ef1ea54eSSricharan R 370ef1ea54eSSricharan R static const char * const mac12_groups[] = { 371ef1ea54eSSricharan R "gpio1", "gpio11", 372ef1ea54eSSricharan R }; 373ef1ea54eSSricharan R 374ef1ea54eSSricharan R static const char * const qdss_tracectl_b_groups[] = { 375ef1ea54eSSricharan R "gpio1", 376ef1ea54eSSricharan R }; 377ef1ea54eSSricharan R 378ef1ea54eSSricharan R static const char * const burn1_groups[] = { 379ef1ea54eSSricharan R "gpio1", 380ef1ea54eSSricharan R }; 381ef1ea54eSSricharan R 382ef1ea54eSSricharan R static const char * const qdss_traceclk_b_groups[] = { 383ef1ea54eSSricharan R "gpio0", 384ef1ea54eSSricharan R }; 385ef1ea54eSSricharan R 386ef1ea54eSSricharan R static const char * const qdss_tracedata_b_groups[] = { 387ef1ea54eSSricharan R "gpio2", "gpio3", "gpio4", "gpio5", "gpio6", "gpio7", "gpio8", "gpio9", 388ef1ea54eSSricharan R "gpio10", "gpio11", "gpio12", "gpio13", "gpio14", "gpio15", "gpio16", 389ef1ea54eSSricharan R "gpio17", 390ef1ea54eSSricharan R }; 391ef1ea54eSSricharan R 392ef1ea54eSSricharan R static const char * const mac01_groups[] = { 393ef1ea54eSSricharan R "gpio3", "gpio4", 394ef1ea54eSSricharan R }; 395ef1ea54eSSricharan R 396ef1ea54eSSricharan R static const char * const mac21_groups[] = { 397ef1ea54eSSricharan R "gpio5", "gpio6", 398ef1ea54eSSricharan R }; 399ef1ea54eSSricharan R 400ef1ea54eSSricharan R static const char * const atest_char_groups[] = { 401ef1ea54eSSricharan R "gpio9", 402ef1ea54eSSricharan R }; 403ef1ea54eSSricharan R 404ef1ea54eSSricharan R static const char * const cxc0_groups[] = { 405ef1ea54eSSricharan R "gpio9", "gpio16", 406ef1ea54eSSricharan R }; 407ef1ea54eSSricharan R 408ef1ea54eSSricharan R static const char * const mac13_groups[] = { 409ef1ea54eSSricharan R "gpio9", "gpio16", 410ef1ea54eSSricharan R }; 411ef1ea54eSSricharan R 412ef1ea54eSSricharan R static const char * const dbg_out_groups[] = { 413ef1ea54eSSricharan R "gpio9", 414ef1ea54eSSricharan R }; 415ef1ea54eSSricharan R 416ef1ea54eSSricharan R static const char * const wci22_groups[] = { 417ef1ea54eSSricharan R "gpio11", "gpio17", 418ef1ea54eSSricharan R }; 419ef1ea54eSSricharan R 420ef1ea54eSSricharan R static const char * const pwm00_groups[] = { 421ef1ea54eSSricharan R "gpio18", 422ef1ea54eSSricharan R }; 423ef1ea54eSSricharan R 424ef1ea54eSSricharan R static const char * const atest_char0_groups[] = { 425ef1ea54eSSricharan R "gpio18", 426ef1ea54eSSricharan R }; 427ef1ea54eSSricharan R 428ef1ea54eSSricharan R static const char * const wci23_groups[] = { 429ef1ea54eSSricharan R "gpio18", "gpio19", 430ef1ea54eSSricharan R }; 431ef1ea54eSSricharan R 432ef1ea54eSSricharan R static const char * const mac11_groups[] = { 433ef1ea54eSSricharan R "gpio18", "gpio19", 434ef1ea54eSSricharan R }; 435ef1ea54eSSricharan R 436ef1ea54eSSricharan R static const char * const pwm10_groups[] = { 437ef1ea54eSSricharan R "gpio19", 438ef1ea54eSSricharan R }; 439ef1ea54eSSricharan R 440ef1ea54eSSricharan R static const char * const atest_char1_groups[] = { 441ef1ea54eSSricharan R "gpio19", 442ef1ea54eSSricharan R }; 443ef1ea54eSSricharan R 444ef1ea54eSSricharan R static const char * const pwm20_groups[] = { 445ef1ea54eSSricharan R "gpio20", 446ef1ea54eSSricharan R }; 447ef1ea54eSSricharan R 448ef1ea54eSSricharan R static const char * const atest_char2_groups[] = { 449ef1ea54eSSricharan R "gpio20", 450ef1ea54eSSricharan R }; 451ef1ea54eSSricharan R 452ef1ea54eSSricharan R static const char * const pwm30_groups[] = { 453ef1ea54eSSricharan R "gpio21", 454ef1ea54eSSricharan R }; 455ef1ea54eSSricharan R 456ef1ea54eSSricharan R static const char * const atest_char3_groups[] = { 457ef1ea54eSSricharan R "gpio21", 458ef1ea54eSSricharan R }; 459ef1ea54eSSricharan R 460ef1ea54eSSricharan R static const char * const audio_txmclk_groups[] = { 461ef1ea54eSSricharan R "gpio22", 462ef1ea54eSSricharan R }; 463ef1ea54eSSricharan R 464ef1ea54eSSricharan R static const char * const audio_txmclkin_groups[] = { 465ef1ea54eSSricharan R "gpio22", 466ef1ea54eSSricharan R }; 467ef1ea54eSSricharan R 468ef1ea54eSSricharan R static const char * const pwm02_groups[] = { 469ef1ea54eSSricharan R "gpio22", 470ef1ea54eSSricharan R }; 471ef1ea54eSSricharan R 472ef1ea54eSSricharan R static const char * const tx_swrm0_groups[] = { 473ef1ea54eSSricharan R "gpio22", 474ef1ea54eSSricharan R }; 475ef1ea54eSSricharan R 476ef1ea54eSSricharan R static const char * const qdss_cti_trig_out_b0_groups[] = { 477ef1ea54eSSricharan R "gpio22", 478ef1ea54eSSricharan R }; 479ef1ea54eSSricharan R 480ef1ea54eSSricharan R static const char * const audio_txbclk_groups[] = { 481ef1ea54eSSricharan R "gpio23", 482ef1ea54eSSricharan R }; 483ef1ea54eSSricharan R 484ef1ea54eSSricharan R static const char * const pwm12_groups[] = { 485ef1ea54eSSricharan R "gpio23", 486ef1ea54eSSricharan R }; 487ef1ea54eSSricharan R 488ef1ea54eSSricharan R static const char * const wsa_swrm_groups[] = { 489ef1ea54eSSricharan R "gpio23", "gpio24", 490ef1ea54eSSricharan R }; 491ef1ea54eSSricharan R 492ef1ea54eSSricharan R static const char * const tx_swrm1_groups[] = { 493ef1ea54eSSricharan R "gpio23", 494ef1ea54eSSricharan R }; 495ef1ea54eSSricharan R 496ef1ea54eSSricharan R static const char * const qdss_cti_trig_in_b0_groups[] = { 497ef1ea54eSSricharan R "gpio23", 498ef1ea54eSSricharan R }; 499ef1ea54eSSricharan R 500ef1ea54eSSricharan R static const char * const audio_txfsync_groups[] = { 501ef1ea54eSSricharan R "gpio24", 502ef1ea54eSSricharan R }; 503ef1ea54eSSricharan R 504ef1ea54eSSricharan R static const char * const pwm22_groups[] = { 505ef1ea54eSSricharan R "gpio24", 506ef1ea54eSSricharan R }; 507ef1ea54eSSricharan R 508ef1ea54eSSricharan R static const char * const tx_swrm2_groups[] = { 509ef1ea54eSSricharan R "gpio24", 510ef1ea54eSSricharan R }; 511ef1ea54eSSricharan R 512ef1ea54eSSricharan R static const char * const qdss_cti_trig_out_b1_groups[] = { 513ef1ea54eSSricharan R "gpio24", 514ef1ea54eSSricharan R }; 515ef1ea54eSSricharan R 516ef1ea54eSSricharan R static const char * const audio0_groups[] = { 517ef1ea54eSSricharan R "gpio25", "gpio32", 518ef1ea54eSSricharan R }; 519ef1ea54eSSricharan R 520ef1ea54eSSricharan R static const char * const pwm32_groups[] = { 521ef1ea54eSSricharan R "gpio25", 522ef1ea54eSSricharan R }; 523ef1ea54eSSricharan R 524ef1ea54eSSricharan R static const char * const tx_swrm_groups[] = { 525ef1ea54eSSricharan R "gpio25", 526ef1ea54eSSricharan R }; 527ef1ea54eSSricharan R 528ef1ea54eSSricharan R static const char * const qdss_cti_trig_in_b1_groups[] = { 529ef1ea54eSSricharan R "gpio25", 530ef1ea54eSSricharan R }; 531ef1ea54eSSricharan R 532ef1ea54eSSricharan R static const char * const audio1_groups[] = { 533ef1ea54eSSricharan R "gpio26", "gpio33", 534ef1ea54eSSricharan R }; 535ef1ea54eSSricharan R 536ef1ea54eSSricharan R static const char * const pwm04_groups[] = { 537ef1ea54eSSricharan R "gpio26", 538ef1ea54eSSricharan R }; 539ef1ea54eSSricharan R 540ef1ea54eSSricharan R static const char * const audio2_groups[] = { 541ef1ea54eSSricharan R "gpio27", 542ef1ea54eSSricharan R }; 543ef1ea54eSSricharan R 544ef1ea54eSSricharan R static const char * const pwm14_groups[] = { 545ef1ea54eSSricharan R "gpio27", 546ef1ea54eSSricharan R }; 547ef1ea54eSSricharan R 548ef1ea54eSSricharan R static const char * const audio3_groups[] = { 549ef1ea54eSSricharan R "gpio28", 550ef1ea54eSSricharan R }; 551ef1ea54eSSricharan R 552ef1ea54eSSricharan R static const char * const pwm24_groups[] = { 553ef1ea54eSSricharan R "gpio28", 554ef1ea54eSSricharan R }; 555ef1ea54eSSricharan R 556ef1ea54eSSricharan R static const char * const audio_rxmclk_groups[] = { 557ef1ea54eSSricharan R "gpio29", 558ef1ea54eSSricharan R }; 559ef1ea54eSSricharan R 560ef1ea54eSSricharan R static const char * const audio_rxmclkin_groups[] = { 561ef1ea54eSSricharan R "gpio29", 562ef1ea54eSSricharan R }; 563ef1ea54eSSricharan R 564ef1ea54eSSricharan R static const char * const pwm03_groups[] = { 565ef1ea54eSSricharan R "gpio29", 566ef1ea54eSSricharan R }; 567ef1ea54eSSricharan R 568ef1ea54eSSricharan R static const char * const lpass_pdm_groups[] = { 569ef1ea54eSSricharan R "gpio29", "gpio30", "gpio31", "gpio32", 570ef1ea54eSSricharan R }; 571ef1ea54eSSricharan R 572ef1ea54eSSricharan R static const char * const lpass_aud_groups[] = { 573ef1ea54eSSricharan R "gpio29", 574ef1ea54eSSricharan R }; 575ef1ea54eSSricharan R 576ef1ea54eSSricharan R static const char * const qdss_cti_trig_in_a1_groups[] = { 577ef1ea54eSSricharan R "gpio29", 578ef1ea54eSSricharan R }; 579ef1ea54eSSricharan R 580ef1ea54eSSricharan R static const char * const audio_rxbclk_groups[] = { 581ef1ea54eSSricharan R "gpio30", 582ef1ea54eSSricharan R }; 583ef1ea54eSSricharan R 584ef1ea54eSSricharan R static const char * const pwm13_groups[] = { 585ef1ea54eSSricharan R "gpio30", 586ef1ea54eSSricharan R }; 587ef1ea54eSSricharan R 588ef1ea54eSSricharan R static const char * const lpass_aud0_groups[] = { 589ef1ea54eSSricharan R "gpio30", 590ef1ea54eSSricharan R }; 591ef1ea54eSSricharan R 592ef1ea54eSSricharan R static const char * const rx_swrm_groups[] = { 593ef1ea54eSSricharan R "gpio30", 594ef1ea54eSSricharan R }; 595ef1ea54eSSricharan R 596ef1ea54eSSricharan R static const char * const qdss_cti_trig_out_a1_groups[] = { 597ef1ea54eSSricharan R "gpio30", 598ef1ea54eSSricharan R }; 599ef1ea54eSSricharan R 600ef1ea54eSSricharan R static const char * const audio_rxfsync_groups[] = { 601ef1ea54eSSricharan R "gpio31", 602ef1ea54eSSricharan R }; 603ef1ea54eSSricharan R 604ef1ea54eSSricharan R static const char * const pwm23_groups[] = { 605ef1ea54eSSricharan R "gpio31", 606ef1ea54eSSricharan R }; 607ef1ea54eSSricharan R 608ef1ea54eSSricharan R static const char * const lpass_aud1_groups[] = { 609ef1ea54eSSricharan R "gpio31", 610ef1ea54eSSricharan R }; 611ef1ea54eSSricharan R 612ef1ea54eSSricharan R static const char * const rx_swrm0_groups[] = { 613ef1ea54eSSricharan R "gpio31", 614ef1ea54eSSricharan R }; 615ef1ea54eSSricharan R 616ef1ea54eSSricharan R static const char * const qdss_cti_trig_in_a0_groups[] = { 617ef1ea54eSSricharan R "gpio31", 618ef1ea54eSSricharan R }; 619ef1ea54eSSricharan R 620ef1ea54eSSricharan R static const char * const pwm33_groups[] = { 621ef1ea54eSSricharan R "gpio32", 622ef1ea54eSSricharan R }; 623ef1ea54eSSricharan R 624ef1ea54eSSricharan R static const char * const lpass_aud2_groups[] = { 625ef1ea54eSSricharan R "gpio32", 626ef1ea54eSSricharan R }; 627ef1ea54eSSricharan R 628ef1ea54eSSricharan R static const char * const rx_swrm1_groups[] = { 629ef1ea54eSSricharan R "gpio32", 630ef1ea54eSSricharan R }; 631ef1ea54eSSricharan R 632ef1ea54eSSricharan R static const char * const qdss_cti_trig_out_a0_groups[] = { 633ef1ea54eSSricharan R "gpio32", 634ef1ea54eSSricharan R }; 635ef1ea54eSSricharan R 636ef1ea54eSSricharan R static const char * const lpass_pcm_groups[] = { 637ef1ea54eSSricharan R "gpio34", "gpio35", "gpio36", "gpio37", 638ef1ea54eSSricharan R }; 639ef1ea54eSSricharan R 640ef1ea54eSSricharan R static const char * const mac10_groups[] = { 641ef1ea54eSSricharan R "gpio34", "gpio35", 642ef1ea54eSSricharan R }; 643ef1ea54eSSricharan R 644ef1ea54eSSricharan R static const char * const mac00_groups[] = { 645ef1ea54eSSricharan R "gpio34", "gpio35", 646ef1ea54eSSricharan R }; 647ef1ea54eSSricharan R 648ef1ea54eSSricharan R static const char * const mac20_groups[] = { 649ef1ea54eSSricharan R "gpio36", "gpio37", 650ef1ea54eSSricharan R }; 651ef1ea54eSSricharan R 652ef1ea54eSSricharan R static const char * const blsp0_uart_groups[] = { 653ef1ea54eSSricharan R "gpio38", "gpio39", "gpio40", "gpio41", 654ef1ea54eSSricharan R }; 655ef1ea54eSSricharan R 656ef1ea54eSSricharan R static const char * const blsp0_i2c_groups[] = { 657ef1ea54eSSricharan R "gpio38", "gpio39", 658ef1ea54eSSricharan R }; 659ef1ea54eSSricharan R 660ef1ea54eSSricharan R static const char * const blsp0_spi_groups[] = { 661ef1ea54eSSricharan R "gpio38", "gpio39", "gpio40", "gpio41", 662ef1ea54eSSricharan R }; 663ef1ea54eSSricharan R 664ef1ea54eSSricharan R static const char * const blsp2_uart_groups[] = { 665ef1ea54eSSricharan R "gpio42", "gpio43", "gpio44", "gpio45", 666ef1ea54eSSricharan R }; 667ef1ea54eSSricharan R 668ef1ea54eSSricharan R static const char * const blsp2_i2c_groups[] = { 669ef1ea54eSSricharan R "gpio42", "gpio43", 670ef1ea54eSSricharan R }; 671ef1ea54eSSricharan R 672ef1ea54eSSricharan R static const char * const blsp2_spi_groups[] = { 673ef1ea54eSSricharan R "gpio42", "gpio43", "gpio44", "gpio45", 674ef1ea54eSSricharan R }; 675ef1ea54eSSricharan R 676ef1ea54eSSricharan R static const char * const blsp5_i2c_groups[] = { 677ef1ea54eSSricharan R "gpio46", "gpio47", 678ef1ea54eSSricharan R }; 679ef1ea54eSSricharan R 680ef1ea54eSSricharan R static const char * const blsp5_uart_groups[] = { 681ef1ea54eSSricharan R "gpio48", "gpio49", 682ef1ea54eSSricharan R }; 683ef1ea54eSSricharan R 684ef1ea54eSSricharan R static const char * const qdss_traceclk_a_groups[] = { 685ef1ea54eSSricharan R "gpio48", 686ef1ea54eSSricharan R }; 687ef1ea54eSSricharan R 688ef1ea54eSSricharan R static const char * const qdss_tracectl_a_groups[] = { 689ef1ea54eSSricharan R "gpio49", 690ef1ea54eSSricharan R }; 691ef1ea54eSSricharan R 692ef1ea54eSSricharan R static const char * const pwm01_groups[] = { 693ef1ea54eSSricharan R "gpio50", 694ef1ea54eSSricharan R }; 695ef1ea54eSSricharan R 696ef1ea54eSSricharan R static const char * const pta1_1_groups[] = { 697ef1ea54eSSricharan R "gpio51", 698ef1ea54eSSricharan R }; 699ef1ea54eSSricharan R 700ef1ea54eSSricharan R static const char * const pwm11_groups[] = { 701ef1ea54eSSricharan R "gpio51", 702ef1ea54eSSricharan R }; 703ef1ea54eSSricharan R 704ef1ea54eSSricharan R static const char * const rx1_groups[] = { 705ef1ea54eSSricharan R "gpio51", 706ef1ea54eSSricharan R }; 707ef1ea54eSSricharan R 708ef1ea54eSSricharan R static const char * const pta1_2_groups[] = { 709ef1ea54eSSricharan R "gpio52", 710ef1ea54eSSricharan R }; 711ef1ea54eSSricharan R 712ef1ea54eSSricharan R static const char * const pwm21_groups[] = { 713ef1ea54eSSricharan R "gpio52", 714ef1ea54eSSricharan R }; 715ef1ea54eSSricharan R 716ef1ea54eSSricharan R static const char * const pta1_0_groups[] = { 717ef1ea54eSSricharan R "gpio53", 718ef1ea54eSSricharan R }; 719ef1ea54eSSricharan R 720ef1ea54eSSricharan R static const char * const pwm31_groups[] = { 721ef1ea54eSSricharan R "gpio53", 722ef1ea54eSSricharan R }; 723ef1ea54eSSricharan R 724ef1ea54eSSricharan R static const char * const prng_rosc_groups[] = { 725ef1ea54eSSricharan R "gpio53", 726ef1ea54eSSricharan R }; 727ef1ea54eSSricharan R 728ef1ea54eSSricharan R static const char * const blsp4_uart_groups[] = { 729ef1ea54eSSricharan R "gpio55", "gpio56", "gpio57", "gpio58", 730ef1ea54eSSricharan R }; 731ef1ea54eSSricharan R 732ef1ea54eSSricharan R static const char * const blsp4_i2c_groups[] = { 733ef1ea54eSSricharan R "gpio55", "gpio56", 734ef1ea54eSSricharan R }; 735ef1ea54eSSricharan R 736ef1ea54eSSricharan R static const char * const blsp4_spi_groups[] = { 737ef1ea54eSSricharan R "gpio55", "gpio56", "gpio57", "gpio58", 738ef1ea54eSSricharan R }; 739ef1ea54eSSricharan R 740ef1ea54eSSricharan R static const char * const pcie0_clk_groups[] = { 741ef1ea54eSSricharan R "gpio59", 742ef1ea54eSSricharan R }; 743ef1ea54eSSricharan R 744ef1ea54eSSricharan R static const char * const cri_trng0_groups[] = { 745ef1ea54eSSricharan R "gpio59", 746ef1ea54eSSricharan R }; 747ef1ea54eSSricharan R 748ef1ea54eSSricharan R static const char * const pcie0_rst_groups[] = { 749ef1ea54eSSricharan R "gpio60", 750ef1ea54eSSricharan R }; 751ef1ea54eSSricharan R 752ef1ea54eSSricharan R static const char * const cri_trng1_groups[] = { 753ef1ea54eSSricharan R "gpio60", 754ef1ea54eSSricharan R }; 755ef1ea54eSSricharan R 756ef1ea54eSSricharan R static const char * const pcie0_wake_groups[] = { 757ef1ea54eSSricharan R "gpio61", 758ef1ea54eSSricharan R }; 759ef1ea54eSSricharan R 760ef1ea54eSSricharan R static const char * const cri_trng_groups[] = { 761ef1ea54eSSricharan R "gpio61", 762ef1ea54eSSricharan R }; 763ef1ea54eSSricharan R 764ef1ea54eSSricharan R static const char * const sd_card_groups[] = { 765ef1ea54eSSricharan R "gpio62", 766ef1ea54eSSricharan R }; 767ef1ea54eSSricharan R 768ef1ea54eSSricharan R static const char * const sd_write_groups[] = { 769ef1ea54eSSricharan R "gpio63", 770ef1ea54eSSricharan R }; 771ef1ea54eSSricharan R 772ef1ea54eSSricharan R static const char * const rx0_groups[] = { 773ef1ea54eSSricharan R "gpio63", 774ef1ea54eSSricharan R }; 775ef1ea54eSSricharan R 776ef1ea54eSSricharan R static const char * const tsens_max_groups[] = { 777ef1ea54eSSricharan R "gpio63", 778ef1ea54eSSricharan R }; 779ef1ea54eSSricharan R 780ef1ea54eSSricharan R static const char * const mdc_groups[] = { 781ef1ea54eSSricharan R "gpio64", 782ef1ea54eSSricharan R }; 783ef1ea54eSSricharan R 784ef1ea54eSSricharan R static const char * const qdss_tracedata_a_groups[] = { 785ef1ea54eSSricharan R "gpio64", "gpio65", "gpio66", "gpio67", "gpio68", "gpio69", "gpio70", 786ef1ea54eSSricharan R "gpio71", "gpio72", "gpio73", "gpio74", "gpio75", "gpio76", "gpio77", 787ef1ea54eSSricharan R "gpio78", "gpio79", 788ef1ea54eSSricharan R }; 789ef1ea54eSSricharan R 790ef1ea54eSSricharan R static const char * const mdio_groups[] = { 791ef1ea54eSSricharan R "gpio65", 792ef1ea54eSSricharan R }; 793ef1ea54eSSricharan R 794ef1ea54eSSricharan R static const char * const pta2_0_groups[] = { 795ef1ea54eSSricharan R "gpio66", 796ef1ea54eSSricharan R }; 797ef1ea54eSSricharan R 798ef1ea54eSSricharan R static const char * const wci21_groups[] = { 799ef1ea54eSSricharan R "gpio66", "gpio68", 800ef1ea54eSSricharan R }; 801ef1ea54eSSricharan R 802ef1ea54eSSricharan R static const char * const cxc1_groups[] = { 803ef1ea54eSSricharan R "gpio66", "gpio68", 804ef1ea54eSSricharan R }; 805ef1ea54eSSricharan R 806ef1ea54eSSricharan R static const char * const pta2_1_groups[] = { 807ef1ea54eSSricharan R "gpio67", 808ef1ea54eSSricharan R }; 809ef1ea54eSSricharan R 810ef1ea54eSSricharan R static const char * const pta2_2_groups[] = { 811ef1ea54eSSricharan R "gpio68", 812ef1ea54eSSricharan R }; 813ef1ea54eSSricharan R 814ef1ea54eSSricharan R static const char * const blsp1_uart_groups[] = { 815ef1ea54eSSricharan R "gpio69", "gpio70", "gpio71", "gpio72", 816ef1ea54eSSricharan R }; 817ef1ea54eSSricharan R 818ef1ea54eSSricharan R static const char * const blsp1_i2c_groups[] = { 819ef1ea54eSSricharan R "gpio69", "gpio70", 820ef1ea54eSSricharan R }; 821ef1ea54eSSricharan R 822ef1ea54eSSricharan R static const char * const blsp1_spi_groups[] = { 823ef1ea54eSSricharan R "gpio69", "gpio70", "gpio71", "gpio72", 824ef1ea54eSSricharan R }; 825ef1ea54eSSricharan R 826ef1ea54eSSricharan R static const char * const gcc_plltest_groups[] = { 827ef1ea54eSSricharan R "gpio69", "gpio71", 828ef1ea54eSSricharan R }; 829ef1ea54eSSricharan R 830ef1ea54eSSricharan R static const char * const gcc_tlmm_groups[] = { 831ef1ea54eSSricharan R "gpio70", 832ef1ea54eSSricharan R }; 833ef1ea54eSSricharan R 834ef1ea54eSSricharan R static const char * const gpio_groups[] = { 835ef1ea54eSSricharan R "gpio0", "gpio1", "gpio2", "gpio3", "gpio4", "gpio5", "gpio6", "gpio7", 836ef1ea54eSSricharan R "gpio8", "gpio9", "gpio10", "gpio11", "gpio12", "gpio13", "gpio14", 837ef1ea54eSSricharan R "gpio15", "gpio16", "gpio17", "gpio18", "gpio19", "gpio20", "gpio21", 838ef1ea54eSSricharan R "gpio22", "gpio23", "gpio24", "gpio25", "gpio26", "gpio27", "gpio28", 839ef1ea54eSSricharan R "gpio29", "gpio30", "gpio31", "gpio32", "gpio33", "gpio34", "gpio35", 840ef1ea54eSSricharan R "gpio36", "gpio37", "gpio38", "gpio39", "gpio40", "gpio41", "gpio42", 841ef1ea54eSSricharan R "gpio43", "gpio44", "gpio45", "gpio46", "gpio47", "gpio48", "gpio49", 842ef1ea54eSSricharan R "gpio50", "gpio51", "gpio52", "gpio53", "gpio54", "gpio55", "gpio56", 843ef1ea54eSSricharan R "gpio57", "gpio58", "gpio59", "gpio60", "gpio61", "gpio62", "gpio63", 844ef1ea54eSSricharan R "gpio64", "gpio65", "gpio66", "gpio67", "gpio68", "gpio69", "gpio70", 845ef1ea54eSSricharan R "gpio71", "gpio72", "gpio73", "gpio74", "gpio75", "gpio76", "gpio77", 846ef1ea54eSSricharan R "gpio78", "gpio79", 847ef1ea54eSSricharan R }; 848ef1ea54eSSricharan R 849c7a291dbSRohit Agarwal static const struct pinfunction ipq6018_functions[] = { 850c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(atest_char), 851c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(atest_char0), 852c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(atest_char1), 853c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(atest_char2), 854c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(atest_char3), 855c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(audio0), 856c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(audio1), 857c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(audio2), 858c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(audio3), 859c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(audio_rxbclk), 860c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(audio_rxfsync), 861c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(audio_rxmclk), 862c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(audio_rxmclkin), 863c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(audio_txbclk), 864c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(audio_txfsync), 865c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(audio_txmclk), 866c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(audio_txmclkin), 867c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(blsp0_i2c), 868c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(blsp0_spi), 869c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(blsp0_uart), 870c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(blsp1_i2c), 871c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(blsp1_spi), 872c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(blsp1_uart), 873c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(blsp2_i2c), 874c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(blsp2_spi), 875c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(blsp2_uart), 876c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(blsp3_i2c), 877c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(blsp3_spi), 878c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(blsp3_uart), 879c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(blsp4_i2c), 880c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(blsp4_spi), 881c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(blsp4_uart), 882c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(blsp5_i2c), 883c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(blsp5_uart), 884c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(burn0), 885c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(burn1), 886c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(cri_trng), 887c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(cri_trng0), 888c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(cri_trng1), 889c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(cxc0), 890c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(cxc1), 891c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(dbg_out), 892c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(gcc_plltest), 893c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(gcc_tlmm), 894c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(gpio), 895c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(lpass_aud), 896c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(lpass_aud0), 897c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(lpass_aud1), 898c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(lpass_aud2), 899c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(lpass_pcm), 900c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(lpass_pdm), 901c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(mac00), 902c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(mac01), 903c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(mac10), 904c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(mac11), 905c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(mac12), 906c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(mac13), 907c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(mac20), 908c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(mac21), 909c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(mdc), 910c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(mdio), 911c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pcie0_clk), 912c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pcie0_rst), 913c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pcie0_wake), 914c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(prng_rosc), 915c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pta1_0), 916c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pta1_1), 917c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pta1_2), 918c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pta2_0), 919c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pta2_1), 920c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pta2_2), 921c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pwm00), 922c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pwm01), 923c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pwm02), 924c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pwm03), 925c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pwm04), 926c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pwm10), 927c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pwm11), 928c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pwm12), 929c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pwm13), 930c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pwm14), 931c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pwm20), 932c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pwm21), 933c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pwm22), 934c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pwm23), 935c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pwm24), 936c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pwm30), 937c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pwm31), 938c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pwm32), 939c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(pwm33), 940c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(qdss_cti_trig_in_a0), 941c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(qdss_cti_trig_in_a1), 942c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(qdss_cti_trig_out_a0), 943c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(qdss_cti_trig_out_a1), 944c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(qdss_cti_trig_in_b0), 945c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(qdss_cti_trig_in_b1), 946c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(qdss_cti_trig_out_b0), 947c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(qdss_cti_trig_out_b1), 948c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(qdss_traceclk_a), 949c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(qdss_tracectl_a), 950c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(qdss_tracedata_a), 951c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(qdss_traceclk_b), 952c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(qdss_tracectl_b), 953c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(qdss_tracedata_b), 954c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(qpic_pad), 955c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(rx0), 956c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(rx1), 957c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(rx_swrm), 958c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(rx_swrm0), 959c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(rx_swrm1), 960c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(sd_card), 961c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(sd_write), 962c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(tsens_max), 963c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(tx_swrm), 964c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(tx_swrm0), 965c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(tx_swrm1), 966c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(tx_swrm2), 967c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(wci20), 968c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(wci21), 969c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(wci22), 970c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(wci23), 971c7a291dbSRohit Agarwal MSM_PIN_FUNCTION(wsa_swrm), 972ef1ea54eSSricharan R }; 973ef1ea54eSSricharan R 974ef1ea54eSSricharan R static const struct msm_pingroup ipq6018_groups[] = { 975ef1ea54eSSricharan R PINGROUP(0, qpic_pad, wci20, qdss_traceclk_b, _, burn0, _, _, _, _), 976ef1ea54eSSricharan R PINGROUP(1, qpic_pad, mac12, qdss_tracectl_b, _, burn1, _, _, _, _), 977ef1ea54eSSricharan R PINGROUP(2, qpic_pad, wci20, qdss_tracedata_b, _, _, _, _, _, _), 978ef1ea54eSSricharan R PINGROUP(3, qpic_pad, mac01, qdss_tracedata_b, _, _, _, _, _, _), 979ef1ea54eSSricharan R PINGROUP(4, qpic_pad, mac01, qdss_tracedata_b, _, _, _, _, _, _), 980ef1ea54eSSricharan R PINGROUP(5, qpic_pad, mac21, qdss_tracedata_b, _, _, _, _, _, _), 981ef1ea54eSSricharan R PINGROUP(6, qpic_pad, mac21, qdss_tracedata_b, _, _, _, _, _, _), 982ef1ea54eSSricharan R PINGROUP(7, qpic_pad, qdss_tracedata_b, _, _, _, _, _, _, _), 983ef1ea54eSSricharan R PINGROUP(8, qpic_pad, qdss_tracedata_b, _, _, _, _, _, _, _), 984ef1ea54eSSricharan R PINGROUP(9, qpic_pad, atest_char, cxc0, mac13, dbg_out, qdss_tracedata_b, _, _, _), 985ef1ea54eSSricharan R PINGROUP(10, qpic_pad, qdss_tracedata_b, _, _, _, _, _, _, _), 986ef1ea54eSSricharan R PINGROUP(11, qpic_pad, wci22, mac12, qdss_tracedata_b, _, _, _, _, _), 987ef1ea54eSSricharan R PINGROUP(12, qpic_pad, qdss_tracedata_b, _, _, _, _, _, _, _), 988ef1ea54eSSricharan R PINGROUP(13, qpic_pad, qdss_tracedata_b, _, _, _, _, _, _, _), 989ef1ea54eSSricharan R PINGROUP(14, qpic_pad, qdss_tracedata_b, _, _, _, _, _, _, _), 990ef1ea54eSSricharan R PINGROUP(15, qpic_pad, qdss_tracedata_b, _, _, _, _, _, _, _), 991ef1ea54eSSricharan R PINGROUP(16, qpic_pad, cxc0, mac13, qdss_tracedata_b, _, _, _, _, _), 992ef1ea54eSSricharan R PINGROUP(17, qpic_pad, qdss_tracedata_b, wci22, _, _, _, _, _, _), 993ef1ea54eSSricharan R PINGROUP(18, pwm00, atest_char0, wci23, mac11, _, _, _, _, _), 994ef1ea54eSSricharan R PINGROUP(19, pwm10, atest_char1, wci23, mac11, _, _, _, _, _), 995ef1ea54eSSricharan R PINGROUP(20, pwm20, atest_char2, _, _, _, _, _, _, _), 996ef1ea54eSSricharan R PINGROUP(21, pwm30, atest_char3, _, _, _, _, _, _, _), 997ef1ea54eSSricharan R PINGROUP(22, audio_txmclk, audio_txmclkin, pwm02, tx_swrm0, _, qdss_cti_trig_out_b0, _, _, _), 998ef1ea54eSSricharan R PINGROUP(23, audio_txbclk, pwm12, wsa_swrm, tx_swrm1, _, qdss_cti_trig_in_b0, _, _, _), 999ef1ea54eSSricharan R PINGROUP(24, audio_txfsync, pwm22, wsa_swrm, tx_swrm2, _, qdss_cti_trig_out_b1, _, _, _), 1000ef1ea54eSSricharan R PINGROUP(25, audio0, pwm32, tx_swrm, _, qdss_cti_trig_in_b1, _, _, _, _), 1001ef1ea54eSSricharan R PINGROUP(26, audio1, pwm04, _, _, _, _, _, _, _), 1002ef1ea54eSSricharan R PINGROUP(27, audio2, pwm14, _, _, _, _, _, _, _), 1003ef1ea54eSSricharan R PINGROUP(28, audio3, pwm24, _, _, _, _, _, _, _), 1004ef1ea54eSSricharan R PINGROUP(29, audio_rxmclk, audio_rxmclkin, pwm03, lpass_pdm, lpass_aud, qdss_cti_trig_in_a1, _, _, _), 1005ef1ea54eSSricharan R PINGROUP(30, audio_rxbclk, pwm13, lpass_pdm, lpass_aud0, rx_swrm, _, qdss_cti_trig_out_a1, _, _), 1006ef1ea54eSSricharan R PINGROUP(31, audio_rxfsync, pwm23, lpass_pdm, lpass_aud1, rx_swrm0, _, qdss_cti_trig_in_a0, _, _), 1007ef1ea54eSSricharan R PINGROUP(32, audio0, pwm33, lpass_pdm, lpass_aud2, rx_swrm1, _, qdss_cti_trig_out_a0, _, _), 1008ef1ea54eSSricharan R PINGROUP(33, audio1, _, _, _, _, _, _, _, _), 1009ef1ea54eSSricharan R PINGROUP(34, lpass_pcm, mac10, mac00, _, _, _, _, _, _), 1010ef1ea54eSSricharan R PINGROUP(35, lpass_pcm, mac10, mac00, _, _, _, _, _, _), 1011ef1ea54eSSricharan R PINGROUP(36, lpass_pcm, mac20, _, _, _, _, _, _, _), 1012ef1ea54eSSricharan R PINGROUP(37, lpass_pcm, mac20, _, _, _, _, _, _, _), 1013ef1ea54eSSricharan R PINGROUP(38, blsp0_uart, blsp0_i2c, blsp0_spi, _, _, _, _, _, _), 1014ef1ea54eSSricharan R PINGROUP(39, blsp0_uart, blsp0_i2c, blsp0_spi, _, _, _, _, _, _), 1015ef1ea54eSSricharan R PINGROUP(40, blsp0_uart, blsp0_spi, _, _, _, _, _, _, _), 1016ef1ea54eSSricharan R PINGROUP(41, blsp0_uart, blsp0_spi, _, _, _, _, _, _, _), 1017ef1ea54eSSricharan R PINGROUP(42, blsp2_uart, blsp2_i2c, blsp2_spi, _, _, _, _, _, _), 1018ef1ea54eSSricharan R PINGROUP(43, blsp2_uart, blsp2_i2c, blsp2_spi, _, _, _, _, _, _), 1019ef1ea54eSSricharan R PINGROUP(44, blsp2_uart, blsp2_spi, _, _, _, _, _, _, _), 1020ef1ea54eSSricharan R PINGROUP(45, blsp2_uart, blsp2_spi, _, _, _, _, _, _, _), 1021ef1ea54eSSricharan R PINGROUP(46, blsp5_i2c, _, _, _, _, _, _, _, _), 1022ef1ea54eSSricharan R PINGROUP(47, blsp5_i2c, _, _, _, _, _, _, _, _), 1023ef1ea54eSSricharan R PINGROUP(48, blsp5_uart, _, qdss_traceclk_a, _, _, _, _, _, _), 1024ef1ea54eSSricharan R PINGROUP(49, blsp5_uart, _, qdss_tracectl_a, _, _, _, _, _, _), 1025ef1ea54eSSricharan R PINGROUP(50, pwm01, _, _, _, _, _, _, _, _), 1026ef1ea54eSSricharan R PINGROUP(51, pta1_1, pwm11, _, rx1, _, _, _, _, _), 1027ef1ea54eSSricharan R PINGROUP(52, pta1_2, pwm21, _, _, _, _, _, _, _), 1028ef1ea54eSSricharan R PINGROUP(53, pta1_0, pwm31, prng_rosc, _, _, _, _, _, _), 1029ef1ea54eSSricharan R PINGROUP(54, _, _, _, _, _, _, _, _, _), 1030ef1ea54eSSricharan R PINGROUP(55, blsp4_uart, blsp4_i2c, blsp4_spi, _, _, _, _, _, _), 1031ef1ea54eSSricharan R PINGROUP(56, blsp4_uart, blsp4_i2c, blsp4_spi, _, _, _, _, _, _), 1032ef1ea54eSSricharan R PINGROUP(57, blsp4_uart, blsp4_spi, _, _, _, _, _, _, _), 1033ef1ea54eSSricharan R PINGROUP(58, blsp4_uart, blsp4_spi, _, _, _, _, _, _, _), 1034ef1ea54eSSricharan R PINGROUP(59, pcie0_clk, _, _, cri_trng0, _, _, _, _, _), 1035ef1ea54eSSricharan R PINGROUP(60, pcie0_rst, _, _, cri_trng1, _, _, _, _, _), 1036ef1ea54eSSricharan R PINGROUP(61, pcie0_wake, _, _, cri_trng, _, _, _, _, _), 1037ef1ea54eSSricharan R PINGROUP(62, sd_card, _, _, _, _, _, _, _, _), 1038ef1ea54eSSricharan R PINGROUP(63, sd_write, rx0, _, tsens_max, _, _, _, _, _), 1039ef1ea54eSSricharan R PINGROUP(64, mdc, _, qdss_tracedata_a, _, _, _, _, _, _), 1040ef1ea54eSSricharan R PINGROUP(65, mdio, _, qdss_tracedata_a, _, _, _, _, _, _), 1041ef1ea54eSSricharan R PINGROUP(66, pta2_0, wci21, cxc1, qdss_tracedata_a, _, _, _, _, _), 1042ef1ea54eSSricharan R PINGROUP(67, pta2_1, qdss_tracedata_a, _, _, _, _, _, _, _), 1043ef1ea54eSSricharan R PINGROUP(68, pta2_2, wci21, cxc1, qdss_tracedata_a, _, _, _, _, _), 1044ef1ea54eSSricharan R PINGROUP(69, blsp1_uart, blsp1_i2c, blsp1_spi, gcc_plltest, qdss_tracedata_a, _, _, _, _), 1045ef1ea54eSSricharan R PINGROUP(70, blsp1_uart, blsp1_i2c, blsp1_spi, gcc_tlmm, qdss_tracedata_a, _, _, _, _), 1046ef1ea54eSSricharan R PINGROUP(71, blsp1_uart, blsp1_spi, gcc_plltest, qdss_tracedata_a, _, _, _, _, _), 1047ef1ea54eSSricharan R PINGROUP(72, blsp1_uart, blsp1_spi, qdss_tracedata_a, _, _, _, _, _, _), 1048ef1ea54eSSricharan R PINGROUP(73, blsp3_uart, blsp3_i2c, blsp3_spi, _, qdss_tracedata_a, _, _, _, _), 1049ef1ea54eSSricharan R PINGROUP(74, blsp3_uart, blsp3_i2c, blsp3_spi, _, qdss_tracedata_a, _, _, _, _), 1050ef1ea54eSSricharan R PINGROUP(75, blsp3_uart, blsp3_spi, _, qdss_tracedata_a, _, _, _, _, _), 1051ef1ea54eSSricharan R PINGROUP(76, blsp3_uart, blsp3_spi, _, qdss_tracedata_a, _, _, _, _, _), 1052ef1ea54eSSricharan R PINGROUP(77, blsp3_spi, _, qdss_tracedata_a, _, _, _, _, _, _), 1053ef1ea54eSSricharan R PINGROUP(78, blsp3_spi, _, qdss_tracedata_a, _, _, _, _, _, _), 1054ef1ea54eSSricharan R PINGROUP(79, blsp3_spi, _, qdss_tracedata_a, _, _, _, _, _, _), 1055ef1ea54eSSricharan R }; 1056ef1ea54eSSricharan R 1057ef1ea54eSSricharan R static const struct msm_pinctrl_soc_data ipq6018_pinctrl = { 1058ef1ea54eSSricharan R .pins = ipq6018_pins, 1059ef1ea54eSSricharan R .npins = ARRAY_SIZE(ipq6018_pins), 1060ef1ea54eSSricharan R .functions = ipq6018_functions, 1061ef1ea54eSSricharan R .nfunctions = ARRAY_SIZE(ipq6018_functions), 1062ef1ea54eSSricharan R .groups = ipq6018_groups, 1063ef1ea54eSSricharan R .ngroups = ARRAY_SIZE(ipq6018_groups), 1064ef1ea54eSSricharan R .ngpios = 80, 1065ef1ea54eSSricharan R }; 1066ef1ea54eSSricharan R 1067ef1ea54eSSricharan R static int ipq6018_pinctrl_probe(struct platform_device *pdev) 1068ef1ea54eSSricharan R { 1069ef1ea54eSSricharan R return msm_pinctrl_probe(pdev, &ipq6018_pinctrl); 1070ef1ea54eSSricharan R } 1071ef1ea54eSSricharan R 1072ef1ea54eSSricharan R static const struct of_device_id ipq6018_pinctrl_of_match[] = { 1073ef1ea54eSSricharan R { .compatible = "qcom,ipq6018-pinctrl", }, 1074ef1ea54eSSricharan R { }, 1075ef1ea54eSSricharan R }; 1076ef1ea54eSSricharan R 1077ef1ea54eSSricharan R static struct platform_driver ipq6018_pinctrl_driver = { 1078ef1ea54eSSricharan R .driver = { 1079ef1ea54eSSricharan R .name = "ipq6018-pinctrl", 1080ef1ea54eSSricharan R .of_match_table = ipq6018_pinctrl_of_match, 1081ef1ea54eSSricharan R }, 1082ef1ea54eSSricharan R .probe = ipq6018_pinctrl_probe, 1083*22ee670aSUwe Kleine-König .remove_new = msm_pinctrl_remove, 1084ef1ea54eSSricharan R }; 1085ef1ea54eSSricharan R 1086ef1ea54eSSricharan R static int __init ipq6018_pinctrl_init(void) 1087ef1ea54eSSricharan R { 1088ef1ea54eSSricharan R return platform_driver_register(&ipq6018_pinctrl_driver); 1089ef1ea54eSSricharan R } 1090ef1ea54eSSricharan R arch_initcall(ipq6018_pinctrl_init); 1091ef1ea54eSSricharan R 1092ef1ea54eSSricharan R static void __exit ipq6018_pinctrl_exit(void) 1093ef1ea54eSSricharan R { 1094ef1ea54eSSricharan R platform_driver_unregister(&ipq6018_pinctrl_driver); 1095ef1ea54eSSricharan R } 1096ef1ea54eSSricharan R module_exit(ipq6018_pinctrl_exit); 1097ef1ea54eSSricharan R 1098ef1ea54eSSricharan R MODULE_DESCRIPTION("QTI ipq6018 pinctrl driver"); 1099ef1ea54eSSricharan R MODULE_LICENSE("GPL v2"); 1100ef1ea54eSSricharan R MODULE_DEVICE_TABLE(of, ipq6018_pinctrl_of_match); 1101