0001
0002
0003
0004
0005
0006 #include <linux/module.h>
0007 #include <linux/of.h>
0008 #include <linux/platform_device.h>
0009 #include <linux/pinctrl/pinctrl.h>
0010
0011 #include "pinctrl-msm.h"
0012
0013 #define FUNCTION(fname) \
0014 [msm_mux_##fname] = { \
0015 .name = #fname, \
0016 .groups = fname##_groups, \
0017 .ngroups = ARRAY_SIZE(fname##_groups), \
0018 }
0019
0020 #define REG_SIZE 0x1000
0021
0022 #define PINGROUP(id, f1, f2, f3, f4, f5, f6, f7, f8, f9) \
0023 { \
0024 .name = "gpio" #id, \
0025 .pins = gpio##id##_pins, \
0026 .npins = (unsigned int)ARRAY_SIZE(gpio##id##_pins), \
0027 .funcs = (int[]){ \
0028 msm_mux_gpio, \
0029 msm_mux_##f1, \
0030 msm_mux_##f2, \
0031 msm_mux_##f3, \
0032 msm_mux_##f4, \
0033 msm_mux_##f5, \
0034 msm_mux_##f6, \
0035 msm_mux_##f7, \
0036 msm_mux_##f8, \
0037 msm_mux_##f9 \
0038 }, \
0039 .nfuncs = 10, \
0040 .ctl_reg = REG_SIZE * id, \
0041 .io_reg = 0x4 + REG_SIZE * id, \
0042 .intr_cfg_reg = 0x8 + REG_SIZE * id, \
0043 .intr_status_reg = 0xc + REG_SIZE * id, \
0044 .intr_target_reg = 0x8 + REG_SIZE * id, \
0045 .mux_bit = 2, \
0046 .pull_bit = 0, \
0047 .drv_bit = 6, \
0048 .oe_bit = 9, \
0049 .in_bit = 0, \
0050 .out_bit = 1, \
0051 .intr_enable_bit = 0, \
0052 .intr_status_bit = 0, \
0053 .intr_target_bit = 5, \
0054 .intr_target_kpss_val = 3, \
0055 .intr_raw_status_bit = 4, \
0056 .intr_polarity_bit = 1, \
0057 .intr_detection_bit = 2, \
0058 .intr_detection_width = 2, \
0059 }
0060
0061 #define SDC_PINGROUP(pg_name, ctl, pull, drv) \
0062 { \
0063 .name = #pg_name, \
0064 .pins = pg_name##_pins, \
0065 .npins = (unsigned int)ARRAY_SIZE(pg_name##_pins), \
0066 .ctl_reg = ctl, \
0067 .io_reg = 0, \
0068 .intr_cfg_reg = 0, \
0069 .intr_status_reg = 0, \
0070 .intr_target_reg = 0, \
0071 .mux_bit = -1, \
0072 .pull_bit = pull, \
0073 .drv_bit = drv, \
0074 .oe_bit = -1, \
0075 .in_bit = -1, \
0076 .out_bit = -1, \
0077 .intr_enable_bit = -1, \
0078 .intr_status_bit = -1, \
0079 .intr_target_bit = -1, \
0080 .intr_raw_status_bit = -1, \
0081 .intr_polarity_bit = -1, \
0082 .intr_detection_bit = -1, \
0083 .intr_detection_width = -1, \
0084 }
0085
0086 static const struct pinctrl_pin_desc sdx55_pins[] = {
0087 PINCTRL_PIN(0, "GPIO_0"),
0088 PINCTRL_PIN(1, "GPIO_1"),
0089 PINCTRL_PIN(2, "GPIO_2"),
0090 PINCTRL_PIN(3, "GPIO_3"),
0091 PINCTRL_PIN(4, "GPIO_4"),
0092 PINCTRL_PIN(5, "GPIO_5"),
0093 PINCTRL_PIN(6, "GPIO_6"),
0094 PINCTRL_PIN(7, "GPIO_7"),
0095 PINCTRL_PIN(8, "GPIO_8"),
0096 PINCTRL_PIN(9, "GPIO_9"),
0097 PINCTRL_PIN(10, "GPIO_10"),
0098 PINCTRL_PIN(11, "GPIO_11"),
0099 PINCTRL_PIN(12, "GPIO_12"),
0100 PINCTRL_PIN(13, "GPIO_13"),
0101 PINCTRL_PIN(14, "GPIO_14"),
0102 PINCTRL_PIN(15, "GPIO_15"),
0103 PINCTRL_PIN(16, "GPIO_16"),
0104 PINCTRL_PIN(17, "GPIO_17"),
0105 PINCTRL_PIN(18, "GPIO_18"),
0106 PINCTRL_PIN(19, "GPIO_19"),
0107 PINCTRL_PIN(20, "GPIO_20"),
0108 PINCTRL_PIN(21, "GPIO_21"),
0109 PINCTRL_PIN(22, "GPIO_22"),
0110 PINCTRL_PIN(23, "GPIO_23"),
0111 PINCTRL_PIN(24, "GPIO_24"),
0112 PINCTRL_PIN(25, "GPIO_25"),
0113 PINCTRL_PIN(26, "GPIO_26"),
0114 PINCTRL_PIN(27, "GPIO_27"),
0115 PINCTRL_PIN(28, "GPIO_28"),
0116 PINCTRL_PIN(29, "GPIO_29"),
0117 PINCTRL_PIN(30, "GPIO_30"),
0118 PINCTRL_PIN(31, "GPIO_31"),
0119 PINCTRL_PIN(32, "GPIO_32"),
0120 PINCTRL_PIN(33, "GPIO_33"),
0121 PINCTRL_PIN(34, "GPIO_34"),
0122 PINCTRL_PIN(35, "GPIO_35"),
0123 PINCTRL_PIN(36, "GPIO_36"),
0124 PINCTRL_PIN(37, "GPIO_37"),
0125 PINCTRL_PIN(38, "GPIO_38"),
0126 PINCTRL_PIN(39, "GPIO_39"),
0127 PINCTRL_PIN(40, "GPIO_40"),
0128 PINCTRL_PIN(41, "GPIO_41"),
0129 PINCTRL_PIN(42, "GPIO_42"),
0130 PINCTRL_PIN(43, "GPIO_43"),
0131 PINCTRL_PIN(44, "GPIO_44"),
0132 PINCTRL_PIN(45, "GPIO_45"),
0133 PINCTRL_PIN(46, "GPIO_46"),
0134 PINCTRL_PIN(47, "GPIO_47"),
0135 PINCTRL_PIN(48, "GPIO_48"),
0136 PINCTRL_PIN(49, "GPIO_49"),
0137 PINCTRL_PIN(50, "GPIO_50"),
0138 PINCTRL_PIN(51, "GPIO_51"),
0139 PINCTRL_PIN(52, "GPIO_52"),
0140 PINCTRL_PIN(53, "GPIO_53"),
0141 PINCTRL_PIN(54, "GPIO_54"),
0142 PINCTRL_PIN(55, "GPIO_55"),
0143 PINCTRL_PIN(56, "GPIO_56"),
0144 PINCTRL_PIN(57, "GPIO_57"),
0145 PINCTRL_PIN(58, "GPIO_58"),
0146 PINCTRL_PIN(59, "GPIO_59"),
0147 PINCTRL_PIN(60, "GPIO_60"),
0148 PINCTRL_PIN(61, "GPIO_61"),
0149 PINCTRL_PIN(62, "GPIO_62"),
0150 PINCTRL_PIN(63, "GPIO_63"),
0151 PINCTRL_PIN(64, "GPIO_64"),
0152 PINCTRL_PIN(65, "GPIO_65"),
0153 PINCTRL_PIN(66, "GPIO_66"),
0154 PINCTRL_PIN(67, "GPIO_67"),
0155 PINCTRL_PIN(68, "GPIO_68"),
0156 PINCTRL_PIN(69, "GPIO_69"),
0157 PINCTRL_PIN(70, "GPIO_70"),
0158 PINCTRL_PIN(71, "GPIO_71"),
0159 PINCTRL_PIN(72, "GPIO_72"),
0160 PINCTRL_PIN(73, "GPIO_73"),
0161 PINCTRL_PIN(74, "GPIO_74"),
0162 PINCTRL_PIN(75, "GPIO_75"),
0163 PINCTRL_PIN(76, "GPIO_76"),
0164 PINCTRL_PIN(77, "GPIO_77"),
0165 PINCTRL_PIN(78, "GPIO_78"),
0166 PINCTRL_PIN(79, "GPIO_79"),
0167 PINCTRL_PIN(80, "GPIO_80"),
0168 PINCTRL_PIN(81, "GPIO_81"),
0169 PINCTRL_PIN(82, "GPIO_82"),
0170 PINCTRL_PIN(83, "GPIO_83"),
0171 PINCTRL_PIN(84, "GPIO_84"),
0172 PINCTRL_PIN(85, "GPIO_85"),
0173 PINCTRL_PIN(86, "GPIO_86"),
0174 PINCTRL_PIN(87, "GPIO_87"),
0175 PINCTRL_PIN(88, "GPIO_88"),
0176 PINCTRL_PIN(89, "GPIO_89"),
0177 PINCTRL_PIN(90, "GPIO_90"),
0178 PINCTRL_PIN(91, "GPIO_91"),
0179 PINCTRL_PIN(92, "GPIO_92"),
0180 PINCTRL_PIN(93, "GPIO_93"),
0181 PINCTRL_PIN(94, "GPIO_94"),
0182 PINCTRL_PIN(95, "GPIO_95"),
0183 PINCTRL_PIN(96, "GPIO_96"),
0184 PINCTRL_PIN(97, "GPIO_97"),
0185 PINCTRL_PIN(98, "GPIO_98"),
0186 PINCTRL_PIN(99, "GPIO_99"),
0187 PINCTRL_PIN(100, "GPIO_100"),
0188 PINCTRL_PIN(101, "GPIO_101"),
0189 PINCTRL_PIN(102, "GPIO_102"),
0190 PINCTRL_PIN(103, "GPIO_103"),
0191 PINCTRL_PIN(104, "GPIO_104"),
0192 PINCTRL_PIN(105, "GPIO_105"),
0193 PINCTRL_PIN(106, "GPIO_106"),
0194 PINCTRL_PIN(107, "GPIO_107"),
0195 PINCTRL_PIN(108, "SDC1_RCLK"),
0196 PINCTRL_PIN(109, "SDC1_CLK"),
0197 PINCTRL_PIN(110, "SDC1_CMD"),
0198 PINCTRL_PIN(111, "SDC1_DATA"),
0199 };
0200
0201 #define DECLARE_MSM_GPIO_PINS(pin) \
0202 static const unsigned int gpio##pin##_pins[] = { pin }
0203 DECLARE_MSM_GPIO_PINS(0);
0204 DECLARE_MSM_GPIO_PINS(1);
0205 DECLARE_MSM_GPIO_PINS(2);
0206 DECLARE_MSM_GPIO_PINS(3);
0207 DECLARE_MSM_GPIO_PINS(4);
0208 DECLARE_MSM_GPIO_PINS(5);
0209 DECLARE_MSM_GPIO_PINS(6);
0210 DECLARE_MSM_GPIO_PINS(7);
0211 DECLARE_MSM_GPIO_PINS(8);
0212 DECLARE_MSM_GPIO_PINS(9);
0213 DECLARE_MSM_GPIO_PINS(10);
0214 DECLARE_MSM_GPIO_PINS(11);
0215 DECLARE_MSM_GPIO_PINS(12);
0216 DECLARE_MSM_GPIO_PINS(13);
0217 DECLARE_MSM_GPIO_PINS(14);
0218 DECLARE_MSM_GPIO_PINS(15);
0219 DECLARE_MSM_GPIO_PINS(16);
0220 DECLARE_MSM_GPIO_PINS(17);
0221 DECLARE_MSM_GPIO_PINS(18);
0222 DECLARE_MSM_GPIO_PINS(19);
0223 DECLARE_MSM_GPIO_PINS(20);
0224 DECLARE_MSM_GPIO_PINS(21);
0225 DECLARE_MSM_GPIO_PINS(22);
0226 DECLARE_MSM_GPIO_PINS(23);
0227 DECLARE_MSM_GPIO_PINS(24);
0228 DECLARE_MSM_GPIO_PINS(25);
0229 DECLARE_MSM_GPIO_PINS(26);
0230 DECLARE_MSM_GPIO_PINS(27);
0231 DECLARE_MSM_GPIO_PINS(28);
0232 DECLARE_MSM_GPIO_PINS(29);
0233 DECLARE_MSM_GPIO_PINS(30);
0234 DECLARE_MSM_GPIO_PINS(31);
0235 DECLARE_MSM_GPIO_PINS(32);
0236 DECLARE_MSM_GPIO_PINS(33);
0237 DECLARE_MSM_GPIO_PINS(34);
0238 DECLARE_MSM_GPIO_PINS(35);
0239 DECLARE_MSM_GPIO_PINS(36);
0240 DECLARE_MSM_GPIO_PINS(37);
0241 DECLARE_MSM_GPIO_PINS(38);
0242 DECLARE_MSM_GPIO_PINS(39);
0243 DECLARE_MSM_GPIO_PINS(40);
0244 DECLARE_MSM_GPIO_PINS(41);
0245 DECLARE_MSM_GPIO_PINS(42);
0246 DECLARE_MSM_GPIO_PINS(43);
0247 DECLARE_MSM_GPIO_PINS(44);
0248 DECLARE_MSM_GPIO_PINS(45);
0249 DECLARE_MSM_GPIO_PINS(46);
0250 DECLARE_MSM_GPIO_PINS(47);
0251 DECLARE_MSM_GPIO_PINS(48);
0252 DECLARE_MSM_GPIO_PINS(49);
0253 DECLARE_MSM_GPIO_PINS(50);
0254 DECLARE_MSM_GPIO_PINS(51);
0255 DECLARE_MSM_GPIO_PINS(52);
0256 DECLARE_MSM_GPIO_PINS(53);
0257 DECLARE_MSM_GPIO_PINS(54);
0258 DECLARE_MSM_GPIO_PINS(55);
0259 DECLARE_MSM_GPIO_PINS(56);
0260 DECLARE_MSM_GPIO_PINS(57);
0261 DECLARE_MSM_GPIO_PINS(58);
0262 DECLARE_MSM_GPIO_PINS(59);
0263 DECLARE_MSM_GPIO_PINS(60);
0264 DECLARE_MSM_GPIO_PINS(61);
0265 DECLARE_MSM_GPIO_PINS(62);
0266 DECLARE_MSM_GPIO_PINS(63);
0267 DECLARE_MSM_GPIO_PINS(64);
0268 DECLARE_MSM_GPIO_PINS(65);
0269 DECLARE_MSM_GPIO_PINS(66);
0270 DECLARE_MSM_GPIO_PINS(67);
0271 DECLARE_MSM_GPIO_PINS(68);
0272 DECLARE_MSM_GPIO_PINS(69);
0273 DECLARE_MSM_GPIO_PINS(70);
0274 DECLARE_MSM_GPIO_PINS(71);
0275 DECLARE_MSM_GPIO_PINS(72);
0276 DECLARE_MSM_GPIO_PINS(73);
0277 DECLARE_MSM_GPIO_PINS(74);
0278 DECLARE_MSM_GPIO_PINS(75);
0279 DECLARE_MSM_GPIO_PINS(76);
0280 DECLARE_MSM_GPIO_PINS(77);
0281 DECLARE_MSM_GPIO_PINS(78);
0282 DECLARE_MSM_GPIO_PINS(79);
0283 DECLARE_MSM_GPIO_PINS(80);
0284 DECLARE_MSM_GPIO_PINS(81);
0285 DECLARE_MSM_GPIO_PINS(82);
0286 DECLARE_MSM_GPIO_PINS(83);
0287 DECLARE_MSM_GPIO_PINS(84);
0288 DECLARE_MSM_GPIO_PINS(85);
0289 DECLARE_MSM_GPIO_PINS(86);
0290 DECLARE_MSM_GPIO_PINS(87);
0291 DECLARE_MSM_GPIO_PINS(88);
0292 DECLARE_MSM_GPIO_PINS(89);
0293 DECLARE_MSM_GPIO_PINS(90);
0294 DECLARE_MSM_GPIO_PINS(91);
0295 DECLARE_MSM_GPIO_PINS(92);
0296 DECLARE_MSM_GPIO_PINS(93);
0297 DECLARE_MSM_GPIO_PINS(94);
0298 DECLARE_MSM_GPIO_PINS(95);
0299 DECLARE_MSM_GPIO_PINS(96);
0300 DECLARE_MSM_GPIO_PINS(97);
0301 DECLARE_MSM_GPIO_PINS(98);
0302 DECLARE_MSM_GPIO_PINS(99);
0303 DECLARE_MSM_GPIO_PINS(100);
0304 DECLARE_MSM_GPIO_PINS(101);
0305 DECLARE_MSM_GPIO_PINS(102);
0306 DECLARE_MSM_GPIO_PINS(103);
0307 DECLARE_MSM_GPIO_PINS(104);
0308 DECLARE_MSM_GPIO_PINS(105);
0309 DECLARE_MSM_GPIO_PINS(106);
0310 DECLARE_MSM_GPIO_PINS(107);
0311
0312 static const unsigned int sdc1_rclk_pins[] = { 108 };
0313 static const unsigned int sdc1_clk_pins[] = { 109 };
0314 static const unsigned int sdc1_cmd_pins[] = { 110 };
0315 static const unsigned int sdc1_data_pins[] = { 111 };
0316
0317 enum sdx55_functions {
0318 msm_mux_adsp_ext,
0319 msm_mux_atest,
0320 msm_mux_audio_ref,
0321 msm_mux_bimc_dte0,
0322 msm_mux_bimc_dte1,
0323 msm_mux_blsp_i2c1,
0324 msm_mux_blsp_i2c2,
0325 msm_mux_blsp_i2c3,
0326 msm_mux_blsp_i2c4,
0327 msm_mux_blsp_spi1,
0328 msm_mux_blsp_spi2,
0329 msm_mux_blsp_spi3,
0330 msm_mux_blsp_spi4,
0331 msm_mux_blsp_uart1,
0332 msm_mux_blsp_uart2,
0333 msm_mux_blsp_uart3,
0334 msm_mux_blsp_uart4,
0335 msm_mux_char_exec,
0336 msm_mux_coex_uart,
0337 msm_mux_coex_uart2,
0338 msm_mux_cri_trng,
0339 msm_mux_cri_trng0,
0340 msm_mux_cri_trng1,
0341 msm_mux_dbg_out,
0342 msm_mux_ddr_bist,
0343 msm_mux_ddr_pxi0,
0344 msm_mux_ebi0_wrcdc,
0345 msm_mux_ebi2_a,
0346 msm_mux_ebi2_lcd,
0347 msm_mux_emac_gcc0,
0348 msm_mux_emac_gcc1,
0349 msm_mux_emac_pps0,
0350 msm_mux_emac_pps1,
0351 msm_mux_ext_dbg,
0352 msm_mux_gcc_gp1,
0353 msm_mux_gcc_gp2,
0354 msm_mux_gcc_gp3,
0355 msm_mux_gcc_plltest,
0356 msm_mux_gpio,
0357 msm_mux_i2s_mclk,
0358 msm_mux_jitter_bist,
0359 msm_mux_ldo_en,
0360 msm_mux_ldo_update,
0361 msm_mux_mgpi_clk,
0362 msm_mux_m_voc,
0363 msm_mux_native_char,
0364 msm_mux_native_char0,
0365 msm_mux_native_char1,
0366 msm_mux_native_char2,
0367 msm_mux_native_char3,
0368 msm_mux_native_tsens,
0369 msm_mux_native_tsense,
0370 msm_mux_nav_gpio,
0371 msm_mux_pa_indicator,
0372 msm_mux_pcie_clkreq,
0373 msm_mux_pci_e,
0374 msm_mux_pll_bist,
0375 msm_mux_pll_ref,
0376 msm_mux_pll_test,
0377 msm_mux_pri_mi2s,
0378 msm_mux_prng_rosc,
0379 msm_mux_qdss_cti,
0380 msm_mux_qdss_gpio,
0381 msm_mux_qdss_stm,
0382 msm_mux_qlink0_en,
0383 msm_mux_qlink0_req,
0384 msm_mux_qlink0_wmss,
0385 msm_mux_qlink1_en,
0386 msm_mux_qlink1_req,
0387 msm_mux_qlink1_wmss,
0388 msm_mux_spmi_coex,
0389 msm_mux_sec_mi2s,
0390 msm_mux_spmi_vgi,
0391 msm_mux_tgu_ch0,
0392 msm_mux_uim1_clk,
0393 msm_mux_uim1_data,
0394 msm_mux_uim1_present,
0395 msm_mux_uim1_reset,
0396 msm_mux_uim2_clk,
0397 msm_mux_uim2_data,
0398 msm_mux_uim2_present,
0399 msm_mux_uim2_reset,
0400 msm_mux_usb2phy_ac,
0401 msm_mux_vsense_trigger,
0402 msm_mux__,
0403 };
0404
0405 static const char * const gpio_groups[] = {
0406 "gpio0", "gpio1", "gpio2", "gpio3", "gpio4", "gpio5", "gpio6", "gpio7",
0407 "gpio8", "gpio9", "gpio10", "gpio11", "gpio12", "gpio13", "gpio14",
0408 "gpio15", "gpio16", "gpio17", "gpio18", "gpio19", "gpio20", "gpio21",
0409 "gpio22", "gpio23", "gpio24", "gpio25", "gpio26", "gpio27", "gpio28",
0410 "gpio29", "gpio30", "gpio31", "gpio32", "gpio33", "gpio34", "gpio35",
0411 "gpio36", "gpio37", "gpio38", "gpio39", "gpio40", "gpio41", "gpio42",
0412 "gpio43", "gpio44", "gpio45", "gpio46", "gpio47", "gpio48", "gpio49",
0413 "gpio50", "gpio51", "gpio52", "gpio53", "gpio54", "gpio55", "gpio56",
0414 "gpio57", "gpio58", "gpio59", "gpio60", "gpio61", "gpio62", "gpio63",
0415 "gpio64", "gpio65", "gpio66", "gpio67", "gpio68", "gpio69", "gpio70",
0416 "gpio71", "gpio72", "gpio73", "gpio74", "gpio75", "gpio76", "gpio77",
0417 "gpio78", "gpio79", "gpio80", "gpio81", "gpio82", "gpio83", "gpio84",
0418 "gpio85", "gpio86", "gpio87", "gpio88", "gpio89", "gpio90", "gpio91",
0419 "gpio92", "gpio93", "gpio94", "gpio95", "gpio96", "gpio97", "gpio98",
0420 "gpio99", "gpio100", "gpio101", "gpio102", "gpio103", "gpio104",
0421 "gpio105", "gpio106", "gpio107",
0422 };
0423
0424 static const char * const qdss_stm_groups[] = {
0425 "gpio0", "gpio1", "gpio2", "gpio3", "gpio4", "gpio5", "gpio6", "gpio7", "gpio12", "gpio13",
0426 "gpio14", "gpio15", "gpio16", "gpio17", "gpio18", "gpio19", "gpio20", "gpio21", "gpio22",
0427 "gpio23", "gpio44", "gpio45", "gpio52", "gpio53", "gpio56", "gpio57", "gpio61", "gpio62",
0428 "gpio63", "gpio64", "gpio65", "gpio66",
0429 };
0430
0431 static const char * const ddr_pxi0_groups[] = {
0432 "gpio45", "gpio46",
0433 };
0434
0435 static const char * const m_voc_groups[] = {
0436 "gpio46", "gpio48", "gpio49", "gpio59", "gpio60",
0437 };
0438
0439 static const char * const ddr_bist_groups[] = {
0440 "gpio46", "gpio47", "gpio48", "gpio49",
0441 };
0442
0443 static const char * const blsp_spi1_groups[] = {
0444 "gpio52", "gpio62", "gpio71", "gpio80", "gpio81", "gpio82", "gpio83",
0445 };
0446
0447 static const char * const pci_e_groups[] = {
0448 "gpio53",
0449 };
0450
0451 static const char * const tgu_ch0_groups[] = {
0452 "gpio55",
0453 };
0454
0455 static const char * const pcie_clkreq_groups[] = {
0456 "gpio56",
0457 };
0458
0459 static const char * const mgpi_clk_groups[] = {
0460 "gpio61", "gpio71",
0461 };
0462
0463 static const char * const i2s_mclk_groups[] = {
0464 "gpio62",
0465 };
0466
0467 static const char * const audio_ref_groups[] = {
0468 "gpio62",
0469 };
0470
0471 static const char * const ldo_update_groups[] = {
0472 "gpio62",
0473 };
0474
0475 static const char * const atest_groups[] = {
0476 "gpio63", "gpio64", "gpio65", "gpio66", "gpio67",
0477 };
0478
0479 static const char * const uim1_data_groups[] = {
0480 "gpio67",
0481 };
0482
0483 static const char * const uim1_present_groups[] = {
0484 "gpio68",
0485 };
0486
0487 static const char * const uim1_reset_groups[] = {
0488 "gpio69",
0489 };
0490
0491 static const char * const uim1_clk_groups[] = {
0492 "gpio70",
0493 };
0494
0495 static const char * const qlink1_en_groups[] = {
0496 "gpio72",
0497 };
0498
0499 static const char * const qlink1_req_groups[] = {
0500 "gpio73",
0501 };
0502
0503 static const char * const qlink1_wmss_groups[] = {
0504 "gpio74",
0505 };
0506
0507 static const char * const coex_uart2_groups[] = {
0508 "gpio75", "gpio76",
0509 };
0510
0511 static const char * const spmi_vgi_groups[] = {
0512 "gpio78", "gpio79",
0513 };
0514
0515 static const char * const gcc_plltest_groups[] = {
0516 "gpio81", "gpio82",
0517 };
0518
0519 static const char * const usb2phy_ac_groups[] = {
0520 "gpio93",
0521 };
0522
0523 static const char * const emac_pps1_groups[] = {
0524 "gpio95",
0525 };
0526
0527 static const char * const emac_pps0_groups[] = {
0528 "gpio106",
0529 };
0530
0531 static const char * const uim2_data_groups[] = {
0532 "gpio0",
0533 };
0534
0535 static const char * const ebi0_wrcdc_groups[] = {
0536 "gpio0", "gpio2",
0537 };
0538
0539 static const char * const uim2_present_groups[] = {
0540 "gpio1",
0541 };
0542
0543 static const char * const blsp_uart1_groups[] = {
0544 "gpio0", "gpio1", "gpio2", "gpio3", "gpio20", "gpio21", "gpio22",
0545 "gpio23",
0546 };
0547
0548 static const char * const uim2_reset_groups[] = {
0549 "gpio2",
0550 };
0551
0552 static const char * const blsp_i2c1_groups[] = {
0553 "gpio2", "gpio3", "gpio82", "gpio83",
0554 };
0555
0556 static const char * const uim2_clk_groups[] = {
0557 "gpio3",
0558 };
0559
0560 static const char * const blsp_spi2_groups[] = {
0561 "gpio4", "gpio5", "gpio6", "gpio7", "gpio52", "gpio62", "gpio71",
0562 };
0563
0564 static const char * const blsp_uart2_groups[] = {
0565 "gpio4", "gpio5", "gpio6", "gpio7", "gpio63", "gpio64", "gpio65",
0566 "gpio66",
0567 };
0568
0569 static const char * const blsp_i2c2_groups[] = {
0570 "gpio6", "gpio7", "gpio65", "gpio66",
0571 };
0572
0573 static const char * const char_exec_groups[] = {
0574 "gpio6", "gpio7",
0575 };
0576
0577 static const char * const pri_mi2s_groups[] = {
0578 "gpio8", "gpio9", "gpio10", "gpio11", "gpio12", "gpio13", "gpio14",
0579 "gpio15",
0580 };
0581
0582 static const char * const blsp_spi3_groups[] = {
0583 "gpio8", "gpio9", "gpio10", "gpio11", "gpio52", "gpio62", "gpio71",
0584 };
0585
0586 static const char * const blsp_uart3_groups[] = {
0587 "gpio8", "gpio9", "gpio10", "gpio11",
0588 };
0589
0590 static const char * const ext_dbg_groups[] = {
0591 "gpio8", "gpio9", "gpio10", "gpio11",
0592 };
0593
0594 static const char * const ldo_en_groups[] = {
0595 "gpio8",
0596 };
0597
0598 static const char * const blsp_i2c3_groups[] = {
0599 "gpio10", "gpio11",
0600 };
0601
0602 static const char * const gcc_gp3_groups[] = {
0603 "gpio11",
0604 };
0605
0606 static const char * const emac_gcc1_groups[] = {
0607 "gpio14",
0608 };
0609
0610 static const char * const bimc_dte0_groups[] = {
0611 "gpio14", "gpio59",
0612 };
0613
0614 static const char * const native_tsens_groups[] = {
0615 "gpio14",
0616 };
0617
0618 static const char * const vsense_trigger_groups[] = {
0619 "gpio14",
0620 };
0621
0622 static const char * const emac_gcc0_groups[] = {
0623 "gpio15",
0624 };
0625
0626 static const char * const bimc_dte1_groups[] = {
0627 "gpio15", "gpio61",
0628 };
0629
0630 static const char * const sec_mi2s_groups[] = {
0631 "gpio16", "gpio17", "gpio18", "gpio19", "gpio20", "gpio21", "gpio22",
0632 "gpio23",
0633 };
0634
0635 static const char * const blsp_spi4_groups[] = {
0636 "gpio16", "gpio17", "gpio18", "gpio19", "gpio52", "gpio62", "gpio71",
0637 };
0638
0639 static const char * const blsp_uart4_groups[] = {
0640 "gpio16", "gpio17", "gpio18", "gpio19", "gpio20", "gpio21", "gpio22",
0641 "gpio23",
0642 };
0643
0644 static const char * const qdss_cti_groups[] = {
0645 "gpio16", "gpio16", "gpio17", "gpio17", "gpio22", "gpio22", "gpio23",
0646 "gpio23", "gpio54", "gpio54", "gpio55", "gpio55", "gpio59", "gpio60",
0647 "gpio94", "gpio94", "gpio95", "gpio95",
0648 };
0649
0650 static const char * const blsp_i2c4_groups[] = {
0651 "gpio18", "gpio19", "gpio78", "gpio79",
0652 };
0653
0654 static const char * const gcc_gp1_groups[] = {
0655 "gpio18",
0656 };
0657
0658 static const char * const jitter_bist_groups[] = {
0659 "gpio19",
0660 };
0661
0662 static const char * const gcc_gp2_groups[] = {
0663 "gpio19",
0664 };
0665
0666 static const char * const ebi2_a_groups[] = {
0667 "gpio20",
0668 };
0669
0670 static const char * const ebi2_lcd_groups[] = {
0671 "gpio21", "gpio22", "gpio23",
0672 };
0673
0674 static const char * const pll_bist_groups[] = {
0675 "gpio22",
0676 };
0677
0678 static const char * const adsp_ext_groups[] = {
0679 "gpio24", "gpio25",
0680 };
0681
0682 static const char * const native_char_groups[] = {
0683 "gpio26",
0684 };
0685
0686 static const char * const qlink0_wmss_groups[] = {
0687 "gpio28",
0688 };
0689
0690 static const char * const native_char3_groups[] = {
0691 "gpio28",
0692 };
0693
0694 static const char * const native_char2_groups[] = {
0695 "gpio29",
0696 };
0697
0698 static const char * const native_tsense_groups[] = {
0699 "gpio29",
0700 };
0701
0702 static const char * const nav_gpio_groups[] = {
0703 "gpio31", "gpio32", "gpio76",
0704 };
0705
0706 static const char * const pll_ref_groups[] = {
0707 "gpio32",
0708 };
0709
0710 static const char * const pa_indicator_groups[] = {
0711 "gpio33",
0712 };
0713
0714 static const char * const native_char0_groups[] = {
0715 "gpio33",
0716 };
0717
0718 static const char * const qlink0_en_groups[] = {
0719 "gpio34",
0720 };
0721
0722 static const char * const qlink0_req_groups[] = {
0723 "gpio35",
0724 };
0725
0726 static const char * const pll_test_groups[] = {
0727 "gpio35",
0728 };
0729
0730 static const char * const cri_trng_groups[] = {
0731 "gpio36",
0732 };
0733
0734 static const char * const dbg_out_groups[] = {
0735 "gpio36",
0736 };
0737
0738 static const char * const prng_rosc_groups[] = {
0739 "gpio38",
0740 };
0741
0742 static const char * const cri_trng0_groups[] = {
0743 "gpio40",
0744 };
0745
0746 static const char * const cri_trng1_groups[] = {
0747 "gpio41",
0748 };
0749
0750 static const char * const qdss_gpio_groups[] = {
0751 "gpio4", "gpio5", "gpio6", "gpio7",
0752 "gpio12", "gpio13", "gpio14", "gpio15", "gpio16", "gpio17", "gpio18", "gpio19",
0753 "gpio42", "gpio61", "gpio63", "gpio64", "gpio65", "gpio66",
0754 };
0755
0756 static const char * const native_char1_groups[] = {
0757 "gpio42",
0758 };
0759
0760 static const char * const coex_uart_groups[] = {
0761 "gpio44", "gpio45",
0762 };
0763
0764 static const char * const spmi_coex_groups[] = {
0765 "gpio44", "gpio45",
0766 };
0767
0768 static const struct msm_function sdx55_functions[] = {
0769 FUNCTION(adsp_ext),
0770 FUNCTION(atest),
0771 FUNCTION(audio_ref),
0772 FUNCTION(bimc_dte0),
0773 FUNCTION(bimc_dte1),
0774 FUNCTION(blsp_i2c1),
0775 FUNCTION(blsp_i2c2),
0776 FUNCTION(blsp_i2c3),
0777 FUNCTION(blsp_i2c4),
0778 FUNCTION(blsp_spi1),
0779 FUNCTION(blsp_spi2),
0780 FUNCTION(blsp_spi3),
0781 FUNCTION(blsp_spi4),
0782 FUNCTION(blsp_uart1),
0783 FUNCTION(blsp_uart2),
0784 FUNCTION(blsp_uart3),
0785 FUNCTION(blsp_uart4),
0786 FUNCTION(char_exec),
0787 FUNCTION(coex_uart),
0788 FUNCTION(coex_uart2),
0789 FUNCTION(cri_trng),
0790 FUNCTION(cri_trng0),
0791 FUNCTION(cri_trng1),
0792 FUNCTION(dbg_out),
0793 FUNCTION(ddr_bist),
0794 FUNCTION(ddr_pxi0),
0795 FUNCTION(ebi0_wrcdc),
0796 FUNCTION(ebi2_a),
0797 FUNCTION(ebi2_lcd),
0798 FUNCTION(emac_gcc0),
0799 FUNCTION(emac_gcc1),
0800 FUNCTION(emac_pps0),
0801 FUNCTION(emac_pps1),
0802 FUNCTION(ext_dbg),
0803 FUNCTION(gcc_gp1),
0804 FUNCTION(gcc_gp2),
0805 FUNCTION(gcc_gp3),
0806 FUNCTION(gcc_plltest),
0807 FUNCTION(gpio),
0808 FUNCTION(i2s_mclk),
0809 FUNCTION(jitter_bist),
0810 FUNCTION(ldo_en),
0811 FUNCTION(ldo_update),
0812 FUNCTION(mgpi_clk),
0813 FUNCTION(m_voc),
0814 FUNCTION(native_char),
0815 FUNCTION(native_char0),
0816 FUNCTION(native_char1),
0817 FUNCTION(native_char2),
0818 FUNCTION(native_char3),
0819 FUNCTION(native_tsens),
0820 FUNCTION(native_tsense),
0821 FUNCTION(nav_gpio),
0822 FUNCTION(pa_indicator),
0823 FUNCTION(pcie_clkreq),
0824 FUNCTION(pci_e),
0825 FUNCTION(pll_bist),
0826 FUNCTION(pll_ref),
0827 FUNCTION(pll_test),
0828 FUNCTION(pri_mi2s),
0829 FUNCTION(prng_rosc),
0830 FUNCTION(qdss_cti),
0831 FUNCTION(qdss_gpio),
0832 FUNCTION(qdss_stm),
0833 FUNCTION(qlink0_en),
0834 FUNCTION(qlink0_req),
0835 FUNCTION(qlink0_wmss),
0836 FUNCTION(qlink1_en),
0837 FUNCTION(qlink1_req),
0838 FUNCTION(qlink1_wmss),
0839 FUNCTION(spmi_coex),
0840 FUNCTION(sec_mi2s),
0841 FUNCTION(spmi_vgi),
0842 FUNCTION(tgu_ch0),
0843 FUNCTION(uim1_clk),
0844 FUNCTION(uim1_data),
0845 FUNCTION(uim1_present),
0846 FUNCTION(uim1_reset),
0847 FUNCTION(uim2_clk),
0848 FUNCTION(uim2_data),
0849 FUNCTION(uim2_present),
0850 FUNCTION(uim2_reset),
0851 FUNCTION(usb2phy_ac),
0852 FUNCTION(vsense_trigger),
0853 };
0854
0855
0856
0857
0858
0859
0860 static const struct msm_pingroup sdx55_groups[] = {
0861 [0] = PINGROUP(0, uim2_data, blsp_uart1, qdss_stm, ebi0_wrcdc, _, _, _, _, _),
0862 [1] = PINGROUP(1, uim2_present, blsp_uart1, qdss_stm, _, _, _, _, _, _),
0863 [2] = PINGROUP(2, uim2_reset, blsp_uart1, blsp_i2c1, qdss_stm, ebi0_wrcdc, _, _, _, _),
0864 [3] = PINGROUP(3, uim2_clk, blsp_uart1, blsp_i2c1, qdss_stm, _, _, _, _, _),
0865 [4] = PINGROUP(4, blsp_spi2, blsp_uart2, _, qdss_stm, qdss_gpio, _, _, _, _),
0866 [5] = PINGROUP(5, blsp_spi2, blsp_uart2, _, qdss_stm, qdss_gpio, _, _, _, _),
0867 [6] = PINGROUP(6, blsp_spi2, blsp_uart2, blsp_i2c2, char_exec, _, qdss_stm, qdss_gpio, _, _),
0868 [7] = PINGROUP(7, blsp_spi2, blsp_uart2, blsp_i2c2, char_exec, _, qdss_stm, qdss_gpio, _, _),
0869 [8] = PINGROUP(8, pri_mi2s, blsp_spi3, blsp_uart3, ext_dbg, ldo_en, _, _, _, _),
0870 [9] = PINGROUP(9, pri_mi2s, blsp_spi3, blsp_uart3, ext_dbg, _, _, _, _, _),
0871 [10] = PINGROUP(10, pri_mi2s, blsp_spi3, blsp_uart3, blsp_i2c3, ext_dbg, _, _, _, _),
0872 [11] = PINGROUP(11, pri_mi2s, blsp_spi3, blsp_uart3, blsp_i2c3, ext_dbg, gcc_gp3, _, _, _),
0873 [12] = PINGROUP(12, pri_mi2s, _, qdss_stm, qdss_gpio, _, _, _, _, _),
0874 [13] = PINGROUP(13, pri_mi2s, _, qdss_stm, qdss_gpio, _, _, _, _, _),
0875 [14] = PINGROUP(14, pri_mi2s, emac_gcc1, _, _, qdss_stm, qdss_gpio, bimc_dte0, native_tsens, vsense_trigger),
0876 [15] = PINGROUP(15, pri_mi2s, emac_gcc0, _, _, qdss_stm, qdss_gpio, bimc_dte1, _, _),
0877 [16] = PINGROUP(16, sec_mi2s, blsp_spi4, blsp_uart4, qdss_cti, qdss_cti, _, _, qdss_stm, qdss_gpio),
0878 [17] = PINGROUP(17, sec_mi2s, blsp_spi4, blsp_uart4, qdss_cti, qdss_cti, _, qdss_stm, qdss_gpio, _),
0879 [18] = PINGROUP(18, sec_mi2s, blsp_spi4, blsp_uart4, blsp_i2c4, gcc_gp1, qdss_stm, qdss_gpio, _, _),
0880 [19] = PINGROUP(19, sec_mi2s, blsp_spi4, blsp_uart4, blsp_i2c4, jitter_bist, gcc_gp2, _, qdss_stm, qdss_gpio),
0881 [20] = PINGROUP(20, sec_mi2s, ebi2_a, blsp_uart1, blsp_uart4, qdss_stm, _, _, _, _),
0882 [21] = PINGROUP(21, sec_mi2s, ebi2_lcd, blsp_uart1, blsp_uart4, _, qdss_stm, _, _, _),
0883 [22] = PINGROUP(22, sec_mi2s, ebi2_lcd, blsp_uart1, qdss_cti, qdss_cti, blsp_uart4, pll_bist, _, qdss_stm),
0884 [23] = PINGROUP(23, sec_mi2s, ebi2_lcd, qdss_cti, qdss_cti, blsp_uart1, blsp_uart4, qdss_stm, _, _),
0885 [24] = PINGROUP(24, adsp_ext, _, _, _, _, _, _, _, _),
0886 [25] = PINGROUP(25, adsp_ext, _, _, _, _, _, _, _, _),
0887 [26] = PINGROUP(26, _, _, _, native_char, _, _, _, _, _),
0888 [27] = PINGROUP(27, _, _, _, _, _, _, _, _, _),
0889 [28] = PINGROUP(28, qlink0_wmss, _, native_char3, _, _, _, _, _, _),
0890 [29] = PINGROUP(29, _, _, _, native_char2, native_tsense, _, _, _, _),
0891 [30] = PINGROUP(30, _, _, _, _, _, _, _, _, _),
0892 [31] = PINGROUP(31, nav_gpio, _, _, _, _, _, _, _, _),
0893 [32] = PINGROUP(32, nav_gpio, pll_ref, _, _, _, _, _, _, _),
0894 [33] = PINGROUP(33, _, pa_indicator, native_char0, _, _, _, _, _, _),
0895 [34] = PINGROUP(34, qlink0_en, _, _, _, _, _, _, _, _),
0896 [35] = PINGROUP(35, qlink0_req, pll_test, _, _, _, _, _, _, _),
0897 [36] = PINGROUP(36, _, _, cri_trng, dbg_out, _, _, _, _, _),
0898 [37] = PINGROUP(37, _, _, _, _, _, _, _, _, _),
0899 [38] = PINGROUP(38, _, _, prng_rosc, _, _, _, _, _, _),
0900 [39] = PINGROUP(39, _, _, _, _, _, _, _, _, _),
0901 [40] = PINGROUP(40, _, _, cri_trng0, _, _, _, _, _, _),
0902 [41] = PINGROUP(41, _, _, cri_trng1, _, _, _, _, _, _),
0903 [42] = PINGROUP(42, _, qdss_gpio, native_char1, _, _, _, _, _, _),
0904 [43] = PINGROUP(43, _, _, _, _, _, _, _, _, _),
0905 [44] = PINGROUP(44, coex_uart, spmi_coex, _, qdss_stm, _, _, _, _, _),
0906 [45] = PINGROUP(45, coex_uart, spmi_coex, qdss_stm, ddr_pxi0, _, _, _, _, _),
0907 [46] = PINGROUP(46, m_voc, ddr_bist, ddr_pxi0, _, _, _, _, _, _),
0908 [47] = PINGROUP(47, ddr_bist, _, _, _, _, _, _, _, _),
0909 [48] = PINGROUP(48, m_voc, ddr_bist, _, _, _, _, _, _, _),
0910 [49] = PINGROUP(49, m_voc, ddr_bist, _, _, _, _, _, _, _),
0911 [50] = PINGROUP(50, _, _, _, _, _, _, _, _, _),
0912 [51] = PINGROUP(51, _, _, _, _, _, _, _, _, _),
0913 [52] = PINGROUP(52, blsp_spi2, blsp_spi1, blsp_spi3, blsp_spi4, _, _, qdss_stm, _, _),
0914 [53] = PINGROUP(53, pci_e, _, _, qdss_stm, _, _, _, _, _),
0915 [54] = PINGROUP(54, qdss_cti, qdss_cti, _, _, _, _, _, _, _),
0916 [55] = PINGROUP(55, qdss_cti, qdss_cti, tgu_ch0, _, _, _, _, _, _),
0917 [56] = PINGROUP(56, pcie_clkreq, _, qdss_stm, _, _, _, _, _, _),
0918 [57] = PINGROUP(57, _, qdss_stm, _, _, _, _, _, _, _),
0919 [58] = PINGROUP(58, _, _, _, _, _, _, _, _, _),
0920 [59] = PINGROUP(59, qdss_cti, m_voc, bimc_dte0, _, _, _, _, _, _),
0921 [60] = PINGROUP(60, qdss_cti, _, m_voc, _, _, _, _, _, _),
0922 [61] = PINGROUP(61, mgpi_clk, qdss_stm, qdss_gpio, bimc_dte1, _, _, _, _, _),
0923 [62] = PINGROUP(62, i2s_mclk, audio_ref, blsp_spi1, blsp_spi2, blsp_spi3, blsp_spi4, ldo_update, qdss_stm, _),
0924 [63] = PINGROUP(63, blsp_uart2, _, qdss_stm, qdss_gpio, atest, _, _, _, _),
0925 [64] = PINGROUP(64, blsp_uart2, qdss_stm, qdss_gpio, atest, _, _, _, _, _),
0926 [65] = PINGROUP(65, blsp_uart2, blsp_i2c2, _, qdss_stm, qdss_gpio, atest, _, _, _),
0927 [66] = PINGROUP(66, blsp_uart2, blsp_i2c2, qdss_stm, qdss_gpio, atest, _, _, _, _),
0928 [67] = PINGROUP(67, uim1_data, atest, _, _, _, _, _, _, _),
0929 [68] = PINGROUP(68, uim1_present, _, _, _, _, _, _, _, _),
0930 [69] = PINGROUP(69, uim1_reset, _, _, _, _, _, _, _, _),
0931 [70] = PINGROUP(70, uim1_clk, _, _, _, _, _, _, _, _),
0932 [71] = PINGROUP(71, mgpi_clk, blsp_spi1, blsp_spi2, blsp_spi3, blsp_spi4, _, _, _, _),
0933 [72] = PINGROUP(72, qlink1_en, _, _, _, _, _, _, _, _),
0934 [73] = PINGROUP(73, qlink1_req, _, _, _, _, _, _, _, _),
0935 [74] = PINGROUP(74, qlink1_wmss, _, _, _, _, _, _, _, _),
0936 [75] = PINGROUP(75, coex_uart2, _, _, _, _, _, _, _, _),
0937 [76] = PINGROUP(76, coex_uart2, nav_gpio, _, _, _, _, _, _, _),
0938 [77] = PINGROUP(77, _, _, _, _, _, _, _, _, _),
0939 [78] = PINGROUP(78, spmi_vgi, blsp_i2c4, _, _, _, _, _, _, _),
0940 [79] = PINGROUP(79, spmi_vgi, blsp_i2c4, _, _, _, _, _, _, _),
0941 [80] = PINGROUP(80, _, blsp_spi1, _, _, _, _, _, _, _),
0942 [81] = PINGROUP(81, _, blsp_spi1, _, gcc_plltest, _, _, _, _, _),
0943 [82] = PINGROUP(82, _, blsp_spi1, _, blsp_i2c1, gcc_plltest, _, _, _, _),
0944 [83] = PINGROUP(83, _, blsp_spi1, _, blsp_i2c1, _, _, _, _, _),
0945 [84] = PINGROUP(84, _, _, _, _, _, _, _, _, _),
0946 [85] = PINGROUP(85, _, _, _, _, _, _, _, _, _),
0947 [86] = PINGROUP(86, _, _, _, _, _, _, _, _, _),
0948 [87] = PINGROUP(87, _, _, _, _, _, _, _, _, _),
0949 [88] = PINGROUP(88, _, _, _, _, _, _, _, _, _),
0950 [89] = PINGROUP(89, _, _, _, _, _, _, _, _, _),
0951 [90] = PINGROUP(90, _, _, _, _, _, _, _, _, _),
0952 [91] = PINGROUP(91, _, _, _, _, _, _, _, _, _),
0953 [92] = PINGROUP(92, _, _, _, _, _, _, _, _, _),
0954 [93] = PINGROUP(93, _, _, usb2phy_ac, _, _, _, _, _, _),
0955 [94] = PINGROUP(94, qdss_cti, qdss_cti, _, _, _, _, _, _, _),
0956 [95] = PINGROUP(95, qdss_cti, qdss_cti, emac_pps1, _, _, _, _, _, _),
0957 [96] = PINGROUP(96, _, _, _, _, _, _, _, _, _),
0958 [97] = PINGROUP(97, _, _, _, _, _, _, _, _, _),
0959 [98] = PINGROUP(98, _, _, _, _, _, _, _, _, _),
0960 [99] = PINGROUP(99, _, _, _, _, _, _, _, _, _),
0961 [100] = PINGROUP(100, _, _, _, _, _, _, _, _, _),
0962 [101] = PINGROUP(101, _, _, _, _, _, _, _, _, _),
0963 [102] = PINGROUP(102, _, _, _, _, _, _, _, _, _),
0964 [103] = PINGROUP(103, _, _, _, _, _, _, _, _, _),
0965 [104] = PINGROUP(104, _, _, _, _, _, _, _, _, _),
0966 [105] = PINGROUP(105, _, _, _, _, _, _, _, _, _),
0967 [106] = PINGROUP(106, emac_pps0, _, _, _, _, _, _, _, _),
0968 [107] = PINGROUP(107, _, _, _, _, _, _, _, _, _),
0969 [109] = SDC_PINGROUP(sdc1_rclk, 0x9a000, 15, 0),
0970 [110] = SDC_PINGROUP(sdc1_clk, 0x9a000, 13, 6),
0971 [111] = SDC_PINGROUP(sdc1_cmd, 0x9a000, 11, 3),
0972 [112] = SDC_PINGROUP(sdc1_data, 0x9a000, 9, 0),
0973 };
0974
0975 static const struct msm_pinctrl_soc_data sdx55_pinctrl = {
0976 .pins = sdx55_pins,
0977 .npins = ARRAY_SIZE(sdx55_pins),
0978 .functions = sdx55_functions,
0979 .nfunctions = ARRAY_SIZE(sdx55_functions),
0980 .groups = sdx55_groups,
0981 .ngroups = ARRAY_SIZE(sdx55_groups),
0982 .ngpios = 108,
0983 };
0984
0985 static int sdx55_pinctrl_probe(struct platform_device *pdev)
0986 {
0987 return msm_pinctrl_probe(pdev, &sdx55_pinctrl);
0988 }
0989
0990 static const struct of_device_id sdx55_pinctrl_of_match[] = {
0991 { .compatible = "qcom,sdx55-pinctrl", },
0992 { },
0993 };
0994
0995 static struct platform_driver sdx55_pinctrl_driver = {
0996 .driver = {
0997 .name = "sdx55-pinctrl",
0998 .of_match_table = sdx55_pinctrl_of_match,
0999 },
1000 .probe = sdx55_pinctrl_probe,
1001 .remove = msm_pinctrl_remove,
1002 };
1003
1004 static int __init sdx55_pinctrl_init(void)
1005 {
1006 return platform_driver_register(&sdx55_pinctrl_driver);
1007 }
1008 arch_initcall(sdx55_pinctrl_init);
1009
1010 static void __exit sdx55_pinctrl_exit(void)
1011 {
1012 platform_driver_unregister(&sdx55_pinctrl_driver);
1013 }
1014 module_exit(sdx55_pinctrl_exit);
1015
1016 MODULE_DESCRIPTION("QTI sdx55 pinctrl driver");
1017 MODULE_LICENSE("GPL v2");
1018 MODULE_DEVICE_TABLE(of, sdx55_pinctrl_of_match);