10c3ae641SMartin Botka // SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
20c3ae641SMartin Botka 
30c3ae641SMartin Botka #include <linux/module.h>
40c3ae641SMartin Botka #include <linux/of.h>
50c3ae641SMartin Botka #include <linux/platform_device.h>
60c3ae641SMartin Botka 
70c3ae641SMartin Botka #include "pinctrl-msm.h"
80c3ae641SMartin Botka 
90c3ae641SMartin Botka static const char * const sm6125_tiles[] = {
100c3ae641SMartin Botka 	"south",
110c3ae641SMartin Botka 	"east",
120c3ae641SMartin Botka 	"west"
130c3ae641SMartin Botka };
140c3ae641SMartin Botka 
150c3ae641SMartin Botka enum {
160c3ae641SMartin Botka 	SOUTH,
170c3ae641SMartin Botka 	EAST,
180c3ae641SMartin Botka 	WEST
190c3ae641SMartin Botka };
200c3ae641SMartin Botka 
210c3ae641SMartin Botka #define PINGROUP(id, _tile, f1, f2, f3, f4, f5, f6, f7, f8, f9)	\
220c3ae641SMartin Botka 	{						\
23*6a16d1a5SRohit Agarwal 		.grp = PINCTRL_PINGROUP("gpio" #id, 	\
24*6a16d1a5SRohit Agarwal 			gpio##id##_pins, 		\
25*6a16d1a5SRohit Agarwal 			ARRAY_SIZE(gpio##id##_pins)),	\
260c3ae641SMartin Botka 		.funcs = (int[]){			\
270c3ae641SMartin Botka 			msm_mux_gpio, /* gpio mode */	\
280c3ae641SMartin Botka 			msm_mux_##f1,			\
290c3ae641SMartin Botka 			msm_mux_##f2,			\
300c3ae641SMartin Botka 			msm_mux_##f3,			\
310c3ae641SMartin Botka 			msm_mux_##f4,			\
320c3ae641SMartin Botka 			msm_mux_##f5,			\
330c3ae641SMartin Botka 			msm_mux_##f6,			\
340c3ae641SMartin Botka 			msm_mux_##f7,			\
350c3ae641SMartin Botka 			msm_mux_##f8,			\
360c3ae641SMartin Botka 			msm_mux_##f9			\
370c3ae641SMartin Botka 		},					\
380c3ae641SMartin Botka 		.nfuncs = 10,				\
390c3ae641SMartin Botka 		.ctl_reg = 0x1000 * id,		\
400c3ae641SMartin Botka 		.io_reg = 0x4 + 0x1000 * id,		\
410c3ae641SMartin Botka 		.intr_cfg_reg = 0x8 + 0x1000 * id,	\
420c3ae641SMartin Botka 		.intr_status_reg = 0xc + 0x1000 * id,	\
430c3ae641SMartin Botka 		.intr_target_reg = 0x8 + 0x1000 * id,	\
440c3ae641SMartin Botka 		.tile = _tile,			\
450c3ae641SMartin Botka 		.mux_bit = 2,			\
460c3ae641SMartin Botka 		.pull_bit = 0,			\
470c3ae641SMartin Botka 		.drv_bit = 6,			\
480c3ae641SMartin Botka 		.oe_bit = 9,			\
490c3ae641SMartin Botka 		.in_bit = 0,			\
500c3ae641SMartin Botka 		.out_bit = 1,			\
510c3ae641SMartin Botka 		.intr_enable_bit = 0,		\
520c3ae641SMartin Botka 		.intr_status_bit = 0,		\
530c3ae641SMartin Botka 		.intr_target_bit = 5,		\
540c3ae641SMartin Botka 		.intr_target_kpss_val = 3,	\
550c3ae641SMartin Botka 		.intr_raw_status_bit = 4,	\
560c3ae641SMartin Botka 		.intr_polarity_bit = 1,		\
570c3ae641SMartin Botka 		.intr_detection_bit = 2,	\
580c3ae641SMartin Botka 		.intr_detection_width = 2,	\
590c3ae641SMartin Botka 	}
600c3ae641SMartin Botka 
610c3ae641SMartin Botka #define SDC_QDSD_PINGROUP(pg_name, _tile, ctl, pull, drv)	\
620c3ae641SMartin Botka 	{						\
63*6a16d1a5SRohit Agarwal 		.grp = PINCTRL_PINGROUP(#pg_name, 	\
64*6a16d1a5SRohit Agarwal 			pg_name##_pins, 		\
65*6a16d1a5SRohit Agarwal 			ARRAY_SIZE(pg_name##_pins)),	\
660c3ae641SMartin Botka 		.ctl_reg = ctl,				\
670c3ae641SMartin Botka 		.io_reg = 0,				\
680c3ae641SMartin Botka 		.intr_cfg_reg = 0,			\
690c3ae641SMartin Botka 		.intr_status_reg = 0,			\
700c3ae641SMartin Botka 		.intr_target_reg = 0,			\
710c3ae641SMartin Botka 		.tile = _tile,				\
720c3ae641SMartin Botka 		.mux_bit = -1,				\
730c3ae641SMartin Botka 		.pull_bit = pull,			\
740c3ae641SMartin Botka 		.drv_bit = drv,				\
750c3ae641SMartin Botka 		.oe_bit = -1,				\
760c3ae641SMartin Botka 		.in_bit = -1,				\
770c3ae641SMartin Botka 		.out_bit = -1,				\
780c3ae641SMartin Botka 		.intr_enable_bit = -1,			\
790c3ae641SMartin Botka 		.intr_status_bit = -1,			\
800c3ae641SMartin Botka 		.intr_target_bit = -1,			\
810c3ae641SMartin Botka 		.intr_raw_status_bit = -1,		\
820c3ae641SMartin Botka 		.intr_polarity_bit = -1,		\
830c3ae641SMartin Botka 		.intr_detection_bit = -1,		\
840c3ae641SMartin Botka 		.intr_detection_width = -1,		\
850c3ae641SMartin Botka 	}
860c3ae641SMartin Botka 
870c3ae641SMartin Botka #define UFS_RESET(pg_name, offset)				\
880c3ae641SMartin Botka 	{						\
89*6a16d1a5SRohit Agarwal 		.grp = PINCTRL_PINGROUP(#pg_name, 	\
90*6a16d1a5SRohit Agarwal 			pg_name##_pins, 		\
91*6a16d1a5SRohit Agarwal 			ARRAY_SIZE(pg_name##_pins)),	\
920c3ae641SMartin Botka 		.ctl_reg = offset,			\
930c3ae641SMartin Botka 		.io_reg = offset + 0x4,			\
940c3ae641SMartin Botka 		.intr_cfg_reg = 0,			\
950c3ae641SMartin Botka 		.intr_status_reg = 0,			\
960c3ae641SMartin Botka 		.intr_target_reg = 0,			\
970c3ae641SMartin Botka 		.tile = WEST,				\
980c3ae641SMartin Botka 		.mux_bit = -1,				\
990c3ae641SMartin Botka 		.pull_bit = 3,				\
1000c3ae641SMartin Botka 		.drv_bit = 0,				\
1010c3ae641SMartin Botka 		.oe_bit = -1,				\
1020c3ae641SMartin Botka 		.in_bit = -1,				\
1030c3ae641SMartin Botka 		.out_bit = 0,				\
1040c3ae641SMartin Botka 		.intr_enable_bit = -1,			\
1050c3ae641SMartin Botka 		.intr_status_bit = -1,			\
1060c3ae641SMartin Botka 		.intr_target_bit = -1,			\
1070c3ae641SMartin Botka 		.intr_raw_status_bit = -1,		\
1080c3ae641SMartin Botka 		.intr_polarity_bit = -1,		\
1090c3ae641SMartin Botka 		.intr_detection_bit = -1,		\
1100c3ae641SMartin Botka 		.intr_detection_width = -1,		\
1110c3ae641SMartin Botka 	}
1120c3ae641SMartin Botka static const struct pinctrl_pin_desc sm6125_pins[] = {
1130c3ae641SMartin Botka 	PINCTRL_PIN(0, "GPIO_0"),
1140c3ae641SMartin Botka 	PINCTRL_PIN(1, "GPIO_1"),
1150c3ae641SMartin Botka 	PINCTRL_PIN(2, "GPIO_2"),
1160c3ae641SMartin Botka 	PINCTRL_PIN(3, "GPIO_3"),
1170c3ae641SMartin Botka 	PINCTRL_PIN(4, "GPIO_4"),
1180c3ae641SMartin Botka 	PINCTRL_PIN(5, "GPIO_5"),
1190c3ae641SMartin Botka 	PINCTRL_PIN(6, "GPIO_6"),
1200c3ae641SMartin Botka 	PINCTRL_PIN(7, "GPIO_7"),
1210c3ae641SMartin Botka 	PINCTRL_PIN(8, "GPIO_8"),
1220c3ae641SMartin Botka 	PINCTRL_PIN(9, "GPIO_9"),
1230c3ae641SMartin Botka 	PINCTRL_PIN(10, "GPIO_10"),
1240c3ae641SMartin Botka 	PINCTRL_PIN(11, "GPIO_11"),
1250c3ae641SMartin Botka 	PINCTRL_PIN(12, "GPIO_12"),
1260c3ae641SMartin Botka 	PINCTRL_PIN(13, "GPIO_13"),
1270c3ae641SMartin Botka 	PINCTRL_PIN(14, "GPIO_14"),
1280c3ae641SMartin Botka 	PINCTRL_PIN(15, "GPIO_15"),
1290c3ae641SMartin Botka 	PINCTRL_PIN(16, "GPIO_16"),
1300c3ae641SMartin Botka 	PINCTRL_PIN(17, "GPIO_17"),
1310c3ae641SMartin Botka 	PINCTRL_PIN(18, "GPIO_18"),
1320c3ae641SMartin Botka 	PINCTRL_PIN(19, "GPIO_19"),
1330c3ae641SMartin Botka 	PINCTRL_PIN(20, "GPIO_20"),
1340c3ae641SMartin Botka 	PINCTRL_PIN(21, "GPIO_21"),
1350c3ae641SMartin Botka 	PINCTRL_PIN(22, "GPIO_22"),
1360c3ae641SMartin Botka 	PINCTRL_PIN(23, "GPIO_23"),
1370c3ae641SMartin Botka 	PINCTRL_PIN(24, "GPIO_24"),
1380c3ae641SMartin Botka 	PINCTRL_PIN(25, "GPIO_25"),
1390c3ae641SMartin Botka 	PINCTRL_PIN(26, "GPIO_26"),
1400c3ae641SMartin Botka 	PINCTRL_PIN(27, "GPIO_27"),
1410c3ae641SMartin Botka 	PINCTRL_PIN(28, "GPIO_28"),
1420c3ae641SMartin Botka 	PINCTRL_PIN(29, "GPIO_29"),
1430c3ae641SMartin Botka 	PINCTRL_PIN(30, "GPIO_30"),
1440c3ae641SMartin Botka 	PINCTRL_PIN(31, "GPIO_31"),
1450c3ae641SMartin Botka 	PINCTRL_PIN(32, "GPIO_32"),
1460c3ae641SMartin Botka 	PINCTRL_PIN(33, "GPIO_33"),
1470c3ae641SMartin Botka 	PINCTRL_PIN(34, "GPIO_34"),
1480c3ae641SMartin Botka 	PINCTRL_PIN(35, "GPIO_35"),
1490c3ae641SMartin Botka 	PINCTRL_PIN(36, "GPIO_36"),
1500c3ae641SMartin Botka 	PINCTRL_PIN(37, "GPIO_37"),
1510c3ae641SMartin Botka 	PINCTRL_PIN(38, "GPIO_38"),
1520c3ae641SMartin Botka 	PINCTRL_PIN(39, "GPIO_39"),
1530c3ae641SMartin Botka 	PINCTRL_PIN(40, "GPIO_40"),
1540c3ae641SMartin Botka 	PINCTRL_PIN(41, "GPIO_41"),
1550c3ae641SMartin Botka 	PINCTRL_PIN(42, "GPIO_42"),
1560c3ae641SMartin Botka 	PINCTRL_PIN(43, "GPIO_43"),
1570c3ae641SMartin Botka 	PINCTRL_PIN(44, "GPIO_44"),
1580c3ae641SMartin Botka 	PINCTRL_PIN(45, "GPIO_45"),
1590c3ae641SMartin Botka 	PINCTRL_PIN(46, "GPIO_46"),
1600c3ae641SMartin Botka 	PINCTRL_PIN(47, "GPIO_47"),
1610c3ae641SMartin Botka 	PINCTRL_PIN(48, "GPIO_48"),
1620c3ae641SMartin Botka 	PINCTRL_PIN(49, "GPIO_49"),
1630c3ae641SMartin Botka 	PINCTRL_PIN(50, "GPIO_50"),
1640c3ae641SMartin Botka 	PINCTRL_PIN(51, "GPIO_51"),
1650c3ae641SMartin Botka 	PINCTRL_PIN(52, "GPIO_52"),
1660c3ae641SMartin Botka 	PINCTRL_PIN(53, "GPIO_53"),
1670c3ae641SMartin Botka 	PINCTRL_PIN(54, "GPIO_54"),
1680c3ae641SMartin Botka 	PINCTRL_PIN(55, "GPIO_55"),
1690c3ae641SMartin Botka 	PINCTRL_PIN(56, "GPIO_56"),
1700c3ae641SMartin Botka 	PINCTRL_PIN(57, "GPIO_57"),
1710c3ae641SMartin Botka 	PINCTRL_PIN(58, "GPIO_58"),
1720c3ae641SMartin Botka 	PINCTRL_PIN(59, "GPIO_59"),
1730c3ae641SMartin Botka 	PINCTRL_PIN(60, "GPIO_60"),
1740c3ae641SMartin Botka 	PINCTRL_PIN(61, "GPIO_61"),
1750c3ae641SMartin Botka 	PINCTRL_PIN(62, "GPIO_62"),
1760c3ae641SMartin Botka 	PINCTRL_PIN(63, "GPIO_63"),
1770c3ae641SMartin Botka 	PINCTRL_PIN(64, "GPIO_64"),
1780c3ae641SMartin Botka 	PINCTRL_PIN(65, "GPIO_65"),
1790c3ae641SMartin Botka 	PINCTRL_PIN(66, "GPIO_66"),
1800c3ae641SMartin Botka 	PINCTRL_PIN(67, "GPIO_67"),
1810c3ae641SMartin Botka 	PINCTRL_PIN(68, "GPIO_68"),
1820c3ae641SMartin Botka 	PINCTRL_PIN(69, "GPIO_69"),
1830c3ae641SMartin Botka 	PINCTRL_PIN(70, "GPIO_70"),
1840c3ae641SMartin Botka 	PINCTRL_PIN(71, "GPIO_71"),
1850c3ae641SMartin Botka 	PINCTRL_PIN(72, "GPIO_72"),
1860c3ae641SMartin Botka 	PINCTRL_PIN(73, "GPIO_73"),
1870c3ae641SMartin Botka 	PINCTRL_PIN(74, "GPIO_74"),
1880c3ae641SMartin Botka 	PINCTRL_PIN(75, "GPIO_75"),
1890c3ae641SMartin Botka 	PINCTRL_PIN(76, "GPIO_76"),
1900c3ae641SMartin Botka 	PINCTRL_PIN(77, "GPIO_77"),
1910c3ae641SMartin Botka 	PINCTRL_PIN(78, "GPIO_78"),
1920c3ae641SMartin Botka 	PINCTRL_PIN(79, "GPIO_79"),
1930c3ae641SMartin Botka 	PINCTRL_PIN(80, "GPIO_80"),
1940c3ae641SMartin Botka 	PINCTRL_PIN(81, "GPIO_81"),
1950c3ae641SMartin Botka 	PINCTRL_PIN(82, "GPIO_82"),
1960c3ae641SMartin Botka 	PINCTRL_PIN(83, "GPIO_83"),
1970c3ae641SMartin Botka 	PINCTRL_PIN(84, "GPIO_84"),
1980c3ae641SMartin Botka 	PINCTRL_PIN(85, "GPIO_85"),
1990c3ae641SMartin Botka 	PINCTRL_PIN(86, "GPIO_86"),
2000c3ae641SMartin Botka 	PINCTRL_PIN(87, "GPIO_87"),
2010c3ae641SMartin Botka 	PINCTRL_PIN(88, "GPIO_88"),
2020c3ae641SMartin Botka 	PINCTRL_PIN(89, "GPIO_89"),
2030c3ae641SMartin Botka 	PINCTRL_PIN(90, "GPIO_90"),
2040c3ae641SMartin Botka 	PINCTRL_PIN(91, "GPIO_91"),
2050c3ae641SMartin Botka 	PINCTRL_PIN(92, "GPIO_92"),
2060c3ae641SMartin Botka 	PINCTRL_PIN(93, "GPIO_93"),
2070c3ae641SMartin Botka 	PINCTRL_PIN(94, "GPIO_94"),
2080c3ae641SMartin Botka 	PINCTRL_PIN(95, "GPIO_95"),
2090c3ae641SMartin Botka 	PINCTRL_PIN(96, "GPIO_96"),
2100c3ae641SMartin Botka 	PINCTRL_PIN(97, "GPIO_97"),
2110c3ae641SMartin Botka 	PINCTRL_PIN(98, "GPIO_98"),
2120c3ae641SMartin Botka 	PINCTRL_PIN(99, "GPIO_99"),
2130c3ae641SMartin Botka 	PINCTRL_PIN(100, "GPIO_100"),
2140c3ae641SMartin Botka 	PINCTRL_PIN(101, "GPIO_101"),
2150c3ae641SMartin Botka 	PINCTRL_PIN(102, "GPIO_102"),
2160c3ae641SMartin Botka 	PINCTRL_PIN(103, "GPIO_103"),
2170c3ae641SMartin Botka 	PINCTRL_PIN(104, "GPIO_104"),
2180c3ae641SMartin Botka 	PINCTRL_PIN(105, "GPIO_105"),
2190c3ae641SMartin Botka 	PINCTRL_PIN(106, "GPIO_106"),
2200c3ae641SMartin Botka 	PINCTRL_PIN(107, "GPIO_107"),
2210c3ae641SMartin Botka 	PINCTRL_PIN(108, "GPIO_108"),
2220c3ae641SMartin Botka 	PINCTRL_PIN(109, "GPIO_109"),
2230c3ae641SMartin Botka 	PINCTRL_PIN(110, "GPIO_110"),
2240c3ae641SMartin Botka 	PINCTRL_PIN(111, "GPIO_111"),
2250c3ae641SMartin Botka 	PINCTRL_PIN(112, "GPIO_112"),
2260c3ae641SMartin Botka 	PINCTRL_PIN(113, "GPIO_113"),
2270c3ae641SMartin Botka 	PINCTRL_PIN(114, "GPIO_114"),
2280c3ae641SMartin Botka 	PINCTRL_PIN(115, "GPIO_115"),
2290c3ae641SMartin Botka 	PINCTRL_PIN(116, "GPIO_116"),
2300c3ae641SMartin Botka 	PINCTRL_PIN(117, "GPIO_117"),
2310c3ae641SMartin Botka 	PINCTRL_PIN(118, "GPIO_118"),
2320c3ae641SMartin Botka 	PINCTRL_PIN(119, "GPIO_119"),
2330c3ae641SMartin Botka 	PINCTRL_PIN(120, "GPIO_120"),
2340c3ae641SMartin Botka 	PINCTRL_PIN(121, "GPIO_121"),
2350c3ae641SMartin Botka 	PINCTRL_PIN(122, "GPIO_122"),
2360c3ae641SMartin Botka 	PINCTRL_PIN(123, "GPIO_123"),
2370c3ae641SMartin Botka 	PINCTRL_PIN(124, "GPIO_124"),
2380c3ae641SMartin Botka 	PINCTRL_PIN(125, "GPIO_125"),
2390c3ae641SMartin Botka 	PINCTRL_PIN(126, "GPIO_126"),
2400c3ae641SMartin Botka 	PINCTRL_PIN(127, "GPIO_127"),
2410c3ae641SMartin Botka 	PINCTRL_PIN(128, "GPIO_128"),
2420c3ae641SMartin Botka 	PINCTRL_PIN(129, "GPIO_129"),
2430c3ae641SMartin Botka 	PINCTRL_PIN(130, "GPIO_130"),
2440c3ae641SMartin Botka 	PINCTRL_PIN(131, "GPIO_131"),
2450c3ae641SMartin Botka 	PINCTRL_PIN(132, "GPIO_132"),
2460c3ae641SMartin Botka 	PINCTRL_PIN(133, "UFS_RESET"),
2470c3ae641SMartin Botka 	PINCTRL_PIN(134, "SDC1_RCLK"),
2480c3ae641SMartin Botka 	PINCTRL_PIN(135, "SDC1_CLK"),
2490c3ae641SMartin Botka 	PINCTRL_PIN(136, "SDC1_CMD"),
2500c3ae641SMartin Botka 	PINCTRL_PIN(137, "SDC1_DATA"),
2510c3ae641SMartin Botka 	PINCTRL_PIN(138, "SDC2_CLK"),
2520c3ae641SMartin Botka 	PINCTRL_PIN(139, "SDC2_CMD"),
2530c3ae641SMartin Botka 	PINCTRL_PIN(140, "SDC2_DATA"),
2540c3ae641SMartin Botka };
2550c3ae641SMartin Botka 
2560c3ae641SMartin Botka #define DECLARE_MSM_GPIO_PINS(pin) \
2570c3ae641SMartin Botka 	static const unsigned int gpio##pin##_pins[] = { pin }
2580c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(0);
2590c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(1);
2600c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(2);
2610c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(3);
2620c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(4);
2630c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(5);
2640c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(6);
2650c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(7);
2660c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(8);
2670c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(9);
2680c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(10);
2690c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(11);
2700c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(12);
2710c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(13);
2720c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(14);
2730c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(15);
2740c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(16);
2750c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(17);
2760c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(18);
2770c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(19);
2780c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(20);
2790c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(21);
2800c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(22);
2810c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(23);
2820c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(24);
2830c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(25);
2840c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(26);
2850c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(27);
2860c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(28);
2870c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(29);
2880c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(30);
2890c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(31);
2900c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(32);
2910c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(33);
2920c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(34);
2930c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(35);
2940c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(36);
2950c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(37);
2960c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(38);
2970c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(39);
2980c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(40);
2990c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(41);
3000c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(42);
3010c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(43);
3020c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(44);
3030c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(45);
3040c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(46);
3050c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(47);
3060c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(48);
3070c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(49);
3080c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(50);
3090c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(51);
3100c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(52);
3110c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(53);
3120c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(54);
3130c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(55);
3140c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(56);
3150c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(57);
3160c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(58);
3170c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(59);
3180c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(60);
3190c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(61);
3200c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(62);
3210c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(63);
3220c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(64);
3230c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(65);
3240c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(66);
3250c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(67);
3260c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(68);
3270c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(69);
3280c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(70);
3290c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(71);
3300c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(72);
3310c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(73);
3320c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(74);
3330c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(75);
3340c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(76);
3350c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(77);
3360c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(78);
3370c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(79);
3380c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(80);
3390c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(81);
3400c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(82);
3410c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(83);
3420c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(84);
3430c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(85);
3440c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(86);
3450c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(87);
3460c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(88);
3470c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(89);
3480c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(90);
3490c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(91);
3500c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(92);
3510c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(93);
3520c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(94);
3530c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(95);
3540c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(96);
3550c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(97);
3560c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(98);
3570c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(99);
3580c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(100);
3590c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(101);
3600c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(102);
3610c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(103);
3620c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(104);
3630c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(105);
3640c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(106);
3650c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(107);
3660c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(108);
3670c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(109);
3680c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(110);
3690c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(111);
3700c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(112);
3710c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(113);
3720c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(114);
3730c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(115);
3740c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(116);
3750c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(117);
3760c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(118);
3770c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(119);
3780c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(120);
3790c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(121);
3800c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(122);
3810c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(123);
3820c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(124);
3830c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(125);
3840c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(126);
3850c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(127);
3860c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(128);
3870c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(129);
3880c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(130);
3890c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(131);
3900c3ae641SMartin Botka DECLARE_MSM_GPIO_PINS(132);
3910c3ae641SMartin Botka 
3920c3ae641SMartin Botka static const unsigned int ufs_reset_pins[] = { 133 };
3930c3ae641SMartin Botka static const unsigned int sdc1_rclk_pins[] = { 134 };
3940c3ae641SMartin Botka static const unsigned int sdc1_clk_pins[] = { 135 };
3950c3ae641SMartin Botka static const unsigned int sdc1_cmd_pins[] = { 136 };
3960c3ae641SMartin Botka static const unsigned int sdc1_data_pins[] = { 137 };
3970c3ae641SMartin Botka static const unsigned int sdc2_clk_pins[] = { 138 };
3980c3ae641SMartin Botka static const unsigned int sdc2_cmd_pins[] = { 139 };
3990c3ae641SMartin Botka static const unsigned int sdc2_data_pins[] = { 140 };
4000c3ae641SMartin Botka 
4010c3ae641SMartin Botka 
4020c3ae641SMartin Botka enum sm6125_functions {
4030c3ae641SMartin Botka 	msm_mux_qup00,
4040c3ae641SMartin Botka 	msm_mux_gpio,
4050c3ae641SMartin Botka 	msm_mux_qdss,
4060c3ae641SMartin Botka 	msm_mux_qup01,
4070c3ae641SMartin Botka 	msm_mux_qup02,
4080c3ae641SMartin Botka 	msm_mux_ddr_pxi0,
4090c3ae641SMartin Botka 	msm_mux_ddr_bist,
4100c3ae641SMartin Botka 	msm_mux_atest_tsens2,
4110c3ae641SMartin Botka 	msm_mux_vsense_trigger,
4120c3ae641SMartin Botka 	msm_mux_atest_usb1,
4130c3ae641SMartin Botka 	msm_mux_gp_pdm1,
4140c3ae641SMartin Botka 	msm_mux_phase_flag,
4150c3ae641SMartin Botka 	msm_mux_dbg_out,
4160c3ae641SMartin Botka 	msm_mux_qup14,
4170c3ae641SMartin Botka 	msm_mux_atest_usb11,
4180c3ae641SMartin Botka 	msm_mux_ddr_pxi2,
4190c3ae641SMartin Botka 	msm_mux_atest_usb10,
4200c3ae641SMartin Botka 	msm_mux_jitter_bist,
4210c3ae641SMartin Botka 	msm_mux_ddr_pxi3,
4220c3ae641SMartin Botka 	msm_mux_pll_bypassnl,
4230c3ae641SMartin Botka 	msm_mux_pll_bist,
4240c3ae641SMartin Botka 	msm_mux_qup03,
4250c3ae641SMartin Botka 	msm_mux_pll_reset,
4260c3ae641SMartin Botka 	msm_mux_agera_pll,
4270c3ae641SMartin Botka 	msm_mux_qdss_cti,
4280c3ae641SMartin Botka 	msm_mux_qup04,
4290c3ae641SMartin Botka 	msm_mux_wlan2_adc1,
4300c3ae641SMartin Botka 	msm_mux_wlan2_adc0,
4310c3ae641SMartin Botka 	msm_mux_wsa_clk,
4320c3ae641SMartin Botka 	msm_mux_qup13,
4330c3ae641SMartin Botka 	msm_mux_ter_mi2s,
4340c3ae641SMartin Botka 	msm_mux_wsa_data,
4350c3ae641SMartin Botka 	msm_mux_qup10,
4360c3ae641SMartin Botka 	msm_mux_gcc_gp3,
4370c3ae641SMartin Botka 	msm_mux_qup12,
4380c3ae641SMartin Botka 	msm_mux_sd_write,
4390c3ae641SMartin Botka 	msm_mux_qup11,
4400c3ae641SMartin Botka 	msm_mux_cam_mclk,
4410c3ae641SMartin Botka 	msm_mux_atest_tsens,
4420c3ae641SMartin Botka 	msm_mux_cci_i2c,
4430c3ae641SMartin Botka 	msm_mux_cci_timer2,
4440c3ae641SMartin Botka 	msm_mux_cci_timer1,
4450c3ae641SMartin Botka 	msm_mux_gcc_gp2,
4460c3ae641SMartin Botka 	msm_mux_cci_async,
4470c3ae641SMartin Botka 	msm_mux_cci_timer4,
4480c3ae641SMartin Botka 	msm_mux_cci_timer0,
4490c3ae641SMartin Botka 	msm_mux_gcc_gp1,
4500c3ae641SMartin Botka 	msm_mux_cci_timer3,
4510c3ae641SMartin Botka 	msm_mux_wlan1_adc1,
4520c3ae641SMartin Botka 	msm_mux_wlan1_adc0,
4530c3ae641SMartin Botka 	msm_mux_qlink_request,
4540c3ae641SMartin Botka 	msm_mux_qlink_enable,
4550c3ae641SMartin Botka 	msm_mux_pa_indicator,
4560c3ae641SMartin Botka 	msm_mux_nav_pps,
4570c3ae641SMartin Botka 	msm_mux_gps_tx,
4580c3ae641SMartin Botka 	msm_mux_gp_pdm0,
4590c3ae641SMartin Botka 	msm_mux_atest_usb13,
4600c3ae641SMartin Botka 	msm_mux_ddr_pxi1,
4610c3ae641SMartin Botka 	msm_mux_atest_usb12,
4620c3ae641SMartin Botka 	msm_mux_cri_trng0,
4630c3ae641SMartin Botka 	msm_mux_cri_trng,
4640c3ae641SMartin Botka 	msm_mux_cri_trng1,
4650c3ae641SMartin Botka 	msm_mux_gp_pdm2,
4660c3ae641SMartin Botka 	msm_mux_sp_cmu,
4670c3ae641SMartin Botka 	msm_mux_atest_usb2,
4680c3ae641SMartin Botka 	msm_mux_atest_usb23,
4690c3ae641SMartin Botka 	msm_mux_uim2_data,
4700c3ae641SMartin Botka 	msm_mux_uim2_clk,
4710c3ae641SMartin Botka 	msm_mux_uim2_reset,
4720c3ae641SMartin Botka 	msm_mux_atest_usb22,
4730c3ae641SMartin Botka 	msm_mux_uim2_present,
4740c3ae641SMartin Botka 	msm_mux_atest_usb21,
4750c3ae641SMartin Botka 	msm_mux_uim1_data,
4760c3ae641SMartin Botka 	msm_mux_atest_usb20,
4770c3ae641SMartin Botka 	msm_mux_uim1_clk,
4780c3ae641SMartin Botka 	msm_mux_uim1_reset,
4790c3ae641SMartin Botka 	msm_mux_uim1_present,
4800c3ae641SMartin Botka 	msm_mux_mdp_vsync,
4810c3ae641SMartin Botka 	msm_mux_copy_gp,
4820c3ae641SMartin Botka 	msm_mux_tsense_pwm,
4830c3ae641SMartin Botka 	msm_mux_mpm_pwr,
4840c3ae641SMartin Botka 	msm_mux_tgu_ch3,
4850c3ae641SMartin Botka 	msm_mux_mdp_vsync0,
4860c3ae641SMartin Botka 	msm_mux_mdp_vsync1,
4870c3ae641SMartin Botka 	msm_mux_mdp_vsync2,
4880c3ae641SMartin Botka 	msm_mux_mdp_vsync3,
4890c3ae641SMartin Botka 	msm_mux_mdp_vsync4,
4900c3ae641SMartin Botka 	msm_mux_mdp_vsync5,
4910c3ae641SMartin Botka 	msm_mux_tgu_ch0,
4920c3ae641SMartin Botka 	msm_mux_tgu_ch1,
4930c3ae641SMartin Botka 	msm_mux_atest_char1,
4940c3ae641SMartin Botka 	msm_mux_vfr_1,
4950c3ae641SMartin Botka 	msm_mux_tgu_ch2,
4960c3ae641SMartin Botka 	msm_mux_atest_char0,
4970c3ae641SMartin Botka 	msm_mux_atest_char2,
4980c3ae641SMartin Botka 	msm_mux_atest_char3,
4990c3ae641SMartin Botka 	msm_mux_ldo_en,
5000c3ae641SMartin Botka 	msm_mux_ldo_update,
5010c3ae641SMartin Botka 	msm_mux_prng_rosc,
5020c3ae641SMartin Botka 	msm_mux_dp_hot,
5030c3ae641SMartin Botka 	msm_mux_debug_hot,
5040c3ae641SMartin Botka 	msm_mux_copy_phase,
5050c3ae641SMartin Botka 	msm_mux_usb_phy,
5060c3ae641SMartin Botka 	msm_mux_atest_char,
5070c3ae641SMartin Botka 	msm_mux_unused1,
5080c3ae641SMartin Botka 	msm_mux_qua_mi2s,
5090c3ae641SMartin Botka 	msm_mux_mss_lte,
5100c3ae641SMartin Botka 	msm_mux_swr_tx,
5110c3ae641SMartin Botka 	msm_mux_aud_sb,
5120c3ae641SMartin Botka 	msm_mux_unused2,
5130c3ae641SMartin Botka 	msm_mux_swr_rx,
5140c3ae641SMartin Botka 	msm_mux_edp_hot,
5150c3ae641SMartin Botka 	msm_mux_audio_ref,
5160c3ae641SMartin Botka 	msm_mux_pri_mi2s,
5170c3ae641SMartin Botka 	msm_mux_pri_mi2s_ws,
5180c3ae641SMartin Botka 	msm_mux_adsp_ext,
5190c3ae641SMartin Botka 	msm_mux_edp_lcd,
5200c3ae641SMartin Botka 	msm_mux_mclk2,
5210c3ae641SMartin Botka 	msm_mux_m_voc,
5220c3ae641SMartin Botka 	msm_mux_mclk1,
5230c3ae641SMartin Botka 	msm_mux_qca_sb,
5240c3ae641SMartin Botka 	msm_mux_qui_mi2s,
5250c3ae641SMartin Botka 	msm_mux_dmic0_clk,
5260c3ae641SMartin Botka 	msm_mux_sec_mi2s,
5270c3ae641SMartin Botka 	msm_mux_dmic0_data,
5280c3ae641SMartin Botka 	msm_mux_dmic1_clk,
5290c3ae641SMartin Botka 	msm_mux_dmic1_data,
5300c3ae641SMartin Botka 	msm_mux__,
5310c3ae641SMartin Botka };
5320c3ae641SMartin Botka 
5330c3ae641SMartin Botka static const char * const qup00_groups[] = {
5340c3ae641SMartin Botka 	"gpio0", "gpio1", "gpio2", "gpio3",
5350c3ae641SMartin Botka };
5360c3ae641SMartin Botka static const char * const gpio_groups[] = {
5370c3ae641SMartin Botka 	"gpio0", "gpio1", "gpio2", "gpio3", "gpio4", "gpio5", "gpio6", "gpio7",
5380c3ae641SMartin Botka 	"gpio8", "gpio9", "gpio10", "gpio11", "gpio12", "gpio13", "gpio14",
5390c3ae641SMartin Botka 	"gpio15", "gpio16", "gpio17", "gpio18", "gpio19", "gpio20", "gpio21",
5400c3ae641SMartin Botka 	"gpio22", "gpio23", "gpio24", "gpio25", "gpio26", "gpio27", "gpio28",
5410c3ae641SMartin Botka 	"gpio29", "gpio30", "gpio31", "gpio32", "gpio33", "gpio34", "gpio35",
5420c3ae641SMartin Botka 	"gpio36", "gpio37", "gpio38", "gpio39", "gpio40", "gpio41", "gpio42",
5430c3ae641SMartin Botka 	"gpio43", "gpio44", "gpio45", "gpio46", "gpio47", "gpio48", "gpio49",
5440c3ae641SMartin Botka 	"gpio50", "gpio51", "gpio52", "gpio53", "gpio54", "gpio55", "gpio56",
5450c3ae641SMartin Botka 	"gpio57", "gpio58", "gpio59", "gpio60", "gpio61", "gpio62", "gpio63",
5460c3ae641SMartin Botka 	"gpio64", "gpio65", "gpio66", "gpio67", "gpio68", "gpio69", "gpio70",
5470c3ae641SMartin Botka 	"gpio71", "gpio72", "gpio73", "gpio74", "gpio75", "gpio76", "gpio77",
5480c3ae641SMartin Botka 	"gpio78", "gpio79", "gpio80", "gpio81", "gpio82", "gpio83", "gpio84",
5490c3ae641SMartin Botka 	"gpio85", "gpio86", "gpio87", "gpio88", "gpio89", "gpio90", "gpio91",
5500c3ae641SMartin Botka 	"gpio92", "gpio93", "gpio94", "gpio95", "gpio96", "gpio97", "gpio98",
5510c3ae641SMartin Botka 	"gpio99", "gpio100", "gpio101", "gpio102", "gpio103", "gpio104",
5520c3ae641SMartin Botka 	"gpio105", "gpio106", "gpio107", "gpio108", "gpio109", "gpio110",
5530c3ae641SMartin Botka 	"gpio111", "gpio112", "gpio113", "gpio114", "gpio115", "gpio116",
5540c3ae641SMartin Botka 	"gpio117", "gpio118", "gpio119", "gpio120", "gpio121", "gpio122",
5550c3ae641SMartin Botka 	"gpio123", "gpio124", "gpio125", "gpio126", "gpio127", "gpio128",
5560c3ae641SMartin Botka 	"gpio129", "gpio130", "gpio131", "gpio132",
5570c3ae641SMartin Botka };
5580c3ae641SMartin Botka static const char * const qdss_groups[] = {
5590c3ae641SMartin Botka 	"gpio0", "gpio1", "gpio2", "gpio3", "gpio20", "gpio21", "gpio34", "gpio35",
5600c3ae641SMartin Botka 	"gpio36", "gpio42", "gpio41", "gpio43", "gpio44", "gpio45", "gpio46",
5610c3ae641SMartin Botka 	"gpio47", "gpio48", "gpio49", "gpio80", "gpio81", "gpio82", "gpio83",
5620c3ae641SMartin Botka 	"gpio84", "gpio85", "gpio86", "gpio91", "gpio92", "gpio94", "gpio96",
5630c3ae641SMartin Botka 	"gpio100", "gpio102", "gpio114", "gpio115", "gpio116", "gpio117", "gpio118",
5640c3ae641SMartin Botka };
5650c3ae641SMartin Botka static const char * const qup01_groups[] = {
5660c3ae641SMartin Botka 	"gpio4", "gpio5",
5670c3ae641SMartin Botka };
5680c3ae641SMartin Botka static const char * const qup02_groups[] = {
5690c3ae641SMartin Botka 	"gpio6", "gpio7", "gpio8", "gpio9",
5700c3ae641SMartin Botka };
5710c3ae641SMartin Botka static const char * const ddr_pxi0_groups[] = {
5720c3ae641SMartin Botka 	"gpio6", "gpio7",
5730c3ae641SMartin Botka };
5740c3ae641SMartin Botka static const char * const ddr_bist_groups[] = {
5750c3ae641SMartin Botka 	"gpio7", "gpio8", "gpio9", "gpio10",
5760c3ae641SMartin Botka };
5770c3ae641SMartin Botka static const char * const atest_tsens2_groups[] = {
5780c3ae641SMartin Botka 	"gpio7",
5790c3ae641SMartin Botka };
5800c3ae641SMartin Botka static const char * const vsense_trigger_groups[] = {
5810c3ae641SMartin Botka 	"gpio7",
5820c3ae641SMartin Botka };
5830c3ae641SMartin Botka static const char * const atest_usb1_groups[] = {
5840c3ae641SMartin Botka 	"gpio7",
5850c3ae641SMartin Botka };
5860c3ae641SMartin Botka static const char * const gp_pdm1_groups[] = {
5870c3ae641SMartin Botka 	"gpio8", "gpio65",
5880c3ae641SMartin Botka };
5890c3ae641SMartin Botka static const char * const phase_flag_groups[] = {
5900c3ae641SMartin Botka 	"gpio8", "gpio9", "gpio23", "gpio24", "gpio25", "gpio26", "gpio28",
5910c3ae641SMartin Botka 	"gpio29", "gpio30", "gpio53", "gpio54", "gpio55", "gpio56", "gpio57",
5920c3ae641SMartin Botka 	"gpio58", "gpio59", "gpio60", "gpio61", "gpio62", "gpio80", "gpio81",
5930c3ae641SMartin Botka 	"gpio82", "gpio83", "gpio84", "gpio88", "gpio89", "gpio91", "gpio93",
5940c3ae641SMartin Botka 	"gpio98", "gpio129", "gpio130", "gpio131",
5950c3ae641SMartin Botka };
5960c3ae641SMartin Botka static const char * const dbg_out_groups[] = {
5970c3ae641SMartin Botka 	"gpio9",
5980c3ae641SMartin Botka };
5990c3ae641SMartin Botka static const char * const qup14_groups[] = {
6000c3ae641SMartin Botka 	"gpio10", "gpio11", "gpio12", "gpio13",
6010c3ae641SMartin Botka };
6020c3ae641SMartin Botka static const char * const atest_usb11_groups[] = {
6030c3ae641SMartin Botka 	"gpio10",
6040c3ae641SMartin Botka };
6050c3ae641SMartin Botka static const char * const ddr_pxi2_groups[] = {
6060c3ae641SMartin Botka 	"gpio10", "gpio11",
6070c3ae641SMartin Botka };
6080c3ae641SMartin Botka static const char * const atest_usb10_groups[] = {
6090c3ae641SMartin Botka 	"gpio11",
6100c3ae641SMartin Botka };
6110c3ae641SMartin Botka static const char * const jitter_bist_groups[] = {
6120c3ae641SMartin Botka 	"gpio12", "gpio31",
6130c3ae641SMartin Botka };
6140c3ae641SMartin Botka static const char * const ddr_pxi3_groups[] = {
6150c3ae641SMartin Botka 	"gpio12", "gpio13",
6160c3ae641SMartin Botka };
6170c3ae641SMartin Botka static const char * const pll_bypassnl_groups[] = {
6180c3ae641SMartin Botka 	"gpio13",
6190c3ae641SMartin Botka };
6200c3ae641SMartin Botka static const char * const pll_bist_groups[] = {
6210c3ae641SMartin Botka 	"gpio13", "gpio32",
6220c3ae641SMartin Botka };
6230c3ae641SMartin Botka static const char * const qup03_groups[] = {
6240c3ae641SMartin Botka 	"gpio14", "gpio15",
6250c3ae641SMartin Botka };
6260c3ae641SMartin Botka static const char * const pll_reset_groups[] = {
6270c3ae641SMartin Botka 	"gpio14",
6280c3ae641SMartin Botka };
6290c3ae641SMartin Botka static const char * const agera_pll_groups[] = {
6300c3ae641SMartin Botka 	"gpio14", "gpio33",
6310c3ae641SMartin Botka };
6320c3ae641SMartin Botka static const char * const qdss_cti_groups[] = {
6330c3ae641SMartin Botka 	"gpio14", "gpio15", "gpio95", "gpio101", "gpio106", "gpio107",
6340c3ae641SMartin Botka 	"gpio110", "gpio111",
6350c3ae641SMartin Botka };
6360c3ae641SMartin Botka static const char * const qup04_groups[] = {
6370c3ae641SMartin Botka 	"gpio16", "gpio17",
6380c3ae641SMartin Botka };
6390c3ae641SMartin Botka static const char * const wlan2_adc1_groups[] = {
6400c3ae641SMartin Botka 	"gpio16",
6410c3ae641SMartin Botka };
6420c3ae641SMartin Botka static const char * const wlan2_adc0_groups[] = {
6430c3ae641SMartin Botka 	"gpio17",
6440c3ae641SMartin Botka };
6450c3ae641SMartin Botka static const char * const wsa_clk_groups[] = {
6460c3ae641SMartin Botka 	"gpio18",
6470c3ae641SMartin Botka };
6480c3ae641SMartin Botka static const char * const qup13_groups[] = {
6490c3ae641SMartin Botka 	"gpio18", "gpio19", "gpio20", "gpio21",
6500c3ae641SMartin Botka };
6510c3ae641SMartin Botka static const char * const ter_mi2s_groups[] = {
6520c3ae641SMartin Botka 	"gpio18", "gpio19", "gpio20", "gpio21",
6530c3ae641SMartin Botka };
6540c3ae641SMartin Botka static const char * const wsa_data_groups[] = {
6550c3ae641SMartin Botka 	"gpio19",
6560c3ae641SMartin Botka };
6570c3ae641SMartin Botka static const char * const qup10_groups[] = {
6580c3ae641SMartin Botka 	"gpio22", "gpio23", "gpio24", "gpio25", "gpio26", "gpio27",
6590c3ae641SMartin Botka };
6600c3ae641SMartin Botka static const char * const gcc_gp3_groups[] = {
6610c3ae641SMartin Botka 	"gpio22", "gpio58",
6620c3ae641SMartin Botka };
6630c3ae641SMartin Botka static const char * const qup12_groups[] = {
6640c3ae641SMartin Botka 	"gpio28", "gpio29",
6650c3ae641SMartin Botka };
6660c3ae641SMartin Botka static const char * const sd_write_groups[] = {
6670c3ae641SMartin Botka 	"gpio29",
6680c3ae641SMartin Botka };
6690c3ae641SMartin Botka static const char * const qup11_groups[] = {
6700c3ae641SMartin Botka 	"gpio30", "gpio31", "gpio32", "gpio33",
6710c3ae641SMartin Botka };
6720c3ae641SMartin Botka static const char * const cam_mclk_groups[] = {
6730c3ae641SMartin Botka 	"gpio34", "gpio35", "gpio36", "gpio44",
6740c3ae641SMartin Botka };
6750c3ae641SMartin Botka static const char * const atest_tsens_groups[] = {
6760c3ae641SMartin Botka 	"gpio34",
6770c3ae641SMartin Botka };
6780c3ae641SMartin Botka static const char * const cci_i2c_groups[] = {
6790c3ae641SMartin Botka 	"gpio37", "gpio38", "gpio39", "gpio40",
6800c3ae641SMartin Botka };
6810c3ae641SMartin Botka static const char * const cci_timer2_groups[] = {
6820c3ae641SMartin Botka 	"gpio42",
6830c3ae641SMartin Botka };
6840c3ae641SMartin Botka static const char * const cci_timer1_groups[] = {
6850c3ae641SMartin Botka 	"gpio43",
6860c3ae641SMartin Botka };
6870c3ae641SMartin Botka static const char * const gcc_gp2_groups[] = {
6880c3ae641SMartin Botka 	"gpio43", "gpio44",
6890c3ae641SMartin Botka };
6900c3ae641SMartin Botka static const char * const cci_async_groups[] = {
6910c3ae641SMartin Botka 	"gpio44", "gpio47", "gpio48",
6920c3ae641SMartin Botka };
6930c3ae641SMartin Botka static const char * const cci_timer4_groups[] = {
6940c3ae641SMartin Botka 	"gpio44",
6950c3ae641SMartin Botka };
6960c3ae641SMartin Botka static const char * const cci_timer0_groups[] = {
6970c3ae641SMartin Botka 	"gpio45",
6980c3ae641SMartin Botka };
6990c3ae641SMartin Botka static const char * const gcc_gp1_groups[] = {
7000c3ae641SMartin Botka 	"gpio45", "gpio46",
7010c3ae641SMartin Botka };
7020c3ae641SMartin Botka static const char * const cci_timer3_groups[] = {
7030c3ae641SMartin Botka 	"gpio46",
7040c3ae641SMartin Botka };
7050c3ae641SMartin Botka static const char * const wlan1_adc1_groups[] = {
7060c3ae641SMartin Botka 	"gpio47",
7070c3ae641SMartin Botka };
7080c3ae641SMartin Botka static const char * const wlan1_adc0_groups[] = {
7090c3ae641SMartin Botka 	"gpio48",
7100c3ae641SMartin Botka };
7110c3ae641SMartin Botka static const char * const qlink_request_groups[] = {
7120c3ae641SMartin Botka 	"gpio50",
7130c3ae641SMartin Botka };
7140c3ae641SMartin Botka static const char * const qlink_enable_groups[] = {
7150c3ae641SMartin Botka 	"gpio51",
7160c3ae641SMartin Botka };
7170c3ae641SMartin Botka static const char * const pa_indicator_groups[] = {
7180c3ae641SMartin Botka 	"gpio52",
7190c3ae641SMartin Botka };
7200c3ae641SMartin Botka static const char * const nav_pps_groups[] = {
7210c3ae641SMartin Botka 	"gpio52", "gpio55", "gpio56", "gpio58",
7220c3ae641SMartin Botka 	"gpio59",
7230c3ae641SMartin Botka };
7240c3ae641SMartin Botka static const char * const gps_tx_groups[] = {
7250c3ae641SMartin Botka 	"gpio52", "gpio53", "gpio55", "gpio56", "gpio58", "gpio59",
7260c3ae641SMartin Botka };
7270c3ae641SMartin Botka static const char * const gp_pdm0_groups[] = {
7280c3ae641SMartin Botka 	"gpio53", "gpio94",
7290c3ae641SMartin Botka };
7300c3ae641SMartin Botka static const char * const atest_usb13_groups[] = {
7310c3ae641SMartin Botka 	"gpio53",
7320c3ae641SMartin Botka };
7330c3ae641SMartin Botka static const char * const ddr_pxi1_groups[] = {
7340c3ae641SMartin Botka 	"gpio53", "gpio54",
7350c3ae641SMartin Botka };
7360c3ae641SMartin Botka static const char * const atest_usb12_groups[] = {
7370c3ae641SMartin Botka 	"gpio54",
7380c3ae641SMartin Botka };
7390c3ae641SMartin Botka static const char * const cri_trng0_groups[] = {
7400c3ae641SMartin Botka 	"gpio59",
7410c3ae641SMartin Botka };
7420c3ae641SMartin Botka static const char * const cri_trng_groups[] = {
7430c3ae641SMartin Botka 	"gpio60",
7440c3ae641SMartin Botka };
7450c3ae641SMartin Botka static const char * const cri_trng1_groups[] = {
7460c3ae641SMartin Botka 	"gpio61",
7470c3ae641SMartin Botka };
7480c3ae641SMartin Botka static const char * const gp_pdm2_groups[] = {
7490c3ae641SMartin Botka 	"gpio62", "gpio78",
7500c3ae641SMartin Botka };
7510c3ae641SMartin Botka static const char * const sp_cmu_groups[] = {
7520c3ae641SMartin Botka 	"gpio63",
7530c3ae641SMartin Botka };
7540c3ae641SMartin Botka static const char * const atest_usb2_groups[] = {
7550c3ae641SMartin Botka 	"gpio66",
7560c3ae641SMartin Botka };
7570c3ae641SMartin Botka static const char * const atest_usb23_groups[] = {
7580c3ae641SMartin Botka 	"gpio67",
7590c3ae641SMartin Botka };
7600c3ae641SMartin Botka static const char * const uim2_data_groups[] = {
7610c3ae641SMartin Botka 	"gpio72",
7620c3ae641SMartin Botka };
7630c3ae641SMartin Botka static const char * const uim2_clk_groups[] = {
7640c3ae641SMartin Botka 	"gpio73",
7650c3ae641SMartin Botka };
7660c3ae641SMartin Botka static const char * const uim2_reset_groups[] = {
7670c3ae641SMartin Botka 	"gpio74",
7680c3ae641SMartin Botka };
7690c3ae641SMartin Botka static const char * const atest_usb22_groups[] = {
7700c3ae641SMartin Botka 	"gpio74",
7710c3ae641SMartin Botka };
7720c3ae641SMartin Botka static const char * const uim2_present_groups[] = {
7730c3ae641SMartin Botka 	"gpio75",
7740c3ae641SMartin Botka };
7750c3ae641SMartin Botka static const char * const atest_usb21_groups[] = {
7760c3ae641SMartin Botka 	"gpio75",
7770c3ae641SMartin Botka };
7780c3ae641SMartin Botka static const char * const uim1_data_groups[] = {
7790c3ae641SMartin Botka 	"gpio76",
7800c3ae641SMartin Botka };
7810c3ae641SMartin Botka static const char * const atest_usb20_groups[] = {
7820c3ae641SMartin Botka 	"gpio76",
7830c3ae641SMartin Botka };
7840c3ae641SMartin Botka static const char * const uim1_clk_groups[] = {
7850c3ae641SMartin Botka 	"gpio77",
7860c3ae641SMartin Botka };
7870c3ae641SMartin Botka static const char * const uim1_reset_groups[] = {
7880c3ae641SMartin Botka 	"gpio78",
7890c3ae641SMartin Botka };
7900c3ae641SMartin Botka static const char * const uim1_present_groups[] = {
7910c3ae641SMartin Botka 	"gpio79",
7920c3ae641SMartin Botka };
7930c3ae641SMartin Botka static const char * const mdp_vsync_groups[] = {
7940c3ae641SMartin Botka 	"gpio80", "gpio81", "gpio82", "gpio89", "gpio96", "gpio97",
7950c3ae641SMartin Botka };
7960c3ae641SMartin Botka static const char * const copy_gp_groups[] = {
7970c3ae641SMartin Botka 	"gpio85",
7980c3ae641SMartin Botka };
7990c3ae641SMartin Botka static const char * const tsense_pwm_groups[] = {
8000c3ae641SMartin Botka 	"gpio87",
8010c3ae641SMartin Botka };
8020c3ae641SMartin Botka static const char * const mpm_pwr_groups[] = {
8030c3ae641SMartin Botka 	"gpio88",
8040c3ae641SMartin Botka };
8050c3ae641SMartin Botka static const char * const tgu_ch3_groups[] = {
8060c3ae641SMartin Botka 	"gpio88",
8070c3ae641SMartin Botka };
8080c3ae641SMartin Botka static const char * const mdp_vsync0_groups[] = {
8090c3ae641SMartin Botka 	"gpio89",
8100c3ae641SMartin Botka };
8110c3ae641SMartin Botka static const char * const mdp_vsync1_groups[] = {
8120c3ae641SMartin Botka 	"gpio89",
8130c3ae641SMartin Botka };
8140c3ae641SMartin Botka static const char * const mdp_vsync2_groups[] = {
8150c3ae641SMartin Botka 	"gpio89",
8160c3ae641SMartin Botka };
8170c3ae641SMartin Botka static const char * const mdp_vsync3_groups[] = {
8180c3ae641SMartin Botka 	"gpio89",
8190c3ae641SMartin Botka };
8200c3ae641SMartin Botka static const char * const mdp_vsync4_groups[] = {
8210c3ae641SMartin Botka 	"gpio89",
8220c3ae641SMartin Botka };
8230c3ae641SMartin Botka static const char * const mdp_vsync5_groups[] = {
8240c3ae641SMartin Botka 	"gpio89",
8250c3ae641SMartin Botka };
8260c3ae641SMartin Botka static const char * const tgu_ch0_groups[] = {
8270c3ae641SMartin Botka 	"gpio89",
8280c3ae641SMartin Botka };
8290c3ae641SMartin Botka static const char * const tgu_ch1_groups[] = {
8300c3ae641SMartin Botka 	"gpio90",
8310c3ae641SMartin Botka };
8320c3ae641SMartin Botka static const char * const atest_char1_groups[] = {
8330c3ae641SMartin Botka 	"gpio90",
8340c3ae641SMartin Botka };
8350c3ae641SMartin Botka static const char * const vfr_1_groups[] = {
8360c3ae641SMartin Botka 	"gpio91",
8370c3ae641SMartin Botka };
8380c3ae641SMartin Botka static const char * const tgu_ch2_groups[] = {
8390c3ae641SMartin Botka 	"gpio91",
8400c3ae641SMartin Botka };
8410c3ae641SMartin Botka static const char * const atest_char0_groups[] = {
8420c3ae641SMartin Botka 	"gpio92",
8430c3ae641SMartin Botka };
8440c3ae641SMartin Botka static const char * const atest_char2_groups[] = {
8450c3ae641SMartin Botka 	"gpio93",
8460c3ae641SMartin Botka };
8470c3ae641SMartin Botka static const char * const atest_char3_groups[] = {
8480c3ae641SMartin Botka 	"gpio94",
8490c3ae641SMartin Botka };
8500c3ae641SMartin Botka static const char * const ldo_en_groups[] = {
8510c3ae641SMartin Botka 	"gpio96",
8520c3ae641SMartin Botka };
8530c3ae641SMartin Botka static const char * const ldo_update_groups[] = {
8540c3ae641SMartin Botka 	"gpio97",
8550c3ae641SMartin Botka };
8560c3ae641SMartin Botka static const char * const prng_rosc_groups[] = {
8570c3ae641SMartin Botka 	"gpio98", "gpio100",
8580c3ae641SMartin Botka };
8590c3ae641SMartin Botka static const char * const dp_hot_groups[] = {
8600c3ae641SMartin Botka 	"gpio100",
8610c3ae641SMartin Botka };
8620c3ae641SMartin Botka static const char * const debug_hot_groups[] = {
8630c3ae641SMartin Botka 	"gpio101",
8640c3ae641SMartin Botka };
8650c3ae641SMartin Botka static const char * const copy_phase_groups[] = {
8660c3ae641SMartin Botka 	"gpio101",
8670c3ae641SMartin Botka };
8680c3ae641SMartin Botka static const char * const usb_phy_groups[] = {
8690c3ae641SMartin Botka 	"gpio102",
8700c3ae641SMartin Botka };
8710c3ae641SMartin Botka static const char * const atest_char_groups[] = {
8720c3ae641SMartin Botka 	"gpio102",
8730c3ae641SMartin Botka };
8740c3ae641SMartin Botka static const char * const unused1_groups[] = {
8750c3ae641SMartin Botka 	"gpio104",
8760c3ae641SMartin Botka };
8770c3ae641SMartin Botka static const char * const qua_mi2s_groups[] = {
8780c3ae641SMartin Botka 	"gpio104", "gpio106", "gpio107", "gpio108", "gpio110", "gpio111",
8790c3ae641SMartin Botka };
8800c3ae641SMartin Botka static const char * const mss_lte_groups[] = {
8810c3ae641SMartin Botka 	"gpio105", "gpio109",
8820c3ae641SMartin Botka };
8830c3ae641SMartin Botka static const char * const swr_tx_groups[] = {
8840c3ae641SMartin Botka 	"gpio106", "gpio107", "gpio108", "gpio109",
8850c3ae641SMartin Botka };
8860c3ae641SMartin Botka static const char * const aud_sb_groups[] = {
8870c3ae641SMartin Botka 	"gpio106", "gpio107", "gpio108", "gpio109",
8880c3ae641SMartin Botka };
8890c3ae641SMartin Botka static const char * const unused2_groups[] = {
8900c3ae641SMartin Botka 	"gpio109",
8910c3ae641SMartin Botka };
8920c3ae641SMartin Botka static const char * const swr_rx_groups[] = {
8930c3ae641SMartin Botka 	"gpio110", "gpio111", "gpio112",
8940c3ae641SMartin Botka };
8950c3ae641SMartin Botka static const char * const edp_hot_groups[] = {
8960c3ae641SMartin Botka 	"gpio111",
8970c3ae641SMartin Botka };
8980c3ae641SMartin Botka static const char * const audio_ref_groups[] = {
8990c3ae641SMartin Botka 	"gpio112",
9000c3ae641SMartin Botka };
9010c3ae641SMartin Botka static const char * const pri_mi2s_groups[] = {
9020c3ae641SMartin Botka 	"gpio113", "gpio115", "gpio116",
9030c3ae641SMartin Botka };
9040c3ae641SMartin Botka static const char * const pri_mi2s_ws_groups[] = {
9050c3ae641SMartin Botka 	"gpio114",
9060c3ae641SMartin Botka };
9070c3ae641SMartin Botka static const char * const adsp_ext_groups[] = {
9080c3ae641SMartin Botka 	"gpio116",
9090c3ae641SMartin Botka };
9100c3ae641SMartin Botka static const char * const edp_lcd_groups[] = {
9110c3ae641SMartin Botka 	"gpio117",
9120c3ae641SMartin Botka };
9130c3ae641SMartin Botka static const char * const mclk2_groups[] = {
9140c3ae641SMartin Botka 	"gpio118",
9150c3ae641SMartin Botka };
9160c3ae641SMartin Botka static const char * const m_voc_groups[] = {
9170c3ae641SMartin Botka 	"gpio118",
9180c3ae641SMartin Botka };
9190c3ae641SMartin Botka static const char * const mclk1_groups[] = {
9200c3ae641SMartin Botka 	"gpio119",
9210c3ae641SMartin Botka };
9220c3ae641SMartin Botka static const char * const qca_sb_groups[] = {
9230c3ae641SMartin Botka 	"gpio121", "gpio122",
9240c3ae641SMartin Botka };
9250c3ae641SMartin Botka static const char * const qui_mi2s_groups[] = {
9260c3ae641SMartin Botka 	"gpio121", "gpio122", "gpio123", "gpio124",
9270c3ae641SMartin Botka };
9280c3ae641SMartin Botka static const char * const dmic0_clk_groups[] = {
9290c3ae641SMartin Botka 	"gpio125",
9300c3ae641SMartin Botka };
9310c3ae641SMartin Botka static const char * const sec_mi2s_groups[] = {
9320c3ae641SMartin Botka 	"gpio125", "gpio126", "gpio127", "gpio128",
9330c3ae641SMartin Botka };
9340c3ae641SMartin Botka static const char * const dmic0_data_groups[] = {
9350c3ae641SMartin Botka 	"gpio126",
9360c3ae641SMartin Botka };
9370c3ae641SMartin Botka static const char * const dmic1_clk_groups[] = {
9380c3ae641SMartin Botka 	"gpio127",
9390c3ae641SMartin Botka };
9400c3ae641SMartin Botka static const char * const dmic1_data_groups[] = {
9410c3ae641SMartin Botka 	"gpio128",
9420c3ae641SMartin Botka };
9430c3ae641SMartin Botka 
944c7a291dbSRohit Agarwal static const struct pinfunction sm6125_functions[] = {
945c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qup00),
946c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(gpio),
947c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qdss),
948c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qup01),
949c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qup02),
950c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(ddr_pxi0),
951c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(ddr_bist),
952c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(atest_tsens2),
953c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(vsense_trigger),
954c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(atest_usb1),
955c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(gp_pdm1),
956c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(phase_flag),
957c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(dbg_out),
958c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qup14),
959c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(atest_usb11),
960c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(ddr_pxi2),
961c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(atest_usb10),
962c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(jitter_bist),
963c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(ddr_pxi3),
964c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pll_bypassnl),
965c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pll_bist),
966c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qup03),
967c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pll_reset),
968c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(agera_pll),
969c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qdss_cti),
970c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qup04),
971c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(wlan2_adc1),
972c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(wlan2_adc0),
973c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(wsa_clk),
974c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qup13),
975c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(ter_mi2s),
976c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(wsa_data),
977c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qup10),
978c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(gcc_gp3),
979c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qup12),
980c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(sd_write),
981c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qup11),
982c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(cam_mclk),
983c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(atest_tsens),
984c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(cci_i2c),
985c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(cci_timer2),
986c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(cci_timer1),
987c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(gcc_gp2),
988c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(cci_async),
989c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(cci_timer4),
990c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(cci_timer0),
991c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(gcc_gp1),
992c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(cci_timer3),
993c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(wlan1_adc1),
994c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(wlan1_adc0),
995c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qlink_request),
996c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qlink_enable),
997c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pa_indicator),
998c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(nav_pps),
999c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(gps_tx),
1000c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(gp_pdm0),
1001c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(atest_usb13),
1002c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(ddr_pxi1),
1003c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(atest_usb12),
1004c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(cri_trng0),
1005c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(cri_trng),
1006c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(cri_trng1),
1007c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(gp_pdm2),
1008c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(sp_cmu),
1009c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(atest_usb2),
1010c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(atest_usb23),
1011c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(uim2_data),
1012c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(uim2_clk),
1013c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(uim2_reset),
1014c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(atest_usb22),
1015c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(uim2_present),
1016c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(atest_usb21),
1017c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(uim1_data),
1018c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(atest_usb20),
1019c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(uim1_clk),
1020c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(uim1_reset),
1021c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(uim1_present),
1022c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(mdp_vsync),
1023c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(copy_gp),
1024c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(tsense_pwm),
1025c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(mpm_pwr),
1026c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(tgu_ch3),
1027c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(mdp_vsync0),
1028c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(mdp_vsync1),
1029c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(mdp_vsync2),
1030c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(mdp_vsync3),
1031c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(mdp_vsync4),
1032c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(mdp_vsync5),
1033c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(tgu_ch0),
1034c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(tgu_ch1),
1035c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(atest_char1),
1036c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(vfr_1),
1037c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(tgu_ch2),
1038c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(atest_char0),
1039c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(atest_char2),
1040c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(atest_char3),
1041c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(ldo_en),
1042c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(ldo_update),
1043c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(prng_rosc),
1044c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(dp_hot),
1045c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(debug_hot),
1046c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(copy_phase),
1047c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(usb_phy),
1048c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(atest_char),
1049c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(unused1),
1050c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qua_mi2s),
1051c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(mss_lte),
1052c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(swr_tx),
1053c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(aud_sb),
1054c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(unused2),
1055c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(swr_rx),
1056c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(edp_hot),
1057c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(audio_ref),
1058c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pri_mi2s),
1059c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pri_mi2s_ws),
1060c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(adsp_ext),
1061c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(edp_lcd),
1062c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(mclk2),
1063c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(m_voc),
1064c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(mclk1),
1065c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qca_sb),
1066c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qui_mi2s),
1067c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(dmic0_clk),
1068c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(sec_mi2s),
1069c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(dmic0_data),
1070c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(dmic1_clk),
1071c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(dmic1_data),
10720c3ae641SMartin Botka };
10730c3ae641SMartin Botka 
10740c3ae641SMartin Botka  /*
10750c3ae641SMartin Botka  * Every pin is maintained as a single group, and missing or non-existing pin
10760c3ae641SMartin Botka  * would be maintained as dummy group to synchronize pin group index with
10770c3ae641SMartin Botka  * pin descriptor registered with pinctrl core.
10780c3ae641SMartin Botka  * Clients would not be able to request these dummy pin groups.
10790c3ae641SMartin Botka  */
10800c3ae641SMartin Botka static const struct msm_pingroup sm6125_groups[] = {
10810c3ae641SMartin Botka 	[0] = PINGROUP(0, WEST, qup00, _, qdss, _, _, _, _, _, _),
10820c3ae641SMartin Botka 	[1] = PINGROUP(1, WEST, qup00, _, qdss, _, _, _, _, _, _),
10830c3ae641SMartin Botka 	[2] = PINGROUP(2, WEST, qup00, _, qdss, _, _, _, _, _, _),
10840c3ae641SMartin Botka 	[3] = PINGROUP(3, WEST, qup00, _, qdss, _, _, _, _, _, _),
10850c3ae641SMartin Botka 	[4] = PINGROUP(4, WEST, qup01, _, _, _, _, _, _, _, _),
10860c3ae641SMartin Botka 	[5] = PINGROUP(5, WEST, qup01, _, _, _, _, _, _, _, _),
10870c3ae641SMartin Botka 	[6] = PINGROUP(6, WEST, qup02, ddr_pxi0, _, _, _, _, _, _, _),
10880c3ae641SMartin Botka 	[7] = PINGROUP(7, WEST, qup02, ddr_bist, atest_tsens2, vsense_trigger, atest_usb1, ddr_pxi0, _, _, _),
10890c3ae641SMartin Botka 	[8] = PINGROUP(8, WEST, qup02, gp_pdm1, ddr_bist, _, phase_flag, _, _, _, _),
10900c3ae641SMartin Botka 	[9] = PINGROUP(9, WEST, qup02, ddr_bist, dbg_out, phase_flag, _, _, _, _, _),
10910c3ae641SMartin Botka 	[10] = PINGROUP(10, EAST, qup14, ddr_bist, atest_usb11, ddr_pxi2, _, _, _, _, _),
10920c3ae641SMartin Botka 	[11] = PINGROUP(11, EAST, qup14, atest_usb10, ddr_pxi2, _, _, _, _, _, _),
10930c3ae641SMartin Botka 	[12] = PINGROUP(12, EAST, qup14, jitter_bist, ddr_pxi3, _, _, _, _, _, _),
10940c3ae641SMartin Botka 	[13] = PINGROUP(13, EAST, qup14, pll_bypassnl, pll_bist, _, ddr_pxi3, _, _, _, _),
10950c3ae641SMartin Botka 	[14] = PINGROUP(14, WEST, qup03, qup03, pll_reset, agera_pll, _, qdss_cti, _, _, _),
10960c3ae641SMartin Botka 	[15] = PINGROUP(15, WEST, qup03, qup03, qdss_cti, _, _, _, _, _, _),
10970c3ae641SMartin Botka 	[16] = PINGROUP(16, WEST, qup04, qup04, _, wlan2_adc1, _, _, _, _, _),
10980c3ae641SMartin Botka 	[17] = PINGROUP(17, WEST, qup04, qup04, _, wlan2_adc0, _, _, _, _, _),
10990c3ae641SMartin Botka 	[18] = PINGROUP(18, EAST, wsa_clk, qup13, ter_mi2s, _, _, _, _, _, _),
11000c3ae641SMartin Botka 	[19] = PINGROUP(19, EAST, wsa_data, qup13, ter_mi2s, _, _, _, _, _, _),
11010c3ae641SMartin Botka 	[20] = PINGROUP(20, EAST, qup13, ter_mi2s, qdss, _, _, _, _, _, _),
11020c3ae641SMartin Botka 	[21] = PINGROUP(21, EAST, qup13, ter_mi2s, _, qdss, _, _, _, _, _),
11030c3ae641SMartin Botka 	[22] = PINGROUP(22, WEST, qup10, gcc_gp3, _, _, _, _, _, _, _),
11040c3ae641SMartin Botka 	[23] = PINGROUP(23, WEST, qup10, _, phase_flag, _, _, _, _, _, _),
11050c3ae641SMartin Botka 	[24] = PINGROUP(24, WEST, qup10, _, phase_flag, _, _, _, _, _, _),
11060c3ae641SMartin Botka 	[25] = PINGROUP(25, WEST, qup10, _, phase_flag, _, _, _, _, _, _),
11070c3ae641SMartin Botka 	[26] = PINGROUP(26, WEST, qup10, _, phase_flag, _, _, _, _, _, _),
11080c3ae641SMartin Botka 	[27] = PINGROUP(27, WEST, qup10, _, _, _, _, _, _, _, _),
11090c3ae641SMartin Botka 	[28] = PINGROUP(28, WEST, qup12, _, phase_flag, _, _, _, _, _, _),
11100c3ae641SMartin Botka 	[29] = PINGROUP(29, WEST, qup12, sd_write, _, phase_flag, _, _, _, _, _),
11110c3ae641SMartin Botka 	[30] = PINGROUP(30, WEST, qup11, _, phase_flag, _, _, _, _, _, _),
11120c3ae641SMartin Botka 	[31] = PINGROUP(31, WEST, qup11, jitter_bist, _, _, _, _, _, _, _),
11130c3ae641SMartin Botka 	[32] = PINGROUP(32, WEST, qup11, pll_bist, _, _, _, _, _, _, _),
11140c3ae641SMartin Botka 	[33] = PINGROUP(33, WEST, qup11, agera_pll, _, _, _, _, _, _, _),
11150c3ae641SMartin Botka 	[34] = PINGROUP(34, SOUTH, cam_mclk, _, qdss, atest_tsens, _, _, _, _, _),
11160c3ae641SMartin Botka 	[35] = PINGROUP(35, SOUTH, cam_mclk, _, qdss, _, _, _, _, _, _),
11170c3ae641SMartin Botka 	[36] = PINGROUP(36, SOUTH, cam_mclk, _, qdss, _, _, _, _, _, _),
11180c3ae641SMartin Botka 	[37] = PINGROUP(37, SOUTH, cci_i2c, _, _, _, _, _, _, _, _),
11190c3ae641SMartin Botka 	[38] = PINGROUP(38, EAST, cci_i2c, _, _, _, _, _, _, _, _),
11200c3ae641SMartin Botka 	[39] = PINGROUP(39, EAST, cci_i2c, _, _, _, _, _, _, _, _),
11210c3ae641SMartin Botka 	[40] = PINGROUP(40, EAST, cci_i2c, _, _, _, _, _, _, _, _),
11220c3ae641SMartin Botka 	[41] = PINGROUP(41, EAST, _, qdss, _, _, _, _, _, _, _),
11230c3ae641SMartin Botka 	[42] = PINGROUP(42, EAST, cci_timer2, _, qdss, _, _, _, _, _, _),
11240c3ae641SMartin Botka 	[43] = PINGROUP(43, EAST, cci_timer1, _, gcc_gp2, _, qdss, _, _, _, _),
11250c3ae641SMartin Botka 	[44] = PINGROUP(44, SOUTH, cci_async, cci_timer4, _, gcc_gp2, _, qdss, cam_mclk, _, _),
11260c3ae641SMartin Botka 	[45] = PINGROUP(45, SOUTH, cci_timer0, _, gcc_gp1, qdss, _, _, _, _, _),
11270c3ae641SMartin Botka 	[46] = PINGROUP(46, SOUTH, cci_timer3, _, gcc_gp1, _, qdss, _, _, _, _),
11280c3ae641SMartin Botka 	[47] = PINGROUP(47, SOUTH, cci_async, _, qdss, wlan1_adc1, _, _, _, _, _),
11290c3ae641SMartin Botka 	[48] = PINGROUP(48, SOUTH, cci_async, _, qdss, wlan1_adc0, _, _, _, _, _),
11300c3ae641SMartin Botka 	[49] = PINGROUP(49, SOUTH, qdss, _, _, _, _, _, _, _, _),
11310c3ae641SMartin Botka 	[50] = PINGROUP(50, SOUTH, qlink_request, _, _, _, _, _, _, _, _),
11320c3ae641SMartin Botka 	[51] = PINGROUP(51, SOUTH, qlink_enable, _, _, _, _, _, _, _, _),
11330c3ae641SMartin Botka 	[52] = PINGROUP(52, SOUTH, pa_indicator, nav_pps, nav_pps, gps_tx, _, _, _, _, _),
11340c3ae641SMartin Botka 	[53] = PINGROUP(53, SOUTH, _, gps_tx, gp_pdm0, _, phase_flag, atest_usb13, ddr_pxi1, _, _),
11350c3ae641SMartin Botka 	[54] = PINGROUP(54, SOUTH, _, _, phase_flag, atest_usb12, ddr_pxi1, _, _, _, _),
11360c3ae641SMartin Botka 	[55] = PINGROUP(55, SOUTH, _, nav_pps, nav_pps, gps_tx, _, phase_flag, _, _, _),
11370c3ae641SMartin Botka 	[56] = PINGROUP(56, SOUTH, _, nav_pps, gps_tx, nav_pps, phase_flag, _, _, _, _),
11380c3ae641SMartin Botka 	[57] = PINGROUP(57, SOUTH, _, phase_flag, _, _, _, _, _, _, _),
11390c3ae641SMartin Botka 	[58] = PINGROUP(58, SOUTH, _, nav_pps, nav_pps, gps_tx, gcc_gp3, _, phase_flag, _, _),
11400c3ae641SMartin Botka 	[59] = PINGROUP(59, SOUTH, _, nav_pps, nav_pps, gps_tx, cri_trng0, _, phase_flag, _, _),
11410c3ae641SMartin Botka 	[60] = PINGROUP(60, SOUTH, _, cri_trng, _, phase_flag, _, _, _, _, _),
11420c3ae641SMartin Botka 	[61] = PINGROUP(61, SOUTH, _, cri_trng1, _, phase_flag, _, _, _, _, _),
11430c3ae641SMartin Botka 	[62] = PINGROUP(62, SOUTH, _, _, gp_pdm2, _, phase_flag, _, _, _, _),
11440c3ae641SMartin Botka 	[63] = PINGROUP(63, SOUTH, _, sp_cmu, _, _, _, _, _, _, _),
11450c3ae641SMartin Botka 	[64] = PINGROUP(64, SOUTH, _, _, _, _, _, _, _, _, _),
11460c3ae641SMartin Botka 	[65] = PINGROUP(65, SOUTH, _, gp_pdm1, _, _, _, _, _, _, _),
11470c3ae641SMartin Botka 	[66] = PINGROUP(66, SOUTH, _, _, atest_usb2, _, _, _, _, _, _),
11480c3ae641SMartin Botka 	[67] = PINGROUP(67, SOUTH, _, _, atest_usb23, _, _, _, _, _, _),
11490c3ae641SMartin Botka 	[68] = PINGROUP(68, SOUTH, _, _, _, _, _, _, _, _, _),
11500c3ae641SMartin Botka 	[69] = PINGROUP(69, SOUTH, _, _, _, _, _, _, _, _, _),
11510c3ae641SMartin Botka 	[70] = PINGROUP(70, SOUTH, _, _, _, _, _, _, _, _, _),
11520c3ae641SMartin Botka 	[71] = PINGROUP(71, SOUTH, _, _, _, _, _, _, _, _, _),
11530c3ae641SMartin Botka 	[72] = PINGROUP(72, SOUTH, uim2_data, _, _, _, _, _, _, _, _),
11540c3ae641SMartin Botka 	[73] = PINGROUP(73, SOUTH, uim2_clk, _, _, _, _, _, _, _, _),
11550c3ae641SMartin Botka 	[74] = PINGROUP(74, SOUTH, uim2_reset, _, atest_usb22, _, _, _, _, _, _),
11560c3ae641SMartin Botka 	[75] = PINGROUP(75, SOUTH, uim2_present, _, atest_usb21, _, _, _, _, _, _),
11570c3ae641SMartin Botka 	[76] = PINGROUP(76, SOUTH, uim1_data, _, atest_usb20, _, _, _, _, _, _),
11580c3ae641SMartin Botka 	[77] = PINGROUP(77, SOUTH, uim1_clk, _, _, _, _, _, _, _, _),
11590c3ae641SMartin Botka 	[78] = PINGROUP(78, SOUTH, uim1_reset, gp_pdm2, _, _, _, _, _, _, _),
11600c3ae641SMartin Botka 	[79] = PINGROUP(79, SOUTH, uim1_present, _, _, _, _, _, _, _, _),
11610c3ae641SMartin Botka 	[80] = PINGROUP(80, SOUTH, mdp_vsync, _, phase_flag, qdss, _, _, _, _, _),
11620c3ae641SMartin Botka 	[81] = PINGROUP(81, SOUTH, mdp_vsync, _, phase_flag, qdss, _, _, _, _, _),
11630c3ae641SMartin Botka 	[82] = PINGROUP(82, SOUTH, mdp_vsync, _, phase_flag, qdss, _, _, _, _, _),
11640c3ae641SMartin Botka 	[83] = PINGROUP(83, SOUTH, _, phase_flag, qdss, _, _, _, _, _, _),
11650c3ae641SMartin Botka 	[84] = PINGROUP(84, SOUTH, _, phase_flag, qdss, _, _, _, _, _, _),
11660c3ae641SMartin Botka 	[85] = PINGROUP(85, SOUTH, copy_gp, _, qdss, _, _, _, _, _, _),
11670c3ae641SMartin Botka 	[86] = PINGROUP(86, SOUTH, _, qdss, _, _, _, _, _, _, _),
11680c3ae641SMartin Botka 	[87] = PINGROUP(87, WEST, tsense_pwm, _, _, _, _, _, _, _, _),
11690c3ae641SMartin Botka 	[88] = PINGROUP(88, WEST, mpm_pwr, tgu_ch3, _, phase_flag, _, _, _, _, _),
11700c3ae641SMartin Botka 	[89] = PINGROUP(89, WEST, mdp_vsync, mdp_vsync0, mdp_vsync1, mdp_vsync2, mdp_vsync3, mdp_vsync4, mdp_vsync5, tgu_ch0, _),
11710c3ae641SMartin Botka 	[90] = PINGROUP(90, WEST, tgu_ch1, atest_char1, _, _, _, _, _, _, _),
11720c3ae641SMartin Botka 	[91] = PINGROUP(91, WEST, vfr_1, tgu_ch2, _, phase_flag, qdss, _, _, _, _),
11730c3ae641SMartin Botka 	[92] = PINGROUP(92, WEST, qdss, atest_char0, _, _, _, _, _, _, _),
11740c3ae641SMartin Botka 	[93] = PINGROUP(93, WEST, _, phase_flag, atest_char2, _, _, _, _, _, _),
11750c3ae641SMartin Botka 	[94] = PINGROUP(94, SOUTH, gp_pdm0, _, qdss, atest_char3, _, _, _, _, _),
11760c3ae641SMartin Botka 	[95] = PINGROUP(95, SOUTH, qdss_cti, _, _, _, _, _, _, _, _),
11770c3ae641SMartin Botka 	[96] = PINGROUP(96, SOUTH, mdp_vsync, ldo_en, qdss, _, _, _, _, _, _),
11780c3ae641SMartin Botka 	[97] = PINGROUP(97, SOUTH, mdp_vsync, ldo_update, _, _, _, _, _, _, _),
11790c3ae641SMartin Botka 	[98] = PINGROUP(98, SOUTH, _, phase_flag, prng_rosc, _, _, _, _, _, _),
11800c3ae641SMartin Botka 	[99] = PINGROUP(99, SOUTH, _, _, _, _, _, _, _, _, _),
11810c3ae641SMartin Botka 	[100] = PINGROUP(100, SOUTH, dp_hot, prng_rosc, qdss, _, _, _, _, _, _),
11820c3ae641SMartin Botka 	[101] = PINGROUP(101, SOUTH, debug_hot, copy_phase, qdss_cti, _, _, _, _, _, _),
11830c3ae641SMartin Botka 	[102] = PINGROUP(102, SOUTH, usb_phy, _, qdss, atest_char, _, _, _, _, _),
11840c3ae641SMartin Botka 	[103] = PINGROUP(103, SOUTH, _, _, _, _, _, _, _, _, _),
11850c3ae641SMartin Botka 	[104] = PINGROUP(104, EAST, unused1, _, qua_mi2s, _, _, _, _, _, _),
11860c3ae641SMartin Botka 	[105] = PINGROUP(105, EAST, mss_lte, _, _, _, _, _, _, _, _),
11870c3ae641SMartin Botka 	[106] = PINGROUP(106, EAST, swr_tx, aud_sb, qua_mi2s, _, qdss_cti, _, _, _, _),
11880c3ae641SMartin Botka 	[107] = PINGROUP(107, EAST, swr_tx, aud_sb, qua_mi2s, _, qdss_cti, _, _, _, _),
11890c3ae641SMartin Botka 	[108] = PINGROUP(108, EAST, swr_tx, aud_sb, qua_mi2s, _, _, _, _, _, _),
11900c3ae641SMartin Botka 	[109] = PINGROUP(109, EAST, swr_tx, aud_sb, unused2, _, mss_lte, _, _, _, _),
11910c3ae641SMartin Botka 	[110] = PINGROUP(110, EAST, swr_rx, qua_mi2s, _, qdss_cti, _, _, _, _, _),
11920c3ae641SMartin Botka 	[111] = PINGROUP(111, EAST, swr_rx, qua_mi2s, edp_hot, _, qdss_cti, _, _, _, _),
11930c3ae641SMartin Botka 	[112] = PINGROUP(112, EAST, swr_rx, audio_ref, _, _, _, _, _, _, _),
11940c3ae641SMartin Botka 	[113] = PINGROUP(113, EAST, pri_mi2s, _, _, _, _, _, _, _, _),
11950c3ae641SMartin Botka 	[114] = PINGROUP(114, EAST, pri_mi2s_ws, qdss, _, _, _, _, _, _, _),
11960c3ae641SMartin Botka 	[115] = PINGROUP(115, EAST, pri_mi2s, qdss, _, _, _, _, _, _, _),
11970c3ae641SMartin Botka 	[116] = PINGROUP(116, EAST, pri_mi2s, adsp_ext, qdss, _, _, _, _, _, _),
11980c3ae641SMartin Botka 	[117] = PINGROUP(117, SOUTH, edp_lcd, qdss, _, _, _, _, _, _, _),
11990c3ae641SMartin Botka 	[118] = PINGROUP(118, SOUTH, mclk2, m_voc, qdss, _, _, _, _, _, _),
12000c3ae641SMartin Botka 	[119] = PINGROUP(119, SOUTH, mclk1, _, _, _, _, _, _, _, _),
12010c3ae641SMartin Botka 	[120] = PINGROUP(120, SOUTH, _, _, _, _, _, _, _, _, _),
12020c3ae641SMartin Botka 	[121] = PINGROUP(121, EAST, qca_sb, qui_mi2s, _, _, _, _, _, _, _),
12030c3ae641SMartin Botka 	[122] = PINGROUP(122, EAST, qca_sb, qui_mi2s, _, _, _, _, _, _, _),
12040c3ae641SMartin Botka 	[123] = PINGROUP(123, EAST, qui_mi2s, _, _, _, _, _, _, _, _),
12050c3ae641SMartin Botka 	[124] = PINGROUP(124, EAST, qui_mi2s, _, _, _, _, _, _, _, _),
12060c3ae641SMartin Botka 	[125] = PINGROUP(125, EAST, dmic0_clk, sec_mi2s, _, _, _, _, _, _, _),
12070c3ae641SMartin Botka 	[126] = PINGROUP(126, EAST, dmic0_data, sec_mi2s, _, _, _, _, _, _, _),
12080c3ae641SMartin Botka 	[127] = PINGROUP(127, EAST, dmic1_clk, sec_mi2s, _, _, _, _, _, _, _),
12090c3ae641SMartin Botka 	[128] = PINGROUP(128, EAST, dmic1_data, sec_mi2s, _, _, _, _, _, _, _),
12100c3ae641SMartin Botka 	[129] = PINGROUP(129, SOUTH, _, phase_flag, _, _, _, _, _, _, _),
12110c3ae641SMartin Botka 	[130] = PINGROUP(130, SOUTH, phase_flag, _, _, _, _, _, _, _, _),
12120c3ae641SMartin Botka 	[131] = PINGROUP(131, SOUTH, phase_flag, _, _, _, _, _, _, _, _),
12130c3ae641SMartin Botka 	[132] = PINGROUP(132, SOUTH, _, _, _, _, _, _, _, _, _),
12140c3ae641SMartin Botka 	[133] = UFS_RESET(ufs_reset, 0x190000),
12150c3ae641SMartin Botka 	[134] = SDC_QDSD_PINGROUP(sdc1_rclk, WEST, 0x18d000, 15, 0),
12160c3ae641SMartin Botka 	[135] = SDC_QDSD_PINGROUP(sdc1_clk, WEST, 0x18d000, 13, 6),
12170c3ae641SMartin Botka 	[136] = SDC_QDSD_PINGROUP(sdc1_cmd, WEST, 0x18d000, 11, 3),
12180c3ae641SMartin Botka 	[137] = SDC_QDSD_PINGROUP(sdc1_data, WEST, 0x18d000, 9, 0),
12190c3ae641SMartin Botka 	[138] = SDC_QDSD_PINGROUP(sdc2_clk, SOUTH, 0x58b000, 14, 6),
12200c3ae641SMartin Botka 	[139] = SDC_QDSD_PINGROUP(sdc2_cmd, SOUTH, 0x58b000, 11, 3),
12210c3ae641SMartin Botka 	[140] = SDC_QDSD_PINGROUP(sdc2_data, SOUTH, 0x58b000, 9, 0),
12220c3ae641SMartin Botka };
12230c3ae641SMartin Botka 
12240c3ae641SMartin Botka static const struct msm_pinctrl_soc_data sm6125_tlmm = {
12250c3ae641SMartin Botka 	.pins = sm6125_pins,
12260c3ae641SMartin Botka 	.npins = ARRAY_SIZE(sm6125_pins),
12270c3ae641SMartin Botka 	.functions = sm6125_functions,
12280c3ae641SMartin Botka 	.nfunctions = ARRAY_SIZE(sm6125_functions),
12290c3ae641SMartin Botka 	.groups = sm6125_groups,
12300c3ae641SMartin Botka 	.ngroups = ARRAY_SIZE(sm6125_groups),
12310c3ae641SMartin Botka 	.ngpios = 134,
12320c3ae641SMartin Botka 	.tiles = sm6125_tiles,
12330c3ae641SMartin Botka 	.ntiles = ARRAY_SIZE(sm6125_tiles),
12340c3ae641SMartin Botka };
12350c3ae641SMartin Botka 
sm6125_tlmm_probe(struct platform_device * pdev)12360c3ae641SMartin Botka static int sm6125_tlmm_probe(struct platform_device *pdev)
12370c3ae641SMartin Botka {
12380c3ae641SMartin Botka 	return msm_pinctrl_probe(pdev, &sm6125_tlmm);
12390c3ae641SMartin Botka }
12400c3ae641SMartin Botka 
12410c3ae641SMartin Botka static const struct of_device_id sm6125_tlmm_of_match[] = {
12420c3ae641SMartin Botka 	{ .compatible = "qcom,sm6125-tlmm", },
12430c3ae641SMartin Botka 	{ },
12440c3ae641SMartin Botka };
12450c3ae641SMartin Botka 
12460c3ae641SMartin Botka static struct platform_driver sm6125_tlmm_driver = {
12470c3ae641SMartin Botka 	.driver = {
12480c3ae641SMartin Botka 		.name = "sm6125-tlmm",
12490c3ae641SMartin Botka 		.of_match_table = sm6125_tlmm_of_match,
12500c3ae641SMartin Botka 	},
12510c3ae641SMartin Botka 	.probe = sm6125_tlmm_probe,
12520c3ae641SMartin Botka 	.remove = msm_pinctrl_remove,
12530c3ae641SMartin Botka };
12540c3ae641SMartin Botka 
sm6125_tlmm_init(void)12550c3ae641SMartin Botka static int __init sm6125_tlmm_init(void)
12560c3ae641SMartin Botka {
12570c3ae641SMartin Botka 	return platform_driver_register(&sm6125_tlmm_driver);
12580c3ae641SMartin Botka }
12590c3ae641SMartin Botka arch_initcall(sm6125_tlmm_init);
12600c3ae641SMartin Botka 
sm6125_tlmm_exit(void)12610c3ae641SMartin Botka static void __exit sm6125_tlmm_exit(void)
12620c3ae641SMartin Botka {
12630c3ae641SMartin Botka 	platform_driver_unregister(&sm6125_tlmm_driver);
12640c3ae641SMartin Botka }
12650c3ae641SMartin Botka module_exit(sm6125_tlmm_exit);
12660c3ae641SMartin Botka 
12670c3ae641SMartin Botka MODULE_DESCRIPTION("QTI sm6125 TLMM driver");
12680c3ae641SMartin Botka MODULE_LICENSE("GPL v2");
12690c3ae641SMartin Botka MODULE_DEVICE_TABLE(of, sm6125_tlmm_of_match);
1270