xref: /linux/drivers/pinctrl/qcom/pinctrl-sm7150.c (revision 5ed79863)
1b915395cSDanila Tikhonov // SPDX-License-Identifier: GPL-2.0-only
2b915395cSDanila Tikhonov /*
3b915395cSDanila Tikhonov  * Copyright (c) 2018, The Linux Foundation. All rights reserved.
4b915395cSDanila Tikhonov  * Copyright (c) 2023, Danila Tikhonov <danila@jiaxyga.com>
5b915395cSDanila Tikhonov  */
6b915395cSDanila Tikhonov 
7b915395cSDanila Tikhonov #include <linux/module.h>
8b915395cSDanila Tikhonov #include <linux/of.h>
9b915395cSDanila Tikhonov #include <linux/platform_device.h>
10b915395cSDanila Tikhonov #include <linux/pinctrl/pinctrl.h>
11b915395cSDanila Tikhonov 
12b915395cSDanila Tikhonov #include "pinctrl-msm.h"
13b915395cSDanila Tikhonov 
14b915395cSDanila Tikhonov static const char * const sm7150_tiles[] = {
15b915395cSDanila Tikhonov 	"north",
16b915395cSDanila Tikhonov 	"south",
17b915395cSDanila Tikhonov 	"west",
18b915395cSDanila Tikhonov };
19b915395cSDanila Tikhonov 
20b915395cSDanila Tikhonov enum {
21b915395cSDanila Tikhonov 	NORTH,
22b915395cSDanila Tikhonov 	SOUTH,
23b915395cSDanila Tikhonov 	WEST
24b915395cSDanila Tikhonov };
25b915395cSDanila Tikhonov 
26b915395cSDanila Tikhonov #define REG_SIZE 0x1000
27b915395cSDanila Tikhonov 
28b915395cSDanila Tikhonov #define PINGROUP(id, _tile, f1, f2, f3, f4, f5, f6, f7, f8, f9) \
29b915395cSDanila Tikhonov 	{						\
306a16d1a5SRohit Agarwal 		.grp = PINCTRL_PINGROUP("gpio" #id, 	\
316a16d1a5SRohit Agarwal 			gpio##id##_pins, 		\
326a16d1a5SRohit Agarwal 			ARRAY_SIZE(gpio##id##_pins)),	\
33b915395cSDanila Tikhonov 		.funcs = (int[]){			\
34b915395cSDanila Tikhonov 			msm_mux_gpio, /* gpio mode */	\
35b915395cSDanila Tikhonov 			msm_mux_##f1,			\
36b915395cSDanila Tikhonov 			msm_mux_##f2,			\
37b915395cSDanila Tikhonov 			msm_mux_##f3,			\
38b915395cSDanila Tikhonov 			msm_mux_##f4,			\
39b915395cSDanila Tikhonov 			msm_mux_##f5,			\
40b915395cSDanila Tikhonov 			msm_mux_##f6,			\
41b915395cSDanila Tikhonov 			msm_mux_##f7,			\
42b915395cSDanila Tikhonov 			msm_mux_##f8,			\
43b915395cSDanila Tikhonov 			msm_mux_##f9			\
44b915395cSDanila Tikhonov 		},					\
45b915395cSDanila Tikhonov 		.nfuncs = 10,				\
46b915395cSDanila Tikhonov 		.ctl_reg = REG_SIZE * id,		\
47b915395cSDanila Tikhonov 		.io_reg = 0x4 + REG_SIZE * id,		\
48b915395cSDanila Tikhonov 		.intr_cfg_reg = 0x8 + REG_SIZE * id,	\
49b915395cSDanila Tikhonov 		.intr_status_reg = 0xc + REG_SIZE * id,	\
50b915395cSDanila Tikhonov 		.intr_target_reg = 0x8 + REG_SIZE * id,	\
51b915395cSDanila Tikhonov 		.tile = _tile,				\
52b915395cSDanila Tikhonov 		.mux_bit = 2,				\
53b915395cSDanila Tikhonov 		.pull_bit = 0,				\
54b915395cSDanila Tikhonov 		.drv_bit = 6,				\
55b915395cSDanila Tikhonov 		.oe_bit = 9,				\
56b915395cSDanila Tikhonov 		.in_bit = 0,				\
57b915395cSDanila Tikhonov 		.out_bit = 1,				\
58b915395cSDanila Tikhonov 		.intr_enable_bit = 0,			\
59b915395cSDanila Tikhonov 		.intr_status_bit = 0,			\
60b915395cSDanila Tikhonov 		.intr_target_bit = 5,			\
61b915395cSDanila Tikhonov 		.intr_target_kpss_val = 3,		\
62b915395cSDanila Tikhonov 		.intr_raw_status_bit = 4,		\
63b915395cSDanila Tikhonov 		.intr_polarity_bit = 1,			\
64b915395cSDanila Tikhonov 		.intr_detection_bit = 2,		\
65b915395cSDanila Tikhonov 		.intr_detection_width = 2,		\
66b915395cSDanila Tikhonov 	}
67b915395cSDanila Tikhonov 
68*5ed79863SDanila Tikhonov #define SDC_QDSD_PINGROUP(pg_name, _tile, ctl, pull, drv) \
69b915395cSDanila Tikhonov 	{						\
706a16d1a5SRohit Agarwal 		.grp = PINCTRL_PINGROUP(#pg_name, 	\
716a16d1a5SRohit Agarwal 			pg_name##_pins, 		\
726a16d1a5SRohit Agarwal 			ARRAY_SIZE(pg_name##_pins)),	\
73b915395cSDanila Tikhonov 		.ctl_reg = ctl,				\
74b915395cSDanila Tikhonov 		.io_reg = 0,				\
75b915395cSDanila Tikhonov 		.intr_cfg_reg = 0,			\
76b915395cSDanila Tikhonov 		.intr_status_reg = 0,			\
77b915395cSDanila Tikhonov 		.intr_target_reg = 0,			\
78*5ed79863SDanila Tikhonov 		.tile = _tile,				\
79b915395cSDanila Tikhonov 		.mux_bit = -1,				\
80b915395cSDanila Tikhonov 		.pull_bit = pull,			\
81b915395cSDanila Tikhonov 		.drv_bit = drv,				\
82b915395cSDanila Tikhonov 		.oe_bit = -1,				\
83b915395cSDanila Tikhonov 		.in_bit = -1,				\
84b915395cSDanila Tikhonov 		.out_bit = -1,				\
85b915395cSDanila Tikhonov 		.intr_enable_bit = -1,			\
86b915395cSDanila Tikhonov 		.intr_status_bit = -1,			\
87b915395cSDanila Tikhonov 		.intr_target_bit = -1,			\
88b915395cSDanila Tikhonov 		.intr_raw_status_bit = -1,		\
89b915395cSDanila Tikhonov 		.intr_polarity_bit = -1,		\
90b915395cSDanila Tikhonov 		.intr_detection_bit = -1,		\
91b915395cSDanila Tikhonov 		.intr_detection_width = -1,		\
92b915395cSDanila Tikhonov 	}
93b915395cSDanila Tikhonov 
94b915395cSDanila Tikhonov #define UFS_RESET(pg_name, offset)			\
95b915395cSDanila Tikhonov 	{						\
966a16d1a5SRohit Agarwal 		.grp = PINCTRL_PINGROUP(#pg_name, 	\
976a16d1a5SRohit Agarwal 			pg_name##_pins, 		\
986a16d1a5SRohit Agarwal 			ARRAY_SIZE(pg_name##_pins)),	\
99b915395cSDanila Tikhonov 		.ctl_reg = offset,			\
100b915395cSDanila Tikhonov 		.io_reg = offset + 0x4,			\
101b915395cSDanila Tikhonov 		.intr_cfg_reg = 0,			\
102b915395cSDanila Tikhonov 		.intr_status_reg = 0,			\
103b915395cSDanila Tikhonov 		.intr_target_reg = 0,			\
104*5ed79863SDanila Tikhonov 		.tile = WEST,				\
105b915395cSDanila Tikhonov 		.mux_bit = -1,				\
106b915395cSDanila Tikhonov 		.pull_bit = 3,				\
107b915395cSDanila Tikhonov 		.drv_bit = 0,				\
108b915395cSDanila Tikhonov 		.oe_bit = -1,				\
109b915395cSDanila Tikhonov 		.in_bit = -1,				\
110b915395cSDanila Tikhonov 		.out_bit = 0,				\
111b915395cSDanila Tikhonov 		.intr_enable_bit = -1,			\
112b915395cSDanila Tikhonov 		.intr_status_bit = -1,			\
113b915395cSDanila Tikhonov 		.intr_target_bit = -1,			\
114b915395cSDanila Tikhonov 		.intr_raw_status_bit = -1,		\
115b915395cSDanila Tikhonov 		.intr_polarity_bit = -1,		\
116b915395cSDanila Tikhonov 		.intr_detection_bit = -1,		\
117b915395cSDanila Tikhonov 		.intr_detection_width = -1,		\
118b915395cSDanila Tikhonov 	}
119b915395cSDanila Tikhonov 
120b915395cSDanila Tikhonov static const struct pinctrl_pin_desc sm7150_pins[] = {
121b915395cSDanila Tikhonov 	PINCTRL_PIN(0, "GPIO_0"),
122b915395cSDanila Tikhonov 	PINCTRL_PIN(1, "GPIO_1"),
123b915395cSDanila Tikhonov 	PINCTRL_PIN(2, "GPIO_2"),
124b915395cSDanila Tikhonov 	PINCTRL_PIN(3, "GPIO_3"),
125b915395cSDanila Tikhonov 	PINCTRL_PIN(4, "GPIO_4"),
126b915395cSDanila Tikhonov 	PINCTRL_PIN(5, "GPIO_5"),
127b915395cSDanila Tikhonov 	PINCTRL_PIN(6, "GPIO_6"),
128b915395cSDanila Tikhonov 	PINCTRL_PIN(7, "GPIO_7"),
129b915395cSDanila Tikhonov 	PINCTRL_PIN(8, "GPIO_8"),
130b915395cSDanila Tikhonov 	PINCTRL_PIN(9, "GPIO_9"),
131b915395cSDanila Tikhonov 	PINCTRL_PIN(10, "GPIO_10"),
132b915395cSDanila Tikhonov 	PINCTRL_PIN(11, "GPIO_11"),
133b915395cSDanila Tikhonov 	PINCTRL_PIN(12, "GPIO_12"),
134b915395cSDanila Tikhonov 	PINCTRL_PIN(13, "GPIO_13"),
135b915395cSDanila Tikhonov 	PINCTRL_PIN(14, "GPIO_14"),
136b915395cSDanila Tikhonov 	PINCTRL_PIN(15, "GPIO_15"),
137b915395cSDanila Tikhonov 	PINCTRL_PIN(16, "GPIO_16"),
138b915395cSDanila Tikhonov 	PINCTRL_PIN(17, "GPIO_17"),
139b915395cSDanila Tikhonov 	PINCTRL_PIN(18, "GPIO_18"),
140b915395cSDanila Tikhonov 	PINCTRL_PIN(19, "GPIO_19"),
141b915395cSDanila Tikhonov 	PINCTRL_PIN(20, "GPIO_20"),
142b915395cSDanila Tikhonov 	PINCTRL_PIN(21, "GPIO_21"),
143b915395cSDanila Tikhonov 	PINCTRL_PIN(22, "GPIO_22"),
144b915395cSDanila Tikhonov 	PINCTRL_PIN(23, "GPIO_23"),
145b915395cSDanila Tikhonov 	PINCTRL_PIN(24, "GPIO_24"),
146b915395cSDanila Tikhonov 	PINCTRL_PIN(25, "GPIO_25"),
147b915395cSDanila Tikhonov 	PINCTRL_PIN(26, "GPIO_26"),
148b915395cSDanila Tikhonov 	PINCTRL_PIN(27, "GPIO_27"),
149b915395cSDanila Tikhonov 	PINCTRL_PIN(28, "GPIO_28"),
150b915395cSDanila Tikhonov 	PINCTRL_PIN(29, "GPIO_29"),
151b915395cSDanila Tikhonov 	PINCTRL_PIN(30, "GPIO_30"),
152b915395cSDanila Tikhonov 	PINCTRL_PIN(31, "GPIO_31"),
153b915395cSDanila Tikhonov 	PINCTRL_PIN(32, "GPIO_32"),
154b915395cSDanila Tikhonov 	PINCTRL_PIN(33, "GPIO_33"),
155b915395cSDanila Tikhonov 	PINCTRL_PIN(34, "GPIO_34"),
156b915395cSDanila Tikhonov 	PINCTRL_PIN(35, "GPIO_35"),
157b915395cSDanila Tikhonov 	PINCTRL_PIN(36, "GPIO_36"),
158b915395cSDanila Tikhonov 	PINCTRL_PIN(37, "GPIO_37"),
159b915395cSDanila Tikhonov 	PINCTRL_PIN(38, "GPIO_38"),
160b915395cSDanila Tikhonov 	PINCTRL_PIN(39, "GPIO_39"),
161b915395cSDanila Tikhonov 	PINCTRL_PIN(40, "GPIO_40"),
162b915395cSDanila Tikhonov 	PINCTRL_PIN(41, "GPIO_41"),
163b915395cSDanila Tikhonov 	PINCTRL_PIN(42, "GPIO_42"),
164b915395cSDanila Tikhonov 	PINCTRL_PIN(43, "GPIO_43"),
165b915395cSDanila Tikhonov 	PINCTRL_PIN(44, "GPIO_44"),
166b915395cSDanila Tikhonov 	PINCTRL_PIN(45, "GPIO_45"),
167b915395cSDanila Tikhonov 	PINCTRL_PIN(46, "GPIO_46"),
168b915395cSDanila Tikhonov 	PINCTRL_PIN(47, "GPIO_47"),
169b915395cSDanila Tikhonov 	PINCTRL_PIN(48, "GPIO_48"),
170b915395cSDanila Tikhonov 	PINCTRL_PIN(49, "GPIO_49"),
171b915395cSDanila Tikhonov 	PINCTRL_PIN(50, "GPIO_50"),
172b915395cSDanila Tikhonov 	PINCTRL_PIN(51, "GPIO_51"),
173b915395cSDanila Tikhonov 	PINCTRL_PIN(52, "GPIO_52"),
174b915395cSDanila Tikhonov 	PINCTRL_PIN(53, "GPIO_53"),
175b915395cSDanila Tikhonov 	PINCTRL_PIN(54, "GPIO_54"),
176b915395cSDanila Tikhonov 	PINCTRL_PIN(55, "GPIO_55"),
177b915395cSDanila Tikhonov 	PINCTRL_PIN(56, "GPIO_56"),
178b915395cSDanila Tikhonov 	PINCTRL_PIN(57, "GPIO_57"),
179b915395cSDanila Tikhonov 	PINCTRL_PIN(58, "GPIO_58"),
180b915395cSDanila Tikhonov 	PINCTRL_PIN(59, "GPIO_59"),
181b915395cSDanila Tikhonov 	PINCTRL_PIN(60, "GPIO_60"),
182b915395cSDanila Tikhonov 	PINCTRL_PIN(61, "GPIO_61"),
183b915395cSDanila Tikhonov 	PINCTRL_PIN(62, "GPIO_62"),
184b915395cSDanila Tikhonov 	PINCTRL_PIN(63, "GPIO_63"),
185b915395cSDanila Tikhonov 	PINCTRL_PIN(64, "GPIO_64"),
186b915395cSDanila Tikhonov 	PINCTRL_PIN(65, "GPIO_65"),
187b915395cSDanila Tikhonov 	PINCTRL_PIN(66, "GPIO_66"),
188b915395cSDanila Tikhonov 	PINCTRL_PIN(67, "GPIO_67"),
189b915395cSDanila Tikhonov 	PINCTRL_PIN(68, "GPIO_68"),
190b915395cSDanila Tikhonov 	PINCTRL_PIN(69, "GPIO_69"),
191b915395cSDanila Tikhonov 	PINCTRL_PIN(70, "GPIO_70"),
192b915395cSDanila Tikhonov 	PINCTRL_PIN(71, "GPIO_71"),
193b915395cSDanila Tikhonov 	PINCTRL_PIN(72, "GPIO_72"),
194b915395cSDanila Tikhonov 	PINCTRL_PIN(73, "GPIO_73"),
195b915395cSDanila Tikhonov 	PINCTRL_PIN(74, "GPIO_74"),
196b915395cSDanila Tikhonov 	PINCTRL_PIN(75, "GPIO_75"),
197b915395cSDanila Tikhonov 	PINCTRL_PIN(76, "GPIO_76"),
198b915395cSDanila Tikhonov 	PINCTRL_PIN(77, "GPIO_77"),
199b915395cSDanila Tikhonov 	PINCTRL_PIN(78, "GPIO_78"),
200b915395cSDanila Tikhonov 	PINCTRL_PIN(79, "GPIO_79"),
201b915395cSDanila Tikhonov 	PINCTRL_PIN(80, "GPIO_80"),
202b915395cSDanila Tikhonov 	PINCTRL_PIN(81, "GPIO_81"),
203b915395cSDanila Tikhonov 	PINCTRL_PIN(82, "GPIO_82"),
204b915395cSDanila Tikhonov 	PINCTRL_PIN(83, "GPIO_83"),
205b915395cSDanila Tikhonov 	PINCTRL_PIN(84, "GPIO_84"),
206b915395cSDanila Tikhonov 	PINCTRL_PIN(85, "GPIO_85"),
207b915395cSDanila Tikhonov 	PINCTRL_PIN(86, "GPIO_86"),
208b915395cSDanila Tikhonov 	PINCTRL_PIN(87, "GPIO_87"),
209b915395cSDanila Tikhonov 	PINCTRL_PIN(88, "GPIO_88"),
210b915395cSDanila Tikhonov 	PINCTRL_PIN(89, "GPIO_89"),
211b915395cSDanila Tikhonov 	PINCTRL_PIN(90, "GPIO_90"),
212b915395cSDanila Tikhonov 	PINCTRL_PIN(91, "GPIO_91"),
213b915395cSDanila Tikhonov 	PINCTRL_PIN(92, "GPIO_92"),
214b915395cSDanila Tikhonov 	PINCTRL_PIN(93, "GPIO_93"),
215b915395cSDanila Tikhonov 	PINCTRL_PIN(94, "GPIO_94"),
216b915395cSDanila Tikhonov 	PINCTRL_PIN(95, "GPIO_95"),
217b915395cSDanila Tikhonov 	PINCTRL_PIN(96, "GPIO_96"),
218b915395cSDanila Tikhonov 	PINCTRL_PIN(97, "GPIO_97"),
219b915395cSDanila Tikhonov 	PINCTRL_PIN(98, "GPIO_98"),
220b915395cSDanila Tikhonov 	PINCTRL_PIN(99, "GPIO_99"),
221b915395cSDanila Tikhonov 	PINCTRL_PIN(100, "GPIO_100"),
222b915395cSDanila Tikhonov 	PINCTRL_PIN(101, "GPIO_101"),
223b915395cSDanila Tikhonov 	PINCTRL_PIN(102, "GPIO_102"),
224b915395cSDanila Tikhonov 	PINCTRL_PIN(103, "GPIO_103"),
225b915395cSDanila Tikhonov 	PINCTRL_PIN(104, "GPIO_104"),
226b915395cSDanila Tikhonov 	PINCTRL_PIN(105, "GPIO_105"),
227b915395cSDanila Tikhonov 	PINCTRL_PIN(106, "GPIO_106"),
228b915395cSDanila Tikhonov 	PINCTRL_PIN(107, "GPIO_107"),
229b915395cSDanila Tikhonov 	PINCTRL_PIN(108, "GPIO_108"),
230b915395cSDanila Tikhonov 	PINCTRL_PIN(109, "GPIO_109"),
231b915395cSDanila Tikhonov 	PINCTRL_PIN(110, "GPIO_110"),
232b915395cSDanila Tikhonov 	PINCTRL_PIN(111, "GPIO_111"),
233b915395cSDanila Tikhonov 	PINCTRL_PIN(112, "GPIO_112"),
234b915395cSDanila Tikhonov 	PINCTRL_PIN(113, "GPIO_113"),
235b915395cSDanila Tikhonov 	PINCTRL_PIN(114, "GPIO_114"),
236b915395cSDanila Tikhonov 	PINCTRL_PIN(115, "GPIO_115"),
237b915395cSDanila Tikhonov 	PINCTRL_PIN(116, "GPIO_116"),
238b915395cSDanila Tikhonov 	PINCTRL_PIN(117, "GPIO_117"),
239b915395cSDanila Tikhonov 	PINCTRL_PIN(118, "GPIO_118"),
240b915395cSDanila Tikhonov 	PINCTRL_PIN(119, "UFS_RESET"),
241b915395cSDanila Tikhonov 	PINCTRL_PIN(120, "SDC1_RCLK"),
242b915395cSDanila Tikhonov 	PINCTRL_PIN(121, "SDC1_CLK"),
243b915395cSDanila Tikhonov 	PINCTRL_PIN(122, "SDC1_CMD"),
244b915395cSDanila Tikhonov 	PINCTRL_PIN(123, "SDC1_DATA"),
245b915395cSDanila Tikhonov 	PINCTRL_PIN(124, "SDC2_CLK"),
246b915395cSDanila Tikhonov 	PINCTRL_PIN(125, "SDC2_CMD"),
247b915395cSDanila Tikhonov 	PINCTRL_PIN(126, "SDC2_DATA"),
248b915395cSDanila Tikhonov 
249b915395cSDanila Tikhonov };
250b915395cSDanila Tikhonov 
251b915395cSDanila Tikhonov #define DECLARE_MSM_GPIO_PINS(pin) \
252b915395cSDanila Tikhonov 	static const unsigned int gpio##pin##_pins[] = { pin }
253b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(0);
254b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(1);
255b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(2);
256b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(3);
257b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(4);
258b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(5);
259b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(6);
260b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(7);
261b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(8);
262b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(9);
263b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(10);
264b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(11);
265b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(12);
266b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(13);
267b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(14);
268b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(15);
269b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(16);
270b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(17);
271b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(18);
272b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(19);
273b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(20);
274b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(21);
275b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(22);
276b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(23);
277b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(24);
278b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(25);
279b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(26);
280b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(27);
281b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(28);
282b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(29);
283b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(30);
284b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(31);
285b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(32);
286b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(33);
287b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(34);
288b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(35);
289b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(36);
290b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(37);
291b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(38);
292b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(39);
293b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(40);
294b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(41);
295b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(42);
296b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(43);
297b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(44);
298b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(45);
299b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(46);
300b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(47);
301b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(48);
302b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(49);
303b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(50);
304b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(51);
305b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(52);
306b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(53);
307b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(54);
308b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(55);
309b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(56);
310b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(57);
311b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(58);
312b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(59);
313b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(60);
314b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(61);
315b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(62);
316b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(63);
317b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(64);
318b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(65);
319b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(66);
320b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(67);
321b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(68);
322b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(69);
323b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(70);
324b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(71);
325b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(72);
326b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(73);
327b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(74);
328b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(75);
329b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(76);
330b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(77);
331b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(78);
332b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(79);
333b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(80);
334b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(81);
335b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(82);
336b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(83);
337b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(84);
338b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(85);
339b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(86);
340b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(87);
341b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(88);
342b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(89);
343b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(90);
344b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(91);
345b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(92);
346b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(93);
347b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(94);
348b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(95);
349b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(96);
350b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(97);
351b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(98);
352b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(99);
353b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(100);
354b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(101);
355b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(102);
356b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(103);
357b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(104);
358b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(105);
359b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(106);
360b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(107);
361b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(108);
362b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(109);
363b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(110);
364b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(111);
365b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(112);
366b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(113);
367b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(114);
368b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(115);
369b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(116);
370b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(117);
371b915395cSDanila Tikhonov DECLARE_MSM_GPIO_PINS(118);
372b915395cSDanila Tikhonov 
373b915395cSDanila Tikhonov static const unsigned int ufs_reset_pins[] = { 119 };
374b915395cSDanila Tikhonov static const unsigned int sdc1_rclk_pins[] = { 120 };
375b915395cSDanila Tikhonov static const unsigned int sdc1_clk_pins[] = { 121 };
376b915395cSDanila Tikhonov static const unsigned int sdc1_cmd_pins[] = { 122 };
377b915395cSDanila Tikhonov static const unsigned int sdc1_data_pins[] = { 123 };
378b915395cSDanila Tikhonov static const unsigned int sdc2_clk_pins[] = { 124 };
379b915395cSDanila Tikhonov static const unsigned int sdc2_cmd_pins[] = { 125 };
380b915395cSDanila Tikhonov static const unsigned int sdc2_data_pins[] = { 126 };
381b915395cSDanila Tikhonov 
382b915395cSDanila Tikhonov enum sm7150_functions {
383b915395cSDanila Tikhonov 	msm_mux_gpio,
384b915395cSDanila Tikhonov 	msm_mux_adsp_ext,
385b915395cSDanila Tikhonov 	msm_mux_agera_pll,
386b915395cSDanila Tikhonov 	msm_mux_aoss_cti,
387b915395cSDanila Tikhonov 	msm_mux_atest_char,
388b915395cSDanila Tikhonov 	msm_mux_atest_tsens,
389b915395cSDanila Tikhonov 	msm_mux_atest_tsens2,
390b915395cSDanila Tikhonov 	msm_mux_atest_usb1,
391b915395cSDanila Tikhonov 	msm_mux_atest_usb2,
392b915395cSDanila Tikhonov 	msm_mux_cam_mclk,
393b915395cSDanila Tikhonov 	msm_mux_cci_async,
394b915395cSDanila Tikhonov 	msm_mux_cci_i2c,
395b915395cSDanila Tikhonov 	msm_mux_cci_timer0,
396b915395cSDanila Tikhonov 	msm_mux_cci_timer1,
397b915395cSDanila Tikhonov 	msm_mux_cci_timer2,
398b915395cSDanila Tikhonov 	msm_mux_cci_timer3,
399b915395cSDanila Tikhonov 	msm_mux_cci_timer4,
400b915395cSDanila Tikhonov 	msm_mux_dbg_out,
401b915395cSDanila Tikhonov 	msm_mux_ddr_bist,
402b915395cSDanila Tikhonov 	msm_mux_ddr_pxi0,
403b915395cSDanila Tikhonov 	msm_mux_ddr_pxi1,
404b915395cSDanila Tikhonov 	msm_mux_ddr_pxi2,
405b915395cSDanila Tikhonov 	msm_mux_ddr_pxi3,
406b915395cSDanila Tikhonov 	msm_mux_edp_hot,
407b915395cSDanila Tikhonov 	msm_mux_edp_lcd,
408b915395cSDanila Tikhonov 	msm_mux_gcc_gp1,
409b915395cSDanila Tikhonov 	msm_mux_gcc_gp2,
410b915395cSDanila Tikhonov 	msm_mux_gcc_gp3,
411b915395cSDanila Tikhonov 	msm_mux_gp_pdm0,
412b915395cSDanila Tikhonov 	msm_mux_gp_pdm1,
413b915395cSDanila Tikhonov 	msm_mux_gp_pdm2,
414b915395cSDanila Tikhonov 	msm_mux_gps_tx,
415b915395cSDanila Tikhonov 	msm_mux_jitter_bist,
416b915395cSDanila Tikhonov 	msm_mux_ldo_en,
417b915395cSDanila Tikhonov 	msm_mux_ldo_update,
418b915395cSDanila Tikhonov 	msm_mux_m_voc,
419b915395cSDanila Tikhonov 	msm_mux_mdp_vsync,
420b915395cSDanila Tikhonov 	msm_mux_mdp_vsync0,
421b915395cSDanila Tikhonov 	msm_mux_mdp_vsync1,
422b915395cSDanila Tikhonov 	msm_mux_mdp_vsync2,
423b915395cSDanila Tikhonov 	msm_mux_mdp_vsync3,
424b915395cSDanila Tikhonov 	msm_mux_mss_lte,
425b915395cSDanila Tikhonov 	msm_mux_nav_pps_in,
426b915395cSDanila Tikhonov 	msm_mux_nav_pps_out,
427b915395cSDanila Tikhonov 	msm_mux_pa_indicator,
428b915395cSDanila Tikhonov 	msm_mux_pci_e,
429b915395cSDanila Tikhonov 	msm_mux_phase_flag,
430b915395cSDanila Tikhonov 	msm_mux_pll_bist,
431b915395cSDanila Tikhonov 	msm_mux_pll_bypassnl,
432b915395cSDanila Tikhonov 	msm_mux_pll_reset,
433b915395cSDanila Tikhonov 	msm_mux_pri_mi2s,
434b915395cSDanila Tikhonov 	msm_mux_pri_mi2s_ws,
435b915395cSDanila Tikhonov 	msm_mux_prng_rosc,
436b915395cSDanila Tikhonov 	msm_mux_qdss,
437b915395cSDanila Tikhonov 	msm_mux_qdss_cti,
438b915395cSDanila Tikhonov 	msm_mux_qlink_enable,
439b915395cSDanila Tikhonov 	msm_mux_qlink_request,
440b915395cSDanila Tikhonov 	msm_mux_qua_mi2s,
441b915395cSDanila Tikhonov 	msm_mux_qup00,
442b915395cSDanila Tikhonov 	msm_mux_qup01,
443b915395cSDanila Tikhonov 	msm_mux_qup02,
444b915395cSDanila Tikhonov 	msm_mux_qup03,
445b915395cSDanila Tikhonov 	msm_mux_qup04,
446b915395cSDanila Tikhonov 	msm_mux_qup10,
447b915395cSDanila Tikhonov 	msm_mux_qup11,
448b915395cSDanila Tikhonov 	msm_mux_qup12,
449b915395cSDanila Tikhonov 	msm_mux_qup13,
450b915395cSDanila Tikhonov 	msm_mux_qup14,
451b915395cSDanila Tikhonov 	msm_mux_qup15,
452b915395cSDanila Tikhonov 	msm_mux_sd_write,
453b915395cSDanila Tikhonov 	msm_mux_sdc40,
454b915395cSDanila Tikhonov 	msm_mux_sdc41,
455b915395cSDanila Tikhonov 	msm_mux_sdc42,
456b915395cSDanila Tikhonov 	msm_mux_sdc43,
457b915395cSDanila Tikhonov 	msm_mux_sdc4_clk,
458b915395cSDanila Tikhonov 	msm_mux_sdc4_cmd,
459b915395cSDanila Tikhonov 	msm_mux_sec_mi2s,
460b915395cSDanila Tikhonov 	msm_mux_ter_mi2s,
461b915395cSDanila Tikhonov 	msm_mux_tgu_ch0,
462b915395cSDanila Tikhonov 	msm_mux_tgu_ch1,
463b915395cSDanila Tikhonov 	msm_mux_tgu_ch2,
464b915395cSDanila Tikhonov 	msm_mux_tgu_ch3,
465b915395cSDanila Tikhonov 	msm_mux_tsif1_clk,
466b915395cSDanila Tikhonov 	msm_mux_tsif1_data,
467b915395cSDanila Tikhonov 	msm_mux_tsif1_en,
468b915395cSDanila Tikhonov 	msm_mux_tsif1_error,
469b915395cSDanila Tikhonov 	msm_mux_tsif1_sync,
470b915395cSDanila Tikhonov 	msm_mux_tsif2_clk,
471b915395cSDanila Tikhonov 	msm_mux_tsif2_data,
472b915395cSDanila Tikhonov 	msm_mux_tsif2_en,
473b915395cSDanila Tikhonov 	msm_mux_tsif2_error,
474b915395cSDanila Tikhonov 	msm_mux_tsif2_sync,
475b915395cSDanila Tikhonov 	msm_mux_uim1_clk,
476b915395cSDanila Tikhonov 	msm_mux_uim1_data,
477b915395cSDanila Tikhonov 	msm_mux_uim1_present,
478b915395cSDanila Tikhonov 	msm_mux_uim1_reset,
479b915395cSDanila Tikhonov 	msm_mux_uim2_clk,
480b915395cSDanila Tikhonov 	msm_mux_uim2_data,
481b915395cSDanila Tikhonov 	msm_mux_uim2_present,
482b915395cSDanila Tikhonov 	msm_mux_uim2_reset,
483b915395cSDanila Tikhonov 	msm_mux_uim_batt,
484b915395cSDanila Tikhonov 	msm_mux_usb_phy,
485b915395cSDanila Tikhonov 	msm_mux_vfr_1,
486b915395cSDanila Tikhonov 	msm_mux_vsense_trigger,
487b915395cSDanila Tikhonov 	msm_mux_wlan1_adc0,
488b915395cSDanila Tikhonov 	msm_mux_wlan1_adc1,
489b915395cSDanila Tikhonov 	msm_mux_wlan2_adc0,
490b915395cSDanila Tikhonov 	msm_mux_wlan2_adc1,
491b915395cSDanila Tikhonov 	msm_mux_wsa_clk,
492b915395cSDanila Tikhonov 	msm_mux_wsa_data,
493b915395cSDanila Tikhonov 	msm_mux__,
494b915395cSDanila Tikhonov };
495b915395cSDanila Tikhonov 
496b915395cSDanila Tikhonov static const char * const gpio_groups[] = {
497b915395cSDanila Tikhonov 	"gpio0", "gpio1", "gpio2", "gpio3", "gpio4", "gpio5", "gpio6", "gpio7",
498b915395cSDanila Tikhonov 	"gpio8", "gpio9", "gpio10", "gpio11", "gpio12", "gpio13", "gpio14",
499b915395cSDanila Tikhonov 	"gpio15", "gpio16", "gpio17", "gpio18", "gpio19", "gpio20", "gpio21",
500b915395cSDanila Tikhonov 	"gpio22", "gpio23", "gpio24", "gpio25", "gpio26", "gpio27", "gpio28",
501b915395cSDanila Tikhonov 	"gpio29", "gpio30", "gpio31", "gpio32", "gpio33", "gpio34", "gpio35",
502b915395cSDanila Tikhonov 	"gpio36", "gpio37", "gpio38", "gpio39", "gpio40", "gpio41", "gpio42",
503b915395cSDanila Tikhonov 	"gpio43", "gpio44", "gpio45", "gpio46", "gpio47", "gpio48", "gpio49",
504b915395cSDanila Tikhonov 	"gpio50", "gpio51", "gpio52", "gpio53", "gpio54", "gpio55", "gpio56",
505b915395cSDanila Tikhonov 	"gpio57", "gpio58", "gpio59", "gpio60", "gpio61", "gpio62", "gpio63",
506b915395cSDanila Tikhonov 	"gpio64", "gpio65", "gpio66", "gpio67", "gpio68", "gpio69", "gpio70",
507b915395cSDanila Tikhonov 	"gpio71", "gpio72", "gpio73", "gpio74", "gpio75", "gpio76", "gpio77",
508b915395cSDanila Tikhonov 	"gpio78", "gpio79", "gpio80", "gpio81", "gpio82", "gpio83", "gpio84",
509b915395cSDanila Tikhonov 	"gpio85", "gpio86", "gpio87", "gpio88", "gpio89", "gpio90", "gpio91",
510b915395cSDanila Tikhonov 	"gpio92", "gpio93", "gpio94", "gpio95", "gpio96", "gpio97", "gpio98",
511b915395cSDanila Tikhonov 	"gpio99", "gpio100", "gpio101", "gpio102", "gpio103", "gpio104",
512b915395cSDanila Tikhonov 	"gpio105", "gpio106", "gpio107", "gpio108", "gpio109", "gpio110",
513b915395cSDanila Tikhonov 	"gpio111", "gpio112", "gpio113", "gpio114", "gpio115", "gpio116",
514b915395cSDanila Tikhonov 	"gpio117", "gpio118",
515b915395cSDanila Tikhonov };
516b915395cSDanila Tikhonov 
517b915395cSDanila Tikhonov static const char * const adsp_ext_groups[] = {
518b915395cSDanila Tikhonov 	"gpio87",
519b915395cSDanila Tikhonov };
520b915395cSDanila Tikhonov 
521b915395cSDanila Tikhonov static const char * const agera_pll_groups[] = {
522b915395cSDanila Tikhonov 	"gpio28",
523b915395cSDanila Tikhonov };
524b915395cSDanila Tikhonov 
525b915395cSDanila Tikhonov static const char * const aoss_cti_groups[] = {
526b915395cSDanila Tikhonov 	"gpio85",
527b915395cSDanila Tikhonov };
528b915395cSDanila Tikhonov 
529b915395cSDanila Tikhonov static const char * const atest_char_groups[] = {
530b915395cSDanila Tikhonov 	"gpio86", "gpio87", "gpio88", "gpio89", "gpio90",
531b915395cSDanila Tikhonov };
532b915395cSDanila Tikhonov 
533b915395cSDanila Tikhonov static const char * const atest_tsens_groups[] = {
534b915395cSDanila Tikhonov 	"gpio29",
535b915395cSDanila Tikhonov };
536b915395cSDanila Tikhonov 
537b915395cSDanila Tikhonov static const char * const atest_tsens2_groups[] = {
538b915395cSDanila Tikhonov 	"gpio7",
539b915395cSDanila Tikhonov };
540b915395cSDanila Tikhonov 
541b915395cSDanila Tikhonov static const char * const atest_usb1_groups[] = {
542b915395cSDanila Tikhonov 	"gpio7", "gpio10", "gpio11", "gpio39", "gpio44",
543b915395cSDanila Tikhonov };
544b915395cSDanila Tikhonov 
545b915395cSDanila Tikhonov static const char * const atest_usb2_groups[] = {
546b915395cSDanila Tikhonov 	"gpio51", "gpio52", "gpio53", "gpio54", "gpio55"
547b915395cSDanila Tikhonov };
548b915395cSDanila Tikhonov 
549b915395cSDanila Tikhonov static const char * const cam_mclk_groups[] = {
550b915395cSDanila Tikhonov 	"gpio13", "gpio14", "gpio15", "gpio16",
551b915395cSDanila Tikhonov };
552b915395cSDanila Tikhonov 
553b915395cSDanila Tikhonov static const char * const cci_async_groups[] = {
554b915395cSDanila Tikhonov 	"gpio24", "gpio25", "gpio26",
555b915395cSDanila Tikhonov };
556b915395cSDanila Tikhonov 
557b915395cSDanila Tikhonov static const char * const cci_i2c_groups[] = {
558b915395cSDanila Tikhonov 	"gpio17", "gpio18", "gpio19", "gpio20", "gpio27", "gpio28",
559b915395cSDanila Tikhonov };
560b915395cSDanila Tikhonov 
561b915395cSDanila Tikhonov static const char * const cci_timer0_groups[] = {
562b915395cSDanila Tikhonov 	"gpio21",
563b915395cSDanila Tikhonov };
564b915395cSDanila Tikhonov 
565b915395cSDanila Tikhonov static const char * const cci_timer1_groups[] = {
566b915395cSDanila Tikhonov 	"gpio22",
567b915395cSDanila Tikhonov };
568b915395cSDanila Tikhonov 
569b915395cSDanila Tikhonov static const char * const cci_timer2_groups[] = {
570b915395cSDanila Tikhonov 	"gpio23",
571b915395cSDanila Tikhonov };
572b915395cSDanila Tikhonov 
573b915395cSDanila Tikhonov static const char * const cci_timer3_groups[] = {
574b915395cSDanila Tikhonov 	"gpio24",
575b915395cSDanila Tikhonov };
576b915395cSDanila Tikhonov 
577b915395cSDanila Tikhonov static const char * const cci_timer4_groups[] = {
578b915395cSDanila Tikhonov 	"gpio25",
579b915395cSDanila Tikhonov };
580b915395cSDanila Tikhonov 
581b915395cSDanila Tikhonov static const char * const dbg_out_groups[] = {
582b915395cSDanila Tikhonov 	"gpio3",
583b915395cSDanila Tikhonov };
584b915395cSDanila Tikhonov 
585b915395cSDanila Tikhonov static const char * const ddr_bist_groups[] = {
586b915395cSDanila Tikhonov 	"gpio7", "gpio8", "gpio9", "gpio10",
587b915395cSDanila Tikhonov };
588b915395cSDanila Tikhonov 
589b915395cSDanila Tikhonov static const char * const ddr_pxi0_groups[] = {
590b915395cSDanila Tikhonov 	"gpio6", "gpio7",
591b915395cSDanila Tikhonov };
592b915395cSDanila Tikhonov 
593b915395cSDanila Tikhonov static const char * const ddr_pxi1_groups[] = {
594b915395cSDanila Tikhonov 	"gpio39", "gpio44",
595b915395cSDanila Tikhonov };
596b915395cSDanila Tikhonov 
597b915395cSDanila Tikhonov static const char * const ddr_pxi2_groups[] = {
598b915395cSDanila Tikhonov 	"gpio10", "gpio11",
599b915395cSDanila Tikhonov };
600b915395cSDanila Tikhonov 
601b915395cSDanila Tikhonov static const char * const ddr_pxi3_groups[] = {
602b915395cSDanila Tikhonov 	"gpio12", "gpio13",
603b915395cSDanila Tikhonov };
604b915395cSDanila Tikhonov 
605b915395cSDanila Tikhonov static const char * const edp_hot_groups[] = {
606b915395cSDanila Tikhonov 	"gpio85",
607b915395cSDanila Tikhonov };
608b915395cSDanila Tikhonov 
609b915395cSDanila Tikhonov static const char * const edp_lcd_groups[] = {
610b915395cSDanila Tikhonov 	"gpio11",
611b915395cSDanila Tikhonov };
612b915395cSDanila Tikhonov 
613b915395cSDanila Tikhonov static const char * const gcc_gp1_groups[] = {
614b915395cSDanila Tikhonov 	"gpio48", "gpio56",
615b915395cSDanila Tikhonov };
616b915395cSDanila Tikhonov 
617b915395cSDanila Tikhonov static const char * const gcc_gp2_groups[] = {
618b915395cSDanila Tikhonov 	"gpio21",
619b915395cSDanila Tikhonov };
620b915395cSDanila Tikhonov 
621b915395cSDanila Tikhonov static const char * const gcc_gp3_groups[] = {
622b915395cSDanila Tikhonov 	"gpio22",
623b915395cSDanila Tikhonov };
624b915395cSDanila Tikhonov 
625b915395cSDanila Tikhonov static const char * const gp_pdm0_groups[] = {
626b915395cSDanila Tikhonov 	"gpio37", "gpio68",
627b915395cSDanila Tikhonov };
628b915395cSDanila Tikhonov 
629b915395cSDanila Tikhonov static const char * const gp_pdm1_groups[] = {
630b915395cSDanila Tikhonov 	"gpio8", "gpio50",
631b915395cSDanila Tikhonov };
632b915395cSDanila Tikhonov 
633b915395cSDanila Tikhonov static const char * const gp_pdm2_groups[] = {
634b915395cSDanila Tikhonov 	"gpio57",
635b915395cSDanila Tikhonov };
636b915395cSDanila Tikhonov 
637b915395cSDanila Tikhonov static const char * const gps_tx_groups[] = {
638b915395cSDanila Tikhonov 	"gpio83", "gpio84", "gpio107", "gpio109",
639b915395cSDanila Tikhonov };
640b915395cSDanila Tikhonov 
641b915395cSDanila Tikhonov static const char * const jitter_bist_groups[] = {
642b915395cSDanila Tikhonov 	"gpio26",
643b915395cSDanila Tikhonov };
644b915395cSDanila Tikhonov 
645b915395cSDanila Tikhonov static const char * const ldo_en_groups[] = {
646b915395cSDanila Tikhonov 	"gpio70",
647b915395cSDanila Tikhonov };
648b915395cSDanila Tikhonov 
649b915395cSDanila Tikhonov static const char * const ldo_update_groups[] = {
650b915395cSDanila Tikhonov 	"gpio71",
651b915395cSDanila Tikhonov };
652b915395cSDanila Tikhonov 
653b915395cSDanila Tikhonov static const char * const m_voc_groups[] = {
654b915395cSDanila Tikhonov 	"gpio12",
655b915395cSDanila Tikhonov };
656b915395cSDanila Tikhonov 
657b915395cSDanila Tikhonov static const char * const mdp_vsync_groups[] = {
658b915395cSDanila Tikhonov 	"gpio10", "gpio11", "gpio12", "gpio70", "gpio71",
659b915395cSDanila Tikhonov };
660b915395cSDanila Tikhonov 
661b915395cSDanila Tikhonov static const char * const mdp_vsync0_groups[] = {
662b915395cSDanila Tikhonov 	"gpio63",
663b915395cSDanila Tikhonov };
664b915395cSDanila Tikhonov 
665b915395cSDanila Tikhonov static const char * const mdp_vsync1_groups[] = {
666b915395cSDanila Tikhonov 	"gpio63",
667b915395cSDanila Tikhonov };
668b915395cSDanila Tikhonov 
669b915395cSDanila Tikhonov static const char * const mdp_vsync2_groups[] = {
670b915395cSDanila Tikhonov 	"gpio63",
671b915395cSDanila Tikhonov };
672b915395cSDanila Tikhonov 
673b915395cSDanila Tikhonov static const char * const mdp_vsync3_groups[] = {
674b915395cSDanila Tikhonov 	"gpio63",
675b915395cSDanila Tikhonov };
676b915395cSDanila Tikhonov 
677b915395cSDanila Tikhonov static const char * const mss_lte_groups[] = {
678b915395cSDanila Tikhonov 	"gpio108", "gpio109",
679b915395cSDanila Tikhonov };
680b915395cSDanila Tikhonov 
681b915395cSDanila Tikhonov static const char * const nav_pps_in_groups[] = {
682b915395cSDanila Tikhonov 	"gpio83", "gpio84", "gpio107",
683b915395cSDanila Tikhonov };
684b915395cSDanila Tikhonov 
685b915395cSDanila Tikhonov static const char * const nav_pps_out_groups[] = {
686b915395cSDanila Tikhonov 	"gpio83", "gpio84", "gpio107",
687b915395cSDanila Tikhonov };
688b915395cSDanila Tikhonov 
689b915395cSDanila Tikhonov static const char * const pa_indicator_groups[] = {
690b915395cSDanila Tikhonov 	"gpio99",
691b915395cSDanila Tikhonov };
692b915395cSDanila Tikhonov 
693b915395cSDanila Tikhonov static const char * const pci_e_groups[] = {
694b915395cSDanila Tikhonov 	"gpio66", "gpio67", "gpio68",
695b915395cSDanila Tikhonov };
696b915395cSDanila Tikhonov 
697b915395cSDanila Tikhonov static const char * const phase_flag_groups[] = {
698b915395cSDanila Tikhonov 	"gpio0", "gpio1", "gpio2", "gpio6", "gpio7", "gpio10", "gpio11",
699b915395cSDanila Tikhonov 	"gpio12", "gpio13", "gpio14", "gpio15", "gpio16", "gpio17", "gpio24",
700b915395cSDanila Tikhonov 	"gpio25", "gpio26", "gpio27", "gpio28", "gpio29", "gpio30", "gpio35",
701b915395cSDanila Tikhonov 	"gpio36", "gpio37", "gpio38", "gpio39", "gpio43", "gpio44", "gpio56",
702b915395cSDanila Tikhonov 	"gpio57", "gpio60", "gpio61", "gpio62",
703b915395cSDanila Tikhonov };
704b915395cSDanila Tikhonov 
705b915395cSDanila Tikhonov static const char * const pll_bist_groups[] = {
706b915395cSDanila Tikhonov 	"gpio27",
707b915395cSDanila Tikhonov };
708b915395cSDanila Tikhonov 
709b915395cSDanila Tikhonov static const char * const pll_bypassnl_groups[] = {
710b915395cSDanila Tikhonov 	"gpio13",
711b915395cSDanila Tikhonov };
712b915395cSDanila Tikhonov 
713b915395cSDanila Tikhonov static const char * const pll_reset_groups[] = {
714b915395cSDanila Tikhonov 	"gpio14",
715b915395cSDanila Tikhonov };
716b915395cSDanila Tikhonov 
717b915395cSDanila Tikhonov static const char * const pri_mi2s_groups[] = {
718b915395cSDanila Tikhonov 	"gpio49", "gpio51", "gpio52",
719b915395cSDanila Tikhonov };
720b915395cSDanila Tikhonov 
721b915395cSDanila Tikhonov static const char * const pri_mi2s_ws_groups[] = {
722b915395cSDanila Tikhonov 	"gpio50",
723b915395cSDanila Tikhonov };
724b915395cSDanila Tikhonov 
725b915395cSDanila Tikhonov static const char * const prng_rosc_groups[] = {
726b915395cSDanila Tikhonov 	"gpio72",
727b915395cSDanila Tikhonov };
728b915395cSDanila Tikhonov 
729b915395cSDanila Tikhonov static const char * const qdss_groups[] = {
730b915395cSDanila Tikhonov 	"gpio13", "gpio86", "gpio14", "gpio87", "gpio15", "gpio88", "gpio16",
731b915395cSDanila Tikhonov 	"gpio89", "gpio17", "gpio90", "gpio18", "gpio91", "gpio19", "gpio34",
732b915395cSDanila Tikhonov 	"gpio20", "gpio35", "gpio21", "gpio53", "gpio22", "gpio30", "gpio23",
733b915395cSDanila Tikhonov 	"gpio54", "gpio24", "gpio55", "gpio25", "gpio57", "gpio26", "gpio31",
734b915395cSDanila Tikhonov 	"gpio27", "gpio56", "gpio28", "gpio36", "gpio29", "gpio37", "gpio93",
735b915395cSDanila Tikhonov 	"gpio104",
736b915395cSDanila Tikhonov };
737b915395cSDanila Tikhonov 
738b915395cSDanila Tikhonov static const char * const qdss_cti_groups[] = {
739b915395cSDanila Tikhonov 	"gpio4", "gpio5", "gpio32", "gpio44", "gpio45", "gpio63",
740b915395cSDanila Tikhonov };
741b915395cSDanila Tikhonov 
742b915395cSDanila Tikhonov static const char * const qlink_enable_groups[] = {
743b915395cSDanila Tikhonov 	"gpio97",
744b915395cSDanila Tikhonov };
745b915395cSDanila Tikhonov 
746b915395cSDanila Tikhonov static const char * const qlink_request_groups[] = {
747b915395cSDanila Tikhonov 	"gpio96",
748b915395cSDanila Tikhonov };
749b915395cSDanila Tikhonov 
750b915395cSDanila Tikhonov static const char * const qua_mi2s_groups[] = {
751b915395cSDanila Tikhonov 	"gpio58",
752b915395cSDanila Tikhonov };
753b915395cSDanila Tikhonov 
754b915395cSDanila Tikhonov static const char * const qup00_groups[] = {
755b915395cSDanila Tikhonov 	"gpio49", "gpio50", "gpio51", "gpio52", "gpio57", "gpio58",
756b915395cSDanila Tikhonov };
757b915395cSDanila Tikhonov 
758b915395cSDanila Tikhonov static const char * const qup01_groups[] = {
759b915395cSDanila Tikhonov 	"gpio0", "gpio1", "gpio2", "gpio3", "gpio12", "gpio37",
760b915395cSDanila Tikhonov };
761b915395cSDanila Tikhonov 
762b915395cSDanila Tikhonov static const char * const qup02_groups[] = {
763b915395cSDanila Tikhonov 	"gpio34", "gpio35",
764b915395cSDanila Tikhonov };
765b915395cSDanila Tikhonov 
766b915395cSDanila Tikhonov static const char * const qup03_groups[] = {
767b915395cSDanila Tikhonov 	"gpio38", "gpio39", "gpio40", "gpio41",
768b915395cSDanila Tikhonov };
769b915395cSDanila Tikhonov 
770b915395cSDanila Tikhonov static const char * const qup04_groups[] = {
771b915395cSDanila Tikhonov 	"gpio53", "gpio54", "gpio55", "gpio56",
772b915395cSDanila Tikhonov };
773b915395cSDanila Tikhonov 
774b915395cSDanila Tikhonov static const char * const qup10_groups[] = {
775b915395cSDanila Tikhonov 	"gpio59", "gpio60", "gpio61", "gpio62", "gpio63", "gpio64", "gpio65",
776b915395cSDanila Tikhonov };
777b915395cSDanila Tikhonov 
778b915395cSDanila Tikhonov static const char * const qup11_groups[] = {
779b915395cSDanila Tikhonov 	"gpio6", "gpio7", "gpio8", "gpio9",
780b915395cSDanila Tikhonov };
781b915395cSDanila Tikhonov 
782b915395cSDanila Tikhonov static const char * const qup12_groups[] = {
783b915395cSDanila Tikhonov 	"gpio42", "gpio43", "gpio44", "gpio45",
784b915395cSDanila Tikhonov };
785b915395cSDanila Tikhonov 
786b915395cSDanila Tikhonov static const char * const qup13_groups[] = {
787b915395cSDanila Tikhonov 	"gpio46", "gpio47",
788b915395cSDanila Tikhonov };
789b915395cSDanila Tikhonov 
790b915395cSDanila Tikhonov static const char * const qup14_groups[] = {
791b915395cSDanila Tikhonov 	"gpio110", "gpio111", "gpio112", "gpio113",
792b915395cSDanila Tikhonov };
793b915395cSDanila Tikhonov 
794b915395cSDanila Tikhonov static const char * const qup15_groups[] = {
795b915395cSDanila Tikhonov 	"gpio92", "gpio101", "gpio102", "gpio103",
796b915395cSDanila Tikhonov };
797b915395cSDanila Tikhonov 
798b915395cSDanila Tikhonov static const char * const sd_write_groups[] = {
799b915395cSDanila Tikhonov 	"gpio33",
800b915395cSDanila Tikhonov };
801b915395cSDanila Tikhonov 
802b915395cSDanila Tikhonov static const char * const sdc40_groups[] = {
803b915395cSDanila Tikhonov 	"gpio69",
804b915395cSDanila Tikhonov };
805b915395cSDanila Tikhonov 
806b915395cSDanila Tikhonov static const char * const sdc41_groups[] = {
807b915395cSDanila Tikhonov 	"gpio68",
808b915395cSDanila Tikhonov };
809b915395cSDanila Tikhonov 
810b915395cSDanila Tikhonov static const char * const sdc42_groups[] = {
811b915395cSDanila Tikhonov 	"gpio67",
812b915395cSDanila Tikhonov };
813b915395cSDanila Tikhonov 
814b915395cSDanila Tikhonov static const char * const sdc43_groups[] = {
815b915395cSDanila Tikhonov 	"gpio65",
816b915395cSDanila Tikhonov };
817b915395cSDanila Tikhonov 
818b915395cSDanila Tikhonov static const char * const sdc4_clk_groups[] = {
819b915395cSDanila Tikhonov 	"gpio66",
820b915395cSDanila Tikhonov };
821b915395cSDanila Tikhonov 
822b915395cSDanila Tikhonov static const char * const sdc4_cmd_groups[] = {
823b915395cSDanila Tikhonov 	"gpio64",
824b915395cSDanila Tikhonov };
825b915395cSDanila Tikhonov 
826b915395cSDanila Tikhonov static const char * const sec_mi2s_groups[] = {
827b915395cSDanila Tikhonov 	"gpio57",
828b915395cSDanila Tikhonov };
829b915395cSDanila Tikhonov 
830b915395cSDanila Tikhonov static const char * const ter_mi2s_groups[] = {
831b915395cSDanila Tikhonov 	"gpio53", "gpio54", "gpio55", "gpio56",
832b915395cSDanila Tikhonov };
833b915395cSDanila Tikhonov 
834b915395cSDanila Tikhonov static const char * const tgu_ch0_groups[] = {
835b915395cSDanila Tikhonov 	"gpio63",
836b915395cSDanila Tikhonov };
837b915395cSDanila Tikhonov 
838b915395cSDanila Tikhonov static const char * const tgu_ch1_groups[] = {
839b915395cSDanila Tikhonov 	"gpio64",
840b915395cSDanila Tikhonov };
841b915395cSDanila Tikhonov 
842b915395cSDanila Tikhonov static const char * const tgu_ch2_groups[] = {
843b915395cSDanila Tikhonov 	"gpio65",
844b915395cSDanila Tikhonov };
845b915395cSDanila Tikhonov 
846b915395cSDanila Tikhonov static const char * const tgu_ch3_groups[] = {
847b915395cSDanila Tikhonov 	"gpio62",
848b915395cSDanila Tikhonov };
849b915395cSDanila Tikhonov 
850b915395cSDanila Tikhonov static const char * const tsif1_clk_groups[] = {
851b915395cSDanila Tikhonov 	"gpio62",
852b915395cSDanila Tikhonov };
853b915395cSDanila Tikhonov 
854b915395cSDanila Tikhonov static const char * const tsif1_data_groups[] = {
855b915395cSDanila Tikhonov 	"gpio64",
856b915395cSDanila Tikhonov };
857b915395cSDanila Tikhonov 
858b915395cSDanila Tikhonov static const char * const tsif1_en_groups[] = {
859b915395cSDanila Tikhonov 	"gpio63",
860b915395cSDanila Tikhonov };
861b915395cSDanila Tikhonov 
862b915395cSDanila Tikhonov static const char * const tsif1_error_groups[] = {
863b915395cSDanila Tikhonov 	"gpio60",
864b915395cSDanila Tikhonov };
865b915395cSDanila Tikhonov 
866b915395cSDanila Tikhonov static const char * const tsif1_sync_groups[] = {
867b915395cSDanila Tikhonov 	"gpio61",
868b915395cSDanila Tikhonov };
869b915395cSDanila Tikhonov 
870b915395cSDanila Tikhonov static const char * const tsif2_clk_groups[] = {
871b915395cSDanila Tikhonov 	"gpio66",
872b915395cSDanila Tikhonov };
873b915395cSDanila Tikhonov 
874b915395cSDanila Tikhonov static const char * const tsif2_data_groups[] = {
875b915395cSDanila Tikhonov 	"gpio68",
876b915395cSDanila Tikhonov };
877b915395cSDanila Tikhonov 
878b915395cSDanila Tikhonov static const char * const tsif2_en_groups[] = {
879b915395cSDanila Tikhonov 	"gpio67",
880b915395cSDanila Tikhonov };
881b915395cSDanila Tikhonov 
882b915395cSDanila Tikhonov static const char * const tsif2_error_groups[] = {
883b915395cSDanila Tikhonov 	"gpio65",
884b915395cSDanila Tikhonov };
885b915395cSDanila Tikhonov 
886b915395cSDanila Tikhonov static const char * const tsif2_sync_groups[] = {
887b915395cSDanila Tikhonov 	"gpio69",
888b915395cSDanila Tikhonov };
889b915395cSDanila Tikhonov 
890b915395cSDanila Tikhonov static const char * const uim1_clk_groups[] = {
891b915395cSDanila Tikhonov 	"gpio80",
892b915395cSDanila Tikhonov };
893b915395cSDanila Tikhonov 
894b915395cSDanila Tikhonov static const char * const uim1_data_groups[] = {
895b915395cSDanila Tikhonov 	"gpio79",
896b915395cSDanila Tikhonov };
897b915395cSDanila Tikhonov 
898b915395cSDanila Tikhonov static const char * const uim1_present_groups[] = {
899b915395cSDanila Tikhonov 	"gpio82",
900b915395cSDanila Tikhonov };
901b915395cSDanila Tikhonov 
902b915395cSDanila Tikhonov static const char * const uim1_reset_groups[] = {
903b915395cSDanila Tikhonov 	"gpio81",
904b915395cSDanila Tikhonov };
905b915395cSDanila Tikhonov 
906b915395cSDanila Tikhonov static const char * const uim2_clk_groups[] = {
907b915395cSDanila Tikhonov 	"gpio76",
908b915395cSDanila Tikhonov };
909b915395cSDanila Tikhonov 
910b915395cSDanila Tikhonov static const char * const uim2_data_groups[] = {
911b915395cSDanila Tikhonov 	"gpio75",
912b915395cSDanila Tikhonov };
913b915395cSDanila Tikhonov 
914b915395cSDanila Tikhonov static const char * const uim2_present_groups[] = {
915b915395cSDanila Tikhonov 	"gpio78",
916b915395cSDanila Tikhonov };
917b915395cSDanila Tikhonov 
918b915395cSDanila Tikhonov static const char * const uim2_reset_groups[] = {
919b915395cSDanila Tikhonov 	"gpio77",
920b915395cSDanila Tikhonov };
921b915395cSDanila Tikhonov 
922b915395cSDanila Tikhonov static const char * const uim_batt_groups[] = {
923b915395cSDanila Tikhonov 	"gpio85",
924b915395cSDanila Tikhonov };
925b915395cSDanila Tikhonov 
926b915395cSDanila Tikhonov static const char * const usb_phy_groups[] = {
927b915395cSDanila Tikhonov 	"gpio104",
928b915395cSDanila Tikhonov };
929b915395cSDanila Tikhonov 
930b915395cSDanila Tikhonov static const char * const vfr_1_groups[] = {
931b915395cSDanila Tikhonov 	"gpio65",
932b915395cSDanila Tikhonov };
933b915395cSDanila Tikhonov 
934b915395cSDanila Tikhonov static const char * const vsense_trigger_groups[] = {
935b915395cSDanila Tikhonov 	"gpio7",
936b915395cSDanila Tikhonov };
937b915395cSDanila Tikhonov 
938b915395cSDanila Tikhonov static const char * const wlan1_adc0_groups[] = {
939b915395cSDanila Tikhonov 	"gpio39",
940b915395cSDanila Tikhonov };
941b915395cSDanila Tikhonov 
942b915395cSDanila Tikhonov static const char * const wlan1_adc1_groups[] = {
943b915395cSDanila Tikhonov 	"gpio44",
944b915395cSDanila Tikhonov };
945b915395cSDanila Tikhonov 
946b915395cSDanila Tikhonov static const char * const wlan2_adc0_groups[] = {
947b915395cSDanila Tikhonov 	"gpio11",
948b915395cSDanila Tikhonov };
949b915395cSDanila Tikhonov 
950b915395cSDanila Tikhonov static const char * const wlan2_adc1_groups[] = {
951b915395cSDanila Tikhonov 	"gpio10",
952b915395cSDanila Tikhonov };
953b915395cSDanila Tikhonov 
954b915395cSDanila Tikhonov static const char * const wsa_clk_groups[] = {
955b915395cSDanila Tikhonov 	"gpio49",
956b915395cSDanila Tikhonov };
957b915395cSDanila Tikhonov 
958b915395cSDanila Tikhonov static const char * const wsa_data_groups[] = {
959b915395cSDanila Tikhonov 	"gpio50",
960b915395cSDanila Tikhonov };
961b915395cSDanila Tikhonov 
962c7a291dbSRohit Agarwal static const struct pinfunction sm7150_functions[] = {
963c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(gpio),
964c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(adsp_ext),
965c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(agera_pll),
966c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(aoss_cti),
967c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(atest_char),
968c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(atest_tsens),
969c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(atest_tsens2),
970c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(atest_usb1),
971c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(atest_usb2),
972c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(cam_mclk),
973c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(cci_async),
974c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(cci_i2c),
975c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(cci_timer0),
976c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(cci_timer1),
977c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(cci_timer2),
978c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(cci_timer3),
979c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(cci_timer4),
980c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(dbg_out),
981c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(ddr_bist),
982c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(ddr_pxi0),
983c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(ddr_pxi1),
984c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(ddr_pxi2),
985c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(ddr_pxi3),
986c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(edp_hot),
987c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(edp_lcd),
988c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(gcc_gp1),
989c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(gcc_gp2),
990c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(gcc_gp3),
991c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(gp_pdm0),
992c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(gp_pdm1),
993c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(gp_pdm2),
994c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(gps_tx),
995c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(jitter_bist),
996c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(ldo_en),
997c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(ldo_update),
998c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(m_voc),
999c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(mdp_vsync),
1000c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(mdp_vsync0),
1001c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(mdp_vsync1),
1002c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(mdp_vsync2),
1003c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(mdp_vsync3),
1004c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(mss_lte),
1005c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(nav_pps_in),
1006c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(nav_pps_out),
1007c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pa_indicator),
1008c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pci_e),
1009c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(phase_flag),
1010c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pll_bist),
1011c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pll_bypassnl),
1012c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pll_reset),
1013c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pri_mi2s),
1014c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(pri_mi2s_ws),
1015c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(prng_rosc),
1016c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qdss_cti),
1017c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qdss),
1018c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qlink_enable),
1019c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qlink_request),
1020c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qua_mi2s),
1021c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qup00),
1022c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qup01),
1023c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qup02),
1024c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qup03),
1025c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qup04),
1026c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qup10),
1027c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qup11),
1028c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qup12),
1029c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qup13),
1030c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qup14),
1031c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(qup15),
1032c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(sd_write),
1033c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(sdc40),
1034c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(sdc41),
1035c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(sdc42),
1036c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(sdc43),
1037c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(sdc4_clk),
1038c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(sdc4_cmd),
1039c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(sec_mi2s),
1040c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(ter_mi2s),
1041c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(tgu_ch0),
1042c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(tgu_ch1),
1043c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(tgu_ch2),
1044c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(tgu_ch3),
1045c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(tsif1_clk),
1046c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(tsif1_data),
1047c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(tsif1_en),
1048c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(tsif1_error),
1049c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(tsif1_sync),
1050c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(tsif2_clk),
1051c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(tsif2_data),
1052c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(tsif2_en),
1053c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(tsif2_error),
1054c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(tsif2_sync),
1055c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(uim1_clk),
1056c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(uim1_data),
1057c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(uim1_present),
1058c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(uim1_reset),
1059c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(uim2_clk),
1060c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(uim2_data),
1061c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(uim2_present),
1062c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(uim2_reset),
1063c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(uim_batt),
1064c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(usb_phy),
1065c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(vfr_1),
1066c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(vsense_trigger),
1067c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(wlan1_adc0),
1068c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(wlan1_adc1),
1069c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(wlan2_adc0),
1070c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(wlan2_adc1),
1071c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(wsa_clk),
1072c7a291dbSRohit Agarwal 	MSM_PIN_FUNCTION(wsa_data),
1073b915395cSDanila Tikhonov };
1074b915395cSDanila Tikhonov 
1075b915395cSDanila Tikhonov /*
1076b915395cSDanila Tikhonov  * Every pin is maintained as a single group, and missing or non-existing pin
1077b915395cSDanila Tikhonov  * would be maintained as dummy group to synchronize pin group index with
1078b915395cSDanila Tikhonov  * pin descriptor registered with pinctrl core.
1079b915395cSDanila Tikhonov  * Clients would not be able to request these dummy pin groups.
1080b915395cSDanila Tikhonov  */
1081b915395cSDanila Tikhonov static const struct msm_pingroup sm7150_groups[] = {
1082b915395cSDanila Tikhonov 	[0] = PINGROUP(0, SOUTH, qup01, _, phase_flag, _, _, _, _, _, _),
1083b915395cSDanila Tikhonov 	[1] = PINGROUP(1, SOUTH, qup01, _, phase_flag, _, _, _, _, _, _),
1084b915395cSDanila Tikhonov 	[2] = PINGROUP(2, SOUTH, qup01, _, phase_flag, _, _, _, _, _, _),
1085b915395cSDanila Tikhonov 	[3] = PINGROUP(3, SOUTH, qup01, dbg_out, _, _, _, _, _, _, _),
1086b915395cSDanila Tikhonov 	[4] = PINGROUP(4, NORTH, _, qdss_cti, _, _, _, _, _, _, _),
1087b915395cSDanila Tikhonov 	[5] = PINGROUP(5, NORTH, _, qdss_cti, _, _, _, _, _, _, _),
1088b915395cSDanila Tikhonov 	[6] = PINGROUP(6, NORTH, qup11, _, phase_flag, ddr_pxi0, _, _, _, _, _),
1089b915395cSDanila Tikhonov 	[7] = PINGROUP(7, NORTH, qup11, ddr_bist, _, phase_flag, atest_tsens2, vsense_trigger, atest_usb1, ddr_pxi0, _),
1090b915395cSDanila Tikhonov 	[8] = PINGROUP(8, NORTH, qup11, gp_pdm1, ddr_bist, _, _, _, _, _, _),
1091b915395cSDanila Tikhonov 	[9] = PINGROUP(9, NORTH, qup11, ddr_bist, _, _, _, _, _, _, _),
1092b915395cSDanila Tikhonov 	[10] = PINGROUP(10, NORTH, mdp_vsync, ddr_bist, _, phase_flag, wlan2_adc1, atest_usb1, ddr_pxi2, _, _),
1093b915395cSDanila Tikhonov 	[11] = PINGROUP(11, NORTH, mdp_vsync, edp_lcd, _, phase_flag, wlan2_adc0, atest_usb1, ddr_pxi2, _, _),
1094b915395cSDanila Tikhonov 	[12] = PINGROUP(12, SOUTH, mdp_vsync, m_voc, qup01, _, phase_flag, ddr_pxi3, _, _, _),
1095b915395cSDanila Tikhonov 	[13] = PINGROUP(13, SOUTH, cam_mclk, pll_bypassnl, _, phase_flag, qdss, ddr_pxi3, _, _, _),
1096b915395cSDanila Tikhonov 	[14] = PINGROUP(14, SOUTH, cam_mclk, pll_reset, _, phase_flag, qdss, _, _, _, _),
1097b915395cSDanila Tikhonov 	[15] = PINGROUP(15, SOUTH, cam_mclk, _, phase_flag, qdss, _, _, _, _, _),
1098b915395cSDanila Tikhonov 	[16] = PINGROUP(16, SOUTH, cam_mclk, _, phase_flag, qdss, _, _, _, _, _),
1099b915395cSDanila Tikhonov 	[17] = PINGROUP(17, SOUTH, cci_i2c, _, phase_flag, qdss, _, _, _, _, _),
1100b915395cSDanila Tikhonov 	[18] = PINGROUP(18, SOUTH, cci_i2c, qdss, _, _, _, _, _, _, _),
1101b915395cSDanila Tikhonov 	[19] = PINGROUP(19, SOUTH, cci_i2c, qdss, _, _, _, _, _, _, _),
1102b915395cSDanila Tikhonov 	[20] = PINGROUP(20, SOUTH, cci_i2c, qdss, _, _, _, _, _, _, _),
1103b915395cSDanila Tikhonov 	[21] = PINGROUP(21, SOUTH, cci_timer0, gcc_gp2, _, qdss, _, _, _, _, _),
1104b915395cSDanila Tikhonov 	[22] = PINGROUP(22, SOUTH, cci_timer1, gcc_gp3, _, qdss, _, _, _, _, _),
1105b915395cSDanila Tikhonov 	[23] = PINGROUP(23, SOUTH, cci_timer2, qdss, _, _, _, _, _, _, _),
1106b915395cSDanila Tikhonov 	[24] = PINGROUP(24, SOUTH, cci_timer3, cci_async, _, phase_flag, qdss, _, _, _, _),
1107b915395cSDanila Tikhonov 	[25] = PINGROUP(25, SOUTH, cci_timer4, cci_async, _, phase_flag, qdss, _, _, _, _),
1108b915395cSDanila Tikhonov 	[26] = PINGROUP(26, SOUTH, cci_async, jitter_bist, _, phase_flag, qdss, _, _, _, _),
1109b915395cSDanila Tikhonov 	[27] = PINGROUP(27, SOUTH, cci_i2c, pll_bist, _, phase_flag, qdss, _, _, _, _),
1110b915395cSDanila Tikhonov 	[28] = PINGROUP(28, SOUTH, cci_i2c, agera_pll, _, phase_flag, qdss, _, _, _, _),
1111b915395cSDanila Tikhonov 	[29] = PINGROUP(29, NORTH, _, _, phase_flag, qdss, atest_tsens, _, _, _, _),
1112b915395cSDanila Tikhonov 	[30] = PINGROUP(30, SOUTH, _, phase_flag, qdss, _, _, _, _, _, _),
1113b915395cSDanila Tikhonov 	[31] = PINGROUP(31, WEST, _, qdss, _, _, _, _, _, _, _),
1114b915395cSDanila Tikhonov 	[32] = PINGROUP(32, NORTH, qdss_cti, _, _, _, _, _, _, _, _),
1115b915395cSDanila Tikhonov 	[33] = PINGROUP(33, NORTH, sd_write, _, _, _, _, _, _, _, _),
1116b915395cSDanila Tikhonov 	[34] = PINGROUP(34, SOUTH, qup02, qdss, _, _, _, _, _, _, _),
1117b915395cSDanila Tikhonov 	[35] = PINGROUP(35, SOUTH, qup02, _, phase_flag, qdss, _, _, _, _, _),
1118b915395cSDanila Tikhonov 	[36] = PINGROUP(36, SOUTH, _, phase_flag, qdss, _, _, _, _, _, _),
1119b915395cSDanila Tikhonov 	[37] = PINGROUP(37, SOUTH, qup01, gp_pdm0, _, phase_flag, qdss, _, _, _, _),
1120b915395cSDanila Tikhonov 	[38] = PINGROUP(38, SOUTH, qup03, _, phase_flag, _, _, _, _, _, _),
1121b915395cSDanila Tikhonov 	[39] = PINGROUP(39, SOUTH, qup03, _, phase_flag, _, wlan1_adc0, atest_usb1, ddr_pxi1, _, _),
1122b915395cSDanila Tikhonov 	[40] = PINGROUP(40, SOUTH, qup03, _, _, _, _, _, _, _, _),
1123b915395cSDanila Tikhonov 	[41] = PINGROUP(41, SOUTH, qup03, _, _, _, _, _, _, _, _),
1124b915395cSDanila Tikhonov 	[42] = PINGROUP(42, NORTH, qup12, _, _, _, _, _, _, _, _),
1125b915395cSDanila Tikhonov 	[43] = PINGROUP(43, NORTH, qup12, _, phase_flag, _, _, _, _, _, _),
1126b915395cSDanila Tikhonov 	[44] = PINGROUP(44, NORTH, qup12, _, phase_flag, qdss_cti, _, wlan1_adc1, atest_usb1, ddr_pxi1, _),
1127b915395cSDanila Tikhonov 	[45] = PINGROUP(45, NORTH, qup12, qdss_cti, _, _, _, _, _, _, _),
1128b915395cSDanila Tikhonov 	[46] = PINGROUP(46, NORTH, qup13, _, _, _, _, _, _, _, _),
1129b915395cSDanila Tikhonov 	[47] = PINGROUP(47, NORTH, qup13, _, _, _, _, _, _, _, _),
1130b915395cSDanila Tikhonov 	[48] = PINGROUP(48, WEST, gcc_gp1, _, _, _, _, _, _, _, _),
1131b915395cSDanila Tikhonov 	[49] = PINGROUP(49, WEST, pri_mi2s, qup00, wsa_clk, _, _, _, _, _, _),
1132b915395cSDanila Tikhonov 	[50] = PINGROUP(50, WEST, pri_mi2s_ws, qup00, wsa_data, gp_pdm1, _, _, _, _, _),
1133b915395cSDanila Tikhonov 	[51] = PINGROUP(51, WEST, pri_mi2s, qup00, atest_usb2, _, _, _, _, _, _),
1134b915395cSDanila Tikhonov 	[52] = PINGROUP(52, WEST, pri_mi2s, qup00, atest_usb2, _, _, _, _, _, _),
1135b915395cSDanila Tikhonov 	[53] = PINGROUP(53, WEST, ter_mi2s, qup04, qdss, atest_usb2, _, _, _, _, _),
1136b915395cSDanila Tikhonov 	[54] = PINGROUP(54, WEST, ter_mi2s, qup04, qdss, atest_usb2, _, _, _, _, _),
1137b915395cSDanila Tikhonov 	[55] = PINGROUP(55, WEST, ter_mi2s, qup04, qdss, atest_usb2, _, _, _, _, _),
1138b915395cSDanila Tikhonov 	[56] = PINGROUP(56, WEST, ter_mi2s, qup04, gcc_gp1, _, phase_flag, qdss, _, _, _),
1139b915395cSDanila Tikhonov 	[57] = PINGROUP(57, WEST, sec_mi2s, qup00, gp_pdm2, _, phase_flag, qdss, _, _, _),
1140b915395cSDanila Tikhonov 	[58] = PINGROUP(58, WEST, qua_mi2s, qup00, _, _, _, _, _, _, _),
1141b915395cSDanila Tikhonov 	[59] = PINGROUP(59, NORTH, qup10, _, _, _, _, _, _, _, _),
1142b915395cSDanila Tikhonov 	[60] = PINGROUP(60, NORTH, qup10, tsif1_error, _, phase_flag, _, _, _, _, _),
1143b915395cSDanila Tikhonov 	[61] = PINGROUP(61, NORTH, qup10, tsif1_sync, _, phase_flag, _, _, _, _, _),
1144b915395cSDanila Tikhonov 	[62] = PINGROUP(62, NORTH, qup10, tsif1_clk, tgu_ch3, _, phase_flag, _, _, _, _),
1145b915395cSDanila Tikhonov 	[63] = PINGROUP(63, NORTH, tsif1_en, mdp_vsync0, qup10, mdp_vsync1, mdp_vsync2, mdp_vsync3, tgu_ch0, qdss_cti, _),
1146b915395cSDanila Tikhonov 	[64] = PINGROUP(64, NORTH, tsif1_data, sdc4_cmd, qup10, tgu_ch1, _, _, _, _, _),
1147b915395cSDanila Tikhonov 	[65] = PINGROUP(65, NORTH, tsif2_error, sdc43, qup10, vfr_1, tgu_ch2, _, _, _, _),
1148b915395cSDanila Tikhonov 	[66] = PINGROUP(66, NORTH, tsif2_clk, sdc4_clk, pci_e, _, _, _, _, _, _),
1149b915395cSDanila Tikhonov 	[67] = PINGROUP(67, NORTH, tsif2_en, sdc42, pci_e, _, _, _, _, _, _),
1150b915395cSDanila Tikhonov 	[68] = PINGROUP(68, NORTH, tsif2_data, sdc41, pci_e, gp_pdm0, _, _, _, _, _),
1151b915395cSDanila Tikhonov 	[69] = PINGROUP(69, NORTH, tsif2_sync, sdc40, _, _, _, _, _, _, _),
1152b915395cSDanila Tikhonov 	[70] = PINGROUP(70, NORTH, _, _, mdp_vsync, ldo_en, _, _, _, _, _),
1153b915395cSDanila Tikhonov 	[71] = PINGROUP(71, NORTH, _, mdp_vsync, ldo_update, _, _, _, _, _, _),
1154b915395cSDanila Tikhonov 	[72] = PINGROUP(72, NORTH, prng_rosc, _, _, _, _, _, _, _, _),
1155b915395cSDanila Tikhonov 	[73] = PINGROUP(73, NORTH, _, _, _, _, _, _, _, _, _),
1156b915395cSDanila Tikhonov 	[74] = PINGROUP(74, WEST, _, _, _, _, _, _, _, _, _),
1157b915395cSDanila Tikhonov 	[75] = PINGROUP(75, WEST, uim2_data, _, _, _, _, _, _, _, _),
1158b915395cSDanila Tikhonov 	[76] = PINGROUP(76, WEST, uim2_clk, _, _, _, _, _, _, _, _),
1159b915395cSDanila Tikhonov 	[77] = PINGROUP(77, WEST, uim2_reset, _, _, _, _, _, _, _, _),
1160b915395cSDanila Tikhonov 	[78] = PINGROUP(78, WEST, uim2_present, _, _, _, _, _, _, _, _),
1161b915395cSDanila Tikhonov 	[79] = PINGROUP(79, WEST, uim1_data, _, _, _, _, _, _, _, _),
1162b915395cSDanila Tikhonov 	[80] = PINGROUP(80, WEST, uim1_clk, _, _, _, _, _, _, _, _),
1163b915395cSDanila Tikhonov 	[81] = PINGROUP(81, WEST, uim1_reset, _, _, _, _, _, _, _, _),
1164b915395cSDanila Tikhonov 	[82] = PINGROUP(82, WEST, uim1_present, _, _, _, _, _, _, _, _),
1165b915395cSDanila Tikhonov 	[83] = PINGROUP(83, WEST, _, nav_pps_in, nav_pps_out, gps_tx, _, _, _, _, _),
1166b915395cSDanila Tikhonov 	[84] = PINGROUP(84, WEST, _, nav_pps_in, nav_pps_out, gps_tx, _, _, _, _, _),
1167b915395cSDanila Tikhonov 	[85] = PINGROUP(85, WEST, uim_batt, edp_hot, aoss_cti, _, _, _, _, _, _),
1168b915395cSDanila Tikhonov 	[86] = PINGROUP(86, NORTH, qdss, atest_char, _, _, _, _, _, _, _),
1169b915395cSDanila Tikhonov 	[87] = PINGROUP(87, NORTH, adsp_ext, qdss, atest_char, _, _, _, _, _, _),
1170b915395cSDanila Tikhonov 	[88] = PINGROUP(88, NORTH, qdss, atest_char, _, _, _, _, _, _, _),
1171b915395cSDanila Tikhonov 	[89] = PINGROUP(89, NORTH, qdss, atest_char, _, _, _, _, _, _, _),
1172b915395cSDanila Tikhonov 	[90] = PINGROUP(90, NORTH, qdss, atest_char, _, _, _, _, _, _, _),
1173b915395cSDanila Tikhonov 	[91] = PINGROUP(91, NORTH, qdss, _, _, _, _, _, _, _, _),
1174b915395cSDanila Tikhonov 	[92] = PINGROUP(92, NORTH, _, _, qup15, _, _, _, _, _, _),
1175b915395cSDanila Tikhonov 	[93] = PINGROUP(93, NORTH, qdss, _, _, _, _, _, _, _, _),
1176b915395cSDanila Tikhonov 	[94] = PINGROUP(94, SOUTH, _, _, _, _, _, _, _, _, _),
1177b915395cSDanila Tikhonov 	[95] = PINGROUP(95, WEST, _, _, _, _, _, _, _, _, _),
1178b915395cSDanila Tikhonov 	[96] = PINGROUP(96, WEST, qlink_request, _, _, _, _, _, _, _, _),
1179b915395cSDanila Tikhonov 	[97] = PINGROUP(97, WEST, qlink_enable, _, _, _, _, _, _, _, _),
1180b915395cSDanila Tikhonov 	[98] = PINGROUP(98, WEST, _, _, _, _, _, _, _, _, _),
1181b915395cSDanila Tikhonov 	[99] = PINGROUP(99, WEST, _, pa_indicator, _, _, _, _, _, _, _),
1182b915395cSDanila Tikhonov 	[100] = PINGROUP(100, WEST, _, _, _, _, _, _, _, _, _),
1183b915395cSDanila Tikhonov 	[101] = PINGROUP(101, NORTH, _, _, qup15, _, _, _, _, _, _),
1184b915395cSDanila Tikhonov 	[102] = PINGROUP(102, NORTH, _, _, qup15, _, _, _, _, _, _),
1185b915395cSDanila Tikhonov 	[103] = PINGROUP(103, NORTH, _, qup15, _, _, _, _, _, _, _),
1186b915395cSDanila Tikhonov 	[104] = PINGROUP(104, WEST, usb_phy, _, qdss, _, _, _, _, _, _),
1187b915395cSDanila Tikhonov 	[105] = PINGROUP(105, NORTH, _, _, _, _, _, _, _, _, _),
1188b915395cSDanila Tikhonov 	[106] = PINGROUP(106, NORTH, _, _, _, _, _, _, _, _, _),
1189b915395cSDanila Tikhonov 	[107] = PINGROUP(107, WEST, _, nav_pps_in, nav_pps_out, gps_tx, _, _, _, _, _),
1190b915395cSDanila Tikhonov 	[108] = PINGROUP(108, SOUTH, mss_lte, _, _, _, _, _, _, _, _),
1191b915395cSDanila Tikhonov 	[109] = PINGROUP(109, SOUTH, mss_lte, gps_tx, _, _, _, _, _, _, _),
1192b915395cSDanila Tikhonov 	[110] = PINGROUP(110, NORTH, _, _, qup14, _, _, _, _, _, _),
1193b915395cSDanila Tikhonov 	[111] = PINGROUP(111, NORTH, _, _, qup14, _, _, _, _, _, _),
1194b915395cSDanila Tikhonov 	[112] = PINGROUP(112, NORTH, _, qup14, _, _, _, _, _, _, _),
1195b915395cSDanila Tikhonov 	[113] = PINGROUP(113, NORTH, _, qup14, _, _, _, _, _, _, _),
1196b915395cSDanila Tikhonov 	[114] = PINGROUP(114, NORTH, _, _, _, _, _, _, _, _, _),
1197b915395cSDanila Tikhonov 	[115] = PINGROUP(115, NORTH, _, _, _, _, _, _, _, _, _),
1198b915395cSDanila Tikhonov 	[116] = PINGROUP(116, NORTH, _, _, _, _, _, _, _, _, _),
1199b915395cSDanila Tikhonov 	[117] = PINGROUP(117, NORTH, _, _, _, _, _, _, _, _, _),
1200b915395cSDanila Tikhonov 	[118] = PINGROUP(118, NORTH, _, _, _, _, _, _, _, _, _),
1201b915395cSDanila Tikhonov 	[119] = UFS_RESET(ufs_reset, 0x9f000),
1202*5ed79863SDanila Tikhonov 	[120] = SDC_QDSD_PINGROUP(sdc1_rclk, WEST, 0x9a000, 15, 0),
1203*5ed79863SDanila Tikhonov 	[121] = SDC_QDSD_PINGROUP(sdc1_clk, WEST, 0x9a000, 13, 6),
1204*5ed79863SDanila Tikhonov 	[122] = SDC_QDSD_PINGROUP(sdc1_cmd, WEST, 0x9a000, 11, 3),
1205*5ed79863SDanila Tikhonov 	[123] = SDC_QDSD_PINGROUP(sdc1_data, WEST, 0x9a000, 9, 0),
1206*5ed79863SDanila Tikhonov 	[124] = SDC_QDSD_PINGROUP(sdc2_clk, SOUTH, 0x98000, 14, 6),
1207*5ed79863SDanila Tikhonov 	[125] = SDC_QDSD_PINGROUP(sdc2_cmd, SOUTH, 0x98000, 11, 3),
1208*5ed79863SDanila Tikhonov 	[126] = SDC_QDSD_PINGROUP(sdc2_data, SOUTH, 0x98000, 9, 0),
1209b915395cSDanila Tikhonov };
1210b915395cSDanila Tikhonov 
1211b915395cSDanila Tikhonov static const struct msm_gpio_wakeirq_map sm7150_pdc_map[] = {
1212b915395cSDanila Tikhonov 	{0, 40}, {3, 50}, {4, 42}, {5, 70}, {6, 41}, {9, 57},
1213b915395cSDanila Tikhonov 	{10, 80}, {11, 51}, {22, 90}, {24, 61}, {26, 52}, {30, 56},
1214b915395cSDanila Tikhonov 	{31, 33}, {32, 81}, {33, 62}, {34, 43}, {36, 91}, {37, 53},
1215b915395cSDanila Tikhonov 	{38, 63}, {39, 72}, {41, 101}, {42, 35}, {43, 34}, {45, 73},
1216b915395cSDanila Tikhonov 	{47, 82}, {48, 36}, {49, 37}, {50, 38}, {52, 39}, {53, 102},
1217b915395cSDanila Tikhonov 	{55, 92}, {56, 45}, {57, 46}, {58, 83}, {59, 47}, {62, 48},
1218b915395cSDanila Tikhonov 	{64, 74}, {65, 44}, {66, 93}, {67, 49}, {68, 55}, {69, 32},
1219b915395cSDanila Tikhonov 	{70, 54}, {73, 64}, {74, 71}, {78, 31}, {82, 30}, {84, 58},
1220b915395cSDanila Tikhonov 	{85, 103}, {86, 59}, {87, 60}, {88, 65}, {89, 66}, {90, 67},
1221b915395cSDanila Tikhonov 	{91, 68}, {92, 69}, {93, 75}, {94, 84}, {95, 94}, {96, 76},
1222b915395cSDanila Tikhonov 	{98, 77}, {101, 78}, {104, 99}, {109, 104}, {110, 79}, {113, 85},
1223b915395cSDanila Tikhonov };
1224b915395cSDanila Tikhonov 
1225b915395cSDanila Tikhonov static const struct msm_pinctrl_soc_data sm7150_tlmm = {
1226b915395cSDanila Tikhonov 	.pins = sm7150_pins,
1227b915395cSDanila Tikhonov 	.npins = ARRAY_SIZE(sm7150_pins),
1228b915395cSDanila Tikhonov 	.functions = sm7150_functions,
1229b915395cSDanila Tikhonov 	.nfunctions = ARRAY_SIZE(sm7150_functions),
1230b915395cSDanila Tikhonov 	.groups = sm7150_groups,
1231b915395cSDanila Tikhonov 	.ngroups = ARRAY_SIZE(sm7150_groups),
1232b915395cSDanila Tikhonov 	.ngpios = 120,
1233b915395cSDanila Tikhonov 	.tiles = sm7150_tiles,
1234b915395cSDanila Tikhonov 	.ntiles = ARRAY_SIZE(sm7150_tiles),
1235b915395cSDanila Tikhonov 	.wakeirq_map = sm7150_pdc_map,
1236b915395cSDanila Tikhonov 	.nwakeirq_map = ARRAY_SIZE(sm7150_pdc_map),
1237b915395cSDanila Tikhonov 	.wakeirq_dual_edge_errata = true,
1238b915395cSDanila Tikhonov };
1239b915395cSDanila Tikhonov 
sm7150_tlmm_probe(struct platform_device * pdev)1240b915395cSDanila Tikhonov static int sm7150_tlmm_probe(struct platform_device *pdev)
1241b915395cSDanila Tikhonov {
1242b915395cSDanila Tikhonov 	return msm_pinctrl_probe(pdev, &sm7150_tlmm);
1243b915395cSDanila Tikhonov }
1244b915395cSDanila Tikhonov 
1245b915395cSDanila Tikhonov static const struct of_device_id sm7150_tlmm_of_match[] = {
1246b915395cSDanila Tikhonov 	{ .compatible = "qcom,sm7150-tlmm", },
1247b915395cSDanila Tikhonov 	{ },
1248b915395cSDanila Tikhonov };
1249abda4619SKrzysztof Kozlowski MODULE_DEVICE_TABLE(of, sm7150_tlmm_of_match);
1250b915395cSDanila Tikhonov 
1251b915395cSDanila Tikhonov static struct platform_driver sm7150_tlmm_driver = {
1252b915395cSDanila Tikhonov 	.driver = {
1253b915395cSDanila Tikhonov 		.name = "sm7150-tlmm",
1254b915395cSDanila Tikhonov 		.pm = &msm_pinctrl_dev_pm_ops,
1255b915395cSDanila Tikhonov 		.of_match_table = sm7150_tlmm_of_match,
1256b915395cSDanila Tikhonov 	},
1257b915395cSDanila Tikhonov 	.probe = sm7150_tlmm_probe,
125822ee670aSUwe Kleine-König 	.remove_new = msm_pinctrl_remove,
1259b915395cSDanila Tikhonov };
1260b915395cSDanila Tikhonov 
sm7150_tlmm_init(void)1261b915395cSDanila Tikhonov static int __init sm7150_tlmm_init(void)
1262b915395cSDanila Tikhonov {
1263b915395cSDanila Tikhonov 	return platform_driver_register(&sm7150_tlmm_driver);
1264b915395cSDanila Tikhonov }
1265b915395cSDanila Tikhonov arch_initcall(sm7150_tlmm_init);
1266b915395cSDanila Tikhonov 
sm7150_tlmm_exit(void)1267b915395cSDanila Tikhonov static void __exit sm7150_tlmm_exit(void)
1268b915395cSDanila Tikhonov {
1269b915395cSDanila Tikhonov 	platform_driver_unregister(&sm7150_tlmm_driver);
1270b915395cSDanila Tikhonov }
1271b915395cSDanila Tikhonov module_exit(sm7150_tlmm_exit);
1272b915395cSDanila Tikhonov 
1273b915395cSDanila Tikhonov MODULE_DESCRIPTION("Qualcomm SM7150 TLMM driver");
1274b915395cSDanila Tikhonov MODULE_LICENSE("GPL");
1275