xref: /linux/drivers/pinctrl/qcom/pinctrl-qcs8300.c (revision 9cc7d5904bab74f54aad4948a04535c1f07c74d8)
10c4cd2ccSJingyi Wang // SPDX-License-Identifier: GPL-2.0-only
20c4cd2ccSJingyi Wang /*
30c4cd2ccSJingyi Wang  * Copyright (c) 2024, Qualcomm Innovation Center, Inc. All rights reserved.
40c4cd2ccSJingyi Wang  */
50c4cd2ccSJingyi Wang 
60c4cd2ccSJingyi Wang #include <linux/module.h>
70c4cd2ccSJingyi Wang #include <linux/of.h>
80c4cd2ccSJingyi Wang #include <linux/platform_device.h>
90c4cd2ccSJingyi Wang 
100c4cd2ccSJingyi Wang #include "pinctrl-msm.h"
110c4cd2ccSJingyi Wang 
120c4cd2ccSJingyi Wang #define REG_SIZE 0x1000
130c4cd2ccSJingyi Wang #define PINGROUP(id, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11)\
140c4cd2ccSJingyi Wang 	{						\
150c4cd2ccSJingyi Wang 		.grp = PINCTRL_PINGROUP("gpio" #id,	\
160c4cd2ccSJingyi Wang 			gpio##id##_pins,		\
170c4cd2ccSJingyi Wang 			ARRAY_SIZE(gpio##id##_pins)),	\
180c4cd2ccSJingyi Wang 		.funcs = (int[]){			\
190c4cd2ccSJingyi Wang 			msm_mux_gpio, /* gpio mode */	\
200c4cd2ccSJingyi Wang 			msm_mux_##f1,			\
210c4cd2ccSJingyi Wang 			msm_mux_##f2,			\
220c4cd2ccSJingyi Wang 			msm_mux_##f3,			\
230c4cd2ccSJingyi Wang 			msm_mux_##f4,			\
240c4cd2ccSJingyi Wang 			msm_mux_##f5,			\
250c4cd2ccSJingyi Wang 			msm_mux_##f6,			\
260c4cd2ccSJingyi Wang 			msm_mux_##f7,			\
270c4cd2ccSJingyi Wang 			msm_mux_##f8,			\
280c4cd2ccSJingyi Wang 			msm_mux_##f9,			\
290c4cd2ccSJingyi Wang 			msm_mux_##f10,			\
300c4cd2ccSJingyi Wang 			msm_mux_##f11 /* egpio mode */	\
310c4cd2ccSJingyi Wang 		},					\
320c4cd2ccSJingyi Wang 		.nfuncs = 12,				\
330c4cd2ccSJingyi Wang 		.ctl_reg = REG_SIZE * id,		\
340c4cd2ccSJingyi Wang 		.io_reg = 0x4 + REG_SIZE * id,		\
350c4cd2ccSJingyi Wang 		.intr_cfg_reg = 0x8 + REG_SIZE * id,	\
360c4cd2ccSJingyi Wang 		.intr_status_reg = 0xc + REG_SIZE * id,	\
370c4cd2ccSJingyi Wang 		.intr_target_reg = 0x8 + REG_SIZE * id,	\
380c4cd2ccSJingyi Wang 		.mux_bit = 2,			\
390c4cd2ccSJingyi Wang 		.pull_bit = 0,			\
400c4cd2ccSJingyi Wang 		.drv_bit = 6,			\
410c4cd2ccSJingyi Wang 		.egpio_enable = 12,		\
420c4cd2ccSJingyi Wang 		.egpio_present = 11,		\
430c4cd2ccSJingyi Wang 		.oe_bit = 9,			\
440c4cd2ccSJingyi Wang 		.in_bit = 0,			\
450c4cd2ccSJingyi Wang 		.out_bit = 1,			\
460c4cd2ccSJingyi Wang 		.intr_enable_bit = 0,		\
470c4cd2ccSJingyi Wang 		.intr_status_bit = 0,		\
480c4cd2ccSJingyi Wang 		.intr_target_bit = 5,		\
490c4cd2ccSJingyi Wang 		.intr_target_kpss_val = 3,	\
500c4cd2ccSJingyi Wang 		.intr_raw_status_bit = 4,	\
510c4cd2ccSJingyi Wang 		.intr_polarity_bit = 1,		\
520c4cd2ccSJingyi Wang 		.intr_detection_bit = 2,	\
530c4cd2ccSJingyi Wang 		.intr_detection_width = 2,	\
540c4cd2ccSJingyi Wang 	}
550c4cd2ccSJingyi Wang 
560c4cd2ccSJingyi Wang #define SDC_QDSD_PINGROUP(pg_name, ctl, pull, drv)	\
570c4cd2ccSJingyi Wang 	{						\
580c4cd2ccSJingyi Wang 		.grp = PINCTRL_PINGROUP(#pg_name,	\
590c4cd2ccSJingyi Wang 			pg_name##_pins,			\
600c4cd2ccSJingyi Wang 			ARRAY_SIZE(pg_name##_pins)),	\
610c4cd2ccSJingyi Wang 		.ctl_reg = ctl,				\
620c4cd2ccSJingyi Wang 		.io_reg = 0,				\
630c4cd2ccSJingyi Wang 		.intr_cfg_reg = 0,			\
640c4cd2ccSJingyi Wang 		.intr_status_reg = 0,			\
650c4cd2ccSJingyi Wang 		.intr_target_reg = 0,			\
660c4cd2ccSJingyi Wang 		.mux_bit = -1,				\
670c4cd2ccSJingyi Wang 		.pull_bit = pull,			\
680c4cd2ccSJingyi Wang 		.drv_bit = drv,				\
690c4cd2ccSJingyi Wang 		.oe_bit = -1,				\
700c4cd2ccSJingyi Wang 		.in_bit = -1,				\
710c4cd2ccSJingyi Wang 		.out_bit = -1,				\
720c4cd2ccSJingyi Wang 		.intr_enable_bit = -1,			\
730c4cd2ccSJingyi Wang 		.intr_status_bit = -1,			\
740c4cd2ccSJingyi Wang 		.intr_target_bit = -1,			\
750c4cd2ccSJingyi Wang 		.intr_raw_status_bit = -1,		\
760c4cd2ccSJingyi Wang 		.intr_polarity_bit = -1,		\
770c4cd2ccSJingyi Wang 		.intr_detection_bit = -1,		\
780c4cd2ccSJingyi Wang 		.intr_detection_width = -1,		\
790c4cd2ccSJingyi Wang 	}
800c4cd2ccSJingyi Wang 
810c4cd2ccSJingyi Wang #define UFS_RESET(pg_name, offset)			\
820c4cd2ccSJingyi Wang 	{						\
830c4cd2ccSJingyi Wang 		.grp = PINCTRL_PINGROUP(#pg_name,	\
840c4cd2ccSJingyi Wang 			pg_name##_pins,			\
850c4cd2ccSJingyi Wang 			ARRAY_SIZE(pg_name##_pins)),	\
860c4cd2ccSJingyi Wang 		.ctl_reg = offset,			\
870c4cd2ccSJingyi Wang 		.io_reg = offset + 0x4,			\
880c4cd2ccSJingyi Wang 		.intr_cfg_reg = 0,			\
890c4cd2ccSJingyi Wang 		.intr_status_reg = 0,			\
900c4cd2ccSJingyi Wang 		.intr_target_reg = 0,			\
910c4cd2ccSJingyi Wang 		.mux_bit = -1,				\
920c4cd2ccSJingyi Wang 		.pull_bit = 3,				\
930c4cd2ccSJingyi Wang 		.drv_bit = 0,				\
940c4cd2ccSJingyi Wang 		.oe_bit = -1,				\
950c4cd2ccSJingyi Wang 		.in_bit = -1,				\
960c4cd2ccSJingyi Wang 		.out_bit = 0,				\
970c4cd2ccSJingyi Wang 		.intr_enable_bit = -1,			\
980c4cd2ccSJingyi Wang 		.intr_status_bit = -1,			\
990c4cd2ccSJingyi Wang 		.intr_target_bit = -1,			\
1000c4cd2ccSJingyi Wang 		.intr_raw_status_bit = -1,		\
1010c4cd2ccSJingyi Wang 		.intr_polarity_bit = -1,		\
1020c4cd2ccSJingyi Wang 		.intr_detection_bit = -1,		\
1030c4cd2ccSJingyi Wang 		.intr_detection_width = -1,		\
1040c4cd2ccSJingyi Wang 	}
1050c4cd2ccSJingyi Wang 
1060c4cd2ccSJingyi Wang #define QUP_I3C(qup_mode, qup_offset)			\
1070c4cd2ccSJingyi Wang 	{						\
1080c4cd2ccSJingyi Wang 		.mode = qup_mode,			\
1090c4cd2ccSJingyi Wang 		.offset = qup_offset,			\
1100c4cd2ccSJingyi Wang 	}
1110c4cd2ccSJingyi Wang 
1120c4cd2ccSJingyi Wang #define QUP_I3C_6_MODE_OFFSET	0xaf000
1130c4cd2ccSJingyi Wang #define QUP_I3C_7_MODE_OFFSET	0xb0000
1140c4cd2ccSJingyi Wang #define QUP_I3C_13_MODE_OFFSET	0xb1000
1150c4cd2ccSJingyi Wang #define QUP_I3C_14_MODE_OFFSET	0xb2000
1160c4cd2ccSJingyi Wang 
1170c4cd2ccSJingyi Wang static const struct pinctrl_pin_desc qcs8300_pins[] = {
1180c4cd2ccSJingyi Wang 	PINCTRL_PIN(0, "GPIO_0"),
1190c4cd2ccSJingyi Wang 	PINCTRL_PIN(1, "GPIO_1"),
1200c4cd2ccSJingyi Wang 	PINCTRL_PIN(2, "GPIO_2"),
1210c4cd2ccSJingyi Wang 	PINCTRL_PIN(3, "GPIO_3"),
1220c4cd2ccSJingyi Wang 	PINCTRL_PIN(4, "GPIO_4"),
1230c4cd2ccSJingyi Wang 	PINCTRL_PIN(5, "GPIO_5"),
1240c4cd2ccSJingyi Wang 	PINCTRL_PIN(6, "GPIO_6"),
1250c4cd2ccSJingyi Wang 	PINCTRL_PIN(7, "GPIO_7"),
1260c4cd2ccSJingyi Wang 	PINCTRL_PIN(8, "GPIO_8"),
1270c4cd2ccSJingyi Wang 	PINCTRL_PIN(9, "GPIO_9"),
1280c4cd2ccSJingyi Wang 	PINCTRL_PIN(10, "GPIO_10"),
1290c4cd2ccSJingyi Wang 	PINCTRL_PIN(11, "GPIO_11"),
1300c4cd2ccSJingyi Wang 	PINCTRL_PIN(12, "GPIO_12"),
1310c4cd2ccSJingyi Wang 	PINCTRL_PIN(13, "GPIO_13"),
1320c4cd2ccSJingyi Wang 	PINCTRL_PIN(14, "GPIO_14"),
1330c4cd2ccSJingyi Wang 	PINCTRL_PIN(15, "GPIO_15"),
1340c4cd2ccSJingyi Wang 	PINCTRL_PIN(16, "GPIO_16"),
1350c4cd2ccSJingyi Wang 	PINCTRL_PIN(17, "GPIO_17"),
1360c4cd2ccSJingyi Wang 	PINCTRL_PIN(18, "GPIO_18"),
1370c4cd2ccSJingyi Wang 	PINCTRL_PIN(19, "GPIO_19"),
1380c4cd2ccSJingyi Wang 	PINCTRL_PIN(20, "GPIO_20"),
1390c4cd2ccSJingyi Wang 	PINCTRL_PIN(21, "GPIO_21"),
1400c4cd2ccSJingyi Wang 	PINCTRL_PIN(22, "GPIO_22"),
1410c4cd2ccSJingyi Wang 	PINCTRL_PIN(23, "GPIO_23"),
1420c4cd2ccSJingyi Wang 	PINCTRL_PIN(24, "GPIO_24"),
1430c4cd2ccSJingyi Wang 	PINCTRL_PIN(25, "GPIO_25"),
1440c4cd2ccSJingyi Wang 	PINCTRL_PIN(26, "GPIO_26"),
1450c4cd2ccSJingyi Wang 	PINCTRL_PIN(27, "GPIO_27"),
1460c4cd2ccSJingyi Wang 	PINCTRL_PIN(28, "GPIO_28"),
1470c4cd2ccSJingyi Wang 	PINCTRL_PIN(29, "GPIO_29"),
1480c4cd2ccSJingyi Wang 	PINCTRL_PIN(30, "GPIO_30"),
1490c4cd2ccSJingyi Wang 	PINCTRL_PIN(31, "GPIO_31"),
1500c4cd2ccSJingyi Wang 	PINCTRL_PIN(32, "GPIO_32"),
1510c4cd2ccSJingyi Wang 	PINCTRL_PIN(33, "GPIO_33"),
1520c4cd2ccSJingyi Wang 	PINCTRL_PIN(34, "GPIO_34"),
1530c4cd2ccSJingyi Wang 	PINCTRL_PIN(35, "GPIO_35"),
1540c4cd2ccSJingyi Wang 	PINCTRL_PIN(36, "GPIO_36"),
1550c4cd2ccSJingyi Wang 	PINCTRL_PIN(37, "GPIO_37"),
1560c4cd2ccSJingyi Wang 	PINCTRL_PIN(38, "GPIO_38"),
1570c4cd2ccSJingyi Wang 	PINCTRL_PIN(39, "GPIO_39"),
1580c4cd2ccSJingyi Wang 	PINCTRL_PIN(40, "GPIO_40"),
1590c4cd2ccSJingyi Wang 	PINCTRL_PIN(41, "GPIO_41"),
1600c4cd2ccSJingyi Wang 	PINCTRL_PIN(42, "GPIO_42"),
1610c4cd2ccSJingyi Wang 	PINCTRL_PIN(43, "GPIO_43"),
1620c4cd2ccSJingyi Wang 	PINCTRL_PIN(44, "GPIO_44"),
1630c4cd2ccSJingyi Wang 	PINCTRL_PIN(45, "GPIO_45"),
1640c4cd2ccSJingyi Wang 	PINCTRL_PIN(46, "GPIO_46"),
1650c4cd2ccSJingyi Wang 	PINCTRL_PIN(47, "GPIO_47"),
1660c4cd2ccSJingyi Wang 	PINCTRL_PIN(48, "GPIO_48"),
1670c4cd2ccSJingyi Wang 	PINCTRL_PIN(49, "GPIO_49"),
1680c4cd2ccSJingyi Wang 	PINCTRL_PIN(50, "GPIO_50"),
1690c4cd2ccSJingyi Wang 	PINCTRL_PIN(51, "GPIO_51"),
1700c4cd2ccSJingyi Wang 	PINCTRL_PIN(52, "GPIO_52"),
1710c4cd2ccSJingyi Wang 	PINCTRL_PIN(53, "GPIO_53"),
1720c4cd2ccSJingyi Wang 	PINCTRL_PIN(54, "GPIO_54"),
1730c4cd2ccSJingyi Wang 	PINCTRL_PIN(55, "GPIO_55"),
1740c4cd2ccSJingyi Wang 	PINCTRL_PIN(56, "GPIO_56"),
1750c4cd2ccSJingyi Wang 	PINCTRL_PIN(57, "GPIO_57"),
1760c4cd2ccSJingyi Wang 	PINCTRL_PIN(58, "GPIO_58"),
1770c4cd2ccSJingyi Wang 	PINCTRL_PIN(59, "GPIO_59"),
1780c4cd2ccSJingyi Wang 	PINCTRL_PIN(60, "GPIO_60"),
1790c4cd2ccSJingyi Wang 	PINCTRL_PIN(61, "GPIO_61"),
1800c4cd2ccSJingyi Wang 	PINCTRL_PIN(62, "GPIO_62"),
1810c4cd2ccSJingyi Wang 	PINCTRL_PIN(63, "GPIO_63"),
1820c4cd2ccSJingyi Wang 	PINCTRL_PIN(64, "GPIO_64"),
1830c4cd2ccSJingyi Wang 	PINCTRL_PIN(65, "GPIO_65"),
1840c4cd2ccSJingyi Wang 	PINCTRL_PIN(66, "GPIO_66"),
1850c4cd2ccSJingyi Wang 	PINCTRL_PIN(67, "GPIO_67"),
1860c4cd2ccSJingyi Wang 	PINCTRL_PIN(68, "GPIO_68"),
1870c4cd2ccSJingyi Wang 	PINCTRL_PIN(69, "GPIO_69"),
1880c4cd2ccSJingyi Wang 	PINCTRL_PIN(70, "GPIO_70"),
1890c4cd2ccSJingyi Wang 	PINCTRL_PIN(71, "GPIO_71"),
1900c4cd2ccSJingyi Wang 	PINCTRL_PIN(72, "GPIO_72"),
1910c4cd2ccSJingyi Wang 	PINCTRL_PIN(73, "GPIO_73"),
1920c4cd2ccSJingyi Wang 	PINCTRL_PIN(74, "GPIO_74"),
1930c4cd2ccSJingyi Wang 	PINCTRL_PIN(75, "GPIO_75"),
1940c4cd2ccSJingyi Wang 	PINCTRL_PIN(76, "GPIO_76"),
1950c4cd2ccSJingyi Wang 	PINCTRL_PIN(77, "GPIO_77"),
1960c4cd2ccSJingyi Wang 	PINCTRL_PIN(78, "GPIO_78"),
1970c4cd2ccSJingyi Wang 	PINCTRL_PIN(79, "GPIO_79"),
1980c4cd2ccSJingyi Wang 	PINCTRL_PIN(80, "GPIO_80"),
1990c4cd2ccSJingyi Wang 	PINCTRL_PIN(81, "GPIO_81"),
2000c4cd2ccSJingyi Wang 	PINCTRL_PIN(82, "GPIO_82"),
2010c4cd2ccSJingyi Wang 	PINCTRL_PIN(83, "GPIO_83"),
2020c4cd2ccSJingyi Wang 	PINCTRL_PIN(84, "GPIO_84"),
2030c4cd2ccSJingyi Wang 	PINCTRL_PIN(85, "GPIO_85"),
2040c4cd2ccSJingyi Wang 	PINCTRL_PIN(86, "GPIO_86"),
2050c4cd2ccSJingyi Wang 	PINCTRL_PIN(87, "GPIO_87"),
2060c4cd2ccSJingyi Wang 	PINCTRL_PIN(88, "GPIO_88"),
2070c4cd2ccSJingyi Wang 	PINCTRL_PIN(89, "GPIO_89"),
2080c4cd2ccSJingyi Wang 	PINCTRL_PIN(90, "GPIO_90"),
2090c4cd2ccSJingyi Wang 	PINCTRL_PIN(91, "GPIO_91"),
2100c4cd2ccSJingyi Wang 	PINCTRL_PIN(92, "GPIO_92"),
2110c4cd2ccSJingyi Wang 	PINCTRL_PIN(93, "GPIO_93"),
2120c4cd2ccSJingyi Wang 	PINCTRL_PIN(94, "GPIO_94"),
2130c4cd2ccSJingyi Wang 	PINCTRL_PIN(95, "GPIO_95"),
2140c4cd2ccSJingyi Wang 	PINCTRL_PIN(96, "GPIO_96"),
2150c4cd2ccSJingyi Wang 	PINCTRL_PIN(97, "GPIO_97"),
2160c4cd2ccSJingyi Wang 	PINCTRL_PIN(98, "GPIO_98"),
2170c4cd2ccSJingyi Wang 	PINCTRL_PIN(99, "GPIO_99"),
2180c4cd2ccSJingyi Wang 	PINCTRL_PIN(100, "GPIO_100"),
2190c4cd2ccSJingyi Wang 	PINCTRL_PIN(101, "GPIO_101"),
2200c4cd2ccSJingyi Wang 	PINCTRL_PIN(102, "GPIO_102"),
2210c4cd2ccSJingyi Wang 	PINCTRL_PIN(103, "GPIO_103"),
2220c4cd2ccSJingyi Wang 	PINCTRL_PIN(104, "GPIO_104"),
2230c4cd2ccSJingyi Wang 	PINCTRL_PIN(105, "GPIO_105"),
2240c4cd2ccSJingyi Wang 	PINCTRL_PIN(106, "GPIO_106"),
2250c4cd2ccSJingyi Wang 	PINCTRL_PIN(107, "GPIO_107"),
2260c4cd2ccSJingyi Wang 	PINCTRL_PIN(108, "GPIO_108"),
2270c4cd2ccSJingyi Wang 	PINCTRL_PIN(109, "GPIO_109"),
2280c4cd2ccSJingyi Wang 	PINCTRL_PIN(110, "GPIO_110"),
2290c4cd2ccSJingyi Wang 	PINCTRL_PIN(111, "GPIO_111"),
2300c4cd2ccSJingyi Wang 	PINCTRL_PIN(112, "GPIO_112"),
2310c4cd2ccSJingyi Wang 	PINCTRL_PIN(113, "GPIO_113"),
2320c4cd2ccSJingyi Wang 	PINCTRL_PIN(114, "GPIO_114"),
2330c4cd2ccSJingyi Wang 	PINCTRL_PIN(115, "GPIO_115"),
2340c4cd2ccSJingyi Wang 	PINCTRL_PIN(116, "GPIO_116"),
2350c4cd2ccSJingyi Wang 	PINCTRL_PIN(117, "GPIO_117"),
2360c4cd2ccSJingyi Wang 	PINCTRL_PIN(118, "GPIO_118"),
2370c4cd2ccSJingyi Wang 	PINCTRL_PIN(119, "GPIO_119"),
2380c4cd2ccSJingyi Wang 	PINCTRL_PIN(120, "GPIO_120"),
2390c4cd2ccSJingyi Wang 	PINCTRL_PIN(121, "GPIO_121"),
2400c4cd2ccSJingyi Wang 	PINCTRL_PIN(122, "GPIO_122"),
2410c4cd2ccSJingyi Wang 	PINCTRL_PIN(123, "GPIO_123"),
2420c4cd2ccSJingyi Wang 	PINCTRL_PIN(124, "GPIO_124"),
2430c4cd2ccSJingyi Wang 	PINCTRL_PIN(125, "GPIO_125"),
2440c4cd2ccSJingyi Wang 	PINCTRL_PIN(126, "GPIO_126"),
2450c4cd2ccSJingyi Wang 	PINCTRL_PIN(127, "GPIO_127"),
2460c4cd2ccSJingyi Wang 	PINCTRL_PIN(128, "GPIO_128"),
2470c4cd2ccSJingyi Wang 	PINCTRL_PIN(129, "GPIO_129"),
2480c4cd2ccSJingyi Wang 	PINCTRL_PIN(130, "GPIO_130"),
2490c4cd2ccSJingyi Wang 	PINCTRL_PIN(131, "GPIO_131"),
2500c4cd2ccSJingyi Wang 	PINCTRL_PIN(132, "GPIO_132"),
2510c4cd2ccSJingyi Wang 	PINCTRL_PIN(133, "UFS_RESET"),
2520c4cd2ccSJingyi Wang 	PINCTRL_PIN(134, "SDC1_RCLK"),
2530c4cd2ccSJingyi Wang 	PINCTRL_PIN(135, "SDC1_CLK"),
2540c4cd2ccSJingyi Wang 	PINCTRL_PIN(136, "SDC1_CMD"),
2550c4cd2ccSJingyi Wang 	PINCTRL_PIN(137, "SDC1_DATA"),
2560c4cd2ccSJingyi Wang };
2570c4cd2ccSJingyi Wang 
2580c4cd2ccSJingyi Wang #define DECLARE_MSM_GPIO_PINS(pin) \
2590c4cd2ccSJingyi Wang 	static const unsigned int gpio##pin##_pins[] = { pin }
2600c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(0);
2610c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(1);
2620c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(2);
2630c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(3);
2640c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(4);
2650c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(5);
2660c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(6);
2670c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(7);
2680c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(8);
2690c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(9);
2700c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(10);
2710c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(11);
2720c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(12);
2730c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(13);
2740c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(14);
2750c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(15);
2760c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(16);
2770c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(17);
2780c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(18);
2790c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(19);
2800c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(20);
2810c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(21);
2820c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(22);
2830c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(23);
2840c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(24);
2850c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(25);
2860c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(26);
2870c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(27);
2880c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(28);
2890c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(29);
2900c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(30);
2910c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(31);
2920c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(32);
2930c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(33);
2940c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(34);
2950c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(35);
2960c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(36);
2970c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(37);
2980c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(38);
2990c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(39);
3000c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(40);
3010c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(41);
3020c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(42);
3030c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(43);
3040c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(44);
3050c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(45);
3060c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(46);
3070c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(47);
3080c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(48);
3090c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(49);
3100c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(50);
3110c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(51);
3120c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(52);
3130c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(53);
3140c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(54);
3150c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(55);
3160c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(56);
3170c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(57);
3180c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(58);
3190c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(59);
3200c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(60);
3210c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(61);
3220c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(62);
3230c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(63);
3240c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(64);
3250c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(65);
3260c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(66);
3270c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(67);
3280c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(68);
3290c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(69);
3300c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(70);
3310c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(71);
3320c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(72);
3330c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(73);
3340c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(74);
3350c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(75);
3360c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(76);
3370c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(77);
3380c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(78);
3390c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(79);
3400c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(80);
3410c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(81);
3420c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(82);
3430c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(83);
3440c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(84);
3450c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(85);
3460c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(86);
3470c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(87);
3480c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(88);
3490c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(89);
3500c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(90);
3510c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(91);
3520c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(92);
3530c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(93);
3540c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(94);
3550c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(95);
3560c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(96);
3570c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(97);
3580c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(98);
3590c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(99);
3600c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(100);
3610c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(101);
3620c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(102);
3630c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(103);
3640c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(104);
3650c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(105);
3660c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(106);
3670c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(107);
3680c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(108);
3690c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(109);
3700c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(110);
3710c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(111);
3720c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(112);
3730c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(113);
3740c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(114);
3750c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(115);
3760c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(116);
3770c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(117);
3780c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(118);
3790c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(119);
3800c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(120);
3810c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(121);
3820c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(122);
3830c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(123);
3840c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(124);
3850c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(125);
3860c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(126);
3870c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(127);
3880c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(128);
3890c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(129);
3900c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(130);
3910c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(131);
3920c4cd2ccSJingyi Wang DECLARE_MSM_GPIO_PINS(132);
3930c4cd2ccSJingyi Wang 
3940c4cd2ccSJingyi Wang static const unsigned int ufs_reset_pins[] = { 133 };
3950c4cd2ccSJingyi Wang static const unsigned int sdc1_rclk_pins[] = { 134 };
3960c4cd2ccSJingyi Wang static const unsigned int sdc1_clk_pins[]  = { 135 };
3970c4cd2ccSJingyi Wang static const unsigned int sdc1_cmd_pins[]  = { 136 };
3980c4cd2ccSJingyi Wang static const unsigned int sdc1_data_pins[] = { 137 };
3990c4cd2ccSJingyi Wang 
4000c4cd2ccSJingyi Wang enum qcs8300_functions {
4010c4cd2ccSJingyi Wang 	msm_mux_gpio,
4020c4cd2ccSJingyi Wang 	msm_mux_aoss_cti,
4030c4cd2ccSJingyi Wang 	msm_mux_atest_char,
4040c4cd2ccSJingyi Wang 	msm_mux_atest_usb2,
4050c4cd2ccSJingyi Wang 	msm_mux_audio_ref,
4060c4cd2ccSJingyi Wang 	msm_mux_cam_mclk,
4070c4cd2ccSJingyi Wang 	msm_mux_cci_async,
4080c4cd2ccSJingyi Wang 	msm_mux_cci_i2c_scl,
4090c4cd2ccSJingyi Wang 	msm_mux_cci_i2c_sda,
4100c4cd2ccSJingyi Wang 	msm_mux_cci_timer,
4110c4cd2ccSJingyi Wang 	msm_mux_cri_trng,
4120c4cd2ccSJingyi Wang 	msm_mux_dbg_out,
4130c4cd2ccSJingyi Wang 	msm_mux_ddr_bist,
4140c4cd2ccSJingyi Wang 	msm_mux_ddr_pxi0,
4150c4cd2ccSJingyi Wang 	msm_mux_ddr_pxi1,
4160c4cd2ccSJingyi Wang 	msm_mux_ddr_pxi2,
4170c4cd2ccSJingyi Wang 	msm_mux_ddr_pxi3,
4180c4cd2ccSJingyi Wang 	msm_mux_edp0_hot,
4190c4cd2ccSJingyi Wang 	msm_mux_edp0_lcd,
4200c4cd2ccSJingyi Wang 	msm_mux_edp1_lcd,
4210c4cd2ccSJingyi Wang 	msm_mux_egpio,
4220c4cd2ccSJingyi Wang 	msm_mux_emac0_mcg0,
4230c4cd2ccSJingyi Wang 	msm_mux_emac0_mcg1,
4240c4cd2ccSJingyi Wang 	msm_mux_emac0_mcg2,
4250c4cd2ccSJingyi Wang 	msm_mux_emac0_mcg3,
4260c4cd2ccSJingyi Wang 	msm_mux_emac0_mdc,
4270c4cd2ccSJingyi Wang 	msm_mux_emac0_mdio,
4280c4cd2ccSJingyi Wang 	msm_mux_emac0_ptp_aux,
4290c4cd2ccSJingyi Wang 	msm_mux_emac0_ptp_pps,
4300c4cd2ccSJingyi Wang 	msm_mux_gcc_gp1,
4310c4cd2ccSJingyi Wang 	msm_mux_gcc_gp2,
4320c4cd2ccSJingyi Wang 	msm_mux_gcc_gp3,
4330c4cd2ccSJingyi Wang 	msm_mux_gcc_gp4,
4340c4cd2ccSJingyi Wang 	msm_mux_gcc_gp5,
4350c4cd2ccSJingyi Wang 	msm_mux_hs0_mi2s,
4360c4cd2ccSJingyi Wang 	msm_mux_hs1_mi2s,
4370c4cd2ccSJingyi Wang 	msm_mux_hs2_mi2s,
4380c4cd2ccSJingyi Wang 	msm_mux_ibi_i3c,
4390c4cd2ccSJingyi Wang 	msm_mux_jitter_bist,
4400c4cd2ccSJingyi Wang 	msm_mux_mdp0_vsync0,
4410c4cd2ccSJingyi Wang 	msm_mux_mdp0_vsync1,
4420c4cd2ccSJingyi Wang 	msm_mux_mdp0_vsync3,
4430c4cd2ccSJingyi Wang 	msm_mux_mdp0_vsync6,
4440c4cd2ccSJingyi Wang 	msm_mux_mdp0_vsync7,
4450c4cd2ccSJingyi Wang 	msm_mux_mdp_vsync,
4460c4cd2ccSJingyi Wang 	msm_mux_mi2s1_data0,
4470c4cd2ccSJingyi Wang 	msm_mux_mi2s1_data1,
4480c4cd2ccSJingyi Wang 	msm_mux_mi2s1_sck,
4490c4cd2ccSJingyi Wang 	msm_mux_mi2s1_ws,
4500c4cd2ccSJingyi Wang 	msm_mux_mi2s2_data0,
4510c4cd2ccSJingyi Wang 	msm_mux_mi2s2_data1,
4520c4cd2ccSJingyi Wang 	msm_mux_mi2s2_sck,
4530c4cd2ccSJingyi Wang 	msm_mux_mi2s2_ws,
4540c4cd2ccSJingyi Wang 	msm_mux_mi2s_mclk0,
4550c4cd2ccSJingyi Wang 	msm_mux_mi2s_mclk1,
4560c4cd2ccSJingyi Wang 	msm_mux_pcie0_clkreq,
4570c4cd2ccSJingyi Wang 	msm_mux_pcie1_clkreq,
4580c4cd2ccSJingyi Wang 	msm_mux_phase_flag,
4590c4cd2ccSJingyi Wang 	msm_mux_pll_bist,
4600c4cd2ccSJingyi Wang 	msm_mux_pll_clk,
4610c4cd2ccSJingyi Wang 	msm_mux_prng_rosc0,
4620c4cd2ccSJingyi Wang 	msm_mux_prng_rosc1,
4630c4cd2ccSJingyi Wang 	msm_mux_prng_rosc2,
4640c4cd2ccSJingyi Wang 	msm_mux_prng_rosc3,
4650c4cd2ccSJingyi Wang 	msm_mux_qdss_cti,
4660c4cd2ccSJingyi Wang 	msm_mux_qdss_gpio,
4670c4cd2ccSJingyi Wang 	msm_mux_qup0_se0,
4680c4cd2ccSJingyi Wang 	msm_mux_qup0_se1,
4690c4cd2ccSJingyi Wang 	msm_mux_qup0_se2,
4700c4cd2ccSJingyi Wang 	msm_mux_qup0_se3,
4710c4cd2ccSJingyi Wang 	msm_mux_qup0_se4,
4720c4cd2ccSJingyi Wang 	msm_mux_qup0_se5,
4730c4cd2ccSJingyi Wang 	msm_mux_qup0_se6,
4740c4cd2ccSJingyi Wang 	msm_mux_qup0_se7,
4750c4cd2ccSJingyi Wang 	msm_mux_qup1_se0,
4760c4cd2ccSJingyi Wang 	msm_mux_qup1_se1,
4770c4cd2ccSJingyi Wang 	msm_mux_qup1_se2,
4780c4cd2ccSJingyi Wang 	msm_mux_qup1_se3,
4790c4cd2ccSJingyi Wang 	msm_mux_qup1_se4,
4800c4cd2ccSJingyi Wang 	msm_mux_qup1_se5,
4810c4cd2ccSJingyi Wang 	msm_mux_qup1_se6,
4820c4cd2ccSJingyi Wang 	msm_mux_qup1_se7,
4830c4cd2ccSJingyi Wang 	msm_mux_qup2_se0,
4840c4cd2ccSJingyi Wang 	msm_mux_sailss_emac0,
4850c4cd2ccSJingyi Wang 	msm_mux_sailss_ospi,
4860c4cd2ccSJingyi Wang 	msm_mux_sgmii_phy,
4870c4cd2ccSJingyi Wang 	msm_mux_tb_trig,
4880c4cd2ccSJingyi Wang 	msm_mux_tgu_ch0,
4890c4cd2ccSJingyi Wang 	msm_mux_tgu_ch1,
4900c4cd2ccSJingyi Wang 	msm_mux_tgu_ch2,
4910c4cd2ccSJingyi Wang 	msm_mux_tgu_ch3,
4920c4cd2ccSJingyi Wang 	msm_mux_tsense_pwm1,
4930c4cd2ccSJingyi Wang 	msm_mux_tsense_pwm2,
4940c4cd2ccSJingyi Wang 	msm_mux_tsense_pwm3,
4950c4cd2ccSJingyi Wang 	msm_mux_tsense_pwm4,
4960c4cd2ccSJingyi Wang 	msm_mux_usb2phy_ac,
4970c4cd2ccSJingyi Wang 	msm_mux_vsense_trigger,
4980c4cd2ccSJingyi Wang 	msm_mux__,
4990c4cd2ccSJingyi Wang };
5000c4cd2ccSJingyi Wang 
5010c4cd2ccSJingyi Wang static const char * const gpio_groups[] = {
5020c4cd2ccSJingyi Wang 	"gpio0", "gpio1", "gpio2", "gpio3", "gpio4", "gpio5", "gpio6", "gpio7",
5030c4cd2ccSJingyi Wang 	"gpio8", "gpio9", "gpio10", "gpio11", "gpio12", "gpio13", "gpio14",
5040c4cd2ccSJingyi Wang 	"gpio15", "gpio16", "gpio17", "gpio18", "gpio19", "gpio20", "gpio21",
5050c4cd2ccSJingyi Wang 	"gpio22", "gpio23", "gpio24", "gpio25", "gpio26", "gpio27", "gpio28",
5060c4cd2ccSJingyi Wang 	"gpio29", "gpio30", "gpio31", "gpio32", "gpio33", "gpio34", "gpio35",
5070c4cd2ccSJingyi Wang 	"gpio36", "gpio37", "gpio38", "gpio39", "gpio40", "gpio41", "gpio42",
5080c4cd2ccSJingyi Wang 	"gpio43", "gpio44", "gpio45", "gpio46", "gpio47", "gpio48", "gpio49",
5090c4cd2ccSJingyi Wang 	"gpio50", "gpio51", "gpio52", "gpio53", "gpio54", "gpio55", "gpio56",
5100c4cd2ccSJingyi Wang 	"gpio57", "gpio58", "gpio59", "gpio60", "gpio61", "gpio62", "gpio63",
5110c4cd2ccSJingyi Wang 	"gpio64", "gpio65", "gpio66", "gpio67", "gpio68", "gpio69", "gpio70",
5120c4cd2ccSJingyi Wang 	"gpio71", "gpio72", "gpio73", "gpio74", "gpio75", "gpio76", "gpio77",
5130c4cd2ccSJingyi Wang 	"gpio78", "gpio79", "gpio80", "gpio81", "gpio82", "gpio83", "gpio84",
5140c4cd2ccSJingyi Wang 	"gpio85", "gpio86", "gpio87", "gpio88", "gpio89", "gpio90", "gpio91",
5150c4cd2ccSJingyi Wang 	"gpio92", "gpio93", "gpio94", "gpio95", "gpio96", "gpio97", "gpio98",
5160c4cd2ccSJingyi Wang 	"gpio99", "gpio100", "gpio101", "gpio102", "gpio103", "gpio104",
5170c4cd2ccSJingyi Wang 	"gpio105", "gpio106", "gpio107", "gpio108", "gpio109", "gpio110",
5180c4cd2ccSJingyi Wang 	"gpio111", "gpio112", "gpio113", "gpio114", "gpio115", "gpio116",
5190c4cd2ccSJingyi Wang 	"gpio117", "gpio118", "gpio119", "gpio120", "gpio121", "gpio122",
5200c4cd2ccSJingyi Wang 	"gpio123", "gpio124", "gpio125", "gpio126", "gpio127", "gpio128",
5210c4cd2ccSJingyi Wang 	"gpio129", "gpio130", "gpio131", "gpio132",
5220c4cd2ccSJingyi Wang };
5230c4cd2ccSJingyi Wang 
5240c4cd2ccSJingyi Wang static const char *const aoss_cti_groups[] = {
5250c4cd2ccSJingyi Wang 	"gpio37", "gpio38", "gpio39", "gpio40",
5260c4cd2ccSJingyi Wang };
5270c4cd2ccSJingyi Wang 
5280c4cd2ccSJingyi Wang static const char * const atest_char_groups[] = {
5290c4cd2ccSJingyi Wang 	"gpio66", "gpio70", "gpio71", "gpio72", "gpio93",
5300c4cd2ccSJingyi Wang };
5310c4cd2ccSJingyi Wang 
5320c4cd2ccSJingyi Wang static const char * const atest_usb2_groups[] = {
5330c4cd2ccSJingyi Wang 	"gpio63", "gpio83", "gpio92", "gpio74", "gpio84", "gpio87", "gpio67",
5340c4cd2ccSJingyi Wang 	"gpio75", "gpio85", "gpio65", "gpio68", "gpio80", "gpio64", "gpio69",
5350c4cd2ccSJingyi Wang 	"gpio81",
5360c4cd2ccSJingyi Wang };
5370c4cd2ccSJingyi Wang 
5380c4cd2ccSJingyi Wang static const char * const audio_ref_groups[] = {
5390c4cd2ccSJingyi Wang 	"gpio105",
5400c4cd2ccSJingyi Wang };
5410c4cd2ccSJingyi Wang 
5420c4cd2ccSJingyi Wang static const char * const cam_mclk_groups[] = {
5430c4cd2ccSJingyi Wang 	"gpio67", "gpio68", "gpio69",
5440c4cd2ccSJingyi Wang };
5450c4cd2ccSJingyi Wang 
5460c4cd2ccSJingyi Wang static const char * const cci_async_groups[] = {
5470c4cd2ccSJingyi Wang 	"gpio63", "gpio64", "gpio65", "gpio29", "gpio30", "gpio31",
5480c4cd2ccSJingyi Wang };
5490c4cd2ccSJingyi Wang 
5500c4cd2ccSJingyi Wang static const char * const cci_i2c_scl_groups[] = {
5510c4cd2ccSJingyi Wang 	"gpio58", "gpio30", "gpio60", "gpio32", "gpio62", "gpio55",
5520c4cd2ccSJingyi Wang };
5530c4cd2ccSJingyi Wang 
5540c4cd2ccSJingyi Wang static const char * const cci_i2c_sda_groups[] = {
5550c4cd2ccSJingyi Wang 	"gpio57", "gpio29", "gpio59", "gpio31", "gpio61", "gpio54",
5560c4cd2ccSJingyi Wang };
5570c4cd2ccSJingyi Wang 
5580c4cd2ccSJingyi Wang static const char *const cci_timer_groups[] = {
5590c4cd2ccSJingyi Wang 	"gpio63", "gpio64", "gpio65", "gpio49", "gpio50", "gpio19",
5600c4cd2ccSJingyi Wang 	"gpio20", "gpio21", "gpio22", "gpio23",
5610c4cd2ccSJingyi Wang };
5620c4cd2ccSJingyi Wang 
5630c4cd2ccSJingyi Wang static const char *const cri_trng_groups[] = {
5640c4cd2ccSJingyi Wang 	"gpio92", "gpio90", "gpio91",
5650c4cd2ccSJingyi Wang };
5660c4cd2ccSJingyi Wang 
5670c4cd2ccSJingyi Wang static const char *const dbg_out_groups[] = {
5680c4cd2ccSJingyi Wang 	"gpio75",
5690c4cd2ccSJingyi Wang };
5700c4cd2ccSJingyi Wang 
5710c4cd2ccSJingyi Wang static const char * const ddr_bist_groups[] = {
5720c4cd2ccSJingyi Wang 	"gpio53", "gpio54", "gpio55", "gpio56",
5730c4cd2ccSJingyi Wang };
5740c4cd2ccSJingyi Wang 
5750c4cd2ccSJingyi Wang static const char *const ddr_pxi0_groups[] = {
5760c4cd2ccSJingyi Wang 	"gpio68", "gpio69",
5770c4cd2ccSJingyi Wang };
5780c4cd2ccSJingyi Wang 
5790c4cd2ccSJingyi Wang static const char *const ddr_pxi1_groups[] = {
5800c4cd2ccSJingyi Wang 	"gpio49", "gpio50",
5810c4cd2ccSJingyi Wang };
5820c4cd2ccSJingyi Wang 
5830c4cd2ccSJingyi Wang static const char *const ddr_pxi2_groups[] = {
5840c4cd2ccSJingyi Wang 	"gpio52", "gpio83",
5850c4cd2ccSJingyi Wang };
5860c4cd2ccSJingyi Wang 
5870c4cd2ccSJingyi Wang static const char *const ddr_pxi3_groups[] = {
5880c4cd2ccSJingyi Wang 	"gpio80", "gpio81",
5890c4cd2ccSJingyi Wang };
5900c4cd2ccSJingyi Wang 
5910c4cd2ccSJingyi Wang static const char *const edp0_hot_groups[] = {
5920c4cd2ccSJingyi Wang 	"gpio94",
5930c4cd2ccSJingyi Wang };
5940c4cd2ccSJingyi Wang 
5950c4cd2ccSJingyi Wang static const char *const edp0_lcd_groups[] = {
5960c4cd2ccSJingyi Wang 	"gpio48",
5970c4cd2ccSJingyi Wang };
5980c4cd2ccSJingyi Wang 
5990c4cd2ccSJingyi Wang static const char *const edp1_lcd_groups[] = {
6000c4cd2ccSJingyi Wang 	"gpio49",
6010c4cd2ccSJingyi Wang };
6020c4cd2ccSJingyi Wang 
6030c4cd2ccSJingyi Wang static const char *const egpio_groups[] = {
6040c4cd2ccSJingyi Wang 	"gpio110", "gpio111", "gpio112", "gpio113", "gpio114", "gpio115",
6050c4cd2ccSJingyi Wang 	"gpio116", "gpio117", "gpio118", "gpio119", "gpio120", "gpio121",
6060c4cd2ccSJingyi Wang 	"gpio122", "gpio123", "gpio124", "gpio125", "gpio126", "gpio127",
6070c4cd2ccSJingyi Wang 	"gpio128", "gpio129", "gpio130", "gpio131", "gpio132",
6080c4cd2ccSJingyi Wang };
6090c4cd2ccSJingyi Wang 
6100c4cd2ccSJingyi Wang static const char *const emac0_mcg0_groups[] = {
6110c4cd2ccSJingyi Wang 	"gpio10",
6120c4cd2ccSJingyi Wang };
6130c4cd2ccSJingyi Wang 
6140c4cd2ccSJingyi Wang static const char *const emac0_mcg1_groups[] = {
6150c4cd2ccSJingyi Wang 	"gpio11",
6160c4cd2ccSJingyi Wang };
6170c4cd2ccSJingyi Wang 
6180c4cd2ccSJingyi Wang static const char *const emac0_mcg2_groups[] = {
6190c4cd2ccSJingyi Wang 	"gpio24",
6200c4cd2ccSJingyi Wang };
6210c4cd2ccSJingyi Wang 
6220c4cd2ccSJingyi Wang static const char *const emac0_mcg3_groups[] = {
6230c4cd2ccSJingyi Wang 	"gpio79",
6240c4cd2ccSJingyi Wang };
6250c4cd2ccSJingyi Wang 
6260c4cd2ccSJingyi Wang static const char *const emac0_mdc_groups[] = {
6270c4cd2ccSJingyi Wang 	"gpio5",
6280c4cd2ccSJingyi Wang };
6290c4cd2ccSJingyi Wang 
6300c4cd2ccSJingyi Wang static const char *const emac0_mdio_groups[] = {
6310c4cd2ccSJingyi Wang 	"gpio6",
6320c4cd2ccSJingyi Wang };
6330c4cd2ccSJingyi Wang 
6340c4cd2ccSJingyi Wang static const char * const emac0_ptp_aux_groups[] = {
6350c4cd2ccSJingyi Wang 	"gpio24", "gpio31", "gpio32", "gpio79",
6360c4cd2ccSJingyi Wang };
6370c4cd2ccSJingyi Wang 
6380c4cd2ccSJingyi Wang static const char * const emac0_ptp_pps_groups[] = {
6390c4cd2ccSJingyi Wang 	"gpio24", "gpio29", "gpio30", "gpio79",
6400c4cd2ccSJingyi Wang };
6410c4cd2ccSJingyi Wang 
6420c4cd2ccSJingyi Wang static const char *const gcc_gp1_groups[] = {
6430c4cd2ccSJingyi Wang 	"gpio35", "gpio84",
6440c4cd2ccSJingyi Wang };
6450c4cd2ccSJingyi Wang 
6460c4cd2ccSJingyi Wang static const char *const gcc_gp2_groups[] = {
6470c4cd2ccSJingyi Wang 	"gpio36", "gpio81",
6480c4cd2ccSJingyi Wang };
6490c4cd2ccSJingyi Wang 
6500c4cd2ccSJingyi Wang static const char *const gcc_gp3_groups[] = {
6510c4cd2ccSJingyi Wang 	"gpio69", "gpio82",
6520c4cd2ccSJingyi Wang };
6530c4cd2ccSJingyi Wang 
6540c4cd2ccSJingyi Wang static const char *const gcc_gp4_groups[] = {
6550c4cd2ccSJingyi Wang 	"gpio68", "gpio83",
6560c4cd2ccSJingyi Wang };
6570c4cd2ccSJingyi Wang 
6580c4cd2ccSJingyi Wang static const char *const gcc_gp5_groups[] = {
6590c4cd2ccSJingyi Wang 	"gpio76", "gpio77",
6600c4cd2ccSJingyi Wang };
6610c4cd2ccSJingyi Wang 
6620c4cd2ccSJingyi Wang static const char * const hs0_mi2s_groups[] = {
6630c4cd2ccSJingyi Wang 	"gpio106", "gpio107", "gpio108", "gpio109",
6640c4cd2ccSJingyi Wang };
6650c4cd2ccSJingyi Wang 
6660c4cd2ccSJingyi Wang static const char * const hs1_mi2s_groups[] = {
6670c4cd2ccSJingyi Wang 	"gpio45", "gpio46", "gpio47", "gpio48",
6680c4cd2ccSJingyi Wang };
6690c4cd2ccSJingyi Wang 
6700c4cd2ccSJingyi Wang static const char * const hs2_mi2s_groups[] = {
6710c4cd2ccSJingyi Wang 	"gpio49", "gpio50", "gpio51", "gpio52",
6720c4cd2ccSJingyi Wang };
6730c4cd2ccSJingyi Wang 
6740c4cd2ccSJingyi Wang static const char * const ibi_i3c_groups[] = {
6750c4cd2ccSJingyi Wang 	"gpio17", "gpio18", "gpio19", "gpio20", "gpio37", "gpio38",
6760c4cd2ccSJingyi Wang 	"gpio39", "gpio40",
6770c4cd2ccSJingyi Wang };
6780c4cd2ccSJingyi Wang 
6790c4cd2ccSJingyi Wang static const char *const jitter_bist_groups[] = {
6800c4cd2ccSJingyi Wang 	"gpio97",
6810c4cd2ccSJingyi Wang };
6820c4cd2ccSJingyi Wang 
6830c4cd2ccSJingyi Wang static const char *const mdp0_vsync0_groups[] = {
6840c4cd2ccSJingyi Wang 	"gpio89",
6850c4cd2ccSJingyi Wang };
6860c4cd2ccSJingyi Wang 
6870c4cd2ccSJingyi Wang static const char *const mdp0_vsync1_groups[] = {
6880c4cd2ccSJingyi Wang 	"gpio90",
6890c4cd2ccSJingyi Wang };
6900c4cd2ccSJingyi Wang 
6910c4cd2ccSJingyi Wang static const char *const mdp0_vsync3_groups[] = {
6920c4cd2ccSJingyi Wang 	"gpio91",
6930c4cd2ccSJingyi Wang };
6940c4cd2ccSJingyi Wang 
6950c4cd2ccSJingyi Wang static const char *const mdp0_vsync6_groups[] = {
6960c4cd2ccSJingyi Wang 	"gpio80",
6970c4cd2ccSJingyi Wang };
6980c4cd2ccSJingyi Wang 
6990c4cd2ccSJingyi Wang static const char *const mdp0_vsync7_groups[] = {
7000c4cd2ccSJingyi Wang 	"gpio81",
7010c4cd2ccSJingyi Wang };
7020c4cd2ccSJingyi Wang 
7030c4cd2ccSJingyi Wang static const char *const mdp_vsync_groups[] = {
7040c4cd2ccSJingyi Wang 	"gpio42", "gpio52", "gpio32",
7050c4cd2ccSJingyi Wang };
7060c4cd2ccSJingyi Wang 
7070c4cd2ccSJingyi Wang static const char *const mi2s1_data0_groups[] = {
7080c4cd2ccSJingyi Wang 	"gpio100",
7090c4cd2ccSJingyi Wang };
7100c4cd2ccSJingyi Wang 
7110c4cd2ccSJingyi Wang static const char *const mi2s1_data1_groups[] = {
7120c4cd2ccSJingyi Wang 	"gpio101",
7130c4cd2ccSJingyi Wang };
7140c4cd2ccSJingyi Wang 
7150c4cd2ccSJingyi Wang static const char *const mi2s1_sck_groups[] = {
7160c4cd2ccSJingyi Wang 	"gpio98",
7170c4cd2ccSJingyi Wang };
7180c4cd2ccSJingyi Wang 
7190c4cd2ccSJingyi Wang static const char *const mi2s1_ws_groups[] = {
7200c4cd2ccSJingyi Wang 	"gpio99",
7210c4cd2ccSJingyi Wang };
7220c4cd2ccSJingyi Wang 
7230c4cd2ccSJingyi Wang static const char *const mi2s2_data0_groups[] = {
7240c4cd2ccSJingyi Wang 	"gpio104",
7250c4cd2ccSJingyi Wang };
7260c4cd2ccSJingyi Wang 
7270c4cd2ccSJingyi Wang static const char *const mi2s2_data1_groups[] = {
7280c4cd2ccSJingyi Wang 	"gpio105",
7290c4cd2ccSJingyi Wang };
7300c4cd2ccSJingyi Wang 
7310c4cd2ccSJingyi Wang static const char *const mi2s2_sck_groups[] = {
7320c4cd2ccSJingyi Wang 	"gpio102",
7330c4cd2ccSJingyi Wang };
7340c4cd2ccSJingyi Wang 
7350c4cd2ccSJingyi Wang static const char *const mi2s2_ws_groups[] = {
7360c4cd2ccSJingyi Wang 	"gpio103",
7370c4cd2ccSJingyi Wang };
7380c4cd2ccSJingyi Wang 
7390c4cd2ccSJingyi Wang static const char *const mi2s_mclk0_groups[] = {
7400c4cd2ccSJingyi Wang 	"gpio97",
7410c4cd2ccSJingyi Wang };
7420c4cd2ccSJingyi Wang 
7430c4cd2ccSJingyi Wang static const char *const mi2s_mclk1_groups[] = {
7440c4cd2ccSJingyi Wang 	"gpio109",
7450c4cd2ccSJingyi Wang };
7460c4cd2ccSJingyi Wang 
7470c4cd2ccSJingyi Wang static const char *const pcie0_clkreq_groups[] = {
7480c4cd2ccSJingyi Wang 	"gpio1",
7490c4cd2ccSJingyi Wang };
7500c4cd2ccSJingyi Wang 
7510c4cd2ccSJingyi Wang static const char *const pcie1_clkreq_groups[] = {
7520c4cd2ccSJingyi Wang 	"gpio22",
7530c4cd2ccSJingyi Wang };
7540c4cd2ccSJingyi Wang 
7550c4cd2ccSJingyi Wang static const char *const phase_flag_groups[] = {
7560c4cd2ccSJingyi Wang 	"gpio66", "gpio56", "gpio118", "gpio117", "gpio116",
7570c4cd2ccSJingyi Wang 	"gpio3", "gpio114", "gpio113", "gpio112", "gpio111",
7580c4cd2ccSJingyi Wang 	"gpio110", "gpio28", "gpio55", "gpio108", "gpio107",
7590c4cd2ccSJingyi Wang 	"gpio106", "gpio105", "gpio104", "gpio103", "gpio102",
7600c4cd2ccSJingyi Wang 	"gpio101", "gpio100", "gpio99", "gpio125", "gpio98",
7610c4cd2ccSJingyi Wang 	"gpio54", "gpio25", "gpio26", "gpio122", "gpio121",
7620c4cd2ccSJingyi Wang 	"gpio120", "gpio9",
7630c4cd2ccSJingyi Wang };
7640c4cd2ccSJingyi Wang 
7650c4cd2ccSJingyi Wang static const char *const pll_bist_groups[] = {
7660c4cd2ccSJingyi Wang 	"gpio107",
7670c4cd2ccSJingyi Wang };
7680c4cd2ccSJingyi Wang 
7690c4cd2ccSJingyi Wang static const char *const pll_clk_groups[] = {
7700c4cd2ccSJingyi Wang 	"gpio74",
7710c4cd2ccSJingyi Wang };
7720c4cd2ccSJingyi Wang 
7730c4cd2ccSJingyi Wang static const char *const prng_rosc0_groups[] = {
7740c4cd2ccSJingyi Wang 	"gpio57",
7750c4cd2ccSJingyi Wang };
7760c4cd2ccSJingyi Wang 
7770c4cd2ccSJingyi Wang static const char *const prng_rosc1_groups[] = {
7780c4cd2ccSJingyi Wang 	"gpio58",
7790c4cd2ccSJingyi Wang };
7800c4cd2ccSJingyi Wang 
7810c4cd2ccSJingyi Wang static const char *const prng_rosc2_groups[] = {
7820c4cd2ccSJingyi Wang 	"gpio59",
7830c4cd2ccSJingyi Wang };
7840c4cd2ccSJingyi Wang 
7850c4cd2ccSJingyi Wang static const char *const prng_rosc3_groups[] = {
7860c4cd2ccSJingyi Wang 	"gpio60",
7870c4cd2ccSJingyi Wang };
7880c4cd2ccSJingyi Wang 
7890c4cd2ccSJingyi Wang static const char *const qdss_cti_groups[] = {
7900c4cd2ccSJingyi Wang 	"gpio4", "gpio5", "gpio23", "gpio24", "gpio49", "gpio50",
7910c4cd2ccSJingyi Wang 	"gpio51", "gpio52",
7920c4cd2ccSJingyi Wang };
7930c4cd2ccSJingyi Wang 
7940c4cd2ccSJingyi Wang static const char *const qdss_gpio_groups[] = {
7950c4cd2ccSJingyi Wang 	"gpio57", "gpio58", "gpio97", "gpio106",
7960c4cd2ccSJingyi Wang 	"gpio59", "gpio107", "gpio60", "gpio108",
7970c4cd2ccSJingyi Wang 	"gpio36", "gpio100", "gpio61", "gpio101",
7980c4cd2ccSJingyi Wang 	"gpio62", "gpio102", "gpio33", "gpio103",
7990c4cd2ccSJingyi Wang 	"gpio34", "gpio104", "gpio75", "gpio105",
8000c4cd2ccSJingyi Wang 	"gpio72", "gpio109", "gpio71", "gpio110",
8010c4cd2ccSJingyi Wang 	"gpio70", "gpio111", "gpio63", "gpio112",
8020c4cd2ccSJingyi Wang 	"gpio64", "gpio113", "gpio65", "gpio114",
8030c4cd2ccSJingyi Wang 	"gpio73", "gpio98", "gpio74", "gpio99",
8040c4cd2ccSJingyi Wang };
8050c4cd2ccSJingyi Wang 
8060c4cd2ccSJingyi Wang static const char *const qup0_se0_groups[] = {
8070c4cd2ccSJingyi Wang 	"gpio17", "gpio18", "gpio19", "gpio20",
8080c4cd2ccSJingyi Wang };
8090c4cd2ccSJingyi Wang 
8100c4cd2ccSJingyi Wang static const char *const qup0_se1_groups[] = {
8110c4cd2ccSJingyi Wang 	"gpio19", "gpio20", "gpio17", "gpio18",
8120c4cd2ccSJingyi Wang };
8130c4cd2ccSJingyi Wang 
8140c4cd2ccSJingyi Wang static const char *const qup0_se2_groups[] = {
8150c4cd2ccSJingyi Wang 	"gpio33", "gpio34", "gpio35", "gpio36",
8160c4cd2ccSJingyi Wang };
8170c4cd2ccSJingyi Wang 
8180c4cd2ccSJingyi Wang static const char *const qup0_se3_groups[] = {
8190c4cd2ccSJingyi Wang 	"gpio25", "gpio26", "gpio27", "gpio28",
8200c4cd2ccSJingyi Wang };
8210c4cd2ccSJingyi Wang 
8220c4cd2ccSJingyi Wang static const char *const qup0_se4_groups[] = {
8230c4cd2ccSJingyi Wang 	"gpio29", "gpio30", "gpio31", "gpio32",
8240c4cd2ccSJingyi Wang };
8250c4cd2ccSJingyi Wang 
8260c4cd2ccSJingyi Wang static const char *const qup0_se5_groups[] = {
8270c4cd2ccSJingyi Wang 	"gpio21", "gpio22", "gpio23", "gpio24",
8280c4cd2ccSJingyi Wang };
8290c4cd2ccSJingyi Wang 
8300c4cd2ccSJingyi Wang static const char *const qup0_se6_groups[] = {
8310c4cd2ccSJingyi Wang 	"gpio80", "gpio81", "gpio82", "gpio83",
8320c4cd2ccSJingyi Wang };
8330c4cd2ccSJingyi Wang 
8340c4cd2ccSJingyi Wang static const char *const qup0_se7_groups[] = {
8350c4cd2ccSJingyi Wang 	"gpio43", "gpio44", "gpio43", "gpio44",
8360c4cd2ccSJingyi Wang };
8370c4cd2ccSJingyi Wang 
8380c4cd2ccSJingyi Wang static const char *const qup1_se0_groups[] = {
8390c4cd2ccSJingyi Wang 	"gpio37", "gpio38", "gpio39", "gpio40",
8400c4cd2ccSJingyi Wang };
8410c4cd2ccSJingyi Wang 
8420c4cd2ccSJingyi Wang static const char *const qup1_se1_groups[] = {
8430c4cd2ccSJingyi Wang 	"gpio39", "gpio40", "gpio37", "gpio38",
8440c4cd2ccSJingyi Wang };
8450c4cd2ccSJingyi Wang 
8460c4cd2ccSJingyi Wang static const char *const qup1_se2_groups[] = {
8470c4cd2ccSJingyi Wang 	"gpio84", "gpio85", "gpio86", "gpio87", "gpio88",
8480c4cd2ccSJingyi Wang };
8490c4cd2ccSJingyi Wang 
8500c4cd2ccSJingyi Wang static const char *const qup1_se3_groups[] = {
8510c4cd2ccSJingyi Wang 	"gpio41", "gpio42", "gpio41", "gpio42",
8520c4cd2ccSJingyi Wang };
8530c4cd2ccSJingyi Wang 
8540c4cd2ccSJingyi Wang static const char *const qup1_se4_groups[] = {
8550c4cd2ccSJingyi Wang 	"gpio45", "gpio46", "gpio47", "gpio48",
8560c4cd2ccSJingyi Wang };
8570c4cd2ccSJingyi Wang 
8580c4cd2ccSJingyi Wang static const char *const qup1_se5_groups[] = {
8590c4cd2ccSJingyi Wang 	"gpio49", "gpio50", "gpio51", "gpio52",
8600c4cd2ccSJingyi Wang };
8610c4cd2ccSJingyi Wang 
8620c4cd2ccSJingyi Wang static const char *const qup1_se6_groups[] = {
8630c4cd2ccSJingyi Wang 	"gpio89", "gpio90", "gpio91", "gpio92",
8640c4cd2ccSJingyi Wang };
8650c4cd2ccSJingyi Wang 
8660c4cd2ccSJingyi Wang static const char *const qup1_se7_groups[] = {
8670c4cd2ccSJingyi Wang 	"gpio91", "gpio92", "gpio89", "gpio90",
8680c4cd2ccSJingyi Wang };
8690c4cd2ccSJingyi Wang 
8700c4cd2ccSJingyi Wang static const char *const qup2_se0_groups[] = {
8710c4cd2ccSJingyi Wang 	"gpio10", "gpio11", "gpio12", "gpio13",
8720c4cd2ccSJingyi Wang 	"gpio14", "gpio15", "gpio16",
8730c4cd2ccSJingyi Wang };
8740c4cd2ccSJingyi Wang 
8750c4cd2ccSJingyi Wang static const char *const sailss_emac0_groups[] = {
8760c4cd2ccSJingyi Wang 	"gpio15", "gpio16",
8770c4cd2ccSJingyi Wang };
8780c4cd2ccSJingyi Wang 
8790c4cd2ccSJingyi Wang static const char *const sailss_ospi_groups[] = {
8800c4cd2ccSJingyi Wang 	"gpio15", "gpio16",
8810c4cd2ccSJingyi Wang };
8820c4cd2ccSJingyi Wang 
8830c4cd2ccSJingyi Wang static const char *const sgmii_phy_groups[] = {
8840c4cd2ccSJingyi Wang 	"gpio4",
8850c4cd2ccSJingyi Wang };
8860c4cd2ccSJingyi Wang 
8870c4cd2ccSJingyi Wang static const char *const tb_trig_groups[] = {
8880c4cd2ccSJingyi Wang 	"gpio14",
8890c4cd2ccSJingyi Wang };
8900c4cd2ccSJingyi Wang 
8910c4cd2ccSJingyi Wang static const char *const tgu_ch0_groups[] = {
8920c4cd2ccSJingyi Wang 	"gpio43",
8930c4cd2ccSJingyi Wang };
8940c4cd2ccSJingyi Wang 
8950c4cd2ccSJingyi Wang static const char *const tgu_ch1_groups[] = {
8960c4cd2ccSJingyi Wang 	"gpio44",
8970c4cd2ccSJingyi Wang };
8980c4cd2ccSJingyi Wang 
8990c4cd2ccSJingyi Wang static const char *const tgu_ch2_groups[] = {
9000c4cd2ccSJingyi Wang 	"gpio29",
9010c4cd2ccSJingyi Wang };
9020c4cd2ccSJingyi Wang 
9030c4cd2ccSJingyi Wang static const char *const tgu_ch3_groups[] = {
9040c4cd2ccSJingyi Wang 	"gpio30",
9050c4cd2ccSJingyi Wang };
9060c4cd2ccSJingyi Wang 
9070c4cd2ccSJingyi Wang static const char *const tsense_pwm1_groups[] = {
9080c4cd2ccSJingyi Wang 	"gpio79",
9090c4cd2ccSJingyi Wang };
9100c4cd2ccSJingyi Wang 
9110c4cd2ccSJingyi Wang static const char *const tsense_pwm2_groups[] = {
9120c4cd2ccSJingyi Wang 	"gpio78",
9130c4cd2ccSJingyi Wang };
9140c4cd2ccSJingyi Wang 
9150c4cd2ccSJingyi Wang static const char *const tsense_pwm3_groups[] = {
9160c4cd2ccSJingyi Wang 	"gpio77",
9170c4cd2ccSJingyi Wang };
9180c4cd2ccSJingyi Wang 
9190c4cd2ccSJingyi Wang static const char *const tsense_pwm4_groups[] = {
9200c4cd2ccSJingyi Wang 	"gpio76",
9210c4cd2ccSJingyi Wang };
9220c4cd2ccSJingyi Wang 
9230c4cd2ccSJingyi Wang static const char *const usb2phy_ac_groups[] = {
9240c4cd2ccSJingyi Wang 	"gpio7", "gpio8",
9250c4cd2ccSJingyi Wang };
9260c4cd2ccSJingyi Wang 
9270c4cd2ccSJingyi Wang static const char *const vsense_trigger_groups[] = {
9280c4cd2ccSJingyi Wang 	"gpio67",
9290c4cd2ccSJingyi Wang };
9300c4cd2ccSJingyi Wang 
9310c4cd2ccSJingyi Wang static const struct pinfunction qcs8300_functions[] = {
9320c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(gpio),
9330c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(aoss_cti),
9340c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(atest_char),
9350c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(atest_usb2),
9360c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(audio_ref),
9370c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(cam_mclk),
9380c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(cci_async),
9390c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(cci_i2c_scl),
9400c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(cci_i2c_sda),
9410c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(cci_timer),
9420c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(cri_trng),
9430c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(dbg_out),
9440c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(ddr_bist),
9450c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(ddr_pxi0),
9460c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(ddr_pxi1),
9470c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(ddr_pxi2),
9480c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(ddr_pxi3),
9490c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(edp0_hot),
9500c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(edp0_lcd),
9510c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(edp1_lcd),
9520c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(egpio),
9530c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(emac0_mcg0),
9540c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(emac0_mcg1),
9550c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(emac0_mcg2),
9560c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(emac0_mcg3),
9570c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(emac0_mdc),
9580c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(emac0_mdio),
9590c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(emac0_ptp_aux),
9600c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(emac0_ptp_pps),
9610c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(gcc_gp1),
9620c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(gcc_gp2),
9630c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(gcc_gp3),
9640c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(gcc_gp4),
9650c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(gcc_gp5),
9660c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(hs0_mi2s),
9670c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(hs1_mi2s),
9680c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(hs2_mi2s),
9690c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(ibi_i3c),
9700c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(jitter_bist),
9710c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(mdp0_vsync0),
9720c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(mdp0_vsync1),
9730c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(mdp0_vsync3),
9740c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(mdp0_vsync6),
9750c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(mdp0_vsync7),
9760c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(mdp_vsync),
9770c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(mi2s1_data0),
9780c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(mi2s1_data1),
9790c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(mi2s1_sck),
9800c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(mi2s1_ws),
9810c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(mi2s2_data0),
9820c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(mi2s2_data1),
9830c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(mi2s2_sck),
9840c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(mi2s2_ws),
9850c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(mi2s_mclk0),
9860c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(mi2s_mclk1),
9870c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(pcie0_clkreq),
9880c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(pcie1_clkreq),
9890c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(phase_flag),
9900c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(pll_bist),
9910c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(pll_clk),
9920c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(prng_rosc0),
9930c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(prng_rosc1),
9940c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(prng_rosc2),
9950c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(prng_rosc3),
9960c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(qdss_cti),
9970c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(qdss_gpio),
9980c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(qup0_se0),
9990c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(qup0_se1),
10000c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(qup0_se2),
10010c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(qup0_se3),
10020c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(qup0_se4),
10030c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(qup0_se5),
10040c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(qup0_se6),
10050c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(qup0_se7),
10060c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(qup1_se0),
10070c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(qup1_se1),
10080c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(qup1_se2),
10090c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(qup1_se3),
10100c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(qup1_se4),
10110c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(qup1_se5),
10120c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(qup1_se6),
10130c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(qup1_se7),
10140c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(qup2_se0),
10150c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(sailss_emac0),
10160c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(sailss_ospi),
10170c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(sgmii_phy),
10180c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(tb_trig),
10190c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(tgu_ch0),
10200c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(tgu_ch1),
10210c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(tgu_ch2),
10220c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(tgu_ch3),
10230c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(tsense_pwm1),
10240c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(tsense_pwm2),
10250c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(tsense_pwm3),
10260c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(tsense_pwm4),
10270c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(usb2phy_ac),
10280c4cd2ccSJingyi Wang 	MSM_PIN_FUNCTION(vsense_trigger),
10290c4cd2ccSJingyi Wang };
10300c4cd2ccSJingyi Wang 
10310c4cd2ccSJingyi Wang /*
10320c4cd2ccSJingyi Wang  * Every pin is maintained as a single group, and missing or non-existing pin
10330c4cd2ccSJingyi Wang  * would be maintained as dummy group to synchronize pin group index with
10340c4cd2ccSJingyi Wang  * pin descriptor registered with pinctrl core.
10350c4cd2ccSJingyi Wang  * Clients would not be able to request these dummy pin groups.
10360c4cd2ccSJingyi Wang  */
10370c4cd2ccSJingyi Wang static const struct msm_pingroup qcs8300_groups[] = {
10380c4cd2ccSJingyi Wang 	[0] = PINGROUP(0, _, _, _, _, _, _, _, _, _, _, _),
10390c4cd2ccSJingyi Wang 	[1] = PINGROUP(1, pcie0_clkreq, _, _, _, _, _, _, _, _, _, _),
10400c4cd2ccSJingyi Wang 	[2] = PINGROUP(2, _, _, _, _, _, _, _, _, _, _, _),
10410c4cd2ccSJingyi Wang 	[3] = PINGROUP(3, phase_flag, _, _, _, _, _, _, _, _, _, _),
10420c4cd2ccSJingyi Wang 	[4] = PINGROUP(4, sgmii_phy, qdss_cti, _, _, _, _, _, _, _, _, _),
10430c4cd2ccSJingyi Wang 	[5] = PINGROUP(5, emac0_mdc, qdss_cti, _, _, _, _, _, _, _, _, _),
10440c4cd2ccSJingyi Wang 	[6] = PINGROUP(6, emac0_mdio, _, _, _, _, _, _, _, _, _, _),
10450c4cd2ccSJingyi Wang 	[7] = PINGROUP(7, usb2phy_ac, _, _, _, _, _, _, _, _, _, _),
10460c4cd2ccSJingyi Wang 	[8] = PINGROUP(8, usb2phy_ac, _, _, _, _, _, _, _, _, _, _),
10470c4cd2ccSJingyi Wang 	[9] = PINGROUP(9, phase_flag, _, _, _, _, _, _, _, _, _, _),
10480c4cd2ccSJingyi Wang 	[10] = PINGROUP(10, qup2_se0, emac0_mcg0, _, _, _, _, _, _, _, _, _),
10490c4cd2ccSJingyi Wang 	[11] = PINGROUP(11, qup2_se0, emac0_mcg1, _, _, _, _, _, _, _, _, _),
10500c4cd2ccSJingyi Wang 	[12] = PINGROUP(12, qup2_se0, _, _, _, _, _, _, _, _, _, _),
10510c4cd2ccSJingyi Wang 	[13] = PINGROUP(13, qup2_se0, _, _, _, _, _, _, _, _, _, _),
10520c4cd2ccSJingyi Wang 	[14] = PINGROUP(14, qup2_se0, tb_trig, _, _, _, _, _, _, _, _, _),
10530c4cd2ccSJingyi Wang 	[15] = PINGROUP(15, qup2_se0, _, sailss_ospi, sailss_emac0, _, _, _, _, _, _, _),
10540c4cd2ccSJingyi Wang 	[16] = PINGROUP(16, qup2_se0, _, _, sailss_ospi, sailss_emac0, _, _, _, _, _, _),
10550c4cd2ccSJingyi Wang 	[17] = PINGROUP(17, qup0_se0, qup0_se1, ibi_i3c, _, _, _, _, _, _, _, _),
10560c4cd2ccSJingyi Wang 	[18] = PINGROUP(18, qup0_se0, qup0_se1, ibi_i3c, _, _, _, _, _, _, _, _),
10570c4cd2ccSJingyi Wang 	[19] = PINGROUP(19, qup0_se1, qup0_se0, cci_timer, ibi_i3c, _, _, _, _, _, _, _),
10580c4cd2ccSJingyi Wang 	[20] = PINGROUP(20, qup0_se1, qup0_se0, cci_timer, ibi_i3c, _, _, _, _, _, _, _),
10590c4cd2ccSJingyi Wang 	[21] = PINGROUP(21, qup0_se5, cci_timer, _, _, _, _, _, _, _, _, _),
10600c4cd2ccSJingyi Wang 	[22] = PINGROUP(22, pcie1_clkreq, qup0_se5, cci_timer, _, _, _, _, _, _, _, _),
10610c4cd2ccSJingyi Wang 	[23] = PINGROUP(23, qup0_se5, cci_timer, qdss_cti, _, _, _, _, _, _, _, _),
10620c4cd2ccSJingyi Wang 	[24] = PINGROUP(24, qup0_se5, emac0_ptp_aux, emac0_ptp_pps, qdss_cti,
10630c4cd2ccSJingyi Wang 			emac0_mcg2, _, _, _, _, _, _),
10640c4cd2ccSJingyi Wang 	[25] = PINGROUP(25, qup0_se3, phase_flag, _, _, _, _, _, _, _, _, _),
10650c4cd2ccSJingyi Wang 	[26] = PINGROUP(26, qup0_se3, phase_flag, _, _, _, _, _, _, _, _, _),
10660c4cd2ccSJingyi Wang 	[27] = PINGROUP(27, qup0_se3, _, _, _, _, _, _, _, _, _, _),
10670c4cd2ccSJingyi Wang 	[28] = PINGROUP(28, qup0_se3, phase_flag, _, _, _, _, _, _, _, _, _),
10680c4cd2ccSJingyi Wang 	[29] = PINGROUP(29, qup0_se4, cci_i2c_sda, cci_async, emac0_ptp_pps,
10690c4cd2ccSJingyi Wang 			tgu_ch2, _, _, _, _, _, _),
10700c4cd2ccSJingyi Wang 	[30] = PINGROUP(30, qup0_se4, cci_i2c_scl, cci_async, emac0_ptp_pps,
10710c4cd2ccSJingyi Wang 			tgu_ch3, _, _, _, _, _, _),
10720c4cd2ccSJingyi Wang 	[31] = PINGROUP(31, qup0_se4, cci_i2c_sda, cci_async, emac0_ptp_aux, _, _, _, _, _, _, _),
10730c4cd2ccSJingyi Wang 	[32] = PINGROUP(32, qup0_se4, cci_i2c_scl, emac0_ptp_aux, mdp_vsync, _, _, _, _, _, _, _),
10740c4cd2ccSJingyi Wang 	[33] = PINGROUP(33, qup0_se2, qdss_gpio, _, _, _, _, _, _, _, _, _),
10750c4cd2ccSJingyi Wang 	[34] = PINGROUP(34, qup0_se2, qdss_gpio, _, _, _, _, _, _, _, _, _),
10760c4cd2ccSJingyi Wang 	[35] = PINGROUP(35, qup0_se2, gcc_gp1, _, _, _, _, _, _, _, _, _),
10770c4cd2ccSJingyi Wang 	[36] = PINGROUP(36, qup0_se2, gcc_gp2, qdss_gpio, _, _, _, _, _, _, _, _),
10780c4cd2ccSJingyi Wang 	[37] = PINGROUP(37, qup1_se0, ibi_i3c, qup1_se1, aoss_cti, _, _, _, _, _, _, _),
10790c4cd2ccSJingyi Wang 	[38] = PINGROUP(38, qup1_se0, ibi_i3c, qup1_se1, aoss_cti, _, _, _, _, _, _, _),
10800c4cd2ccSJingyi Wang 	[39] = PINGROUP(39, qup1_se1, ibi_i3c, qup1_se0, aoss_cti, _, _, _, _, _, _, _),
10810c4cd2ccSJingyi Wang 	[40] = PINGROUP(40, qup1_se1, ibi_i3c, qup1_se0, aoss_cti, _, _, _, _, _, _, _),
10820c4cd2ccSJingyi Wang 	[41] = PINGROUP(41, qup1_se3, _, _, _, _, _, _, _, _, _, _),
10830c4cd2ccSJingyi Wang 	[42] = PINGROUP(42, qup1_se3, _, mdp_vsync, _, _, _, _, _, _, _, _),
10840c4cd2ccSJingyi Wang 	[43] = PINGROUP(43, qup0_se7, _, tgu_ch0, _, _, _, _, _, _, _, _),
10850c4cd2ccSJingyi Wang 	[44] = PINGROUP(44, qup0_se7, _, tgu_ch1, _, _, _, _, _, _, _, _),
10860c4cd2ccSJingyi Wang 	[45] = PINGROUP(45, qup1_se4, hs1_mi2s, _, _, _, _, _, _, _, _, _),
10870c4cd2ccSJingyi Wang 	[46] = PINGROUP(46, qup1_se4, hs1_mi2s, _, _, _, _, _, _, _, _, _),
10880c4cd2ccSJingyi Wang 	[47] = PINGROUP(47, qup1_se4, hs1_mi2s, _, _, _, _, _, _, _, _, _),
10890c4cd2ccSJingyi Wang 	[48] = PINGROUP(48, qup1_se4, hs1_mi2s, edp0_lcd, _, _, _, _, _, _, _, _),
10900c4cd2ccSJingyi Wang 	[49] = PINGROUP(49, qup1_se5, hs2_mi2s, cci_timer, qdss_cti, edp1_lcd,
10910c4cd2ccSJingyi Wang 			ddr_pxi1, _, _, _, _, _),
10920c4cd2ccSJingyi Wang 	[50] = PINGROUP(50, qup1_se5, hs2_mi2s, cci_timer, qdss_cti, _, ddr_pxi1, _, _, _, _, _),
10930c4cd2ccSJingyi Wang 	[51] = PINGROUP(51, qup1_se5, hs2_mi2s, qdss_cti, _, _, _, _, _, _, _, _),
10940c4cd2ccSJingyi Wang 	[52] = PINGROUP(52, qup1_se5, hs2_mi2s, qdss_cti, mdp_vsync, ddr_pxi2, _, _, _, _, _, _),
10950c4cd2ccSJingyi Wang 	[53] = PINGROUP(53, ddr_bist, _, _, _, _, _, _, _, _, _, _),
10960c4cd2ccSJingyi Wang 	[54] = PINGROUP(54, cci_i2c_sda, phase_flag, ddr_bist, _, _, _, _, _, _, _, _),
10970c4cd2ccSJingyi Wang 	[55] = PINGROUP(55, cci_i2c_scl, phase_flag, ddr_bist, _, _, _, _, _, _, _, _),
10980c4cd2ccSJingyi Wang 	[56] = PINGROUP(56, phase_flag, ddr_bist, _, _, _, _, _, _, _, _, _),
10990c4cd2ccSJingyi Wang 	[57] = PINGROUP(57, cci_i2c_sda, prng_rosc0, qdss_gpio, _, _, _, _, _, _, _, _),
11000c4cd2ccSJingyi Wang 	[58] = PINGROUP(58, cci_i2c_scl, prng_rosc1, qdss_gpio, _, _, _, _, _, _, _, _),
11010c4cd2ccSJingyi Wang 	[59] = PINGROUP(59, cci_i2c_sda, prng_rosc2, qdss_gpio, _, _, _, _, _, _, _, _),
11020c4cd2ccSJingyi Wang 	[60] = PINGROUP(60, cci_i2c_scl, prng_rosc3, qdss_gpio, _, _, _, _, _, _, _, _),
11030c4cd2ccSJingyi Wang 	[61] = PINGROUP(61, cci_i2c_sda, qdss_gpio, _, _, _, _, _, _, _, _, _),
11040c4cd2ccSJingyi Wang 	[62] = PINGROUP(62, cci_i2c_scl, qdss_gpio, _, _, _, _, _, _, _, _, _),
11050c4cd2ccSJingyi Wang 	[63] = PINGROUP(63, cci_timer, cci_async, qdss_gpio, atest_usb2, _, _, _, _, _, _, _),
11060c4cd2ccSJingyi Wang 	[64] = PINGROUP(64, cci_timer, cci_async, qdss_gpio, atest_usb2, _, _, _, _, _, _, _),
11070c4cd2ccSJingyi Wang 	[65] = PINGROUP(65, cci_timer, cci_async, qdss_gpio, atest_usb2, _, _, _, _, _, _, _),
11080c4cd2ccSJingyi Wang 	[66] = PINGROUP(66, phase_flag, _, atest_char, _, _, _, _, _, _, _, _),
11090c4cd2ccSJingyi Wang 	[67] = PINGROUP(67, cam_mclk, vsense_trigger, atest_usb2, _, _, _, _, _, _, _, _),
11100c4cd2ccSJingyi Wang 	[68] = PINGROUP(68, cam_mclk, gcc_gp4, atest_usb2, ddr_pxi0, _, _, _, _, _, _, _),
11110c4cd2ccSJingyi Wang 	[69] = PINGROUP(69, cam_mclk, gcc_gp3, atest_usb2, ddr_pxi0, _, _, _, _, _, _, _),
11120c4cd2ccSJingyi Wang 	[70] = PINGROUP(70, qdss_gpio, atest_char, _, _, _, _, _, _, _, _, _),
11130c4cd2ccSJingyi Wang 	[71] = PINGROUP(71, qdss_gpio, atest_char, _, _, _, _, _, _, _, _, _),
11140c4cd2ccSJingyi Wang 	[72] = PINGROUP(72, qdss_gpio, atest_char, _, _, _, _, _, _, _, _, _),
11150c4cd2ccSJingyi Wang 	[73] = PINGROUP(73, _, qdss_gpio, _, _, _, _, _, _, _, _, _),
11160c4cd2ccSJingyi Wang 	[74] = PINGROUP(74, pll_clk, qdss_gpio, atest_usb2, _, _, _, _, _, _, _, _),
11170c4cd2ccSJingyi Wang 	[75] = PINGROUP(75, _, dbg_out, qdss_gpio, atest_usb2, _, _, _, _, _, _, _),
11180c4cd2ccSJingyi Wang 	[76] = PINGROUP(76, gcc_gp5, tsense_pwm4, _, _, _, _, _, _, _, _, _),
11190c4cd2ccSJingyi Wang 	[77] = PINGROUP(77, gcc_gp5, tsense_pwm3, _, _, _, _, _, _, _, _, _),
11200c4cd2ccSJingyi Wang 	[78] = PINGROUP(78, tsense_pwm2, _, _, _, _, _, _, _, _, _, _),
11210c4cd2ccSJingyi Wang 	[79] = PINGROUP(79, emac0_ptp_aux, emac0_ptp_pps, emac0_mcg3, _,
11220c4cd2ccSJingyi Wang 			tsense_pwm1, _, _, _, _, _, _),
11230c4cd2ccSJingyi Wang 	[80] = PINGROUP(80, qup0_se6, mdp0_vsync6, _, atest_usb2, ddr_pxi3, _, _, _, _, _, _),
11240c4cd2ccSJingyi Wang 	[81] = PINGROUP(81, qup0_se6, mdp0_vsync7, gcc_gp2, _, atest_usb2, ddr_pxi3, _, _, _, _, _),
11250c4cd2ccSJingyi Wang 	[82] = PINGROUP(82, qup0_se6, gcc_gp3, _, _, _, _, _, _, _, _, _),
11260c4cd2ccSJingyi Wang 	[83] = PINGROUP(83, qup0_se6, gcc_gp4, _, atest_usb2, ddr_pxi2, _, _, _, _, _, _),
11270c4cd2ccSJingyi Wang 	[84] = PINGROUP(84, qup1_se2, gcc_gp1, _, atest_usb2, _, _, _, _, _, _, _),
11280c4cd2ccSJingyi Wang 	[85] = PINGROUP(85, qup1_se2, _, atest_usb2, _, _, _, _, _, _, _, _),
11290c4cd2ccSJingyi Wang 	[86] = PINGROUP(86, qup1_se2, _, _, _, _, _, _, _, _, _, _),
11300c4cd2ccSJingyi Wang 	[87] = PINGROUP(87, qup1_se2, _, atest_usb2, _, _, _, _, _, _, _, _),
11310c4cd2ccSJingyi Wang 	[88] = PINGROUP(88, qup1_se2, _, _, _, _, _, _, _, _, _, _),
11320c4cd2ccSJingyi Wang 	[89] = PINGROUP(89, qup1_se6, qup1_se7, mdp0_vsync0, _, _, _, _, _, _, _, _),
11330c4cd2ccSJingyi Wang 	[90] = PINGROUP(90, qup1_se6, qup1_se7, mdp0_vsync1, cri_trng, _, _, _, _, _, _, _),
11340c4cd2ccSJingyi Wang 	[91] = PINGROUP(91, qup1_se7, qup1_se6, mdp0_vsync3, cri_trng, _, _, _, _, _, _, _),
11350c4cd2ccSJingyi Wang 	[92] = PINGROUP(92, qup1_se7, qup1_se6, cri_trng, _, atest_usb2, _, _, _, _, _, _),
11360c4cd2ccSJingyi Wang 	[93] = PINGROUP(93, atest_char, _, _, _, _, _, _, _, _, _, _),
11370c4cd2ccSJingyi Wang 	[94] = PINGROUP(94, edp0_hot, _, _, _, _, _, _, _, _, _, _),
11380c4cd2ccSJingyi Wang 	[95] = PINGROUP(95, _, _, _, _, _, _, _, _, _, _, _),
11390c4cd2ccSJingyi Wang 	[96] = PINGROUP(96, _, _, _, _, _, _, _, _, _, _, _),
11400c4cd2ccSJingyi Wang 	[97] = PINGROUP(97, mi2s_mclk0, jitter_bist, qdss_gpio, _, _, _, _, _, _, _, _),
11410c4cd2ccSJingyi Wang 	[98] = PINGROUP(98, mi2s1_sck, phase_flag, _, qdss_gpio, _, _, _, _, _, _, _),
11420c4cd2ccSJingyi Wang 	[99] = PINGROUP(99, mi2s1_ws, phase_flag, _, qdss_gpio, _, _, _, _, _, _, _),
11430c4cd2ccSJingyi Wang 	[100] = PINGROUP(100, mi2s1_data0, phase_flag, _, qdss_gpio, _, _, _, _, _, _, _),
11440c4cd2ccSJingyi Wang 	[101] = PINGROUP(101, mi2s1_data1, phase_flag, _, qdss_gpio, _, _, _, _, _, _, _),
11450c4cd2ccSJingyi Wang 	[102] = PINGROUP(102, mi2s2_sck, phase_flag, _, qdss_gpio, _, _, _, _, _, _, _),
11460c4cd2ccSJingyi Wang 	[103] = PINGROUP(103, mi2s2_ws, phase_flag, _, qdss_gpio, _, _, _, _, _, _, _),
11470c4cd2ccSJingyi Wang 	[104] = PINGROUP(104, mi2s2_data0, phase_flag, _, qdss_gpio, _, _, _, _, _, _, _),
11480c4cd2ccSJingyi Wang 	[105] = PINGROUP(105, mi2s2_data1, audio_ref, phase_flag, _, qdss_gpio, _, _, _, _, _, _),
11490c4cd2ccSJingyi Wang 	[106] = PINGROUP(106, hs0_mi2s, phase_flag, _, qdss_gpio, _, _, _, _, _, _, _),
11500c4cd2ccSJingyi Wang 	[107] = PINGROUP(107, hs0_mi2s, pll_bist, phase_flag, _, qdss_gpio, _, _, _, _, _, _),
11510c4cd2ccSJingyi Wang 	[108] = PINGROUP(108, hs0_mi2s, phase_flag, _, qdss_gpio, _, _, _, _, _, _, _),
11520c4cd2ccSJingyi Wang 	[109] = PINGROUP(109, hs0_mi2s, mi2s_mclk1, qdss_gpio, _, _, _, _, _, _, _, _),
11530c4cd2ccSJingyi Wang 	[110] = PINGROUP(110, phase_flag, _, qdss_gpio, _, _, _, _, _, _, _, egpio),
11540c4cd2ccSJingyi Wang 	[111] = PINGROUP(111, phase_flag, _, qdss_gpio, _, _, _, _, _, _, _, egpio),
11550c4cd2ccSJingyi Wang 	[112] = PINGROUP(112, phase_flag, _, qdss_gpio, _, _, _, _, _, _, _, egpio),
11560c4cd2ccSJingyi Wang 	[113] = PINGROUP(113, phase_flag, _, qdss_gpio, _, _, _, _, _, _, _, egpio),
11570c4cd2ccSJingyi Wang 	[114] = PINGROUP(114, phase_flag, _, qdss_gpio, _, _, _, _, _, _, _, egpio),
11580c4cd2ccSJingyi Wang 	[115] = PINGROUP(115, _, _, _, _, _, _, _, _, _, _, egpio),
11590c4cd2ccSJingyi Wang 	[116] = PINGROUP(116, phase_flag, _, _, _, _, _, _, _, _, _, egpio),
11600c4cd2ccSJingyi Wang 	[117] = PINGROUP(117, phase_flag, _, _, _, _, _, _, _, _, _, egpio),
11610c4cd2ccSJingyi Wang 	[118] = PINGROUP(118, phase_flag, _, _, _, _, _, _, _, _, _, egpio),
11620c4cd2ccSJingyi Wang 	[119] = PINGROUP(119, _, _, _, _, _, _, _, _, _, _, egpio),
11630c4cd2ccSJingyi Wang 	[120] = PINGROUP(120, phase_flag, _, _, _, _, _, _, _, _, _, egpio),
11640c4cd2ccSJingyi Wang 	[121] = PINGROUP(121, phase_flag, _, _, _, _, _, _, _, _, _, egpio),
11650c4cd2ccSJingyi Wang 	[122] = PINGROUP(122, phase_flag, _, _, _, _, _, _, _, _, _, egpio),
11660c4cd2ccSJingyi Wang 	[123] = PINGROUP(123, _, _, _, _, _, _, _, _, _, _, egpio),
11670c4cd2ccSJingyi Wang 	[124] = PINGROUP(124, _, _, _, _, _, _, _, _, _, _, egpio),
11680c4cd2ccSJingyi Wang 	[125] = PINGROUP(125, phase_flag, _, _, _, _, _, _, _, _, _, egpio),
11690c4cd2ccSJingyi Wang 	[126] = PINGROUP(126, _, _, _, _, _, _, _, _, _, _, egpio),
11700c4cd2ccSJingyi Wang 	[127] = PINGROUP(127, _, _, _, _, _, _, _, _, _, _, egpio),
11710c4cd2ccSJingyi Wang 	[128] = PINGROUP(128, _, _, _, _, _, _, _, _, _, _, egpio),
11720c4cd2ccSJingyi Wang 	[129] = PINGROUP(129, _, _, _, _, _, _, _, _, _, _, egpio),
11730c4cd2ccSJingyi Wang 	[130] = PINGROUP(130, _, _, _, _, _, _, _, _, _, _, egpio),
11740c4cd2ccSJingyi Wang 	[131] = PINGROUP(131, _, _, _, _, _, _, _, _, _, _, egpio),
11750c4cd2ccSJingyi Wang 	[132] = PINGROUP(132, _, _, _, _, _, _, _, _, _, _, egpio),
11760c4cd2ccSJingyi Wang 	[133] = UFS_RESET(ufs_reset, 0x92000),
11770c4cd2ccSJingyi Wang 	[134] = SDC_QDSD_PINGROUP(sdc1_rclk, 0x89000, 15, 0),
11780c4cd2ccSJingyi Wang 	[135] = SDC_QDSD_PINGROUP(sdc1_clk, 0x89000, 13, 6),
11790c4cd2ccSJingyi Wang 	[136] = SDC_QDSD_PINGROUP(sdc1_cmd, 0x89000, 11, 3),
11800c4cd2ccSJingyi Wang 	[137] = SDC_QDSD_PINGROUP(sdc1_data, 0x89000, 9, 0),
11810c4cd2ccSJingyi Wang };
11820c4cd2ccSJingyi Wang 
11830c4cd2ccSJingyi Wang static const struct msm_gpio_wakeirq_map qcs8300_pdc_map[] = {
11840c4cd2ccSJingyi Wang 	{ 0, 169 },   { 1, 174 },   { 2, 221 },   { 3, 176 },   { 4, 171 },
11850c4cd2ccSJingyi Wang 	{ 9, 198 },   { 10, 187 },  { 11, 188 },  { 13, 211 },  { 16, 203 },
11860c4cd2ccSJingyi Wang 	{ 17, 213 },  { 18, 209 },  { 19, 201 },  { 20, 230 },  { 21, 231 },
11870c4cd2ccSJingyi Wang 	{ 22, 175 },  { 23, 170 },  { 24, 232 },  { 28, 235 },  { 29, 216 },
11880c4cd2ccSJingyi Wang 	{ 31, 208 },  { 32, 200 },  { 36, 212 },  { 37, 177 },  { 38, 178 },
11890c4cd2ccSJingyi Wang 	{ 39, 184 },  { 40, 185 },  { 42, 186 },  { 44, 194 },  { 45, 173 },
11900c4cd2ccSJingyi Wang 	{ 48, 195 },  { 51, 215 },  { 52, 197 },  { 53, 192 },  { 56, 193 },
11910c4cd2ccSJingyi Wang 	{ 66, 238 },  { 67, 172 },  { 68, 182 },  { 69, 179 },  { 70, 181 },
11920c4cd2ccSJingyi Wang 	{ 71, 202 },  { 72, 183 },  { 73, 189 },  { 74, 196 },  { 75, 190 },
11930c4cd2ccSJingyi Wang 	{ 76, 191 },  { 77, 204 },  { 78, 206 },  { 79, 207 },  { 83, 214 },
11940c4cd2ccSJingyi Wang 	{ 84, 205 },  { 87, 237 },  { 89, 225 },  { 90, 217 },  { 91, 218 },
11950c4cd2ccSJingyi Wang 	{ 92, 226 },  { 93, 227 },  { 94, 228 },  { 95, 236 },  { 97, 199 },
11960c4cd2ccSJingyi Wang 	{ 98, 229 },  { 99, 180 },  { 100, 220 }, { 101, 239 }, { 102, 219 },
11970c4cd2ccSJingyi Wang 	{ 103, 233 }, { 104, 234 }, { 105, 223 }, { 129, 210 }, { 130, 222 },
11980c4cd2ccSJingyi Wang };
11990c4cd2ccSJingyi Wang 
12000c4cd2ccSJingyi Wang static const struct msm_pinctrl_soc_data qcs8300_pinctrl = {
12010c4cd2ccSJingyi Wang 	.pins = qcs8300_pins,
12020c4cd2ccSJingyi Wang 	.npins = ARRAY_SIZE(qcs8300_pins),
12030c4cd2ccSJingyi Wang 	.functions = qcs8300_functions,
12040c4cd2ccSJingyi Wang 	.nfunctions = ARRAY_SIZE(qcs8300_functions),
12050c4cd2ccSJingyi Wang 	.groups = qcs8300_groups,
12060c4cd2ccSJingyi Wang 	.ngroups = ARRAY_SIZE(qcs8300_groups),
1207*32b5361aSLijuan Gao 	.ngpios = 134,
12080c4cd2ccSJingyi Wang 	.wakeirq_map = qcs8300_pdc_map,
12090c4cd2ccSJingyi Wang 	.nwakeirq_map = ARRAY_SIZE(qcs8300_pdc_map),
12100c4cd2ccSJingyi Wang 	.egpio_func = 11,
12110c4cd2ccSJingyi Wang };
12120c4cd2ccSJingyi Wang 
qcs8300_pinctrl_probe(struct platform_device * pdev)12130c4cd2ccSJingyi Wang static int qcs8300_pinctrl_probe(struct platform_device *pdev)
12140c4cd2ccSJingyi Wang {
12150c4cd2ccSJingyi Wang 	return msm_pinctrl_probe(pdev, &qcs8300_pinctrl);
12160c4cd2ccSJingyi Wang }
12170c4cd2ccSJingyi Wang 
12180c4cd2ccSJingyi Wang static const struct of_device_id qcs8300_pinctrl_of_match[] = {
12190c4cd2ccSJingyi Wang 	{ .compatible = "qcom,qcs8300-tlmm", },
12200c4cd2ccSJingyi Wang 	{ },
12210c4cd2ccSJingyi Wang };
12220c4cd2ccSJingyi Wang MODULE_DEVICE_TABLE(of, qcs8300_pinctrl_of_match);
12230c4cd2ccSJingyi Wang 
12240c4cd2ccSJingyi Wang static struct platform_driver qcs8300_pinctrl_driver = {
12250c4cd2ccSJingyi Wang 	.driver = {
12260c4cd2ccSJingyi Wang 		.name = "qcs8300-tlmm",
12270c4cd2ccSJingyi Wang 		.of_match_table = qcs8300_pinctrl_of_match,
12280c4cd2ccSJingyi Wang 	},
12290c4cd2ccSJingyi Wang 	.probe = qcs8300_pinctrl_probe,
12300c4cd2ccSJingyi Wang };
12310c4cd2ccSJingyi Wang 
qcs8300_pinctrl_init(void)12320c4cd2ccSJingyi Wang static int __init qcs8300_pinctrl_init(void)
12330c4cd2ccSJingyi Wang {
12340c4cd2ccSJingyi Wang 	return platform_driver_register(&qcs8300_pinctrl_driver);
12350c4cd2ccSJingyi Wang }
12360c4cd2ccSJingyi Wang arch_initcall(qcs8300_pinctrl_init);
12370c4cd2ccSJingyi Wang 
qcs8300_pinctrl_exit(void)12380c4cd2ccSJingyi Wang static void __exit qcs8300_pinctrl_exit(void)
12390c4cd2ccSJingyi Wang {
12400c4cd2ccSJingyi Wang 	platform_driver_unregister(&qcs8300_pinctrl_driver);
12410c4cd2ccSJingyi Wang }
12420c4cd2ccSJingyi Wang module_exit(qcs8300_pinctrl_exit);
12430c4cd2ccSJingyi Wang 
12440c4cd2ccSJingyi Wang MODULE_DESCRIPTION("QTI QCS8300 pinctrl driver");
12450c4cd2ccSJingyi Wang MODULE_LICENSE("GPL");
1246