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