141353ae7SKonrad Dybcio // SPDX-License-Identifier: GPL-2.0-only
241353ae7SKonrad Dybcio /*
341353ae7SKonrad Dybcio  * Copyright (c) 2021, Konrad Dybcio <konrad.dybcio@somainline.org>
441353ae7SKonrad Dybcio  *
541353ae7SKonrad Dybcio  * based on pinctrl-msm8916.c
641353ae7SKonrad Dybcio  */
741353ae7SKonrad Dybcio 
841353ae7SKonrad Dybcio #include <linux/module.h>
941353ae7SKonrad Dybcio #include <linux/of.h>
1041353ae7SKonrad Dybcio #include <linux/platform_device.h>
1141353ae7SKonrad Dybcio 
1241353ae7SKonrad Dybcio #include "pinctrl-msm.h"
1341353ae7SKonrad Dybcio 
1441353ae7SKonrad Dybcio static const struct pinctrl_pin_desc mdm9607_pins[] = {
1541353ae7SKonrad Dybcio 	PINCTRL_PIN(0, "GPIO_0"),
1641353ae7SKonrad Dybcio 	PINCTRL_PIN(1, "GPIO_1"),
1741353ae7SKonrad Dybcio 	PINCTRL_PIN(2, "GPIO_2"),
1841353ae7SKonrad Dybcio 	PINCTRL_PIN(3, "GPIO_3"),
1941353ae7SKonrad Dybcio 	PINCTRL_PIN(4, "GPIO_4"),
2041353ae7SKonrad Dybcio 	PINCTRL_PIN(5, "GPIO_5"),
2141353ae7SKonrad Dybcio 	PINCTRL_PIN(6, "GPIO_6"),
2241353ae7SKonrad Dybcio 	PINCTRL_PIN(7, "GPIO_7"),
2341353ae7SKonrad Dybcio 	PINCTRL_PIN(8, "GPIO_8"),
2441353ae7SKonrad Dybcio 	PINCTRL_PIN(9, "GPIO_9"),
2541353ae7SKonrad Dybcio 	PINCTRL_PIN(10, "GPIO_10"),
2641353ae7SKonrad Dybcio 	PINCTRL_PIN(11, "GPIO_11"),
2741353ae7SKonrad Dybcio 	PINCTRL_PIN(12, "GPIO_12"),
2841353ae7SKonrad Dybcio 	PINCTRL_PIN(13, "GPIO_13"),
2941353ae7SKonrad Dybcio 	PINCTRL_PIN(14, "GPIO_14"),
3041353ae7SKonrad Dybcio 	PINCTRL_PIN(15, "GPIO_15"),
3141353ae7SKonrad Dybcio 	PINCTRL_PIN(16, "GPIO_16"),
3241353ae7SKonrad Dybcio 	PINCTRL_PIN(17, "GPIO_17"),
3341353ae7SKonrad Dybcio 	PINCTRL_PIN(18, "GPIO_18"),
3441353ae7SKonrad Dybcio 	PINCTRL_PIN(19, "GPIO_19"),
3541353ae7SKonrad Dybcio 	PINCTRL_PIN(20, "GPIO_20"),
3641353ae7SKonrad Dybcio 	PINCTRL_PIN(21, "GPIO_21"),
3741353ae7SKonrad Dybcio 	PINCTRL_PIN(22, "GPIO_22"),
3841353ae7SKonrad Dybcio 	PINCTRL_PIN(23, "GPIO_23"),
3941353ae7SKonrad Dybcio 	PINCTRL_PIN(24, "GPIO_24"),
4041353ae7SKonrad Dybcio 	PINCTRL_PIN(25, "GPIO_25"),
4141353ae7SKonrad Dybcio 	PINCTRL_PIN(26, "GPIO_26"),
4241353ae7SKonrad Dybcio 	PINCTRL_PIN(27, "GPIO_27"),
4341353ae7SKonrad Dybcio 	PINCTRL_PIN(28, "GPIO_28"),
4441353ae7SKonrad Dybcio 	PINCTRL_PIN(29, "GPIO_29"),
4541353ae7SKonrad Dybcio 	PINCTRL_PIN(30, "GPIO_30"),
4641353ae7SKonrad Dybcio 	PINCTRL_PIN(31, "GPIO_31"),
4741353ae7SKonrad Dybcio 	PINCTRL_PIN(32, "GPIO_32"),
4841353ae7SKonrad Dybcio 	PINCTRL_PIN(33, "GPIO_33"),
4941353ae7SKonrad Dybcio 	PINCTRL_PIN(34, "GPIO_34"),
5041353ae7SKonrad Dybcio 	PINCTRL_PIN(35, "GPIO_35"),
5141353ae7SKonrad Dybcio 	PINCTRL_PIN(36, "GPIO_36"),
5241353ae7SKonrad Dybcio 	PINCTRL_PIN(37, "GPIO_37"),
5341353ae7SKonrad Dybcio 	PINCTRL_PIN(38, "GPIO_38"),
5441353ae7SKonrad Dybcio 	PINCTRL_PIN(39, "GPIO_39"),
5541353ae7SKonrad Dybcio 	PINCTRL_PIN(40, "GPIO_40"),
5641353ae7SKonrad Dybcio 	PINCTRL_PIN(41, "GPIO_41"),
5741353ae7SKonrad Dybcio 	PINCTRL_PIN(42, "GPIO_42"),
5841353ae7SKonrad Dybcio 	PINCTRL_PIN(43, "GPIO_43"),
5941353ae7SKonrad Dybcio 	PINCTRL_PIN(44, "GPIO_44"),
6041353ae7SKonrad Dybcio 	PINCTRL_PIN(45, "GPIO_45"),
6141353ae7SKonrad Dybcio 	PINCTRL_PIN(46, "GPIO_46"),
6241353ae7SKonrad Dybcio 	PINCTRL_PIN(47, "GPIO_47"),
6341353ae7SKonrad Dybcio 	PINCTRL_PIN(48, "GPIO_48"),
6441353ae7SKonrad Dybcio 	PINCTRL_PIN(49, "GPIO_49"),
6541353ae7SKonrad Dybcio 	PINCTRL_PIN(50, "GPIO_50"),
6641353ae7SKonrad Dybcio 	PINCTRL_PIN(51, "GPIO_51"),
6741353ae7SKonrad Dybcio 	PINCTRL_PIN(52, "GPIO_52"),
6841353ae7SKonrad Dybcio 	PINCTRL_PIN(53, "GPIO_53"),
6941353ae7SKonrad Dybcio 	PINCTRL_PIN(54, "GPIO_54"),
7041353ae7SKonrad Dybcio 	PINCTRL_PIN(55, "GPIO_55"),
7141353ae7SKonrad Dybcio 	PINCTRL_PIN(56, "GPIO_56"),
7241353ae7SKonrad Dybcio 	PINCTRL_PIN(57, "GPIO_57"),
7341353ae7SKonrad Dybcio 	PINCTRL_PIN(58, "GPIO_58"),
7441353ae7SKonrad Dybcio 	PINCTRL_PIN(59, "GPIO_59"),
7541353ae7SKonrad Dybcio 	PINCTRL_PIN(60, "GPIO_60"),
7641353ae7SKonrad Dybcio 	PINCTRL_PIN(61, "GPIO_61"),
7741353ae7SKonrad Dybcio 	PINCTRL_PIN(62, "GPIO_62"),
7841353ae7SKonrad Dybcio 	PINCTRL_PIN(63, "GPIO_63"),
7941353ae7SKonrad Dybcio 	PINCTRL_PIN(64, "GPIO_64"),
8041353ae7SKonrad Dybcio 	PINCTRL_PIN(65, "GPIO_65"),
8141353ae7SKonrad Dybcio 	PINCTRL_PIN(66, "GPIO_66"),
8241353ae7SKonrad Dybcio 	PINCTRL_PIN(67, "GPIO_67"),
8341353ae7SKonrad Dybcio 	PINCTRL_PIN(68, "GPIO_68"),
8441353ae7SKonrad Dybcio 	PINCTRL_PIN(69, "GPIO_69"),
8541353ae7SKonrad Dybcio 	PINCTRL_PIN(70, "GPIO_70"),
8641353ae7SKonrad Dybcio 	PINCTRL_PIN(71, "GPIO_71"),
8741353ae7SKonrad Dybcio 	PINCTRL_PIN(72, "GPIO_72"),
8841353ae7SKonrad Dybcio 	PINCTRL_PIN(73, "GPIO_73"),
8941353ae7SKonrad Dybcio 	PINCTRL_PIN(74, "GPIO_74"),
9041353ae7SKonrad Dybcio 	PINCTRL_PIN(75, "GPIO_75"),
9141353ae7SKonrad Dybcio 	PINCTRL_PIN(76, "GPIO_76"),
9241353ae7SKonrad Dybcio 	PINCTRL_PIN(77, "GPIO_77"),
9341353ae7SKonrad Dybcio 	PINCTRL_PIN(78, "GPIO_78"),
9441353ae7SKonrad Dybcio 	PINCTRL_PIN(79, "GPIO_79"),
9541353ae7SKonrad Dybcio 	PINCTRL_PIN(80, "SDC1_CLK"),
9641353ae7SKonrad Dybcio 	PINCTRL_PIN(81, "SDC1_CMD"),
9741353ae7SKonrad Dybcio 	PINCTRL_PIN(82, "SDC1_DATA"),
9841353ae7SKonrad Dybcio 	PINCTRL_PIN(83, "SDC2_CLK"),
9941353ae7SKonrad Dybcio 	PINCTRL_PIN(84, "SDC2_CMD"),
10041353ae7SKonrad Dybcio 	PINCTRL_PIN(85, "SDC2_DATA"),
10141353ae7SKonrad Dybcio 	PINCTRL_PIN(86, "QDSD_CLK"),
10241353ae7SKonrad Dybcio 	PINCTRL_PIN(87, "QDSD_CMD"),
10341353ae7SKonrad Dybcio 	PINCTRL_PIN(88, "QDSD_DATA0"),
10441353ae7SKonrad Dybcio 	PINCTRL_PIN(89, "QDSD_DATA1"),
10541353ae7SKonrad Dybcio 	PINCTRL_PIN(90, "QDSD_DATA2"),
10641353ae7SKonrad Dybcio 	PINCTRL_PIN(91, "QDSD_DATA3"),
10741353ae7SKonrad Dybcio };
10841353ae7SKonrad Dybcio 
10941353ae7SKonrad Dybcio #define DECLARE_MSM_GPIO_PINS(pin)	\
11041353ae7SKonrad Dybcio 	static const unsigned int gpio##pin##_pins[] = { pin }
11141353ae7SKonrad Dybcio 
11241353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(0);
11341353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(1);
11441353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(2);
11541353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(3);
11641353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(4);
11741353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(5);
11841353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(6);
11941353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(7);
12041353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(8);
12141353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(9);
12241353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(10);
12341353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(11);
12441353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(12);
12541353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(13);
12641353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(14);
12741353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(15);
12841353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(16);
12941353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(17);
13041353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(18);
13141353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(19);
13241353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(20);
13341353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(21);
13441353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(22);
13541353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(23);
13641353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(24);
13741353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(25);
13841353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(26);
13941353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(27);
14041353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(28);
14141353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(29);
14241353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(30);
14341353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(31);
14441353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(32);
14541353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(33);
14641353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(34);
14741353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(35);
14841353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(36);
14941353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(37);
15041353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(38);
15141353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(39);
15241353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(40);
15341353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(41);
15441353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(42);
15541353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(43);
15641353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(44);
15741353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(45);
15841353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(46);
15941353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(47);
16041353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(48);
16141353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(49);
16241353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(50);
16341353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(51);
16441353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(52);
16541353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(53);
16641353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(54);
16741353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(55);
16841353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(56);
16941353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(57);
17041353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(58);
17141353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(59);
17241353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(60);
17341353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(61);
17441353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(62);
17541353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(63);
17641353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(64);
17741353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(65);
17841353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(66);
17941353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(67);
18041353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(68);
18141353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(69);
18241353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(70);
18341353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(71);
18441353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(72);
18541353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(73);
18641353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(74);
18741353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(75);
18841353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(76);
18941353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(77);
19041353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(78);
19141353ae7SKonrad Dybcio DECLARE_MSM_GPIO_PINS(79);
19241353ae7SKonrad Dybcio 
19341353ae7SKonrad Dybcio static const unsigned int sdc1_clk_pins[] = { 80 };
19441353ae7SKonrad Dybcio static const unsigned int sdc1_cmd_pins[] = { 81 };
19541353ae7SKonrad Dybcio static const unsigned int sdc1_data_pins[] = { 82 };
19641353ae7SKonrad Dybcio static const unsigned int sdc2_clk_pins[] = { 83 };
19741353ae7SKonrad Dybcio static const unsigned int sdc2_cmd_pins[] = { 84 };
19841353ae7SKonrad Dybcio static const unsigned int sdc2_data_pins[] = { 85 };
19941353ae7SKonrad Dybcio static const unsigned int qdsd_clk_pins[] = { 86 };
20041353ae7SKonrad Dybcio static const unsigned int qdsd_cmd_pins[] = { 87 };
20141353ae7SKonrad Dybcio static const unsigned int qdsd_data0_pins[] = { 88 };
20241353ae7SKonrad Dybcio static const unsigned int qdsd_data1_pins[] = { 89 };
20341353ae7SKonrad Dybcio static const unsigned int qdsd_data2_pins[] = { 90 };
20441353ae7SKonrad Dybcio static const unsigned int qdsd_data3_pins[] = { 91 };
20541353ae7SKonrad Dybcio 
20641353ae7SKonrad Dybcio #define PINGROUP(id, f1, f2, f3, f4, f5, f6, f7, f8, f9)	\
20741353ae7SKonrad Dybcio 	{							\
2086a16d1a5SRohit Agarwal 		.grp = PINCTRL_PINGROUP("gpio" #id, 	\
2096a16d1a5SRohit Agarwal 			gpio##id##_pins, 		\
2106a16d1a5SRohit Agarwal 			ARRAY_SIZE(gpio##id##_pins)),	\
21141353ae7SKonrad Dybcio 		.funcs = (int[]){				\
21241353ae7SKonrad Dybcio 			msm_mux_gpio,				\
21341353ae7SKonrad Dybcio 			msm_mux_##f1,				\
21441353ae7SKonrad Dybcio 			msm_mux_##f2,				\
21541353ae7SKonrad Dybcio 			msm_mux_##f3,				\
21641353ae7SKonrad Dybcio 			msm_mux_##f4,				\
21741353ae7SKonrad Dybcio 			msm_mux_##f5,				\
21841353ae7SKonrad Dybcio 			msm_mux_##f6,				\
21941353ae7SKonrad Dybcio 			msm_mux_##f7,				\
22041353ae7SKonrad Dybcio 			msm_mux_##f8,				\
22141353ae7SKonrad Dybcio 			msm_mux_##f9				\
22241353ae7SKonrad Dybcio 		},					\
22341353ae7SKonrad Dybcio 		.nfuncs = 10,				\
22441353ae7SKonrad Dybcio 		.ctl_reg = 0x1000 * id,		\
22541353ae7SKonrad Dybcio 		.io_reg = 0x4 + 0x1000 * id,			\
22641353ae7SKonrad Dybcio 		.intr_cfg_reg = 0x8 + 0x1000 * id,		\
22741353ae7SKonrad Dybcio 		.intr_status_reg = 0xc + 0x1000 * id,		\
22841353ae7SKonrad Dybcio 		.intr_target_reg = 0x8 + 0x1000 * id,		\
22941353ae7SKonrad Dybcio 		.mux_bit = 2,					\
23041353ae7SKonrad Dybcio 		.pull_bit = 0,					\
23141353ae7SKonrad Dybcio 		.drv_bit = 6,					\
23241353ae7SKonrad Dybcio 		.oe_bit = 9,					\
23341353ae7SKonrad Dybcio 		.in_bit = 0,					\
23441353ae7SKonrad Dybcio 		.out_bit = 1,					\
23541353ae7SKonrad Dybcio 		.intr_enable_bit = 0,				\
23641353ae7SKonrad Dybcio 		.intr_status_bit = 0,				\
23741353ae7SKonrad Dybcio 		.intr_target_bit = 5,				\
23841353ae7SKonrad Dybcio 		.intr_target_kpss_val = 4,			\
23941353ae7SKonrad Dybcio 		.intr_raw_status_bit = 4,			\
24041353ae7SKonrad Dybcio 		.intr_polarity_bit = 1,				\
24141353ae7SKonrad Dybcio 		.intr_detection_bit = 2,			\
24241353ae7SKonrad Dybcio 		.intr_detection_width = 2,			\
24341353ae7SKonrad Dybcio 	}
24441353ae7SKonrad Dybcio 
24541353ae7SKonrad Dybcio #define SDC_PINGROUP(pg_name, ctl, pull, drv)	\
24641353ae7SKonrad Dybcio 	{					        \
2476a16d1a5SRohit Agarwal 		.grp = PINCTRL_PINGROUP(#pg_name, 	\
2486a16d1a5SRohit Agarwal 			pg_name##_pins, 		\
2496a16d1a5SRohit Agarwal 			ARRAY_SIZE(pg_name##_pins)),	\
25041353ae7SKonrad Dybcio 		.ctl_reg = ctl,				\
25141353ae7SKonrad Dybcio 		.io_reg = 0,				\
25241353ae7SKonrad Dybcio 		.intr_cfg_reg = 0,			\
25341353ae7SKonrad Dybcio 		.intr_status_reg = 0,			\
25441353ae7SKonrad Dybcio 		.intr_target_reg = 0,			\
25541353ae7SKonrad Dybcio 		.mux_bit = -1,				\
25641353ae7SKonrad Dybcio 		.pull_bit = pull,			\
25741353ae7SKonrad Dybcio 		.drv_bit = drv,				\
25841353ae7SKonrad Dybcio 		.oe_bit = -1,				\
25941353ae7SKonrad Dybcio 		.in_bit = -1,				\
26041353ae7SKonrad Dybcio 		.out_bit = -1,				\
26141353ae7SKonrad Dybcio 		.intr_enable_bit = -1,			\
26241353ae7SKonrad Dybcio 		.intr_status_bit = -1,			\
26341353ae7SKonrad Dybcio 		.intr_target_bit = -1,			\
26441353ae7SKonrad Dybcio 		.intr_target_kpss_val = -1,		\
26541353ae7SKonrad Dybcio 		.intr_raw_status_bit = -1,		\
26641353ae7SKonrad Dybcio 		.intr_polarity_bit = -1,		\
26741353ae7SKonrad Dybcio 		.intr_detection_bit = -1,		\
26841353ae7SKonrad Dybcio 		.intr_detection_width = -1,		\
26941353ae7SKonrad Dybcio 	}
27041353ae7SKonrad Dybcio 
27141353ae7SKonrad Dybcio enum mdm9607_functions {
27241353ae7SKonrad Dybcio 	msm_mux_adsp_ext,
27341353ae7SKonrad Dybcio 	msm_mux_atest_bbrx0,
27441353ae7SKonrad Dybcio 	msm_mux_atest_bbrx1,
27541353ae7SKonrad Dybcio 	msm_mux_atest_char,
27641353ae7SKonrad Dybcio 	msm_mux_atest_char0,
27741353ae7SKonrad Dybcio 	msm_mux_atest_char1,
27841353ae7SKonrad Dybcio 	msm_mux_atest_char2,
27941353ae7SKonrad Dybcio 	msm_mux_atest_char3,
28041353ae7SKonrad Dybcio 	msm_mux_atest_combodac_to_gpio_native,
28141353ae7SKonrad Dybcio 	msm_mux_atest_gpsadc_dtest0_native,
28241353ae7SKonrad Dybcio 	msm_mux_atest_gpsadc_dtest1_native,
28341353ae7SKonrad Dybcio 	msm_mux_atest_tsens,
28441353ae7SKonrad Dybcio 	msm_mux_backlight_en_b,
28541353ae7SKonrad Dybcio 	msm_mux_bimc_dte0,
28641353ae7SKonrad Dybcio 	msm_mux_bimc_dte1,
28741353ae7SKonrad Dybcio 	msm_mux_blsp1_spi,
28841353ae7SKonrad Dybcio 	msm_mux_blsp2_spi,
28941353ae7SKonrad Dybcio 	msm_mux_blsp3_spi,
29041353ae7SKonrad Dybcio 	msm_mux_blsp_i2c1,
29141353ae7SKonrad Dybcio 	msm_mux_blsp_i2c2,
29241353ae7SKonrad Dybcio 	msm_mux_blsp_i2c3,
29341353ae7SKonrad Dybcio 	msm_mux_blsp_i2c4,
29441353ae7SKonrad Dybcio 	msm_mux_blsp_i2c5,
29541353ae7SKonrad Dybcio 	msm_mux_blsp_i2c6,
29641353ae7SKonrad Dybcio 	msm_mux_blsp_spi1,
29741353ae7SKonrad Dybcio 	msm_mux_blsp_spi2,
29841353ae7SKonrad Dybcio 	msm_mux_blsp_spi3,
29941353ae7SKonrad Dybcio 	msm_mux_blsp_spi4,
30041353ae7SKonrad Dybcio 	msm_mux_blsp_spi5,
30141353ae7SKonrad Dybcio 	msm_mux_blsp_spi6,
30241353ae7SKonrad Dybcio 	msm_mux_blsp_uart1,
30341353ae7SKonrad Dybcio 	msm_mux_blsp_uart2,
30441353ae7SKonrad Dybcio 	msm_mux_blsp_uart3,
30541353ae7SKonrad Dybcio 	msm_mux_blsp_uart4,
30641353ae7SKonrad Dybcio 	msm_mux_blsp_uart5,
30741353ae7SKonrad Dybcio 	msm_mux_blsp_uart6,
30841353ae7SKonrad Dybcio 	msm_mux_blsp_uim1,
30941353ae7SKonrad Dybcio 	msm_mux_blsp_uim2,
31041353ae7SKonrad Dybcio 	msm_mux_codec_int,
31141353ae7SKonrad Dybcio 	msm_mux_codec_rst,
31241353ae7SKonrad Dybcio 	msm_mux_coex_uart,
31341353ae7SKonrad Dybcio 	msm_mux_cri_trng,
31441353ae7SKonrad Dybcio 	msm_mux_cri_trng0,
31541353ae7SKonrad Dybcio 	msm_mux_cri_trng1,
31641353ae7SKonrad Dybcio 	msm_mux_dbg_out,
31741353ae7SKonrad Dybcio 	msm_mux_ebi0_wrcdc,
31841353ae7SKonrad Dybcio 	msm_mux_ebi2_a,
31941353ae7SKonrad Dybcio 	msm_mux_ebi2_a_d_8_b,
32041353ae7SKonrad Dybcio 	msm_mux_ebi2_lcd,
32141353ae7SKonrad Dybcio 	msm_mux_ebi2_lcd_cs_n_b,
32241353ae7SKonrad Dybcio 	msm_mux_ebi2_lcd_te_b,
32341353ae7SKonrad Dybcio 	msm_mux_eth_irq,
32441353ae7SKonrad Dybcio 	msm_mux_eth_rst,
32541353ae7SKonrad Dybcio 	msm_mux_gcc_gp1_clk_a,
32641353ae7SKonrad Dybcio 	msm_mux_gcc_gp1_clk_b,
32741353ae7SKonrad Dybcio 	msm_mux_gcc_gp2_clk_a,
32841353ae7SKonrad Dybcio 	msm_mux_gcc_gp2_clk_b,
32941353ae7SKonrad Dybcio 	msm_mux_gcc_gp3_clk_a,
33041353ae7SKonrad Dybcio 	msm_mux_gcc_gp3_clk_b,
33141353ae7SKonrad Dybcio 	msm_mux_gcc_plltest,
33241353ae7SKonrad Dybcio 	msm_mux_gcc_tlmm,
33341353ae7SKonrad Dybcio 	msm_mux_gmac_mdio,
33441353ae7SKonrad Dybcio 	msm_mux_gpio,
33541353ae7SKonrad Dybcio 	msm_mux_gsm0_tx,
33641353ae7SKonrad Dybcio 	msm_mux_lcd_rst,
33741353ae7SKonrad Dybcio 	msm_mux_ldo_en,
33841353ae7SKonrad Dybcio 	msm_mux_ldo_update,
33941353ae7SKonrad Dybcio 	msm_mux_m_voc,
34041353ae7SKonrad Dybcio 	msm_mux_modem_tsync,
34141353ae7SKonrad Dybcio 	msm_mux_nav_ptp_pps_in_a,
34241353ae7SKonrad Dybcio 	msm_mux_nav_ptp_pps_in_b,
34341353ae7SKonrad Dybcio 	msm_mux_nav_tsync_out_a,
34441353ae7SKonrad Dybcio 	msm_mux_nav_tsync_out_b,
34541353ae7SKonrad Dybcio 	msm_mux_pa_indicator,
34641353ae7SKonrad Dybcio 	msm_mux_pbs0,
34741353ae7SKonrad Dybcio 	msm_mux_pbs1,
34841353ae7SKonrad Dybcio 	msm_mux_pbs2,
34941353ae7SKonrad Dybcio 	msm_mux_pri_mi2s_data0_a,
35041353ae7SKonrad Dybcio 	msm_mux_pri_mi2s_data1_a,
35141353ae7SKonrad Dybcio 	msm_mux_pri_mi2s_mclk_a,
35241353ae7SKonrad Dybcio 	msm_mux_pri_mi2s_sck_a,
35341353ae7SKonrad Dybcio 	msm_mux_pri_mi2s_ws_a,
35441353ae7SKonrad Dybcio 	msm_mux_prng_rosc,
35541353ae7SKonrad Dybcio 	msm_mux_ptp_pps_out_a,
35641353ae7SKonrad Dybcio 	msm_mux_ptp_pps_out_b,
35741353ae7SKonrad Dybcio 	msm_mux_pwr_crypto_enabled_a,
35841353ae7SKonrad Dybcio 	msm_mux_pwr_crypto_enabled_b,
35941353ae7SKonrad Dybcio 	msm_mux_pwr_modem_enabled_a,
36041353ae7SKonrad Dybcio 	msm_mux_pwr_modem_enabled_b,
36141353ae7SKonrad Dybcio 	msm_mux_pwr_nav_enabled_a,
36241353ae7SKonrad Dybcio 	msm_mux_pwr_nav_enabled_b,
36341353ae7SKonrad Dybcio 	msm_mux_qdss_cti_trig_in_a0,
36441353ae7SKonrad Dybcio 	msm_mux_qdss_cti_trig_in_a1,
36541353ae7SKonrad Dybcio 	msm_mux_qdss_cti_trig_in_b0,
36641353ae7SKonrad Dybcio 	msm_mux_qdss_cti_trig_in_b1,
36741353ae7SKonrad Dybcio 	msm_mux_qdss_cti_trig_out_a0,
36841353ae7SKonrad Dybcio 	msm_mux_qdss_cti_trig_out_a1,
36941353ae7SKonrad Dybcio 	msm_mux_qdss_cti_trig_out_b0,
37041353ae7SKonrad Dybcio 	msm_mux_qdss_cti_trig_out_b1,
37141353ae7SKonrad Dybcio 	msm_mux_qdss_traceclk_a,
37241353ae7SKonrad Dybcio 	msm_mux_qdss_traceclk_b,
37341353ae7SKonrad Dybcio 	msm_mux_qdss_tracectl_a,
37441353ae7SKonrad Dybcio 	msm_mux_qdss_tracectl_b,
37541353ae7SKonrad Dybcio 	msm_mux_qdss_tracedata_a,
37641353ae7SKonrad Dybcio 	msm_mux_qdss_tracedata_b,
37741353ae7SKonrad Dybcio 	msm_mux_rcm_marker1,
37841353ae7SKonrad Dybcio 	msm_mux_rcm_marker2,
37941353ae7SKonrad Dybcio 	msm_mux_sd_write,
38041353ae7SKonrad Dybcio 	msm_mux_sec_mi2s,
38141353ae7SKonrad Dybcio 	msm_mux_sensor_en,
38241353ae7SKonrad Dybcio 	msm_mux_sensor_int2,
38341353ae7SKonrad Dybcio 	msm_mux_sensor_int3,
38441353ae7SKonrad Dybcio 	msm_mux_sensor_rst,
38541353ae7SKonrad Dybcio 	msm_mux_ssbi1,
38641353ae7SKonrad Dybcio 	msm_mux_ssbi2,
38741353ae7SKonrad Dybcio 	msm_mux_touch_rst,
38841353ae7SKonrad Dybcio 	msm_mux_ts_int,
38941353ae7SKonrad Dybcio 	msm_mux_uim1_clk,
39041353ae7SKonrad Dybcio 	msm_mux_uim1_data,
39141353ae7SKonrad Dybcio 	msm_mux_uim1_present,
39241353ae7SKonrad Dybcio 	msm_mux_uim1_reset,
39341353ae7SKonrad Dybcio 	msm_mux_uim2_clk,
39441353ae7SKonrad Dybcio 	msm_mux_uim2_data,
39541353ae7SKonrad Dybcio 	msm_mux_uim2_present,
39641353ae7SKonrad Dybcio 	msm_mux_uim2_reset,
39741353ae7SKonrad Dybcio 	msm_mux_uim_batt,
39841353ae7SKonrad Dybcio 	msm_mux_wlan_en1,
39941353ae7SKonrad Dybcio 	msm_mux__,
40041353ae7SKonrad Dybcio };
40141353ae7SKonrad Dybcio 
40241353ae7SKonrad Dybcio static const char * const gpio_groups[] = {
40341353ae7SKonrad Dybcio 	"gpio0", "gpio1", "gpio2", "gpio3", "gpio4", "gpio5", "gpio6", "gpio7",
40441353ae7SKonrad Dybcio 	"gpio8", "gpio9", "gpio10", "gpio11", "gpio12", "gpio13", "gpio14",
40541353ae7SKonrad Dybcio 	"gpio15", "gpio16", "gpio17", "gpio18", "gpio19", "gpio20", "gpio21",
40641353ae7SKonrad Dybcio 	"gpio22", "gpio23", "gpio24", "gpio25", "gpio26", "gpio27", "gpio28",
40741353ae7SKonrad Dybcio 	"gpio29", "gpio30", "gpio31", "gpio32", "gpio33", "gpio34", "gpio35",
40841353ae7SKonrad Dybcio 	"gpio36", "gpio37", "gpio38", "gpio39", "gpio40", "gpio41", "gpio42",
40941353ae7SKonrad Dybcio 	"gpio43", "gpio44", "gpio45", "gpio46", "gpio47", "gpio48", "gpio49",
41041353ae7SKonrad Dybcio 	"gpio50", "gpio51", "gpio52", "gpio53", "gpio54", "gpio55", "gpio56",
41141353ae7SKonrad Dybcio 	"gpio57", "gpio58", "gpio59", "gpio60", "gpio61", "gpio62", "gpio63",
41241353ae7SKonrad Dybcio 	"gpio64", "gpio65", "gpio66", "gpio67", "gpio68", "gpio69", "gpio70",
41341353ae7SKonrad Dybcio 	"gpio71", "gpio72", "gpio73", "gpio74", "gpio75", "gpio76", "gpio77",
41441353ae7SKonrad Dybcio 	"gpio78", "gpio79",
41541353ae7SKonrad Dybcio };
41641353ae7SKonrad Dybcio static const char * const blsp_spi3_groups[] = {
41741353ae7SKonrad Dybcio 	"gpio0", "gpio1", "gpio2", "gpio3",
41841353ae7SKonrad Dybcio };
41941353ae7SKonrad Dybcio static const char * const blsp_uart3_groups[] = {
42041353ae7SKonrad Dybcio 	"gpio0", "gpio1", "gpio2", "gpio3",
42141353ae7SKonrad Dybcio };
42241353ae7SKonrad Dybcio static const char * const qdss_tracedata_a_groups[] = {
42341353ae7SKonrad Dybcio 	"gpio0", "gpio1", "gpio4", "gpio5", "gpio20", "gpio21", "gpio22",
42441353ae7SKonrad Dybcio 	"gpio23", "gpio24", "gpio25", "gpio26", "gpio75", "gpio76", "gpio77",
42541353ae7SKonrad Dybcio 	"gpio78", "gpio79",
42641353ae7SKonrad Dybcio };
42741353ae7SKonrad Dybcio static const char * const bimc_dte1_groups[] = {
42841353ae7SKonrad Dybcio 	"gpio1", "gpio24",
42941353ae7SKonrad Dybcio };
43041353ae7SKonrad Dybcio static const char * const blsp_i2c3_groups[] = {
43141353ae7SKonrad Dybcio 	"gpio2", "gpio3",
43241353ae7SKonrad Dybcio };
43341353ae7SKonrad Dybcio static const char * const qdss_traceclk_a_groups[] = {
43441353ae7SKonrad Dybcio 	"gpio2",
43541353ae7SKonrad Dybcio };
43641353ae7SKonrad Dybcio static const char * const bimc_dte0_groups[] = {
43741353ae7SKonrad Dybcio 	"gpio2", "gpio15",
43841353ae7SKonrad Dybcio };
43941353ae7SKonrad Dybcio static const char * const qdss_cti_trig_in_a1_groups[] = {
44041353ae7SKonrad Dybcio 	"gpio3",
44141353ae7SKonrad Dybcio };
44241353ae7SKonrad Dybcio static const char * const blsp_spi2_groups[] = {
44341353ae7SKonrad Dybcio 	"gpio4", "gpio5", "gpio6", "gpio7",
44441353ae7SKonrad Dybcio };
44541353ae7SKonrad Dybcio static const char * const blsp_uart2_groups[] = {
44641353ae7SKonrad Dybcio 	"gpio4", "gpio5", "gpio6", "gpio7",
44741353ae7SKonrad Dybcio };
44841353ae7SKonrad Dybcio static const char * const blsp_uim2_groups[] = {
44941353ae7SKonrad Dybcio 	"gpio4", "gpio5",
45041353ae7SKonrad Dybcio };
45141353ae7SKonrad Dybcio static const char * const blsp_i2c2_groups[] = {
45241353ae7SKonrad Dybcio 	"gpio6", "gpio7",
45341353ae7SKonrad Dybcio };
45441353ae7SKonrad Dybcio static const char * const qdss_tracectl_a_groups[] = {
45541353ae7SKonrad Dybcio 	"gpio6",
45641353ae7SKonrad Dybcio };
45741353ae7SKonrad Dybcio static const char * const sensor_int2_groups[] = {
45841353ae7SKonrad Dybcio 	"gpio8",
45941353ae7SKonrad Dybcio };
46041353ae7SKonrad Dybcio static const char * const blsp_spi5_groups[] = {
46141353ae7SKonrad Dybcio 	"gpio8", "gpio9", "gpio10", "gpio11",
46241353ae7SKonrad Dybcio };
46341353ae7SKonrad Dybcio static const char * const blsp_uart5_groups[] = {
46441353ae7SKonrad Dybcio 	"gpio8", "gpio9", "gpio10", "gpio11",
46541353ae7SKonrad Dybcio };
46641353ae7SKonrad Dybcio static const char * const ebi2_lcd_groups[] = {
46741353ae7SKonrad Dybcio 	"gpio8", "gpio11", "gpio74", "gpio78",
46841353ae7SKonrad Dybcio };
46941353ae7SKonrad Dybcio static const char * const m_voc_groups[] = {
47041353ae7SKonrad Dybcio 	"gpio8", "gpio78",
47141353ae7SKonrad Dybcio };
47241353ae7SKonrad Dybcio static const char * const sensor_int3_groups[] = {
47341353ae7SKonrad Dybcio 	"gpio9",
47441353ae7SKonrad Dybcio };
47541353ae7SKonrad Dybcio static const char * const sensor_en_groups[] = {
47641353ae7SKonrad Dybcio 	"gpio10",
47741353ae7SKonrad Dybcio };
47841353ae7SKonrad Dybcio static const char * const blsp_i2c5_groups[] = {
47941353ae7SKonrad Dybcio 	"gpio10", "gpio11",
48041353ae7SKonrad Dybcio };
48141353ae7SKonrad Dybcio static const char * const ebi2_a_groups[] = {
48241353ae7SKonrad Dybcio 	"gpio10",
48341353ae7SKonrad Dybcio };
48441353ae7SKonrad Dybcio static const char * const qdss_tracedata_b_groups[] = {
48541353ae7SKonrad Dybcio 	"gpio10", "gpio39", "gpio40", "gpio41", "gpio42", "gpio43", "gpio46",
48641353ae7SKonrad Dybcio 	"gpio47", "gpio48", "gpio51", "gpio52", "gpio53", "gpio54", "gpio55",
48741353ae7SKonrad Dybcio 	"gpio58", "gpio59",
48841353ae7SKonrad Dybcio };
48941353ae7SKonrad Dybcio static const char * const sensor_rst_groups[] = {
49041353ae7SKonrad Dybcio 	"gpio11",
49141353ae7SKonrad Dybcio };
49241353ae7SKonrad Dybcio static const char * const blsp2_spi_groups[] = {
49341353ae7SKonrad Dybcio 	"gpio11", "gpio13", "gpio77",
49441353ae7SKonrad Dybcio };
49541353ae7SKonrad Dybcio static const char * const blsp_spi1_groups[] = {
49641353ae7SKonrad Dybcio 	"gpio12", "gpio13", "gpio14", "gpio15",
49741353ae7SKonrad Dybcio };
49841353ae7SKonrad Dybcio static const char * const blsp_uart1_groups[] = {
49941353ae7SKonrad Dybcio 	"gpio12", "gpio13", "gpio14", "gpio15",
50041353ae7SKonrad Dybcio };
50141353ae7SKonrad Dybcio static const char * const blsp_uim1_groups[] = {
50241353ae7SKonrad Dybcio 	"gpio12", "gpio13",
50341353ae7SKonrad Dybcio };
50441353ae7SKonrad Dybcio static const char * const blsp3_spi_groups[] = {
50541353ae7SKonrad Dybcio 	"gpio12", "gpio26", "gpio76",
50641353ae7SKonrad Dybcio };
50741353ae7SKonrad Dybcio static const char * const gcc_gp2_clk_b_groups[] = {
50841353ae7SKonrad Dybcio 	"gpio12",
50941353ae7SKonrad Dybcio };
51041353ae7SKonrad Dybcio static const char * const gcc_gp3_clk_b_groups[] = {
51141353ae7SKonrad Dybcio 	"gpio13",
51241353ae7SKonrad Dybcio };
51341353ae7SKonrad Dybcio static const char * const blsp_i2c1_groups[] = {
51441353ae7SKonrad Dybcio 	"gpio14", "gpio15",
51541353ae7SKonrad Dybcio };
51641353ae7SKonrad Dybcio static const char * const gcc_gp1_clk_b_groups[] = {
51741353ae7SKonrad Dybcio 	"gpio14",
51841353ae7SKonrad Dybcio };
51941353ae7SKonrad Dybcio static const char * const blsp_spi4_groups[] = {
52041353ae7SKonrad Dybcio 	"gpio16", "gpio17", "gpio18", "gpio19",
52141353ae7SKonrad Dybcio };
52241353ae7SKonrad Dybcio static const char * const blsp_uart4_groups[] = {
52341353ae7SKonrad Dybcio 	"gpio16", "gpio17", "gpio18", "gpio19",
52441353ae7SKonrad Dybcio };
52541353ae7SKonrad Dybcio static const char * const rcm_marker1_groups[] = {
52641353ae7SKonrad Dybcio 	"gpio18",
52741353ae7SKonrad Dybcio };
52841353ae7SKonrad Dybcio static const char * const blsp_i2c4_groups[] = {
52941353ae7SKonrad Dybcio 	"gpio18", "gpio19",
53041353ae7SKonrad Dybcio };
53141353ae7SKonrad Dybcio static const char * const qdss_cti_trig_out_a1_groups[] = {
53241353ae7SKonrad Dybcio 	"gpio18",
53341353ae7SKonrad Dybcio };
53441353ae7SKonrad Dybcio static const char * const rcm_marker2_groups[] = {
53541353ae7SKonrad Dybcio 	"gpio19",
53641353ae7SKonrad Dybcio };
53741353ae7SKonrad Dybcio static const char * const qdss_cti_trig_out_a0_groups[] = {
53841353ae7SKonrad Dybcio 	"gpio19",
53941353ae7SKonrad Dybcio };
54041353ae7SKonrad Dybcio static const char * const blsp_spi6_groups[] = {
54141353ae7SKonrad Dybcio 	"gpio20", "gpio21", "gpio22", "gpio23",
54241353ae7SKonrad Dybcio };
54341353ae7SKonrad Dybcio static const char * const blsp_uart6_groups[] = {
54441353ae7SKonrad Dybcio 	"gpio20", "gpio21", "gpio22", "gpio23",
54541353ae7SKonrad Dybcio };
54641353ae7SKonrad Dybcio static const char * const pri_mi2s_ws_a_groups[] = {
54741353ae7SKonrad Dybcio 	"gpio20",
54841353ae7SKonrad Dybcio };
54941353ae7SKonrad Dybcio static const char * const ebi2_lcd_te_b_groups[] = {
55041353ae7SKonrad Dybcio 	"gpio20",
55141353ae7SKonrad Dybcio };
55241353ae7SKonrad Dybcio static const char * const blsp1_spi_groups[] = {
55341353ae7SKonrad Dybcio 	"gpio20", "gpio21", "gpio78",
55441353ae7SKonrad Dybcio };
55541353ae7SKonrad Dybcio static const char * const backlight_en_b_groups[] = {
55641353ae7SKonrad Dybcio 	"gpio21",
55741353ae7SKonrad Dybcio };
55841353ae7SKonrad Dybcio static const char * const pri_mi2s_data0_a_groups[] = {
55941353ae7SKonrad Dybcio 	"gpio21",
56041353ae7SKonrad Dybcio };
56141353ae7SKonrad Dybcio static const char * const pri_mi2s_data1_a_groups[] = {
56241353ae7SKonrad Dybcio 	"gpio22",
56341353ae7SKonrad Dybcio };
56441353ae7SKonrad Dybcio static const char * const blsp_i2c6_groups[] = {
56541353ae7SKonrad Dybcio 	"gpio22", "gpio23",
56641353ae7SKonrad Dybcio };
56741353ae7SKonrad Dybcio static const char * const ebi2_a_d_8_b_groups[] = {
56841353ae7SKonrad Dybcio 	"gpio22",
56941353ae7SKonrad Dybcio };
57041353ae7SKonrad Dybcio static const char * const pri_mi2s_sck_a_groups[] = {
57141353ae7SKonrad Dybcio 	"gpio23",
57241353ae7SKonrad Dybcio };
57341353ae7SKonrad Dybcio static const char * const ebi2_lcd_cs_n_b_groups[] = {
57441353ae7SKonrad Dybcio 	"gpio23",
57541353ae7SKonrad Dybcio };
57641353ae7SKonrad Dybcio static const char * const touch_rst_groups[] = {
57741353ae7SKonrad Dybcio 	"gpio24",
57841353ae7SKonrad Dybcio };
57941353ae7SKonrad Dybcio static const char * const pri_mi2s_mclk_a_groups[] = {
58041353ae7SKonrad Dybcio 	"gpio24",
58141353ae7SKonrad Dybcio };
58241353ae7SKonrad Dybcio static const char * const pwr_nav_enabled_a_groups[] = {
58341353ae7SKonrad Dybcio 	"gpio24",
58441353ae7SKonrad Dybcio };
58541353ae7SKonrad Dybcio static const char * const ts_int_groups[] = {
58641353ae7SKonrad Dybcio 	"gpio25",
58741353ae7SKonrad Dybcio };
58841353ae7SKonrad Dybcio static const char * const sd_write_groups[] = {
58941353ae7SKonrad Dybcio 	"gpio25",
59041353ae7SKonrad Dybcio };
59141353ae7SKonrad Dybcio static const char * const pwr_crypto_enabled_a_groups[] = {
59241353ae7SKonrad Dybcio 	"gpio25",
59341353ae7SKonrad Dybcio };
59441353ae7SKonrad Dybcio static const char * const codec_rst_groups[] = {
59541353ae7SKonrad Dybcio 	"gpio26",
59641353ae7SKonrad Dybcio };
59741353ae7SKonrad Dybcio static const char * const adsp_ext_groups[] = {
59841353ae7SKonrad Dybcio 	"gpio26",
59941353ae7SKonrad Dybcio };
60041353ae7SKonrad Dybcio static const char * const atest_combodac_to_gpio_native_groups[] = {
60141353ae7SKonrad Dybcio 	"gpio26", "gpio27", "gpio28", "gpio29", "gpio30", "gpio31", "gpio32",
60241353ae7SKonrad Dybcio 	"gpio33", "gpio34", "gpio35", "gpio41", "gpio45", "gpio49", "gpio50",
60341353ae7SKonrad Dybcio 	"gpio51", "gpio52", "gpio54", "gpio55", "gpio57", "gpio59",
60441353ae7SKonrad Dybcio };
60541353ae7SKonrad Dybcio static const char * const uim2_data_groups[] = {
60641353ae7SKonrad Dybcio 	"gpio27",
60741353ae7SKonrad Dybcio };
60841353ae7SKonrad Dybcio static const char * const gmac_mdio_groups[] = {
60941353ae7SKonrad Dybcio 	"gpio27", "gpio28",
61041353ae7SKonrad Dybcio };
61141353ae7SKonrad Dybcio static const char * const gcc_gp1_clk_a_groups[] = {
61241353ae7SKonrad Dybcio 	"gpio27",
61341353ae7SKonrad Dybcio };
61441353ae7SKonrad Dybcio static const char * const uim2_clk_groups[] = {
61541353ae7SKonrad Dybcio 	"gpio28",
61641353ae7SKonrad Dybcio };
61741353ae7SKonrad Dybcio static const char * const gcc_gp2_clk_a_groups[] = {
61841353ae7SKonrad Dybcio 	"gpio28",
61941353ae7SKonrad Dybcio };
62041353ae7SKonrad Dybcio static const char * const eth_irq_groups[] = {
62141353ae7SKonrad Dybcio 	"gpio29",
62241353ae7SKonrad Dybcio };
62341353ae7SKonrad Dybcio static const char * const uim2_reset_groups[] = {
62441353ae7SKonrad Dybcio 	"gpio29",
62541353ae7SKonrad Dybcio };
62641353ae7SKonrad Dybcio static const char * const gcc_gp3_clk_a_groups[] = {
62741353ae7SKonrad Dybcio 	"gpio29",
62841353ae7SKonrad Dybcio };
62941353ae7SKonrad Dybcio static const char * const eth_rst_groups[] = {
63041353ae7SKonrad Dybcio 	"gpio30",
63141353ae7SKonrad Dybcio };
63241353ae7SKonrad Dybcio static const char * const uim2_present_groups[] = {
63341353ae7SKonrad Dybcio 	"gpio30",
63441353ae7SKonrad Dybcio };
63541353ae7SKonrad Dybcio static const char * const prng_rosc_groups[] = {
63641353ae7SKonrad Dybcio 	"gpio30",
63741353ae7SKonrad Dybcio };
63841353ae7SKonrad Dybcio static const char * const uim1_data_groups[] = {
63941353ae7SKonrad Dybcio 	"gpio31",
64041353ae7SKonrad Dybcio };
64141353ae7SKonrad Dybcio static const char * const uim1_clk_groups[] = {
64241353ae7SKonrad Dybcio 	"gpio32",
64341353ae7SKonrad Dybcio };
64441353ae7SKonrad Dybcio static const char * const uim1_reset_groups[] = {
64541353ae7SKonrad Dybcio 	"gpio33",
64641353ae7SKonrad Dybcio };
64741353ae7SKonrad Dybcio static const char * const uim1_present_groups[] = {
64841353ae7SKonrad Dybcio 	"gpio34",
64941353ae7SKonrad Dybcio };
65041353ae7SKonrad Dybcio static const char * const gcc_plltest_groups[] = {
65141353ae7SKonrad Dybcio 	"gpio34", "gpio35",
65241353ae7SKonrad Dybcio };
65341353ae7SKonrad Dybcio static const char * const uim_batt_groups[] = {
65441353ae7SKonrad Dybcio 	"gpio35",
65541353ae7SKonrad Dybcio };
65641353ae7SKonrad Dybcio static const char * const coex_uart_groups[] = {
65741353ae7SKonrad Dybcio 	"gpio36", "gpio37",
65841353ae7SKonrad Dybcio };
65941353ae7SKonrad Dybcio static const char * const codec_int_groups[] = {
66041353ae7SKonrad Dybcio 	"gpio38",
66141353ae7SKonrad Dybcio };
66241353ae7SKonrad Dybcio static const char * const qdss_cti_trig_in_a0_groups[] = {
66341353ae7SKonrad Dybcio 	"gpio38",
66441353ae7SKonrad Dybcio };
66541353ae7SKonrad Dybcio static const char * const atest_bbrx1_groups[] = {
66641353ae7SKonrad Dybcio 	"gpio39",
66741353ae7SKonrad Dybcio };
66841353ae7SKonrad Dybcio static const char * const cri_trng0_groups[] = {
66941353ae7SKonrad Dybcio 	"gpio40",
67041353ae7SKonrad Dybcio };
67141353ae7SKonrad Dybcio static const char * const atest_bbrx0_groups[] = {
67241353ae7SKonrad Dybcio 	"gpio40",
67341353ae7SKonrad Dybcio };
67441353ae7SKonrad Dybcio static const char * const cri_trng_groups[] = {
67541353ae7SKonrad Dybcio 	"gpio42",
67641353ae7SKonrad Dybcio };
67741353ae7SKonrad Dybcio static const char * const qdss_cti_trig_in_b0_groups[] = {
67841353ae7SKonrad Dybcio 	"gpio44",
67941353ae7SKonrad Dybcio };
68041353ae7SKonrad Dybcio static const char * const atest_gpsadc_dtest0_native_groups[] = {
68141353ae7SKonrad Dybcio 	"gpio44",
68241353ae7SKonrad Dybcio };
68341353ae7SKonrad Dybcio static const char * const qdss_cti_trig_out_b0_groups[] = {
68441353ae7SKonrad Dybcio 	"gpio45",
68541353ae7SKonrad Dybcio };
68641353ae7SKonrad Dybcio static const char * const qdss_tracectl_b_groups[] = {
68741353ae7SKonrad Dybcio 	"gpio49",
68841353ae7SKonrad Dybcio };
68941353ae7SKonrad Dybcio static const char * const qdss_traceclk_b_groups[] = {
69041353ae7SKonrad Dybcio 	"gpio50",
69141353ae7SKonrad Dybcio };
69241353ae7SKonrad Dybcio static const char * const pa_indicator_groups[] = {
69341353ae7SKonrad Dybcio 	"gpio51",
69441353ae7SKonrad Dybcio };
69541353ae7SKonrad Dybcio static const char * const modem_tsync_groups[] = {
69641353ae7SKonrad Dybcio 	"gpio53",
69741353ae7SKonrad Dybcio };
69841353ae7SKonrad Dybcio static const char * const nav_tsync_out_a_groups[] = {
69941353ae7SKonrad Dybcio 	"gpio53",
70041353ae7SKonrad Dybcio };
70141353ae7SKonrad Dybcio static const char * const nav_ptp_pps_in_a_groups[] = {
70241353ae7SKonrad Dybcio 	"gpio53",
70341353ae7SKonrad Dybcio };
70441353ae7SKonrad Dybcio static const char * const ptp_pps_out_a_groups[] = {
70541353ae7SKonrad Dybcio 	"gpio53",
70641353ae7SKonrad Dybcio };
70741353ae7SKonrad Dybcio static const char * const gsm0_tx_groups[] = {
70841353ae7SKonrad Dybcio 	"gpio55",
70941353ae7SKonrad Dybcio };
71041353ae7SKonrad Dybcio static const char * const qdss_cti_trig_in_b1_groups[] = {
71141353ae7SKonrad Dybcio 	"gpio56",
71241353ae7SKonrad Dybcio };
71341353ae7SKonrad Dybcio static const char * const cri_trng1_groups[] = {
71441353ae7SKonrad Dybcio 	"gpio57",
71541353ae7SKonrad Dybcio };
71641353ae7SKonrad Dybcio static const char * const qdss_cti_trig_out_b1_groups[] = {
71741353ae7SKonrad Dybcio 	"gpio57",
71841353ae7SKonrad Dybcio };
71941353ae7SKonrad Dybcio static const char * const ssbi1_groups[] = {
72041353ae7SKonrad Dybcio 	"gpio58",
72141353ae7SKonrad Dybcio };
72241353ae7SKonrad Dybcio static const char * const atest_gpsadc_dtest1_native_groups[] = {
72341353ae7SKonrad Dybcio 	"gpio58",
72441353ae7SKonrad Dybcio };
72541353ae7SKonrad Dybcio static const char * const ssbi2_groups[] = {
72641353ae7SKonrad Dybcio 	"gpio59",
72741353ae7SKonrad Dybcio };
72841353ae7SKonrad Dybcio static const char * const atest_char3_groups[] = {
72941353ae7SKonrad Dybcio 	"gpio60",
73041353ae7SKonrad Dybcio };
73141353ae7SKonrad Dybcio static const char * const atest_char2_groups[] = {
73241353ae7SKonrad Dybcio 	"gpio61",
73341353ae7SKonrad Dybcio };
73441353ae7SKonrad Dybcio static const char * const atest_char1_groups[] = {
73541353ae7SKonrad Dybcio 	"gpio62",
73641353ae7SKonrad Dybcio };
73741353ae7SKonrad Dybcio static const char * const atest_char0_groups[] = {
73841353ae7SKonrad Dybcio 	"gpio63",
73941353ae7SKonrad Dybcio };
74041353ae7SKonrad Dybcio static const char * const atest_char_groups[] = {
74141353ae7SKonrad Dybcio 	"gpio64",
74241353ae7SKonrad Dybcio };
74341353ae7SKonrad Dybcio static const char * const ebi0_wrcdc_groups[] = {
74441353ae7SKonrad Dybcio 	"gpio70",
74541353ae7SKonrad Dybcio };
74641353ae7SKonrad Dybcio static const char * const ldo_update_groups[] = {
74741353ae7SKonrad Dybcio 	"gpio72",
74841353ae7SKonrad Dybcio };
74941353ae7SKonrad Dybcio static const char * const gcc_tlmm_groups[] = {
75041353ae7SKonrad Dybcio 	"gpio72",
75141353ae7SKonrad Dybcio };
75241353ae7SKonrad Dybcio static const char * const ldo_en_groups[] = {
75341353ae7SKonrad Dybcio 	"gpio73",
75441353ae7SKonrad Dybcio };
75541353ae7SKonrad Dybcio static const char * const dbg_out_groups[] = {
75641353ae7SKonrad Dybcio 	"gpio73",
75741353ae7SKonrad Dybcio };
75841353ae7SKonrad Dybcio static const char * const atest_tsens_groups[] = {
75941353ae7SKonrad Dybcio 	"gpio73",
76041353ae7SKonrad Dybcio };
76141353ae7SKonrad Dybcio static const char * const lcd_rst_groups[] = {
76241353ae7SKonrad Dybcio 	"gpio74",
76341353ae7SKonrad Dybcio };
76441353ae7SKonrad Dybcio static const char * const wlan_en1_groups[] = {
76541353ae7SKonrad Dybcio 	"gpio75",
76641353ae7SKonrad Dybcio };
76741353ae7SKonrad Dybcio static const char * const nav_tsync_out_b_groups[] = {
76841353ae7SKonrad Dybcio 	"gpio75",
76941353ae7SKonrad Dybcio };
77041353ae7SKonrad Dybcio static const char * const nav_ptp_pps_in_b_groups[] = {
77141353ae7SKonrad Dybcio 	"gpio75",
77241353ae7SKonrad Dybcio };
77341353ae7SKonrad Dybcio static const char * const ptp_pps_out_b_groups[] = {
77441353ae7SKonrad Dybcio 	"gpio75",
77541353ae7SKonrad Dybcio };
77641353ae7SKonrad Dybcio static const char * const pbs0_groups[] = {
77741353ae7SKonrad Dybcio 	"gpio76",
77841353ae7SKonrad Dybcio };
77941353ae7SKonrad Dybcio static const char * const sec_mi2s_groups[] = {
78041353ae7SKonrad Dybcio 	"gpio76", "gpio77", "gpio78", "gpio79",
78141353ae7SKonrad Dybcio };
78241353ae7SKonrad Dybcio static const char * const pwr_modem_enabled_a_groups[] = {
78341353ae7SKonrad Dybcio 	"gpio76",
78441353ae7SKonrad Dybcio };
78541353ae7SKonrad Dybcio static const char * const pbs1_groups[] = {
78641353ae7SKonrad Dybcio 	"gpio77",
78741353ae7SKonrad Dybcio };
78841353ae7SKonrad Dybcio static const char * const pwr_modem_enabled_b_groups[] = {
78941353ae7SKonrad Dybcio 	"gpio77",
79041353ae7SKonrad Dybcio };
79141353ae7SKonrad Dybcio static const char * const pbs2_groups[] = {
79241353ae7SKonrad Dybcio 	"gpio78",
79341353ae7SKonrad Dybcio };
79441353ae7SKonrad Dybcio static const char * const pwr_nav_enabled_b_groups[] = {
79541353ae7SKonrad Dybcio 	"gpio78",
79641353ae7SKonrad Dybcio };
79741353ae7SKonrad Dybcio static const char * const pwr_crypto_enabled_b_groups[] = {
79841353ae7SKonrad Dybcio 	"gpio79",
79941353ae7SKonrad Dybcio };
80041353ae7SKonrad Dybcio 
801c7a291dbSRohit Agarwal static const struct pinfunction mdm9607_functions[] = {
802c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(adsp_ext),
803c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(atest_bbrx0),
804c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(atest_bbrx1),
805c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(atest_char),
806c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(atest_char0),
807c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(atest_char1),
808c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(atest_char2),
809c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(atest_char3),
810c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(atest_combodac_to_gpio_native),
811c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(atest_gpsadc_dtest0_native),
812c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(atest_gpsadc_dtest1_native),
813c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(atest_tsens),
814c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(backlight_en_b),
815c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(bimc_dte0),
816c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(bimc_dte1),
817c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp1_spi),
818c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp2_spi),
819c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp3_spi),
820c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp_i2c1),
821c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp_i2c2),
822c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp_i2c3),
823c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp_i2c4),
824c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp_i2c5),
825c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp_i2c6),
826c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp_spi1),
827c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp_spi2),
828c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp_spi3),
829c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp_spi4),
830c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp_spi5),
831c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp_spi6),
832c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp_uart1),
833c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp_uart2),
834c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp_uart3),
835c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp_uart4),
836c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp_uart5),
837c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp_uart6),
838c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp_uim1),
839c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(blsp_uim2),
840c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(codec_int),
841c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(codec_rst),
842c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(coex_uart),
843c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(cri_trng),
844c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(cri_trng0),
845c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(cri_trng1),
846c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(dbg_out),
847c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(ebi0_wrcdc),
848c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(ebi2_a),
849c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(ebi2_a_d_8_b),
850c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(ebi2_lcd),
851c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(ebi2_lcd_cs_n_b),
852c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(ebi2_lcd_te_b),
853c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(eth_irq),
854c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(eth_rst),
855c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(gcc_gp1_clk_a),
856c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(gcc_gp1_clk_b),
857c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(gcc_gp2_clk_a),
858c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(gcc_gp2_clk_b),
859c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(gcc_gp3_clk_a),
860c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(gcc_gp3_clk_b),
861c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(gcc_plltest),
862c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(gcc_tlmm),
863c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(gmac_mdio),
864c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(gpio),
865c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(gsm0_tx),
866c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(lcd_rst),
867c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(ldo_en),
868c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(ldo_update),
869c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(m_voc),
870c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(modem_tsync),
871c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(nav_ptp_pps_in_a),
872c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(nav_ptp_pps_in_b),
873c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(nav_tsync_out_a),
874c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(nav_tsync_out_b),
875c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pa_indicator),
876c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pbs0),
877c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pbs1),
878c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pbs2),
879c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pri_mi2s_data0_a),
880c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pri_mi2s_data1_a),
881c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pri_mi2s_mclk_a),
882c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pri_mi2s_sck_a),
883c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pri_mi2s_ws_a),
884c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(prng_rosc),
885c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(ptp_pps_out_a),
886c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(ptp_pps_out_b),
887c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pwr_crypto_enabled_a),
888c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pwr_crypto_enabled_b),
889c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pwr_modem_enabled_a),
890c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pwr_modem_enabled_b),
891c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pwr_nav_enabled_a),
892c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pwr_nav_enabled_b),
893c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qdss_cti_trig_in_a0),
894c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qdss_cti_trig_in_a1),
895c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qdss_cti_trig_in_b0),
896c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qdss_cti_trig_in_b1),
897c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qdss_cti_trig_out_a0),
898c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qdss_cti_trig_out_a1),
899c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qdss_cti_trig_out_b0),
900c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qdss_cti_trig_out_b1),
901c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qdss_traceclk_a),
902c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qdss_traceclk_b),
903c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qdss_tracectl_a),
904c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qdss_tracectl_b),
905c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qdss_tracedata_a),
906c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qdss_tracedata_b),
907c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(rcm_marker1),
908c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(rcm_marker2),
909c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(sd_write),
910c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(sec_mi2s),
911c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(sensor_en),
912c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(sensor_int2),
913c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(sensor_int3),
914c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(sensor_rst),
915c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(ssbi1),
916c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(ssbi2),
917c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(touch_rst),
918c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(ts_int),
919c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(uim1_clk),
920c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(uim1_data),
921c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(uim1_present),
922c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(uim1_reset),
923c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(uim2_clk),
924c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(uim2_data),
925c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(uim2_present),
926c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(uim2_reset),
927c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(uim_batt),
928c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(wlan_en1)
92941353ae7SKonrad Dybcio };
93041353ae7SKonrad Dybcio 
93141353ae7SKonrad Dybcio static const struct msm_pingroup mdm9607_groups[] = {
93241353ae7SKonrad Dybcio 	PINGROUP(0, blsp_uart3, blsp_spi3, _, _, _, _, _, qdss_tracedata_a, _),
93341353ae7SKonrad Dybcio 	PINGROUP(1, blsp_uart3, blsp_spi3, _, _, _, _, _, qdss_tracedata_a, bimc_dte1),
93441353ae7SKonrad Dybcio 	PINGROUP(2, blsp_uart3, blsp_i2c3, blsp_spi3, _, _, _, _, _, qdss_traceclk_a),
93541353ae7SKonrad Dybcio 	PINGROUP(3, blsp_uart3, blsp_i2c3, blsp_spi3, _, _, _, _, _, _),
93641353ae7SKonrad Dybcio 	PINGROUP(4, blsp_spi2, blsp_uart2, blsp_uim2, _, _, _, _, qdss_tracedata_a, _),
93741353ae7SKonrad Dybcio 	PINGROUP(5, blsp_spi2, blsp_uart2, blsp_uim2, _, _, _, _, qdss_tracedata_a, _),
93841353ae7SKonrad Dybcio 	PINGROUP(6, blsp_spi2, blsp_uart2, blsp_i2c2, _, _, _, _, _, _),
93941353ae7SKonrad Dybcio 	PINGROUP(7, blsp_spi2, blsp_uart2, blsp_i2c2, _, _, _, _, _, _),
94041353ae7SKonrad Dybcio 	PINGROUP(8, blsp_spi5, blsp_uart5, ebi2_lcd, m_voc, _, _, _, _, _),
94141353ae7SKonrad Dybcio 	PINGROUP(9, blsp_spi5, blsp_uart5, _, _, _, _, _, _, _),
94241353ae7SKonrad Dybcio 	PINGROUP(10, blsp_spi5, blsp_i2c5, blsp_uart5, ebi2_a, _, _, qdss_tracedata_b, _, _),
94341353ae7SKonrad Dybcio 	PINGROUP(11, blsp_spi5, blsp_i2c5, blsp_uart5, blsp2_spi, ebi2_lcd, _, _, _, _),
94441353ae7SKonrad Dybcio 	PINGROUP(12, blsp_spi1, blsp_uart1, blsp_uim1, blsp3_spi, gcc_gp2_clk_b, _, _, _, _),
94541353ae7SKonrad Dybcio 	PINGROUP(13, blsp_spi1, blsp_uart1, blsp_uim1, blsp2_spi, gcc_gp3_clk_b, _, _, _, _),
94641353ae7SKonrad Dybcio 	PINGROUP(14, blsp_spi1, blsp_uart1, blsp_i2c1, gcc_gp1_clk_b, _, _, _, _, _),
94741353ae7SKonrad Dybcio 	PINGROUP(15, blsp_spi1, blsp_uart1, blsp_i2c1, _, _, _, _, _, _),
94841353ae7SKonrad Dybcio 	PINGROUP(16, blsp_spi4, blsp_uart4, _, _, _, _, _, _, _),
94941353ae7SKonrad Dybcio 	PINGROUP(17, blsp_spi4, blsp_uart4, _, _, _, _, _, _, _),
95041353ae7SKonrad Dybcio 	PINGROUP(18, blsp_spi4, blsp_uart4, blsp_i2c4, _, _, _, _, _, _),
95141353ae7SKonrad Dybcio 	PINGROUP(19, blsp_spi4, blsp_uart4, blsp_i2c4, _, _, _, _, _, _),
95241353ae7SKonrad Dybcio 	PINGROUP(20, blsp_spi6, blsp_uart6, pri_mi2s_ws_a, ebi2_lcd_te_b, blsp1_spi, _, _, _,
95341353ae7SKonrad Dybcio 		 qdss_tracedata_a),
95441353ae7SKonrad Dybcio 	PINGROUP(21, blsp_spi6, blsp_uart6, pri_mi2s_data0_a, blsp1_spi, _, _, _, _, _),
95541353ae7SKonrad Dybcio 	PINGROUP(22, blsp_spi6, blsp_uart6, pri_mi2s_data1_a, blsp_i2c6, ebi2_a_d_8_b, _, _, _, _),
95641353ae7SKonrad Dybcio 	PINGROUP(23, blsp_spi6, blsp_uart6, pri_mi2s_sck_a, blsp_i2c6, ebi2_lcd_cs_n_b, _, _, _, _),
95741353ae7SKonrad Dybcio 	PINGROUP(24, pri_mi2s_mclk_a, _, pwr_nav_enabled_a, _, _, _, _, qdss_tracedata_a,
95841353ae7SKonrad Dybcio 		 bimc_dte1),
95941353ae7SKonrad Dybcio 	PINGROUP(25, sd_write, _, pwr_crypto_enabled_a, _, _, _, _, qdss_tracedata_a, _),
96041353ae7SKonrad Dybcio 	PINGROUP(26, blsp3_spi, adsp_ext, _, qdss_tracedata_a, _, atest_combodac_to_gpio_native, _,
96141353ae7SKonrad Dybcio 		 _, _),
96241353ae7SKonrad Dybcio 	PINGROUP(27, uim2_data, gmac_mdio, gcc_gp1_clk_a, _, _, atest_combodac_to_gpio_native, _, _,
96341353ae7SKonrad Dybcio 		 _),
96441353ae7SKonrad Dybcio 	PINGROUP(28, uim2_clk, gmac_mdio, gcc_gp2_clk_a, _, _, atest_combodac_to_gpio_native, _, _,
96541353ae7SKonrad Dybcio 		 _),
96641353ae7SKonrad Dybcio 	PINGROUP(29, uim2_reset, gcc_gp3_clk_a, _, _, atest_combodac_to_gpio_native, _, _, _, _),
96741353ae7SKonrad Dybcio 	PINGROUP(30, uim2_present, prng_rosc, _, _, atest_combodac_to_gpio_native, _, _, _, _),
96841353ae7SKonrad Dybcio 	PINGROUP(31, uim1_data, _, _, atest_combodac_to_gpio_native, _, _, _, _, _),
96941353ae7SKonrad Dybcio 	PINGROUP(32, uim1_clk, _, _, atest_combodac_to_gpio_native, _, _, _, _, _),
97041353ae7SKonrad Dybcio 	PINGROUP(33, uim1_reset, _, _, atest_combodac_to_gpio_native, _, _, _, _, _),
97141353ae7SKonrad Dybcio 	PINGROUP(34, uim1_present, gcc_plltest, _, _, atest_combodac_to_gpio_native, _, _, _, _),
97241353ae7SKonrad Dybcio 	PINGROUP(35, uim_batt, gcc_plltest, _, atest_combodac_to_gpio_native, _, _, _, _, _),
97341353ae7SKonrad Dybcio 	PINGROUP(36, coex_uart, _, _, _, _, _, _, _, _),
97441353ae7SKonrad Dybcio 	PINGROUP(37, coex_uart, _, _, _, _, _, _, _, _),
97541353ae7SKonrad Dybcio 	PINGROUP(38, _, _, _, qdss_cti_trig_in_a0, _, _, _, _, _),
97641353ae7SKonrad Dybcio 	PINGROUP(39, _, _, _, qdss_tracedata_b, _, atest_bbrx1, _, _, _),
97741353ae7SKonrad Dybcio 	PINGROUP(40, _, cri_trng0, _, _, _, _, qdss_tracedata_b, _, atest_bbrx0),
97841353ae7SKonrad Dybcio 	PINGROUP(41, _, _, _, _, _, qdss_tracedata_b, _, atest_combodac_to_gpio_native, _),
97941353ae7SKonrad Dybcio 	PINGROUP(42, _, cri_trng, _, _, qdss_tracedata_b, _, _, _, _),
98041353ae7SKonrad Dybcio 	PINGROUP(43, _, _, _, _, qdss_tracedata_b, _, _, _, _),
98141353ae7SKonrad Dybcio 	PINGROUP(44, _, _, qdss_cti_trig_in_b0, _, atest_gpsadc_dtest0_native, _, _, _, _),
98241353ae7SKonrad Dybcio 	PINGROUP(45, _, _, qdss_cti_trig_out_b0, _, atest_combodac_to_gpio_native, _, _, _, _),
98341353ae7SKonrad Dybcio 	PINGROUP(46, _, _, qdss_tracedata_b, _, _, _, _, _, _),
98441353ae7SKonrad Dybcio 	PINGROUP(47, _, _, qdss_tracedata_b, _, _, _, _, _, _),
98541353ae7SKonrad Dybcio 	PINGROUP(48, _, _, qdss_tracedata_b, _, _, _, _, _, _),
98641353ae7SKonrad Dybcio 	PINGROUP(49, _, _, qdss_tracectl_b, _, atest_combodac_to_gpio_native, _, _, _, _),
98741353ae7SKonrad Dybcio 	PINGROUP(50, _, _, qdss_traceclk_b, _, atest_combodac_to_gpio_native, _, _, _, _),
98841353ae7SKonrad Dybcio 	PINGROUP(51, _, pa_indicator, _, qdss_tracedata_b, _, atest_combodac_to_gpio_native, _, _,
98941353ae7SKonrad Dybcio 		 _),
99041353ae7SKonrad Dybcio 	PINGROUP(52, _, _, _, qdss_tracedata_b, _, atest_combodac_to_gpio_native, _, _, _),
99141353ae7SKonrad Dybcio 	PINGROUP(53, _, modem_tsync, nav_tsync_out_a, nav_ptp_pps_in_a, ptp_pps_out_a,
99241353ae7SKonrad Dybcio 		 qdss_tracedata_b, _, _, _),
99341353ae7SKonrad Dybcio 	PINGROUP(54, _, qdss_tracedata_b, _, atest_combodac_to_gpio_native, _, _, _, _, _),
99441353ae7SKonrad Dybcio 	PINGROUP(55, gsm0_tx, _, qdss_tracedata_b, _, atest_combodac_to_gpio_native, _, _, _, _),
99541353ae7SKonrad Dybcio 	PINGROUP(56, _, _, qdss_cti_trig_in_b1, _, _, _, _, _, _),
99641353ae7SKonrad Dybcio 	PINGROUP(57, _, cri_trng1, _, qdss_cti_trig_out_b1, _, atest_combodac_to_gpio_native, _, _,
99741353ae7SKonrad Dybcio 		 _),
99841353ae7SKonrad Dybcio 	PINGROUP(58, _, ssbi1, _, qdss_tracedata_b, _, atest_gpsadc_dtest1_native, _, _, _),
99941353ae7SKonrad Dybcio 	PINGROUP(59, _, ssbi2, _, qdss_tracedata_b, _, atest_combodac_to_gpio_native, _, _, _),
100041353ae7SKonrad Dybcio 	PINGROUP(60, atest_char3, _, _, _, _, _, _, _, _),
100141353ae7SKonrad Dybcio 	PINGROUP(61, atest_char2, _, _, _, _, _, _, _, _),
100241353ae7SKonrad Dybcio 	PINGROUP(62, atest_char1, _, _, _, _, _, _, _, _),
100341353ae7SKonrad Dybcio 	PINGROUP(63, atest_char0, _, _, _, _, _, _, _, _),
100441353ae7SKonrad Dybcio 	PINGROUP(64, atest_char, _, _, _, _, _, _, _, _),
100541353ae7SKonrad Dybcio 	PINGROUP(65, _, _, _, _, _, _, _, _, _),
100641353ae7SKonrad Dybcio 	PINGROUP(66, _, _, _, _, _, _, _, _, _),
100741353ae7SKonrad Dybcio 	PINGROUP(67, _, _, _, _, _, _, _, _, _),
100841353ae7SKonrad Dybcio 	PINGROUP(68, _, _, _, _, _, _, _, _, _),
100941353ae7SKonrad Dybcio 	PINGROUP(69, _, _, _, _, _, _, _, _, _),
101041353ae7SKonrad Dybcio 	PINGROUP(70, _, _, ebi0_wrcdc, _, _, _, _, _, _),
101141353ae7SKonrad Dybcio 	PINGROUP(71, _, _, _, _, _, _, _, _, _),
101241353ae7SKonrad Dybcio 	PINGROUP(72, ldo_update, _, gcc_tlmm, _, _, _, _, _, _),
101341353ae7SKonrad Dybcio 	PINGROUP(73, ldo_en, dbg_out, _, _, _, atest_tsens, _, _, _),
101441353ae7SKonrad Dybcio 	PINGROUP(74, ebi2_lcd, _, _, _, _, _, _, _, _),
101541353ae7SKonrad Dybcio 	PINGROUP(75, nav_tsync_out_b, nav_ptp_pps_in_b, ptp_pps_out_b, _, qdss_tracedata_a, _, _, _,
101641353ae7SKonrad Dybcio 		 _),
101741353ae7SKonrad Dybcio 	PINGROUP(76, pbs0, sec_mi2s, blsp3_spi, pwr_modem_enabled_a, _, qdss_tracedata_a, _, _, _),
101841353ae7SKonrad Dybcio 	PINGROUP(77, pbs1, sec_mi2s, blsp2_spi, pwr_modem_enabled_b, _, qdss_tracedata_a, _, _, _),
101941353ae7SKonrad Dybcio 	PINGROUP(78, pbs2, sec_mi2s, blsp1_spi, ebi2_lcd, m_voc, pwr_nav_enabled_b, _,
102041353ae7SKonrad Dybcio 		 qdss_tracedata_a, _),
102141353ae7SKonrad Dybcio 	PINGROUP(79, sec_mi2s, _, pwr_crypto_enabled_b, _, qdss_tracedata_a, _, _, _, _),
102241353ae7SKonrad Dybcio 	SDC_PINGROUP(sdc1_clk, 0x10a000, 13, 6),
102341353ae7SKonrad Dybcio 	SDC_PINGROUP(sdc1_cmd, 0x10a000, 11, 3),
102441353ae7SKonrad Dybcio 	SDC_PINGROUP(sdc1_data, 0x10a000, 9, 0),
102541353ae7SKonrad Dybcio 	SDC_PINGROUP(sdc2_clk, 0x109000, 14, 6),
102641353ae7SKonrad Dybcio 	SDC_PINGROUP(sdc2_cmd, 0x109000, 11, 3),
102741353ae7SKonrad Dybcio 	SDC_PINGROUP(sdc2_data, 0x109000, 9, 0),
102841353ae7SKonrad Dybcio 	SDC_PINGROUP(qdsd_clk, 0x19c000, 3, 0),
102941353ae7SKonrad Dybcio 	SDC_PINGROUP(qdsd_cmd, 0x19c000, 8, 5),
103041353ae7SKonrad Dybcio 	SDC_PINGROUP(qdsd_data0, 0x19c000, 13, 10),
103141353ae7SKonrad Dybcio 	SDC_PINGROUP(qdsd_data1, 0x19c000, 18, 15),
103241353ae7SKonrad Dybcio 	SDC_PINGROUP(qdsd_data2, 0x19c000, 23, 20),
103341353ae7SKonrad Dybcio 	SDC_PINGROUP(qdsd_data3, 0x19c000, 28, 25),
103441353ae7SKonrad Dybcio };
103541353ae7SKonrad Dybcio 
103641353ae7SKonrad Dybcio static const struct msm_pinctrl_soc_data mdm9607_pinctrl = {
103741353ae7SKonrad Dybcio 	.pins = mdm9607_pins,
103841353ae7SKonrad Dybcio 	.npins = ARRAY_SIZE(mdm9607_pins),
103941353ae7SKonrad Dybcio 	.functions = mdm9607_functions,
104041353ae7SKonrad Dybcio 	.nfunctions = ARRAY_SIZE(mdm9607_functions),
104141353ae7SKonrad Dybcio 	.groups = mdm9607_groups,
104241353ae7SKonrad Dybcio 	.ngroups = ARRAY_SIZE(mdm9607_groups),
104341353ae7SKonrad Dybcio 	.ngpios = 80,
104441353ae7SKonrad Dybcio };
104541353ae7SKonrad Dybcio 
mdm9607_pinctrl_probe(struct platform_device * pdev)104641353ae7SKonrad Dybcio static int mdm9607_pinctrl_probe(struct platform_device *pdev)
104741353ae7SKonrad Dybcio {
104841353ae7SKonrad Dybcio 	return msm_pinctrl_probe(pdev, &mdm9607_pinctrl);
104941353ae7SKonrad Dybcio }
105041353ae7SKonrad Dybcio 
105141353ae7SKonrad Dybcio static const struct of_device_id mdm9607_pinctrl_of_match[] = {
105241353ae7SKonrad Dybcio 	{ .compatible = "qcom,mdm9607-tlmm", },
105341353ae7SKonrad Dybcio 	{ }
105441353ae7SKonrad Dybcio };
105541353ae7SKonrad Dybcio 
105641353ae7SKonrad Dybcio static struct platform_driver mdm9607_pinctrl_driver = {
105741353ae7SKonrad Dybcio 	.driver = {
105841353ae7SKonrad Dybcio 		.name = "mdm9607-pinctrl",
105941353ae7SKonrad Dybcio 		.of_match_table = mdm9607_pinctrl_of_match,
106041353ae7SKonrad Dybcio 	},
106141353ae7SKonrad Dybcio 	.probe = mdm9607_pinctrl_probe,
1062*22ee670aSUwe Kleine-König 	.remove_new = msm_pinctrl_remove,
106341353ae7SKonrad Dybcio };
106441353ae7SKonrad Dybcio 
mdm9607_pinctrl_init(void)106541353ae7SKonrad Dybcio static int __init mdm9607_pinctrl_init(void)
106641353ae7SKonrad Dybcio {
106741353ae7SKonrad Dybcio 	return platform_driver_register(&mdm9607_pinctrl_driver);
106841353ae7SKonrad Dybcio }
106941353ae7SKonrad Dybcio arch_initcall(mdm9607_pinctrl_init);
107041353ae7SKonrad Dybcio 
mdm9607_pinctrl_exit(void)107141353ae7SKonrad Dybcio static void __exit mdm9607_pinctrl_exit(void)
107241353ae7SKonrad Dybcio {
107341353ae7SKonrad Dybcio 	platform_driver_unregister(&mdm9607_pinctrl_driver);
107441353ae7SKonrad Dybcio }
107541353ae7SKonrad Dybcio module_exit(mdm9607_pinctrl_exit);
107641353ae7SKonrad Dybcio 
107741353ae7SKonrad Dybcio MODULE_DESCRIPTION("Qualcomm mdm9607 pinctrl driver");
107841353ae7SKonrad Dybcio MODULE_LICENSE("GPL v2");
107941353ae7SKonrad Dybcio MODULE_DEVICE_TABLE(of, mdm9607_pinctrl_of_match);
1080