xref: /openbmc/linux/drivers/pinctrl/qcom/pinctrl-apq8084.c (revision 97fb5e8d9b57f10f294303c9a5d1bd033eded6bf)
1*97fb5e8dSThomas Gleixner // SPDX-License-Identifier: GPL-2.0-only
2c4f6f9c0SGeorgi Djakov /*
3c4f6f9c0SGeorgi Djakov  * Copyright (c) 2014, The Linux Foundation. All rights reserved.
4c4f6f9c0SGeorgi Djakov  */
5c4f6f9c0SGeorgi Djakov 
6c4f6f9c0SGeorgi Djakov #include <linux/module.h>
7c4f6f9c0SGeorgi Djakov #include <linux/of.h>
8c4f6f9c0SGeorgi Djakov #include <linux/platform_device.h>
9c4f6f9c0SGeorgi Djakov #include <linux/pinctrl/pinctrl.h>
10c4f6f9c0SGeorgi Djakov 
11c4f6f9c0SGeorgi Djakov #include "pinctrl-msm.h"
12c4f6f9c0SGeorgi Djakov 
13c4f6f9c0SGeorgi Djakov static const struct pinctrl_pin_desc apq8084_pins[] = {
14c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(0, "GPIO_0"),
15c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(1, "GPIO_1"),
16c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(2, "GPIO_2"),
17c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(3, "GPIO_3"),
18c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(4, "GPIO_4"),
19c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(5, "GPIO_5"),
20c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(6, "GPIO_6"),
21c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(7, "GPIO_7"),
22c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(8, "GPIO_8"),
23c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(9, "GPIO_9"),
24c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(10, "GPIO_10"),
25c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(11, "GPIO_11"),
26c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(12, "GPIO_12"),
27c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(13, "GPIO_13"),
28c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(14, "GPIO_14"),
29c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(15, "GPIO_15"),
30c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(16, "GPIO_16"),
31c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(17, "GPIO_17"),
32c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(18, "GPIO_18"),
33c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(19, "GPIO_19"),
34c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(20, "GPIO_20"),
35c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(21, "GPIO_21"),
36c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(22, "GPIO_22"),
37c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(23, "GPIO_23"),
38c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(24, "GPIO_24"),
39c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(25, "GPIO_25"),
40c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(26, "GPIO_26"),
41c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(27, "GPIO_27"),
42c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(28, "GPIO_28"),
43c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(29, "GPIO_29"),
44c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(30, "GPIO_30"),
45c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(31, "GPIO_31"),
46c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(32, "GPIO_32"),
47c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(33, "GPIO_33"),
48c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(34, "GPIO_34"),
49c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(35, "GPIO_35"),
50c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(36, "GPIO_36"),
51c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(37, "GPIO_37"),
52c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(38, "GPIO_38"),
53c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(39, "GPIO_39"),
54c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(40, "GPIO_40"),
55c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(41, "GPIO_41"),
56c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(42, "GPIO_42"),
57c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(43, "GPIO_43"),
58c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(44, "GPIO_44"),
59c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(45, "GPIO_45"),
60c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(46, "GPIO_46"),
61c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(47, "GPIO_47"),
62c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(48, "GPIO_48"),
63c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(49, "GPIO_49"),
64c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(50, "GPIO_50"),
65c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(51, "GPIO_51"),
66c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(52, "GPIO_52"),
67c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(53, "GPIO_53"),
68c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(54, "GPIO_54"),
69c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(55, "GPIO_55"),
70c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(56, "GPIO_56"),
71c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(57, "GPIO_57"),
72c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(58, "GPIO_58"),
73c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(59, "GPIO_59"),
74c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(60, "GPIO_60"),
75c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(61, "GPIO_61"),
76c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(62, "GPIO_62"),
77c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(63, "GPIO_63"),
78c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(64, "GPIO_64"),
79c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(65, "GPIO_65"),
80c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(66, "GPIO_66"),
81c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(67, "GPIO_67"),
82c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(68, "GPIO_68"),
83c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(69, "GPIO_69"),
84c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(70, "GPIO_70"),
85c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(71, "GPIO_71"),
86c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(72, "GPIO_72"),
87c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(73, "GPIO_73"),
88c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(74, "GPIO_74"),
89c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(75, "GPIO_75"),
90c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(76, "GPIO_76"),
91c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(77, "GPIO_77"),
92c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(78, "GPIO_78"),
93c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(79, "GPIO_79"),
94c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(80, "GPIO_80"),
95c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(81, "GPIO_81"),
96c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(82, "GPIO_82"),
97c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(83, "GPIO_83"),
98c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(84, "GPIO_84"),
99c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(85, "GPIO_85"),
100c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(86, "GPIO_86"),
101c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(87, "GPIO_87"),
102c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(88, "GPIO_88"),
103c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(89, "GPIO_89"),
104c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(90, "GPIO_90"),
105c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(91, "GPIO_91"),
106c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(92, "GPIO_92"),
107c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(93, "GPIO_93"),
108c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(94, "GPIO_94"),
109c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(95, "GPIO_95"),
110c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(96, "GPIO_96"),
111c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(97, "GPIO_97"),
112c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(98, "GPIO_98"),
113c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(99, "GPIO_99"),
114c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(100, "GPIO_100"),
115c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(101, "GPIO_101"),
116c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(102, "GPIO_102"),
117c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(103, "GPIO_103"),
118c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(104, "GPIO_104"),
119c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(105, "GPIO_105"),
120c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(106, "GPIO_106"),
121c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(107, "GPIO_107"),
122c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(108, "GPIO_108"),
123c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(109, "GPIO_109"),
124c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(110, "GPIO_110"),
125c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(111, "GPIO_111"),
126c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(112, "GPIO_112"),
127c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(113, "GPIO_113"),
128c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(114, "GPIO_114"),
129c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(115, "GPIO_115"),
130c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(116, "GPIO_116"),
131c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(117, "GPIO_117"),
132c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(118, "GPIO_118"),
133c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(119, "GPIO_119"),
134c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(120, "GPIO_120"),
135c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(121, "GPIO_121"),
136c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(122, "GPIO_122"),
137c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(123, "GPIO_123"),
138c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(124, "GPIO_124"),
139c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(125, "GPIO_125"),
140c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(126, "GPIO_126"),
141c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(127, "GPIO_127"),
142c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(128, "GPIO_128"),
143c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(129, "GPIO_129"),
144c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(130, "GPIO_130"),
145c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(131, "GPIO_131"),
146c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(132, "GPIO_132"),
147c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(133, "GPIO_133"),
148c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(134, "GPIO_134"),
149c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(135, "GPIO_135"),
150c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(136, "GPIO_136"),
151c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(137, "GPIO_137"),
152c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(138, "GPIO_138"),
153c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(139, "GPIO_139"),
154c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(140, "GPIO_140"),
155c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(141, "GPIO_141"),
156c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(142, "GPIO_142"),
157c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(143, "GPIO_143"),
158c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(144, "GPIO_144"),
159c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(145, "GPIO_145"),
160c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(146, "GPIO_146"),
161c4f6f9c0SGeorgi Djakov 
162c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(147, "SDC1_CLK"),
163c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(148, "SDC1_CMD"),
164c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(149, "SDC1_DATA"),
165c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(150, "SDC2_CLK"),
166c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(151, "SDC2_CMD"),
167c4f6f9c0SGeorgi Djakov 	PINCTRL_PIN(152, "SDC2_DATA"),
168c4f6f9c0SGeorgi Djakov };
169c4f6f9c0SGeorgi Djakov 
170c4f6f9c0SGeorgi Djakov #define DECLARE_APQ_GPIO_PINS(pin) static const unsigned int gpio##pin##_pins[] = { pin }
171c4f6f9c0SGeorgi Djakov 
172c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(0);
173c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(1);
174c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(2);
175c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(3);
176c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(4);
177c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(5);
178c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(6);
179c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(7);
180c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(8);
181c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(9);
182c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(10);
183c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(11);
184c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(12);
185c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(13);
186c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(14);
187c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(15);
188c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(16);
189c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(17);
190c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(18);
191c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(19);
192c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(20);
193c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(21);
194c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(22);
195c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(23);
196c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(24);
197c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(25);
198c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(26);
199c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(27);
200c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(28);
201c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(29);
202c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(30);
203c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(31);
204c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(32);
205c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(33);
206c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(34);
207c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(35);
208c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(36);
209c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(37);
210c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(38);
211c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(39);
212c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(40);
213c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(41);
214c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(42);
215c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(43);
216c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(44);
217c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(45);
218c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(46);
219c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(47);
220c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(48);
221c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(49);
222c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(50);
223c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(51);
224c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(52);
225c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(53);
226c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(54);
227c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(55);
228c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(56);
229c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(57);
230c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(58);
231c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(59);
232c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(60);
233c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(61);
234c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(62);
235c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(63);
236c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(64);
237c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(65);
238c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(66);
239c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(67);
240c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(68);
241c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(69);
242c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(70);
243c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(71);
244c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(72);
245c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(73);
246c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(74);
247c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(75);
248c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(76);
249c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(77);
250c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(78);
251c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(79);
252c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(80);
253c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(81);
254c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(82);
255c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(83);
256c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(84);
257c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(85);
258c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(86);
259c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(87);
260c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(88);
261c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(89);
262c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(90);
263c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(91);
264c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(92);
265c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(93);
266c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(94);
267c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(95);
268c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(96);
269c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(97);
270c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(98);
271c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(99);
272c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(100);
273c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(101);
274c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(102);
275c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(103);
276c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(104);
277c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(105);
278c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(106);
279c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(107);
280c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(108);
281c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(109);
282c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(110);
283c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(111);
284c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(112);
285c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(113);
286c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(114);
287c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(115);
288c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(116);
289c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(117);
290c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(118);
291c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(119);
292c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(120);
293c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(121);
294c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(122);
295c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(123);
296c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(124);
297c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(125);
298c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(126);
299c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(127);
300c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(128);
301c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(129);
302c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(130);
303c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(131);
304c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(132);
305c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(133);
306c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(134);
307c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(135);
308c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(136);
309c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(137);
310c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(138);
311c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(139);
312c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(140);
313c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(141);
314c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(142);
315c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(143);
316c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(144);
317c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(145);
318c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(146);
319c4f6f9c0SGeorgi Djakov 
320c4f6f9c0SGeorgi Djakov static const unsigned int sdc1_clk_pins[] = { 147 };
321c4f6f9c0SGeorgi Djakov static const unsigned int sdc1_cmd_pins[] = { 148 };
322c4f6f9c0SGeorgi Djakov static const unsigned int sdc1_data_pins[] = { 149 };
323c4f6f9c0SGeorgi Djakov static const unsigned int sdc2_clk_pins[] = { 150 };
324c4f6f9c0SGeorgi Djakov static const unsigned int sdc2_cmd_pins[] = { 151 };
325c4f6f9c0SGeorgi Djakov static const unsigned int sdc2_data_pins[] = { 152 };
326c4f6f9c0SGeorgi Djakov 
327c4f6f9c0SGeorgi Djakov #define FUNCTION(fname)					\
328c4f6f9c0SGeorgi Djakov 	[APQ_MUX_##fname] = {				\
329c4f6f9c0SGeorgi Djakov 		.name = #fname,				\
330c4f6f9c0SGeorgi Djakov 		.groups = fname##_groups,		\
331c4f6f9c0SGeorgi Djakov 		.ngroups = ARRAY_SIZE(fname##_groups),	\
332c4f6f9c0SGeorgi Djakov 	}
333c4f6f9c0SGeorgi Djakov 
334c4f6f9c0SGeorgi Djakov #define PINGROUP(id, f1, f2, f3, f4, f5, f6, f7)        \
335c4f6f9c0SGeorgi Djakov 	{						\
336c4f6f9c0SGeorgi Djakov 		.name = "gpio" #id,			\
337c4f6f9c0SGeorgi Djakov 		.pins = gpio##id##_pins,		\
338c4f6f9c0SGeorgi Djakov 		.npins = ARRAY_SIZE(gpio##id##_pins),	\
339c4f6f9c0SGeorgi Djakov 		.funcs = (int[]){			\
340c4f6f9c0SGeorgi Djakov 			APQ_MUX_gpio,			\
341c4f6f9c0SGeorgi Djakov 			APQ_MUX_##f1,			\
342c4f6f9c0SGeorgi Djakov 			APQ_MUX_##f2,			\
343c4f6f9c0SGeorgi Djakov 			APQ_MUX_##f3,			\
344c4f6f9c0SGeorgi Djakov 			APQ_MUX_##f4,			\
345c4f6f9c0SGeorgi Djakov 			APQ_MUX_##f5,			\
346c4f6f9c0SGeorgi Djakov 			APQ_MUX_##f6,			\
347c4f6f9c0SGeorgi Djakov 			APQ_MUX_##f7			\
348c4f6f9c0SGeorgi Djakov 		},					\
349c4f6f9c0SGeorgi Djakov 		.nfuncs = 8,				\
350c4f6f9c0SGeorgi Djakov 		.ctl_reg = 0x1000 + 0x10 * id,		\
351c4f6f9c0SGeorgi Djakov 		.io_reg = 0x1004 + 0x10 * id,		\
352c4f6f9c0SGeorgi Djakov 		.intr_cfg_reg = 0x1008 + 0x10 * id,	\
353c4f6f9c0SGeorgi Djakov 		.intr_status_reg = 0x100c + 0x10 * id,	\
354c4f6f9c0SGeorgi Djakov 		.intr_target_reg = 0x1008 + 0x10 * id,	\
355c4f6f9c0SGeorgi Djakov 		.mux_bit = 2,				\
356c4f6f9c0SGeorgi Djakov 		.pull_bit = 0,				\
357c4f6f9c0SGeorgi Djakov 		.drv_bit = 6,				\
358c4f6f9c0SGeorgi Djakov 		.oe_bit = 9,				\
359c4f6f9c0SGeorgi Djakov 		.in_bit = 0,				\
360c4f6f9c0SGeorgi Djakov 		.out_bit = 1,				\
361c4f6f9c0SGeorgi Djakov 		.intr_enable_bit = 0,			\
362c4f6f9c0SGeorgi Djakov 		.intr_status_bit = 0,			\
363c4f6f9c0SGeorgi Djakov 		.intr_ack_high = 0,			\
364c4f6f9c0SGeorgi Djakov 		.intr_target_bit = 5,			\
365f712c554SGeorgi Djakov 		.intr_target_kpss_val = 3,		\
366c4f6f9c0SGeorgi Djakov 		.intr_raw_status_bit = 4,		\
367c4f6f9c0SGeorgi Djakov 		.intr_polarity_bit = 1,			\
368c4f6f9c0SGeorgi Djakov 		.intr_detection_bit = 2,		\
369c4f6f9c0SGeorgi Djakov 		.intr_detection_width = 2,		\
370c4f6f9c0SGeorgi Djakov 	}
371c4f6f9c0SGeorgi Djakov 
372c4f6f9c0SGeorgi Djakov #define SDC_PINGROUP(pg_name, ctl, pull, drv)		\
373c4f6f9c0SGeorgi Djakov 	{						\
374c4f6f9c0SGeorgi Djakov 		.name = #pg_name,	                \
375c4f6f9c0SGeorgi Djakov 		.pins = pg_name##_pins,                 \
376c4f6f9c0SGeorgi Djakov 		.npins = ARRAY_SIZE(pg_name##_pins),    \
377c4f6f9c0SGeorgi Djakov 		.ctl_reg = ctl,                         \
378c4f6f9c0SGeorgi Djakov 		.io_reg = 0,                            \
379c4f6f9c0SGeorgi Djakov 		.intr_cfg_reg = 0,                      \
380c4f6f9c0SGeorgi Djakov 		.intr_status_reg = 0,                   \
381c4f6f9c0SGeorgi Djakov 		.intr_target_reg = 0,                   \
382c4f6f9c0SGeorgi Djakov 		.mux_bit = -1,                          \
383c4f6f9c0SGeorgi Djakov 		.pull_bit = pull,                       \
384c4f6f9c0SGeorgi Djakov 		.drv_bit = drv,                         \
385c4f6f9c0SGeorgi Djakov 		.oe_bit = -1,                           \
386c4f6f9c0SGeorgi Djakov 		.in_bit = -1,                           \
387c4f6f9c0SGeorgi Djakov 		.out_bit = -1,                          \
388c4f6f9c0SGeorgi Djakov 		.intr_enable_bit = -1,                  \
389c4f6f9c0SGeorgi Djakov 		.intr_status_bit = -1,                  \
390c4f6f9c0SGeorgi Djakov 		.intr_target_bit = -1,                  \
391f712c554SGeorgi Djakov 		.intr_target_kpss_val = -1,		\
392c4f6f9c0SGeorgi Djakov 		.intr_raw_status_bit = -1,              \
393c4f6f9c0SGeorgi Djakov 		.intr_polarity_bit = -1,                \
394c4f6f9c0SGeorgi Djakov 		.intr_detection_bit = -1,               \
395c4f6f9c0SGeorgi Djakov 		.intr_detection_width = -1,             \
396c4f6f9c0SGeorgi Djakov 	}
397c4f6f9c0SGeorgi Djakov 
398c4f6f9c0SGeorgi Djakov enum apq8084_functions {
399c4f6f9c0SGeorgi Djakov 	APQ_MUX_adsp_ext,
400c4f6f9c0SGeorgi Djakov 	APQ_MUX_audio_ref,
401c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_i2c1,
402c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_i2c2,
403c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_i2c3,
404c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_i2c4,
405c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_i2c5,
406c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_i2c6,
407c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_i2c7,
408c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_i2c8,
409c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_i2c9,
410c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_i2c10,
411c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_i2c11,
412c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_i2c12,
413c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_spi1,
414c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_spi1_cs1,
415c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_spi1_cs2,
416c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_spi1_cs3,
417c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_spi2,
418c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_spi3,
419c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_spi3_cs1,
420c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_spi3_cs2,
421c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_spi3_cs3,
422c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_spi4,
423c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_spi5,
424c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_spi6,
425c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_spi7,
426c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_spi8,
427c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_spi9,
428c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_spi10,
429c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_spi10_cs1,
430c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_spi10_cs2,
431c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_spi10_cs3,
432c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_spi11,
433c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_spi12,
434c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_uart1,
435c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_uart2,
436c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_uart3,
437c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_uart4,
438c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_uart5,
439c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_uart6,
440c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_uart7,
441c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_uart8,
442c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_uart9,
443c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_uart10,
444c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_uart11,
445c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_uart12,
446c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_uim1,
447c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_uim2,
448c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_uim3,
449c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_uim4,
450c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_uim5,
451c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_uim6,
452c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_uim7,
453c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_uim8,
454c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_uim9,
455c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_uim10,
456c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_uim11,
457c4f6f9c0SGeorgi Djakov 	APQ_MUX_blsp_uim12,
458c4f6f9c0SGeorgi Djakov 	APQ_MUX_cam_mclk0,
459c4f6f9c0SGeorgi Djakov 	APQ_MUX_cam_mclk1,
460c4f6f9c0SGeorgi Djakov 	APQ_MUX_cam_mclk2,
461c4f6f9c0SGeorgi Djakov 	APQ_MUX_cam_mclk3,
462c4f6f9c0SGeorgi Djakov 	APQ_MUX_cci_async,
463c4f6f9c0SGeorgi Djakov 	APQ_MUX_cci_async_in0,
464c4f6f9c0SGeorgi Djakov 	APQ_MUX_cci_i2c0,
465c4f6f9c0SGeorgi Djakov 	APQ_MUX_cci_i2c1,
466c4f6f9c0SGeorgi Djakov 	APQ_MUX_cci_timer0,
467c4f6f9c0SGeorgi Djakov 	APQ_MUX_cci_timer1,
468c4f6f9c0SGeorgi Djakov 	APQ_MUX_cci_timer2,
469c4f6f9c0SGeorgi Djakov 	APQ_MUX_cci_timer3,
470c4f6f9c0SGeorgi Djakov 	APQ_MUX_cci_timer4,
471c4f6f9c0SGeorgi Djakov 	APQ_MUX_edp_hpd,
472c4f6f9c0SGeorgi Djakov 	APQ_MUX_gcc_gp1,
473c4f6f9c0SGeorgi Djakov 	APQ_MUX_gcc_gp2,
474c4f6f9c0SGeorgi Djakov 	APQ_MUX_gcc_gp3,
475c4f6f9c0SGeorgi Djakov 	APQ_MUX_gcc_obt,
476c4f6f9c0SGeorgi Djakov 	APQ_MUX_gcc_vtt,
477c4f6f9c0SGeorgi Djakov 	APQ_MUX_gp_mn,
478c4f6f9c0SGeorgi Djakov 	APQ_MUX_gp_pdm0,
479c4f6f9c0SGeorgi Djakov 	APQ_MUX_gp_pdm1,
480c4f6f9c0SGeorgi Djakov 	APQ_MUX_gp_pdm2,
481c4f6f9c0SGeorgi Djakov 	APQ_MUX_gp0_clk,
482c4f6f9c0SGeorgi Djakov 	APQ_MUX_gp1_clk,
483c4f6f9c0SGeorgi Djakov 	APQ_MUX_gpio,
484c4f6f9c0SGeorgi Djakov 	APQ_MUX_hdmi_cec,
485c4f6f9c0SGeorgi Djakov 	APQ_MUX_hdmi_ddc,
486c4f6f9c0SGeorgi Djakov 	APQ_MUX_hdmi_dtest,
487c4f6f9c0SGeorgi Djakov 	APQ_MUX_hdmi_hpd,
488c4f6f9c0SGeorgi Djakov 	APQ_MUX_hdmi_rcv,
489c4f6f9c0SGeorgi Djakov 	APQ_MUX_hsic,
490c4f6f9c0SGeorgi Djakov 	APQ_MUX_ldo_en,
491c4f6f9c0SGeorgi Djakov 	APQ_MUX_ldo_update,
492c4f6f9c0SGeorgi Djakov 	APQ_MUX_mdp_vsync,
493c4f6f9c0SGeorgi Djakov 	APQ_MUX_pci_e0,
494c4f6f9c0SGeorgi Djakov 	APQ_MUX_pci_e0_n,
495c4f6f9c0SGeorgi Djakov 	APQ_MUX_pci_e0_rst,
496c4f6f9c0SGeorgi Djakov 	APQ_MUX_pci_e1,
497c4f6f9c0SGeorgi Djakov 	APQ_MUX_pci_e1_rst,
498c4f6f9c0SGeorgi Djakov 	APQ_MUX_pci_e1_rst_n,
499c4f6f9c0SGeorgi Djakov 	APQ_MUX_pci_e1_clkreq_n,
500c4f6f9c0SGeorgi Djakov 	APQ_MUX_pri_mi2s,
501c4f6f9c0SGeorgi Djakov 	APQ_MUX_qua_mi2s,
502c4f6f9c0SGeorgi Djakov 	APQ_MUX_sata_act,
503c4f6f9c0SGeorgi Djakov 	APQ_MUX_sata_devsleep,
504c4f6f9c0SGeorgi Djakov 	APQ_MUX_sata_devsleep_n,
505c4f6f9c0SGeorgi Djakov 	APQ_MUX_sd_write,
506c4f6f9c0SGeorgi Djakov 	APQ_MUX_sdc_emmc_mode,
507c4f6f9c0SGeorgi Djakov 	APQ_MUX_sdc3,
508c4f6f9c0SGeorgi Djakov 	APQ_MUX_sdc4,
509c4f6f9c0SGeorgi Djakov 	APQ_MUX_sec_mi2s,
510c4f6f9c0SGeorgi Djakov 	APQ_MUX_slimbus,
511c4f6f9c0SGeorgi Djakov 	APQ_MUX_spdif_tx,
512c4f6f9c0SGeorgi Djakov 	APQ_MUX_spkr_i2s,
513c4f6f9c0SGeorgi Djakov 	APQ_MUX_spkr_i2s_ws,
514c4f6f9c0SGeorgi Djakov 	APQ_MUX_spss_geni,
515c4f6f9c0SGeorgi Djakov 	APQ_MUX_ter_mi2s,
516c4f6f9c0SGeorgi Djakov 	APQ_MUX_tsif1,
517c4f6f9c0SGeorgi Djakov 	APQ_MUX_tsif2,
518c4f6f9c0SGeorgi Djakov 	APQ_MUX_uim,
519c4f6f9c0SGeorgi Djakov 	APQ_MUX_uim_batt_alarm,
520c4f6f9c0SGeorgi Djakov 	APQ_MUX_NA,
521c4f6f9c0SGeorgi Djakov };
522c4f6f9c0SGeorgi Djakov 
523c4f6f9c0SGeorgi Djakov static const char * const gpio_groups[] = {
524c4f6f9c0SGeorgi Djakov 	"gpio0", "gpio1", "gpio2", "gpio3", "gpio4", "gpio5", "gpio6", "gpio7",
525c4f6f9c0SGeorgi Djakov 	"gpio8", "gpio9", "gpio10", "gpio11", "gpio12", "gpio13", "gpio14",
526c4f6f9c0SGeorgi Djakov 	"gpio15", "gpio16", "gpio17", "gpio18", "gpio19", "gpio20", "gpio21",
527c4f6f9c0SGeorgi Djakov 	"gpio22", "gpio23", "gpio24", "gpio25", "gpio26", "gpio27", "gpio28",
528c4f6f9c0SGeorgi Djakov 	"gpio29", "gpio30", "gpio31", "gpio32", "gpio33", "gpio34", "gpio35",
529c4f6f9c0SGeorgi Djakov 	"gpio36", "gpio37", "gpio38", "gpio39", "gpio40", "gpio41", "gpio42",
530c4f6f9c0SGeorgi Djakov 	"gpio43", "gpio44", "gpio45", "gpio46", "gpio47", "gpio48", "gpio49",
531c4f6f9c0SGeorgi Djakov 	"gpio50", "gpio51", "gpio52", "gpio53", "gpio54", "gpio55", "gpio56",
532c4f6f9c0SGeorgi Djakov 	"gpio57", "gpio58", "gpio59", "gpio60", "gpio61", "gpio62", "gpio63",
533c4f6f9c0SGeorgi Djakov 	"gpio64", "gpio65", "gpio66", "gpio67", "gpio68", "gpio69", "gpio70",
534c4f6f9c0SGeorgi Djakov 	"gpio71", "gpio72", "gpio73", "gpio74", "gpio75", "gpio76", "gpio77",
535c4f6f9c0SGeorgi Djakov 	"gpio78", "gpio79", "gpio80", "gpio81", "gpio82", "gpio83", "gpio84",
536c4f6f9c0SGeorgi Djakov 	"gpio85", "gpio86", "gpio87", "gpio88", "gpio89", "gpio90", "gpio91",
537c4f6f9c0SGeorgi Djakov 	"gpio92", "gpio93", "gpio94", "gpio95", "gpio96", "gpio97", "gpio98",
538c4f6f9c0SGeorgi Djakov 	"gpio99", "gpio100", "gpio101", "gpio102", "gpio103", "gpio104",
539c4f6f9c0SGeorgi Djakov 	"gpio105", "gpio106", "gpio107", "gpio108", "gpio109", "gpio110",
540c4f6f9c0SGeorgi Djakov 	"gpio111", "gpio112", "gpio113", "gpio114", "gpio115", "gpio116",
541c4f6f9c0SGeorgi Djakov 	"gpio117", "gpio118", "gpio119", "gpio120", "gpio121", "gpio122",
542c4f6f9c0SGeorgi Djakov 	"gpio123", "gpio124", "gpio125", "gpio126", "gpio127", "gpio128",
543c4f6f9c0SGeorgi Djakov 	"gpio129", "gpio130", "gpio131", "gpio132", "gpio133", "gpio134",
544c4f6f9c0SGeorgi Djakov 	"gpio135", "gpio136", "gpio137", "gpio138", "gpio139", "gpio140",
545c4f6f9c0SGeorgi Djakov 	"gpio141", "gpio142", "gpio143", "gpio144", "gpio145", "gpio146"
546c4f6f9c0SGeorgi Djakov };
547c4f6f9c0SGeorgi Djakov 
548c4f6f9c0SGeorgi Djakov static const char * const adsp_ext_groups[] = {
549c4f6f9c0SGeorgi Djakov 	"gpio34"
550c4f6f9c0SGeorgi Djakov };
551c4f6f9c0SGeorgi Djakov static const char * const audio_ref_groups[] = {
552c4f6f9c0SGeorgi Djakov 	"gpio100"
553c4f6f9c0SGeorgi Djakov };
554c4f6f9c0SGeorgi Djakov static const char * const blsp_i2c1_groups[] = {
555c4f6f9c0SGeorgi Djakov 	"gpio2", "gpio3"
556c4f6f9c0SGeorgi Djakov };
557c4f6f9c0SGeorgi Djakov static const char * const blsp_i2c2_groups[] = {
558c4f6f9c0SGeorgi Djakov 	"gpio6", "gpio7"
559c4f6f9c0SGeorgi Djakov };
560c4f6f9c0SGeorgi Djakov static const char * const blsp_i2c3_groups[] = {
561c4f6f9c0SGeorgi Djakov 	"gpio10", "gpio11"
562c4f6f9c0SGeorgi Djakov };
563c4f6f9c0SGeorgi Djakov static const char * const blsp_i2c4_groups[] = {
564c4f6f9c0SGeorgi Djakov 	"gpio29", "gpio30"
565c4f6f9c0SGeorgi Djakov };
566c4f6f9c0SGeorgi Djakov static const char * const blsp_i2c5_groups[] = {
567c4f6f9c0SGeorgi Djakov 	"gpio41", "gpio42"
568c4f6f9c0SGeorgi Djakov };
569c4f6f9c0SGeorgi Djakov static const char * const blsp_i2c6_groups[] = {
570c4f6f9c0SGeorgi Djakov 	"gpio45", "gpio46"
571c4f6f9c0SGeorgi Djakov };
572c4f6f9c0SGeorgi Djakov static const char * const blsp_i2c7_groups[] = {
573c4f6f9c0SGeorgi Djakov 	"gpio132", "gpio133"
574c4f6f9c0SGeorgi Djakov };
575c4f6f9c0SGeorgi Djakov static const char * const blsp_i2c8_groups[] = {
576c4f6f9c0SGeorgi Djakov 	"gpio53", "gpio54"
577c4f6f9c0SGeorgi Djakov };
578c4f6f9c0SGeorgi Djakov static const char * const blsp_i2c9_groups[] = {
579c4f6f9c0SGeorgi Djakov 	"gpio57", "gpio58"
580c4f6f9c0SGeorgi Djakov };
581c4f6f9c0SGeorgi Djakov static const char * const blsp_i2c10_groups[] = {
582c4f6f9c0SGeorgi Djakov 	"gpio61", "gpio62"
583c4f6f9c0SGeorgi Djakov };
584c4f6f9c0SGeorgi Djakov static const char * const blsp_i2c11_groups[] = {
585c4f6f9c0SGeorgi Djakov 	"gpio65", "gpio66"
586c4f6f9c0SGeorgi Djakov };
587c4f6f9c0SGeorgi Djakov static const char * const blsp_i2c12_groups[] = {
588c4f6f9c0SGeorgi Djakov 	"gpio49", "gpio50"
589c4f6f9c0SGeorgi Djakov };
590c4f6f9c0SGeorgi Djakov static const char * const blsp_spi1_groups[] = {
591c4f6f9c0SGeorgi Djakov 	"gpio0", "gpio1", "gpio2", "gpio3"
592c4f6f9c0SGeorgi Djakov };
593c4f6f9c0SGeorgi Djakov static const char * const blsp_spi2_groups[] = {
594c4f6f9c0SGeorgi Djakov 	"gpio4", "gpio5", "gpio6", "gpio7"
595c4f6f9c0SGeorgi Djakov };
596c4f6f9c0SGeorgi Djakov static const char * const blsp_spi3_groups[] = {
597c4f6f9c0SGeorgi Djakov 	"gpio8", "gpio9", "gpio10", "gpio11"
598c4f6f9c0SGeorgi Djakov };
599c4f6f9c0SGeorgi Djakov static const char * const blsp_spi4_groups[] = {
600c4f6f9c0SGeorgi Djakov 	"gpio27", "gpio28", "gpio29", "gpio30"
601c4f6f9c0SGeorgi Djakov };
602c4f6f9c0SGeorgi Djakov static const char * const blsp_spi5_groups[] = {
603c4f6f9c0SGeorgi Djakov 	"gpio39", "gpio40", "gpio41", "gpio42"
604c4f6f9c0SGeorgi Djakov };
605c4f6f9c0SGeorgi Djakov static const char * const blsp_spi6_groups[] = {
606c4f6f9c0SGeorgi Djakov 	"gpio43", "gpio44", "gpio45", "gpio46"
607c4f6f9c0SGeorgi Djakov };
608c4f6f9c0SGeorgi Djakov static const char * const blsp_spi7_groups[] = {
609c4f6f9c0SGeorgi Djakov 	"gpio130", "gpio131", "gpio132", "gpio133"
610c4f6f9c0SGeorgi Djakov };
611c4f6f9c0SGeorgi Djakov static const char * const blsp_spi8_groups[] = {
612c4f6f9c0SGeorgi Djakov 	"gpio51", "gpio52", "gpio53", "gpio54"
613c4f6f9c0SGeorgi Djakov };
614c4f6f9c0SGeorgi Djakov static const char * const blsp_spi9_groups[] = {
615c4f6f9c0SGeorgi Djakov 	"gpio55", "gpio56", "gpio57", "gpio58"
616c4f6f9c0SGeorgi Djakov };
617c4f6f9c0SGeorgi Djakov static const char * const blsp_spi10_groups[] = {
618c4f6f9c0SGeorgi Djakov 	"gpio59", "gpio60", "gpio61", "gpio62"
619c4f6f9c0SGeorgi Djakov };
620c4f6f9c0SGeorgi Djakov static const char * const blsp_spi11_groups[] = {
621c4f6f9c0SGeorgi Djakov 	"gpio63", "gpio64", "gpio65", "gpio66"
622c4f6f9c0SGeorgi Djakov };
623c4f6f9c0SGeorgi Djakov static const char * const blsp_spi12_groups[] = {
624c4f6f9c0SGeorgi Djakov 	"gpio47", "gpio48", "gpio49", "gpio50"
625c4f6f9c0SGeorgi Djakov };
626c4f6f9c0SGeorgi Djakov static const char * const blsp_uart1_groups[] = {
627c4f6f9c0SGeorgi Djakov 	"gpio0", "gpio1", "gpio2", "gpio3"
628c4f6f9c0SGeorgi Djakov };
629c4f6f9c0SGeorgi Djakov static const char * const blsp_uart2_groups[] = {
630c4f6f9c0SGeorgi Djakov 	"gpio4", "gpio5", "gpio6", "gpio7"
631c4f6f9c0SGeorgi Djakov };
632c4f6f9c0SGeorgi Djakov static const char * const blsp_uart3_groups[] = {
633c4f6f9c0SGeorgi Djakov 	"gpio8"
634c4f6f9c0SGeorgi Djakov };
635c4f6f9c0SGeorgi Djakov static const char * const blsp_uart4_groups[] = {
636c4f6f9c0SGeorgi Djakov 	"gpio27", "gpio28", "gpio29", "gpio30"
637c4f6f9c0SGeorgi Djakov };
638c4f6f9c0SGeorgi Djakov static const char * const blsp_uart5_groups[] = {
639c4f6f9c0SGeorgi Djakov 	"gpio39", "gpio40", "gpio41", "gpio42"
640c4f6f9c0SGeorgi Djakov };
641c4f6f9c0SGeorgi Djakov static const char * const blsp_uart6_groups[] = {
642c4f6f9c0SGeorgi Djakov 	"gpio43", "gpio44", "gpio45", "gpio46"
643c4f6f9c0SGeorgi Djakov };
644c4f6f9c0SGeorgi Djakov static const char * const blsp_uart7_groups[] = {
645c4f6f9c0SGeorgi Djakov 	"gpio130", "gpio131", "gpio132", "gpio133"
646c4f6f9c0SGeorgi Djakov };
647c4f6f9c0SGeorgi Djakov static const char * const blsp_uart8_groups[] = {
648c4f6f9c0SGeorgi Djakov 	"gpio51", "gpio52", "gpio53", "gpio54"
649c4f6f9c0SGeorgi Djakov };
650c4f6f9c0SGeorgi Djakov static const char * const blsp_uart9_groups[] = {
651c4f6f9c0SGeorgi Djakov 	"gpio55", "gpio56", "gpio57", "gpio58"
652c4f6f9c0SGeorgi Djakov };
653c4f6f9c0SGeorgi Djakov static const char * const blsp_uart10_groups[] = {
654c4f6f9c0SGeorgi Djakov 	"gpio59", "gpio60", "gpio61", "gpio62"
655c4f6f9c0SGeorgi Djakov };
656c4f6f9c0SGeorgi Djakov static const char * const blsp_uart11_groups[] = {
657c4f6f9c0SGeorgi Djakov 	"gpio63", "gpio64", "gpio65", "gpio66"
658c4f6f9c0SGeorgi Djakov };
659c4f6f9c0SGeorgi Djakov static const char * const blsp_uart12_groups[] = {
660c4f6f9c0SGeorgi Djakov 	"gpio47", "gpio48", "gpio49", "gpio50"
661c4f6f9c0SGeorgi Djakov };
662c4f6f9c0SGeorgi Djakov static const char * const blsp_uim1_groups[] = {
663c4f6f9c0SGeorgi Djakov 	"gpio0", "gpio1"
664c4f6f9c0SGeorgi Djakov };
665c4f6f9c0SGeorgi Djakov static const char * const blsp_uim2_groups[] = {
666c4f6f9c0SGeorgi Djakov 	"gpio4", "gpio5"
667c4f6f9c0SGeorgi Djakov };
668c4f6f9c0SGeorgi Djakov static const char * const blsp_uim3_groups[] = {
669c4f6f9c0SGeorgi Djakov 	"gpio8", "gpio9"
670c4f6f9c0SGeorgi Djakov };
671c4f6f9c0SGeorgi Djakov static const char * const blsp_uim4_groups[] = {
672c4f6f9c0SGeorgi Djakov 	"gpio27", "gpio28"
673c4f6f9c0SGeorgi Djakov };
674c4f6f9c0SGeorgi Djakov static const char * const blsp_uim5_groups[] = {
675c4f6f9c0SGeorgi Djakov 	"gpio39", "gpio40"
676c4f6f9c0SGeorgi Djakov };
677c4f6f9c0SGeorgi Djakov static const char * const blsp_uim6_groups[] = {
678c4f6f9c0SGeorgi Djakov 	"gpio43", "gpio44"
679c4f6f9c0SGeorgi Djakov };
680c4f6f9c0SGeorgi Djakov static const char * const blsp_uim7_groups[] = {
681c4f6f9c0SGeorgi Djakov 	"gpio130", "gpio131"
682c4f6f9c0SGeorgi Djakov };
683c4f6f9c0SGeorgi Djakov static const char * const blsp_uim8_groups[] = {
684c4f6f9c0SGeorgi Djakov 	"gpio51", "gpio52"
685c4f6f9c0SGeorgi Djakov };
686c4f6f9c0SGeorgi Djakov static const char * const blsp_uim9_groups[] = {
687c4f6f9c0SGeorgi Djakov 	"gpio55", "gpio56"
688c4f6f9c0SGeorgi Djakov };
689c4f6f9c0SGeorgi Djakov static const char * const blsp_uim10_groups[] = {
690c4f6f9c0SGeorgi Djakov 	"gpio59", "gpio60"
691c4f6f9c0SGeorgi Djakov };
692c4f6f9c0SGeorgi Djakov static const char * const blsp_uim11_groups[] = {
693c4f6f9c0SGeorgi Djakov 	"gpio63", "gpio64"
694c4f6f9c0SGeorgi Djakov };
695c4f6f9c0SGeorgi Djakov static const char * const blsp_uim12_groups[] = {
696c4f6f9c0SGeorgi Djakov 	"gpio47", "gpio48"
697c4f6f9c0SGeorgi Djakov };
698c4f6f9c0SGeorgi Djakov static const char * const blsp_spi1_cs1_groups[] = {
699c4f6f9c0SGeorgi Djakov 	"gpio116"
700c4f6f9c0SGeorgi Djakov };
701c4f6f9c0SGeorgi Djakov static const char * const blsp_spi1_cs2_groups[] = {
702c4f6f9c0SGeorgi Djakov 	"gpio117"
703c4f6f9c0SGeorgi Djakov };
704c4f6f9c0SGeorgi Djakov static const char * const blsp_spi1_cs3_groups[] = {
705c4f6f9c0SGeorgi Djakov 	"gpio118"
706c4f6f9c0SGeorgi Djakov };
707c4f6f9c0SGeorgi Djakov static const char * const blsp_spi3_cs1_groups[] = {
708c4f6f9c0SGeorgi Djakov 	"gpio67"
709c4f6f9c0SGeorgi Djakov };
710c4f6f9c0SGeorgi Djakov static const char * const blsp_spi3_cs2_groups[] = {
711c4f6f9c0SGeorgi Djakov 	"gpio71"
712c4f6f9c0SGeorgi Djakov };
713c4f6f9c0SGeorgi Djakov static const char * const blsp_spi3_cs3_groups[] = {
714c4f6f9c0SGeorgi Djakov 	"gpio72"
715c4f6f9c0SGeorgi Djakov };
716c4f6f9c0SGeorgi Djakov static const char * const blsp_spi10_cs1_groups[] = {
717c4f6f9c0SGeorgi Djakov 	"gpio106"
718c4f6f9c0SGeorgi Djakov };
719c4f6f9c0SGeorgi Djakov static const char * const blsp_spi10_cs2_groups[] = {
720c4f6f9c0SGeorgi Djakov 	"gpio111"
721c4f6f9c0SGeorgi Djakov };
722c4f6f9c0SGeorgi Djakov static const char * const blsp_spi10_cs3_groups[] = {
723c4f6f9c0SGeorgi Djakov 	"gpio128"
724c4f6f9c0SGeorgi Djakov };
725c4f6f9c0SGeorgi Djakov static const char * const cam_mclk0_groups[] = {
726c4f6f9c0SGeorgi Djakov 	"gpio15"
727c4f6f9c0SGeorgi Djakov };
728c4f6f9c0SGeorgi Djakov static const char * const cam_mclk1_groups[] = {
729c4f6f9c0SGeorgi Djakov 	"gpio16"
730c4f6f9c0SGeorgi Djakov };
731c4f6f9c0SGeorgi Djakov static const char * const cam_mclk2_groups[] = {
732c4f6f9c0SGeorgi Djakov 	"gpio17"
733c4f6f9c0SGeorgi Djakov };
734c4f6f9c0SGeorgi Djakov static const char * const cam_mclk3_groups[] = {
735c4f6f9c0SGeorgi Djakov 	"gpio18"
736c4f6f9c0SGeorgi Djakov };
737c4f6f9c0SGeorgi Djakov static const char * const cci_async_groups[] = {
738c4f6f9c0SGeorgi Djakov 	"gpio26", "gpio119"
739c4f6f9c0SGeorgi Djakov };
740c4f6f9c0SGeorgi Djakov static const char * const cci_async_in0_groups[] = {
741c4f6f9c0SGeorgi Djakov 	"gpio120"
742c4f6f9c0SGeorgi Djakov };
743c4f6f9c0SGeorgi Djakov static const char * const cci_i2c0_groups[] = {
744c4f6f9c0SGeorgi Djakov 	"gpio19", "gpio20"
745c4f6f9c0SGeorgi Djakov };
746c4f6f9c0SGeorgi Djakov static const char * const cci_i2c1_groups[] = {
747c4f6f9c0SGeorgi Djakov 	"gpio21", "gpio22"
748c4f6f9c0SGeorgi Djakov };
749c4f6f9c0SGeorgi Djakov static const char * const cci_timer0_groups[] = {
750c4f6f9c0SGeorgi Djakov 	"gpio23"
751c4f6f9c0SGeorgi Djakov };
752c4f6f9c0SGeorgi Djakov static const char * const cci_timer1_groups[] = {
753c4f6f9c0SGeorgi Djakov 	"gpio24"
754c4f6f9c0SGeorgi Djakov };
755c4f6f9c0SGeorgi Djakov static const char * const cci_timer2_groups[] = {
756c4f6f9c0SGeorgi Djakov 	"gpio25"
757c4f6f9c0SGeorgi Djakov };
758c4f6f9c0SGeorgi Djakov static const char * const cci_timer3_groups[] = {
759c4f6f9c0SGeorgi Djakov 	"gpio26"
760c4f6f9c0SGeorgi Djakov };
761c4f6f9c0SGeorgi Djakov static const char * const cci_timer4_groups[] = {
762c4f6f9c0SGeorgi Djakov 	"gpio119"
763c4f6f9c0SGeorgi Djakov };
764c4f6f9c0SGeorgi Djakov static const char * const edp_hpd_groups[] = {
765c4f6f9c0SGeorgi Djakov 	"gpio103"
766c4f6f9c0SGeorgi Djakov };
767c4f6f9c0SGeorgi Djakov static const char * const gcc_gp1_groups[] = {
768c4f6f9c0SGeorgi Djakov 	"gpio37"
769c4f6f9c0SGeorgi Djakov };
770c4f6f9c0SGeorgi Djakov static const char * const gcc_gp2_groups[] = {
771c4f6f9c0SGeorgi Djakov 	"gpio38"
772c4f6f9c0SGeorgi Djakov };
773c4f6f9c0SGeorgi Djakov static const char * const gcc_gp3_groups[] = {
774c4f6f9c0SGeorgi Djakov 	"gpio86"
775c4f6f9c0SGeorgi Djakov };
776c4f6f9c0SGeorgi Djakov static const char * const gcc_obt_groups[] = {
777c4f6f9c0SGeorgi Djakov 	"gpio127"
778c4f6f9c0SGeorgi Djakov };
779c4f6f9c0SGeorgi Djakov static const char * const gcc_vtt_groups[] = {
780c4f6f9c0SGeorgi Djakov 	"gpio126"
781c4f6f9c0SGeorgi Djakov };
782c4f6f9c0SGeorgi Djakov static const char * const gp_mn_groups[] = {
783c4f6f9c0SGeorgi Djakov 	"gpio29"
784c4f6f9c0SGeorgi Djakov };
785c4f6f9c0SGeorgi Djakov static const char * const gp_pdm0_groups[] = {
786c4f6f9c0SGeorgi Djakov 	"gpio48", "gpio83"
787c4f6f9c0SGeorgi Djakov };
788c4f6f9c0SGeorgi Djakov static const char * const gp_pdm1_groups[] = {
789c4f6f9c0SGeorgi Djakov 	"gpio84", "gpio101"
790c4f6f9c0SGeorgi Djakov };
791c4f6f9c0SGeorgi Djakov static const char * const gp_pdm2_groups[] = {
792c4f6f9c0SGeorgi Djakov 	"gpio85", "gpio110"
793c4f6f9c0SGeorgi Djakov };
794c4f6f9c0SGeorgi Djakov static const char * const gp0_clk_groups[] = {
795c4f6f9c0SGeorgi Djakov 	"gpio25"
796c4f6f9c0SGeorgi Djakov };
797c4f6f9c0SGeorgi Djakov static const char * const gp1_clk_groups[] = {
798c4f6f9c0SGeorgi Djakov 	"gpio26"
799c4f6f9c0SGeorgi Djakov };
800c4f6f9c0SGeorgi Djakov static const char * const hdmi_cec_groups[] = {
801c4f6f9c0SGeorgi Djakov 	"gpio31"
802c4f6f9c0SGeorgi Djakov };
803c4f6f9c0SGeorgi Djakov static const char * const hdmi_ddc_groups[] = {
804c4f6f9c0SGeorgi Djakov 	"gpio32", "gpio33"
805c4f6f9c0SGeorgi Djakov };
806c4f6f9c0SGeorgi Djakov static const char * const hdmi_dtest_groups[] = {
807c4f6f9c0SGeorgi Djakov 	"gpio123"
808c4f6f9c0SGeorgi Djakov };
809c4f6f9c0SGeorgi Djakov static const char * const hdmi_hpd_groups[] = {
810c4f6f9c0SGeorgi Djakov 	"gpio34"
811c4f6f9c0SGeorgi Djakov };
812c4f6f9c0SGeorgi Djakov static const char * const hdmi_rcv_groups[] = {
813c4f6f9c0SGeorgi Djakov 	"gpio125"
814c4f6f9c0SGeorgi Djakov };
815c4f6f9c0SGeorgi Djakov static const char * const hsic_groups[] = {
816c4f6f9c0SGeorgi Djakov 	"gpio134", "gpio135"
817c4f6f9c0SGeorgi Djakov };
818c4f6f9c0SGeorgi Djakov static const char * const ldo_en_groups[] = {
819c4f6f9c0SGeorgi Djakov 	"gpio124"
820c4f6f9c0SGeorgi Djakov };
821c4f6f9c0SGeorgi Djakov static const char * const ldo_update_groups[] = {
822c4f6f9c0SGeorgi Djakov 	"gpio125"
823c4f6f9c0SGeorgi Djakov };
824c4f6f9c0SGeorgi Djakov static const char * const mdp_vsync_groups[] = {
825c4f6f9c0SGeorgi Djakov 	"gpio12", "gpio13", "gpio14"
826c4f6f9c0SGeorgi Djakov };
827c4f6f9c0SGeorgi Djakov static const char * const pci_e0_groups[] = {
828c4f6f9c0SGeorgi Djakov 	"gpio68", "gpio70"
829c4f6f9c0SGeorgi Djakov };
830c4f6f9c0SGeorgi Djakov static const char * const pci_e0_n_groups[] = {
831c4f6f9c0SGeorgi Djakov 	"gpio68", "gpio70"
832c4f6f9c0SGeorgi Djakov };
833c4f6f9c0SGeorgi Djakov static const char * const pci_e0_rst_groups[] = {
834c4f6f9c0SGeorgi Djakov 	"gpio70"
835c4f6f9c0SGeorgi Djakov };
836c4f6f9c0SGeorgi Djakov static const char * const pci_e1_groups[] = {
837c4f6f9c0SGeorgi Djakov 	"gpio140"
838c4f6f9c0SGeorgi Djakov };
839c4f6f9c0SGeorgi Djakov static const char * const pci_e1_rst_groups[] = {
840c4f6f9c0SGeorgi Djakov 	"gpio140"
841c4f6f9c0SGeorgi Djakov };
842c4f6f9c0SGeorgi Djakov static const char * const pci_e1_rst_n_groups[] = {
843c4f6f9c0SGeorgi Djakov 	"gpio140"
844c4f6f9c0SGeorgi Djakov };
845c4f6f9c0SGeorgi Djakov static const char * const pci_e1_clkreq_n_groups[] = {
846c4f6f9c0SGeorgi Djakov 	"gpio141"
847c4f6f9c0SGeorgi Djakov };
848c4f6f9c0SGeorgi Djakov static const char * const pri_mi2s_groups[] = {
849c4f6f9c0SGeorgi Djakov 	"gpio76", "gpio77", "gpio78", "gpio79", "gpio80"
850c4f6f9c0SGeorgi Djakov };
851c4f6f9c0SGeorgi Djakov static const char * const qua_mi2s_groups[] = {
852c4f6f9c0SGeorgi Djakov 	"gpio91", "gpio92", "gpio93", "gpio94", "gpio95", "gpio96", "gpio97"
853c4f6f9c0SGeorgi Djakov };
854c4f6f9c0SGeorgi Djakov static const char * const sata_act_groups[] = {
855c4f6f9c0SGeorgi Djakov 	"gpio129"
856c4f6f9c0SGeorgi Djakov };
857c4f6f9c0SGeorgi Djakov static const char * const sata_devsleep_groups[] = {
858c4f6f9c0SGeorgi Djakov 	"gpio119"
859c4f6f9c0SGeorgi Djakov };
860c4f6f9c0SGeorgi Djakov static const char * const sata_devsleep_n_groups[] = {
861c4f6f9c0SGeorgi Djakov 	"gpio119"
862c4f6f9c0SGeorgi Djakov };
863c4f6f9c0SGeorgi Djakov static const char * const sd_write_groups[] = {
864c4f6f9c0SGeorgi Djakov 	"gpio75"
865c4f6f9c0SGeorgi Djakov };
866c4f6f9c0SGeorgi Djakov static const char * const sdc_emmc_mode_groups[] = {
867c4f6f9c0SGeorgi Djakov 	"gpio146"
868c4f6f9c0SGeorgi Djakov };
869c4f6f9c0SGeorgi Djakov static const char * const sdc3_groups[] = {
870c4f6f9c0SGeorgi Djakov 	"gpio67", "gpio68", "gpio69", "gpio70", "gpio71", "gpio72"
871c4f6f9c0SGeorgi Djakov };
872c4f6f9c0SGeorgi Djakov static const char * const sdc4_groups[] = {
873c4f6f9c0SGeorgi Djakov 	"gpio82", "gpio83", "gpio84", "gpio85", "gpio86",
874c4f6f9c0SGeorgi Djakov 	"gpio91", "gpio95", "gpio96", "gpio97", "gpio101"
875c4f6f9c0SGeorgi Djakov };
876c4f6f9c0SGeorgi Djakov static const char * const sec_mi2s_groups[] = {
877c4f6f9c0SGeorgi Djakov 	"gpio81", "gpio82", "gpio83", "gpio84", "gpio85"
878c4f6f9c0SGeorgi Djakov };
879c4f6f9c0SGeorgi Djakov static const char * const slimbus_groups[] = {
880c4f6f9c0SGeorgi Djakov 	"gpio98", "gpio99"
881c4f6f9c0SGeorgi Djakov };
882c4f6f9c0SGeorgi Djakov static const char * const spdif_tx_groups[] = {
883c4f6f9c0SGeorgi Djakov 	"gpio124", "gpio136", "gpio142"
884c4f6f9c0SGeorgi Djakov };
885c4f6f9c0SGeorgi Djakov static const char * const spkr_i2s_groups[] = {
886c4f6f9c0SGeorgi Djakov 	"gpio98", "gpio99", "gpio100"
887c4f6f9c0SGeorgi Djakov };
888c4f6f9c0SGeorgi Djakov static const char * const spkr_i2s_ws_groups[] = {
889c4f6f9c0SGeorgi Djakov 	"gpio104"
890c4f6f9c0SGeorgi Djakov };
891c4f6f9c0SGeorgi Djakov static const char * const spss_geni_groups[] = {
892c4f6f9c0SGeorgi Djakov 	"gpio8", "gpio9"
893c4f6f9c0SGeorgi Djakov };
894c4f6f9c0SGeorgi Djakov static const char * const ter_mi2s_groups[] = {
895c4f6f9c0SGeorgi Djakov 	"gpio86", "gpio87", "gpio88", "gpio89", "gpio90"
896c4f6f9c0SGeorgi Djakov };
897c4f6f9c0SGeorgi Djakov static const char * const tsif1_groups[] = {
898c4f6f9c0SGeorgi Djakov 	"gpio82", "gpio83", "gpio84", "gpio85", "gpio86"
899c4f6f9c0SGeorgi Djakov };
900c4f6f9c0SGeorgi Djakov static const char * const tsif2_groups[] = {
901c4f6f9c0SGeorgi Djakov 	"gpio91", "gpio95", "gpio96", "gpio97", "gpio101"
902c4f6f9c0SGeorgi Djakov };
903c4f6f9c0SGeorgi Djakov static const char * const uim_groups[] = {
904c4f6f9c0SGeorgi Djakov 	"gpio130", "gpio131", "gpio132", "gpio133"
905c4f6f9c0SGeorgi Djakov };
906c4f6f9c0SGeorgi Djakov static const char * const uim_batt_alarm_groups[] = {
907c4f6f9c0SGeorgi Djakov 	"gpio102"
908c4f6f9c0SGeorgi Djakov };
909c4f6f9c0SGeorgi Djakov static const struct msm_function apq8084_functions[] = {
910c4f6f9c0SGeorgi Djakov 	FUNCTION(adsp_ext),
911c4f6f9c0SGeorgi Djakov 	FUNCTION(audio_ref),
912c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_i2c1),
913c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_i2c2),
914c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_i2c3),
915c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_i2c4),
916c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_i2c5),
917c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_i2c6),
918c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_i2c7),
919c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_i2c8),
920c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_i2c9),
921c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_i2c10),
922c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_i2c11),
923c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_i2c12),
924c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_spi1),
925c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_spi1_cs1),
926c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_spi1_cs2),
927c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_spi1_cs3),
928c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_spi2),
929c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_spi3),
930c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_spi3_cs1),
931c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_spi3_cs2),
932c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_spi3_cs3),
933c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_spi4),
934c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_spi5),
935c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_spi6),
936c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_spi7),
937c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_spi8),
938c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_spi9),
939c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_spi10),
940c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_spi10_cs1),
941c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_spi10_cs2),
942c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_spi10_cs3),
943c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_spi11),
944c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_spi12),
945c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_uart1),
946c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_uart2),
947c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_uart3),
948c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_uart4),
949c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_uart5),
950c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_uart6),
951c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_uart7),
952c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_uart8),
953c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_uart9),
954c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_uart10),
955c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_uart11),
956c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_uart12),
957c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_uim1),
958c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_uim2),
959c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_uim3),
960c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_uim4),
961c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_uim5),
962c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_uim6),
963c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_uim7),
964c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_uim8),
965c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_uim9),
966c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_uim10),
967c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_uim11),
968c4f6f9c0SGeorgi Djakov 	FUNCTION(blsp_uim12),
969c4f6f9c0SGeorgi Djakov 	FUNCTION(cam_mclk0),
970c4f6f9c0SGeorgi Djakov 	FUNCTION(cam_mclk1),
971c4f6f9c0SGeorgi Djakov 	FUNCTION(cam_mclk2),
972c4f6f9c0SGeorgi Djakov 	FUNCTION(cam_mclk3),
973c4f6f9c0SGeorgi Djakov 	FUNCTION(cci_async),
974c4f6f9c0SGeorgi Djakov 	FUNCTION(cci_async_in0),
975c4f6f9c0SGeorgi Djakov 	FUNCTION(cci_i2c0),
976c4f6f9c0SGeorgi Djakov 	FUNCTION(cci_i2c1),
977c4f6f9c0SGeorgi Djakov 	FUNCTION(cci_timer0),
978c4f6f9c0SGeorgi Djakov 	FUNCTION(cci_timer1),
979c4f6f9c0SGeorgi Djakov 	FUNCTION(cci_timer2),
980c4f6f9c0SGeorgi Djakov 	FUNCTION(cci_timer3),
981c4f6f9c0SGeorgi Djakov 	FUNCTION(cci_timer4),
982c4f6f9c0SGeorgi Djakov 	FUNCTION(edp_hpd),
983c4f6f9c0SGeorgi Djakov 	FUNCTION(gcc_gp1),
984c4f6f9c0SGeorgi Djakov 	FUNCTION(gcc_gp2),
985c4f6f9c0SGeorgi Djakov 	FUNCTION(gcc_gp3),
986c4f6f9c0SGeorgi Djakov 	FUNCTION(gcc_obt),
987c4f6f9c0SGeorgi Djakov 	FUNCTION(gcc_vtt),
988c4f6f9c0SGeorgi Djakov 	FUNCTION(gp_mn),
989c4f6f9c0SGeorgi Djakov 	FUNCTION(gp_pdm0),
990c4f6f9c0SGeorgi Djakov 	FUNCTION(gp_pdm1),
991c4f6f9c0SGeorgi Djakov 	FUNCTION(gp_pdm2),
992c4f6f9c0SGeorgi Djakov 	FUNCTION(gp0_clk),
993c4f6f9c0SGeorgi Djakov 	FUNCTION(gp1_clk),
994c4f6f9c0SGeorgi Djakov 	FUNCTION(gpio),
995c4f6f9c0SGeorgi Djakov 	FUNCTION(hdmi_cec),
996c4f6f9c0SGeorgi Djakov 	FUNCTION(hdmi_ddc),
997c4f6f9c0SGeorgi Djakov 	FUNCTION(hdmi_dtest),
998c4f6f9c0SGeorgi Djakov 	FUNCTION(hdmi_hpd),
999c4f6f9c0SGeorgi Djakov 	FUNCTION(hdmi_rcv),
1000c4f6f9c0SGeorgi Djakov 	FUNCTION(hsic),
1001c4f6f9c0SGeorgi Djakov 	FUNCTION(ldo_en),
1002c4f6f9c0SGeorgi Djakov 	FUNCTION(ldo_update),
1003c4f6f9c0SGeorgi Djakov 	FUNCTION(mdp_vsync),
1004c4f6f9c0SGeorgi Djakov 	FUNCTION(pci_e0),
1005c4f6f9c0SGeorgi Djakov 	FUNCTION(pci_e0_n),
1006c4f6f9c0SGeorgi Djakov 	FUNCTION(pci_e0_rst),
1007c4f6f9c0SGeorgi Djakov 	FUNCTION(pci_e1),
1008c4f6f9c0SGeorgi Djakov 	FUNCTION(pci_e1_rst),
1009c4f6f9c0SGeorgi Djakov 	FUNCTION(pci_e1_rst_n),
1010c4f6f9c0SGeorgi Djakov 	FUNCTION(pci_e1_clkreq_n),
1011c4f6f9c0SGeorgi Djakov 	FUNCTION(pri_mi2s),
1012c4f6f9c0SGeorgi Djakov 	FUNCTION(qua_mi2s),
1013c4f6f9c0SGeorgi Djakov 	FUNCTION(sata_act),
1014c4f6f9c0SGeorgi Djakov 	FUNCTION(sata_devsleep),
1015c4f6f9c0SGeorgi Djakov 	FUNCTION(sata_devsleep_n),
1016c4f6f9c0SGeorgi Djakov 	FUNCTION(sd_write),
1017c4f6f9c0SGeorgi Djakov 	FUNCTION(sdc_emmc_mode),
1018c4f6f9c0SGeorgi Djakov 	FUNCTION(sdc3),
1019c4f6f9c0SGeorgi Djakov 	FUNCTION(sdc4),
1020c4f6f9c0SGeorgi Djakov 	FUNCTION(sec_mi2s),
1021c4f6f9c0SGeorgi Djakov 	FUNCTION(slimbus),
1022c4f6f9c0SGeorgi Djakov 	FUNCTION(spdif_tx),
1023c4f6f9c0SGeorgi Djakov 	FUNCTION(spkr_i2s),
1024c4f6f9c0SGeorgi Djakov 	FUNCTION(spkr_i2s_ws),
1025c4f6f9c0SGeorgi Djakov 	FUNCTION(spss_geni),
1026c4f6f9c0SGeorgi Djakov 	FUNCTION(ter_mi2s),
1027c4f6f9c0SGeorgi Djakov 	FUNCTION(tsif1),
1028c4f6f9c0SGeorgi Djakov 	FUNCTION(tsif2),
1029c4f6f9c0SGeorgi Djakov 	FUNCTION(uim),
1030c4f6f9c0SGeorgi Djakov 	FUNCTION(uim_batt_alarm),
1031c4f6f9c0SGeorgi Djakov };
1032c4f6f9c0SGeorgi Djakov 
1033c4f6f9c0SGeorgi Djakov static const struct msm_pingroup apq8084_groups[] = {
1034c4f6f9c0SGeorgi Djakov 	PINGROUP(0,   blsp_spi1, blsp_uart1, blsp_uim1, NA, NA, NA, NA),
1035c4f6f9c0SGeorgi Djakov 	PINGROUP(1,   blsp_spi1, blsp_uart1, blsp_uim1, NA, NA, NA, NA),
1036c4f6f9c0SGeorgi Djakov 	PINGROUP(2,   blsp_spi1, blsp_uart1, blsp_i2c1, NA, NA, NA, NA),
1037c4f6f9c0SGeorgi Djakov 	PINGROUP(3,   blsp_spi1, blsp_uart1, blsp_i2c1, NA, NA, NA, NA),
1038c4f6f9c0SGeorgi Djakov 	PINGROUP(4,   blsp_spi2, blsp_uart2, blsp_uim2, NA, NA, NA, NA),
1039c4f6f9c0SGeorgi Djakov 	PINGROUP(5,   blsp_spi2, blsp_uart2, blsp_uim2, NA, NA, NA, NA),
1040c4f6f9c0SGeorgi Djakov 	PINGROUP(6,   blsp_spi2, blsp_uart2, blsp_i2c2, NA, NA, NA, NA),
1041c4f6f9c0SGeorgi Djakov 	PINGROUP(7,   blsp_spi2, blsp_uart2, blsp_i2c2, NA, NA, NA, NA),
1042c4f6f9c0SGeorgi Djakov 	PINGROUP(8,   blsp_spi3, blsp_uart3, blsp_uim3, spss_geni, NA, NA, NA),
1043c4f6f9c0SGeorgi Djakov 	PINGROUP(9,   blsp_spi3, blsp_uim3, blsp_uart3, spss_geni, NA, NA, NA),
1044c4f6f9c0SGeorgi Djakov 	PINGROUP(10,  blsp_spi3, blsp_uart3, blsp_i2c3, NA, NA, NA, NA),
1045c4f6f9c0SGeorgi Djakov 	PINGROUP(11,  blsp_spi3, blsp_uart3, blsp_i2c3, NA, NA, NA, NA),
1046c4f6f9c0SGeorgi Djakov 	PINGROUP(12,  mdp_vsync, NA, NA, NA, NA, NA, NA),
1047c4f6f9c0SGeorgi Djakov 	PINGROUP(13,  mdp_vsync, NA, NA, NA, NA, NA, NA),
1048c4f6f9c0SGeorgi Djakov 	PINGROUP(14,  mdp_vsync, NA, NA, NA, NA, NA, NA),
1049c4f6f9c0SGeorgi Djakov 	PINGROUP(15,  cam_mclk0, NA, NA, NA, NA, NA, NA),
1050c4f6f9c0SGeorgi Djakov 	PINGROUP(16,  cam_mclk1, NA, NA, NA, NA, NA, NA),
1051c4f6f9c0SGeorgi Djakov 	PINGROUP(17,  cam_mclk2, NA, NA, NA, NA, NA, NA),
1052c4f6f9c0SGeorgi Djakov 	PINGROUP(18,  cam_mclk3, NA, NA, NA, NA, NA, NA),
1053c4f6f9c0SGeorgi Djakov 	PINGROUP(19,  cci_i2c0, NA, NA, NA, NA, NA, NA),
1054c4f6f9c0SGeorgi Djakov 	PINGROUP(20,  cci_i2c0, NA, NA, NA, NA, NA, NA),
1055c4f6f9c0SGeorgi Djakov 	PINGROUP(21,  cci_i2c1, NA, NA, NA, NA, NA, NA),
1056c4f6f9c0SGeorgi Djakov 	PINGROUP(22,  cci_i2c1, NA, NA, NA, NA, NA, NA),
1057c4f6f9c0SGeorgi Djakov 	PINGROUP(23,  cci_timer0, NA, NA, NA, NA, NA, NA),
1058c4f6f9c0SGeorgi Djakov 	PINGROUP(24,  cci_timer1, NA, NA, NA, NA, NA, NA),
1059c4f6f9c0SGeorgi Djakov 	PINGROUP(25,  cci_timer2, gp0_clk, NA, NA, NA, NA, NA),
1060c4f6f9c0SGeorgi Djakov 	PINGROUP(26,  cci_timer3, cci_async, gp1_clk, NA, NA, NA, NA),
1061c4f6f9c0SGeorgi Djakov 	PINGROUP(27,  blsp_spi4, blsp_uart4, blsp_uim4, NA, NA, NA, NA),
1062c4f6f9c0SGeorgi Djakov 	PINGROUP(28,  blsp_spi4, blsp_uart4, blsp_uim4, NA, NA, NA, NA),
1063c4f6f9c0SGeorgi Djakov 	PINGROUP(29,  blsp_spi4, blsp_uart4, blsp_i2c4, gp_mn, NA, NA, NA),
1064c4f6f9c0SGeorgi Djakov 	PINGROUP(30,  blsp_spi4, blsp_uart4, blsp_i2c4, NA, NA, NA, NA),
1065c4f6f9c0SGeorgi Djakov 	PINGROUP(31,  hdmi_cec, NA, NA, NA, NA, NA, NA),
1066c4f6f9c0SGeorgi Djakov 	PINGROUP(32,  hdmi_ddc, NA, NA, NA, NA, NA, NA),
1067c4f6f9c0SGeorgi Djakov 	PINGROUP(33,  hdmi_ddc, NA, NA, NA, NA, NA, NA),
1068c4f6f9c0SGeorgi Djakov 	PINGROUP(34,  hdmi_hpd, NA, adsp_ext, NA, NA, NA, NA),
1069c4f6f9c0SGeorgi Djakov 	PINGROUP(35,  NA, NA, NA, NA, NA, NA, NA),
1070c4f6f9c0SGeorgi Djakov 	PINGROUP(36,  NA, NA, NA, NA, NA, NA, NA),
1071c4f6f9c0SGeorgi Djakov 	PINGROUP(37,  gcc_gp1, NA, NA, NA, NA, NA, NA),
1072c4f6f9c0SGeorgi Djakov 	PINGROUP(38,  gcc_gp2, NA, NA, NA, NA, NA, NA),
1073c4f6f9c0SGeorgi Djakov 	PINGROUP(39,  blsp_spi5, blsp_uart5, blsp_uim5, NA, NA, NA, NA),
1074c4f6f9c0SGeorgi Djakov 	PINGROUP(40,  blsp_spi5, blsp_uart5, blsp_uim5, NA, NA, NA, NA),
1075c4f6f9c0SGeorgi Djakov 	PINGROUP(41,  blsp_spi5, blsp_uart5, blsp_i2c5, NA, NA, NA, NA),
1076c4f6f9c0SGeorgi Djakov 	PINGROUP(42,  blsp_spi5, blsp_uart5, blsp_i2c5, NA, NA, NA, NA),
1077c4f6f9c0SGeorgi Djakov 	PINGROUP(43,  blsp_spi6, blsp_uart6, blsp_uim6, NA, NA, NA, NA),
1078c4f6f9c0SGeorgi Djakov 	PINGROUP(44,  blsp_spi6, blsp_uart6, blsp_uim6, NA, NA, NA, NA),
1079c4f6f9c0SGeorgi Djakov 	PINGROUP(45,  blsp_spi6, blsp_uart6, blsp_i2c6, NA, NA, NA, NA),
1080c4f6f9c0SGeorgi Djakov 	PINGROUP(46,  blsp_spi6, blsp_uart6, blsp_i2c6, NA, NA, NA, NA),
1081c4f6f9c0SGeorgi Djakov 	PINGROUP(47,  blsp_spi12, blsp_uart12, blsp_uim12, NA, NA, NA, NA),
1082c4f6f9c0SGeorgi Djakov 	PINGROUP(48,  blsp_spi12, blsp_uart12, blsp_uim12, gp_pdm0, NA, NA, NA),
1083c4f6f9c0SGeorgi Djakov 	PINGROUP(49,  blsp_spi12, blsp_uart12, blsp_i2c12, NA, NA, NA, NA),
1084c4f6f9c0SGeorgi Djakov 	PINGROUP(50,  blsp_spi12, blsp_uart12, blsp_i2c12, NA, NA, NA, NA),
1085c4f6f9c0SGeorgi Djakov 	PINGROUP(51,  blsp_spi8, blsp_uart8, blsp_uim8, NA, NA, NA, NA),
1086c4f6f9c0SGeorgi Djakov 	PINGROUP(52,  blsp_spi8, blsp_uart8, blsp_uim8, NA, NA, NA, NA),
1087c4f6f9c0SGeorgi Djakov 	PINGROUP(53,  blsp_spi8, blsp_uart8, blsp_i2c8, NA, NA, NA, NA),
1088c4f6f9c0SGeorgi Djakov 	PINGROUP(54,  blsp_spi8, blsp_uart8, blsp_i2c8, NA, NA, NA, NA),
1089c4f6f9c0SGeorgi Djakov 	PINGROUP(55,  blsp_spi9, blsp_uart9, blsp_uim9, NA, NA, NA, NA),
1090c4f6f9c0SGeorgi Djakov 	PINGROUP(56,  blsp_spi9, blsp_uart9, blsp_uim9, NA, NA, NA, NA),
1091c4f6f9c0SGeorgi Djakov 	PINGROUP(57,  blsp_spi9, blsp_uart9, blsp_i2c9, NA, NA, NA, NA),
1092c4f6f9c0SGeorgi Djakov 	PINGROUP(58,  blsp_spi9, blsp_uart9, blsp_i2c9, NA, NA, NA, NA),
1093c4f6f9c0SGeorgi Djakov 	PINGROUP(59,  blsp_spi10, blsp_uart10, blsp_uim10, NA, NA, NA, NA),
1094c4f6f9c0SGeorgi Djakov 	PINGROUP(60,  blsp_spi10, blsp_uart10, blsp_uim10, NA, NA, NA, NA),
1095c4f6f9c0SGeorgi Djakov 	PINGROUP(61,  blsp_spi10, blsp_uart10, blsp_i2c10, NA, NA, NA, NA),
1096c4f6f9c0SGeorgi Djakov 	PINGROUP(62,  blsp_spi10, blsp_uart10, blsp_i2c10, NA, NA, NA, NA),
1097c4f6f9c0SGeorgi Djakov 	PINGROUP(63,  blsp_spi11, blsp_uart11, blsp_uim11, NA, NA, NA, NA),
1098c4f6f9c0SGeorgi Djakov 	PINGROUP(64,  blsp_spi11, blsp_uart11, blsp_uim11, NA, NA, NA, NA),
1099c4f6f9c0SGeorgi Djakov 	PINGROUP(65,  blsp_spi11, blsp_uart11, blsp_i2c11, NA, NA, NA, NA),
1100c4f6f9c0SGeorgi Djakov 	PINGROUP(66,  blsp_spi11, blsp_uart11, blsp_i2c11, NA, NA, NA, NA),
1101c4f6f9c0SGeorgi Djakov 	PINGROUP(67,  sdc3, blsp_spi3_cs1, NA, NA, NA, NA, NA),
1102c4f6f9c0SGeorgi Djakov 	PINGROUP(68,  sdc3, pci_e0, NA, NA, NA, NA, NA),
1103c4f6f9c0SGeorgi Djakov 	PINGROUP(69,  sdc3, NA, NA, NA, NA, NA, NA),
1104c4f6f9c0SGeorgi Djakov 	PINGROUP(70,  sdc3, pci_e0_n, pci_e0, NA, NA, NA, NA),
1105c4f6f9c0SGeorgi Djakov 	PINGROUP(71,  sdc3, blsp_spi3_cs2, NA, NA, NA, NA, NA),
1106c4f6f9c0SGeorgi Djakov 	PINGROUP(72,  sdc3, blsp_spi3_cs3, NA, NA, NA, NA, NA),
1107c4f6f9c0SGeorgi Djakov 	PINGROUP(73,  NA, NA, NA, NA, NA, NA, NA),
1108c4f6f9c0SGeorgi Djakov 	PINGROUP(74,  NA, NA, NA, NA, NA, NA, NA),
1109c4f6f9c0SGeorgi Djakov 	PINGROUP(75,  sd_write, NA, NA, NA, NA, NA, NA),
1110c4f6f9c0SGeorgi Djakov 	PINGROUP(76,  pri_mi2s, NA, NA, NA, NA, NA, NA),
1111c4f6f9c0SGeorgi Djakov 	PINGROUP(77,  pri_mi2s, NA, NA, NA, NA, NA, NA),
1112c4f6f9c0SGeorgi Djakov 	PINGROUP(78,  pri_mi2s, NA, NA, NA, NA, NA, NA),
1113c4f6f9c0SGeorgi Djakov 	PINGROUP(79,  pri_mi2s, NA, NA, NA, NA, NA, NA),
1114c4f6f9c0SGeorgi Djakov 	PINGROUP(80,  pri_mi2s, NA, NA, NA, NA, NA, NA),
1115c4f6f9c0SGeorgi Djakov 	PINGROUP(81,  sec_mi2s, NA, NA, NA, NA, NA, NA),
1116c4f6f9c0SGeorgi Djakov 	PINGROUP(82,  sec_mi2s, sdc4, tsif1, NA, NA, NA, NA),
1117c4f6f9c0SGeorgi Djakov 	PINGROUP(83,  sec_mi2s, sdc4, tsif1, NA, NA, NA, gp_pdm0),
1118c4f6f9c0SGeorgi Djakov 	PINGROUP(84,  sec_mi2s, sdc4, tsif1, NA, NA, NA, gp_pdm1),
1119c4f6f9c0SGeorgi Djakov 	PINGROUP(85,  sec_mi2s, sdc4, tsif1, NA, gp_pdm2, NA, NA),
1120c4f6f9c0SGeorgi Djakov 	PINGROUP(86,  ter_mi2s, sdc4, tsif1, NA, NA, NA, gcc_gp3),
1121c4f6f9c0SGeorgi Djakov 	PINGROUP(87,  ter_mi2s, NA, NA, NA, NA, NA, NA),
1122c4f6f9c0SGeorgi Djakov 	PINGROUP(88,  ter_mi2s, NA, NA, NA, NA, NA, NA),
1123c4f6f9c0SGeorgi Djakov 	PINGROUP(89,  ter_mi2s, NA, NA, NA, NA, NA, NA),
1124c4f6f9c0SGeorgi Djakov 	PINGROUP(90,  ter_mi2s, NA, NA, NA, NA, NA, NA),
1125c4f6f9c0SGeorgi Djakov 	PINGROUP(91,  qua_mi2s, sdc4, tsif2, NA, NA, NA, NA),
1126c4f6f9c0SGeorgi Djakov 	PINGROUP(92,  qua_mi2s, NA, NA, NA, NA, NA, NA),
1127c4f6f9c0SGeorgi Djakov 	PINGROUP(93,  qua_mi2s, NA, NA, NA, NA, NA, NA),
1128c4f6f9c0SGeorgi Djakov 	PINGROUP(94,  qua_mi2s, NA, NA, NA, NA, NA, NA),
1129c4f6f9c0SGeorgi Djakov 	PINGROUP(95,  qua_mi2s, sdc4, tsif2, NA, NA, NA, gcc_gp1),
1130c4f6f9c0SGeorgi Djakov 	PINGROUP(96,  qua_mi2s, sdc4, tsif2, NA, NA, NA, gcc_gp2),
1131c4f6f9c0SGeorgi Djakov 	PINGROUP(97,  qua_mi2s, sdc4, tsif2, NA, gcc_gp3, NA, NA),
1132c4f6f9c0SGeorgi Djakov 	PINGROUP(98,  slimbus, spkr_i2s, NA, NA, NA, NA, NA),
1133c4f6f9c0SGeorgi Djakov 	PINGROUP(99,  slimbus, spkr_i2s, NA, NA, NA, NA, NA),
1134c4f6f9c0SGeorgi Djakov 	PINGROUP(100, audio_ref, spkr_i2s, NA, NA, NA, NA, NA),
1135c4f6f9c0SGeorgi Djakov 	PINGROUP(101, sdc4, tsif2, gp_pdm1, NA, NA, NA, NA),
1136c4f6f9c0SGeorgi Djakov 	PINGROUP(102, uim_batt_alarm, NA, NA, NA, NA, NA, NA),
1137c4f6f9c0SGeorgi Djakov 	PINGROUP(103, edp_hpd, NA, NA, NA, NA, NA, NA),
1138c4f6f9c0SGeorgi Djakov 	PINGROUP(104, spkr_i2s, NA, NA, NA, NA, NA, NA),
1139c4f6f9c0SGeorgi Djakov 	PINGROUP(105, NA, NA, NA, NA, NA, NA, NA),
1140c4f6f9c0SGeorgi Djakov 	PINGROUP(106, blsp_spi10_cs1, NA, NA, NA, NA, NA, NA),
1141c4f6f9c0SGeorgi Djakov 	PINGROUP(107, NA, NA, NA, NA, NA, NA, NA),
1142c4f6f9c0SGeorgi Djakov 	PINGROUP(108, NA, NA, NA, NA, NA, NA, NA),
1143c4f6f9c0SGeorgi Djakov 	PINGROUP(109, NA, NA, NA, NA, NA, NA, NA),
1144c4f6f9c0SGeorgi Djakov 	PINGROUP(110, gp_pdm2, NA, NA, NA, NA, NA, NA),
1145c4f6f9c0SGeorgi Djakov 	PINGROUP(111, blsp_spi10_cs2, NA, NA, NA, NA, NA, NA),
1146c4f6f9c0SGeorgi Djakov 	PINGROUP(112, NA, NA, NA, NA, NA, NA, NA),
1147c4f6f9c0SGeorgi Djakov 	PINGROUP(113, NA, NA, NA, NA, NA, NA, NA),
1148c4f6f9c0SGeorgi Djakov 	PINGROUP(114, NA, NA, NA, NA, NA, NA, NA),
1149c4f6f9c0SGeorgi Djakov 	PINGROUP(115, NA, NA, NA, NA, NA, NA, NA),
1150c4f6f9c0SGeorgi Djakov 	PINGROUP(116, blsp_spi1_cs1, NA, NA, NA, NA, NA, NA),
1151c4f6f9c0SGeorgi Djakov 	PINGROUP(117, blsp_spi1_cs2, NA, NA, NA, NA, NA, NA),
1152c4f6f9c0SGeorgi Djakov 	PINGROUP(118, blsp_spi1_cs3, NA, NA, NA, NA, NA, NA),
1153c4f6f9c0SGeorgi Djakov 	PINGROUP(119, cci_timer4, cci_async, sata_devsleep, sata_devsleep_n, NA, NA, NA),
1154c4f6f9c0SGeorgi Djakov 	PINGROUP(120, cci_async, NA, NA, NA, NA, NA, NA),
1155c4f6f9c0SGeorgi Djakov 	PINGROUP(121, NA, NA, NA, NA, NA, NA, NA),
1156c4f6f9c0SGeorgi Djakov 	PINGROUP(122, NA, NA, NA, NA, NA, NA, NA),
1157c4f6f9c0SGeorgi Djakov 	PINGROUP(123, hdmi_dtest, NA, NA, NA, NA, NA, NA),
1158c4f6f9c0SGeorgi Djakov 	PINGROUP(124, spdif_tx, ldo_en, NA, NA, NA, NA, NA),
1159c4f6f9c0SGeorgi Djakov 	PINGROUP(125, ldo_update, hdmi_rcv, NA, NA, NA, NA, NA),
1160c4f6f9c0SGeorgi Djakov 	PINGROUP(126, gcc_vtt, NA, NA, NA, NA, NA, NA),
1161c4f6f9c0SGeorgi Djakov 	PINGROUP(127, gcc_obt, NA, NA, NA, NA, NA, NA),
1162c4f6f9c0SGeorgi Djakov 	PINGROUP(128, blsp_spi10_cs3, NA, NA, NA, NA, NA, NA),
1163c4f6f9c0SGeorgi Djakov 	PINGROUP(129, sata_act, NA, NA, NA, NA, NA, NA),
1164c4f6f9c0SGeorgi Djakov 	PINGROUP(130, uim, blsp_spi7, blsp_uart7, blsp_uim7, NA, NA, NA),
1165c4f6f9c0SGeorgi Djakov 	PINGROUP(131, uim, blsp_spi7, blsp_uart7, blsp_uim7, NA, NA, NA),
1166c4f6f9c0SGeorgi Djakov 	PINGROUP(132, uim, blsp_spi7, blsp_uart7, blsp_i2c7, NA, NA, NA),
1167c4f6f9c0SGeorgi Djakov 	PINGROUP(133, uim, blsp_spi7, blsp_uart7, blsp_i2c7, NA, NA, NA),
1168c4f6f9c0SGeorgi Djakov 	PINGROUP(134, hsic, NA, NA, NA, NA, NA, NA),
1169c4f6f9c0SGeorgi Djakov 	PINGROUP(135, hsic, NA, NA, NA, NA, NA, NA),
1170c4f6f9c0SGeorgi Djakov 	PINGROUP(136, spdif_tx, NA, NA, NA, NA, NA, NA),
1171c4f6f9c0SGeorgi Djakov 	PINGROUP(137, NA, NA, NA, NA, NA, NA, NA),
1172c4f6f9c0SGeorgi Djakov 	PINGROUP(138, NA, NA, NA, NA, NA, NA, NA),
1173c4f6f9c0SGeorgi Djakov 	PINGROUP(139, NA, NA, NA, NA, NA, NA, NA),
1174c4f6f9c0SGeorgi Djakov 	PINGROUP(140, pci_e1_rst_n, pci_e1_rst, NA, NA, NA, NA, NA),
1175c4f6f9c0SGeorgi Djakov 	PINGROUP(141, pci_e1_clkreq_n, NA, NA, NA, NA, NA, NA),
1176c4f6f9c0SGeorgi Djakov 	PINGROUP(142, spdif_tx, NA, NA, NA, NA, NA, NA),
1177c4f6f9c0SGeorgi Djakov 	PINGROUP(143, NA, NA, NA, NA, NA, NA, NA),
1178c4f6f9c0SGeorgi Djakov 	PINGROUP(144, NA, NA, NA, NA, NA, NA, NA),
1179c4f6f9c0SGeorgi Djakov 	PINGROUP(145, NA, NA, NA, NA, NA, NA, NA),
1180c4f6f9c0SGeorgi Djakov 	PINGROUP(146, sdc_emmc_mode, NA, NA, NA, NA, NA, NA),
1181c4f6f9c0SGeorgi Djakov 
1182c4f6f9c0SGeorgi Djakov 	SDC_PINGROUP(sdc1_clk, 0x2044, 13, 6),
1183c4f6f9c0SGeorgi Djakov 	SDC_PINGROUP(sdc1_cmd, 0x2044, 11, 3),
1184c4f6f9c0SGeorgi Djakov 	SDC_PINGROUP(sdc1_data, 0x2044, 9, 0),
1185c4f6f9c0SGeorgi Djakov 	SDC_PINGROUP(sdc2_clk, 0x2048, 14, 6),
1186c4f6f9c0SGeorgi Djakov 	SDC_PINGROUP(sdc2_cmd, 0x2048, 11, 3),
1187c4f6f9c0SGeorgi Djakov 	SDC_PINGROUP(sdc2_data, 0x2048, 9, 0),
1188c4f6f9c0SGeorgi Djakov };
1189c4f6f9c0SGeorgi Djakov 
1190c4f6f9c0SGeorgi Djakov #define NUM_GPIO_PINGROUPS 147
1191c4f6f9c0SGeorgi Djakov 
1192c4f6f9c0SGeorgi Djakov static const struct msm_pinctrl_soc_data apq8084_pinctrl = {
1193c4f6f9c0SGeorgi Djakov 	.pins = apq8084_pins,
1194c4f6f9c0SGeorgi Djakov 	.npins = ARRAY_SIZE(apq8084_pins),
1195c4f6f9c0SGeorgi Djakov 	.functions = apq8084_functions,
1196c4f6f9c0SGeorgi Djakov 	.nfunctions = ARRAY_SIZE(apq8084_functions),
1197c4f6f9c0SGeorgi Djakov 	.groups = apq8084_groups,
1198c4f6f9c0SGeorgi Djakov 	.ngroups = ARRAY_SIZE(apq8084_groups),
1199c4f6f9c0SGeorgi Djakov 	.ngpios = NUM_GPIO_PINGROUPS,
1200c4f6f9c0SGeorgi Djakov };
1201c4f6f9c0SGeorgi Djakov 
1202c4f6f9c0SGeorgi Djakov static int apq8084_pinctrl_probe(struct platform_device *pdev)
1203c4f6f9c0SGeorgi Djakov {
1204c4f6f9c0SGeorgi Djakov 	return msm_pinctrl_probe(pdev, &apq8084_pinctrl);
1205c4f6f9c0SGeorgi Djakov }
1206c4f6f9c0SGeorgi Djakov 
1207c4f6f9c0SGeorgi Djakov static const struct of_device_id apq8084_pinctrl_of_match[] = {
1208c4f6f9c0SGeorgi Djakov 	{ .compatible = "qcom,apq8084-pinctrl", },
1209c4f6f9c0SGeorgi Djakov 	{ },
1210c4f6f9c0SGeorgi Djakov };
1211c4f6f9c0SGeorgi Djakov 
1212c4f6f9c0SGeorgi Djakov static struct platform_driver apq8084_pinctrl_driver = {
1213c4f6f9c0SGeorgi Djakov 	.driver = {
1214c4f6f9c0SGeorgi Djakov 		.name = "apq8084-pinctrl",
1215c4f6f9c0SGeorgi Djakov 		.of_match_table = apq8084_pinctrl_of_match,
1216c4f6f9c0SGeorgi Djakov 	},
1217c4f6f9c0SGeorgi Djakov 	.probe = apq8084_pinctrl_probe,
1218c4f6f9c0SGeorgi Djakov 	.remove = msm_pinctrl_remove,
1219c4f6f9c0SGeorgi Djakov };
1220c4f6f9c0SGeorgi Djakov 
1221c4f6f9c0SGeorgi Djakov static int __init apq8084_pinctrl_init(void)
1222c4f6f9c0SGeorgi Djakov {
1223c4f6f9c0SGeorgi Djakov 	return platform_driver_register(&apq8084_pinctrl_driver);
1224c4f6f9c0SGeorgi Djakov }
1225c4f6f9c0SGeorgi Djakov arch_initcall(apq8084_pinctrl_init);
1226c4f6f9c0SGeorgi Djakov 
1227c4f6f9c0SGeorgi Djakov static void __exit apq8084_pinctrl_exit(void)
1228c4f6f9c0SGeorgi Djakov {
1229c4f6f9c0SGeorgi Djakov 	platform_driver_unregister(&apq8084_pinctrl_driver);
1230c4f6f9c0SGeorgi Djakov }
1231c4f6f9c0SGeorgi Djakov module_exit(apq8084_pinctrl_exit);
1232c4f6f9c0SGeorgi Djakov 
1233c4f6f9c0SGeorgi Djakov MODULE_DESCRIPTION("Qualcomm APQ8084 pinctrl driver");
1234c4f6f9c0SGeorgi Djakov MODULE_LICENSE("GPL v2");
1235c4f6f9c0SGeorgi Djakov MODULE_DEVICE_TABLE(of, apq8084_pinctrl_of_match);
1236