1 | // SPDX-License-Identifier: GPL-2.0 |
2 | /* |
3 | * Copyright (c) 2016-2018, The Linux Foundation. All rights reserved. |
4 | */ |
5 | |
6 | #include <linux/module.h> |
7 | #include <linux/of.h> |
8 | #include <linux/platform_device.h> |
9 | |
10 | #include "pinctrl-msm.h" |
11 | |
12 | #define REG_SIZE 0x1000 |
13 | #define PINGROUP(id, f1, f2, f3, f4, f5, f6, f7, f8, f9) \ |
14 | { \ |
15 | .grp = PINCTRL_PINGROUP("gpio" #id, \ |
16 | gpio##id##_pins, \ |
17 | ARRAY_SIZE(gpio##id##_pins)), \ |
18 | .funcs = (int[]){ \ |
19 | msm_mux_gpio, /* gpio mode */ \ |
20 | msm_mux_##f1, \ |
21 | msm_mux_##f2, \ |
22 | msm_mux_##f3, \ |
23 | msm_mux_##f4, \ |
24 | msm_mux_##f5, \ |
25 | msm_mux_##f6, \ |
26 | msm_mux_##f7, \ |
27 | msm_mux_##f8, \ |
28 | msm_mux_##f9 \ |
29 | }, \ |
30 | .nfuncs = 10, \ |
31 | .ctl_reg = REG_SIZE * id, \ |
32 | .io_reg = 0x4 + REG_SIZE * id, \ |
33 | .intr_cfg_reg = 0x8 + REG_SIZE * id, \ |
34 | .intr_status_reg = 0xc + REG_SIZE * id, \ |
35 | .intr_target_reg = 0x8 + REG_SIZE * id, \ |
36 | .mux_bit = 2, \ |
37 | .pull_bit = 0, \ |
38 | .drv_bit = 6, \ |
39 | .oe_bit = 9, \ |
40 | .in_bit = 0, \ |
41 | .out_bit = 1, \ |
42 | .intr_enable_bit = 0, \ |
43 | .intr_status_bit = 0, \ |
44 | .intr_target_bit = 5, \ |
45 | .intr_target_kpss_val = 3, \ |
46 | .intr_raw_status_bit = 4, \ |
47 | .intr_polarity_bit = 1, \ |
48 | .intr_detection_bit = 2, \ |
49 | .intr_detection_width = 2, \ |
50 | } |
51 | |
52 | static const struct pinctrl_pin_desc ipq6018_pins[] = { |
53 | PINCTRL_PIN(0, "GPIO_0" ), |
54 | PINCTRL_PIN(1, "GPIO_1" ), |
55 | PINCTRL_PIN(2, "GPIO_2" ), |
56 | PINCTRL_PIN(3, "GPIO_3" ), |
57 | PINCTRL_PIN(4, "GPIO_4" ), |
58 | PINCTRL_PIN(5, "GPIO_5" ), |
59 | PINCTRL_PIN(6, "GPIO_6" ), |
60 | PINCTRL_PIN(7, "GPIO_7" ), |
61 | PINCTRL_PIN(8, "GPIO_8" ), |
62 | PINCTRL_PIN(9, "GPIO_9" ), |
63 | PINCTRL_PIN(10, "GPIO_10" ), |
64 | PINCTRL_PIN(11, "GPIO_11" ), |
65 | PINCTRL_PIN(12, "GPIO_12" ), |
66 | PINCTRL_PIN(13, "GPIO_13" ), |
67 | PINCTRL_PIN(14, "GPIO_14" ), |
68 | PINCTRL_PIN(15, "GPIO_15" ), |
69 | PINCTRL_PIN(16, "GPIO_16" ), |
70 | PINCTRL_PIN(17, "GPIO_17" ), |
71 | PINCTRL_PIN(18, "GPIO_18" ), |
72 | PINCTRL_PIN(19, "GPIO_19" ), |
73 | PINCTRL_PIN(20, "GPIO_20" ), |
74 | PINCTRL_PIN(21, "GPIO_21" ), |
75 | PINCTRL_PIN(22, "GPIO_22" ), |
76 | PINCTRL_PIN(23, "GPIO_23" ), |
77 | PINCTRL_PIN(24, "GPIO_24" ), |
78 | PINCTRL_PIN(25, "GPIO_25" ), |
79 | PINCTRL_PIN(26, "GPIO_26" ), |
80 | PINCTRL_PIN(27, "GPIO_27" ), |
81 | PINCTRL_PIN(28, "GPIO_28" ), |
82 | PINCTRL_PIN(29, "GPIO_29" ), |
83 | PINCTRL_PIN(30, "GPIO_30" ), |
84 | PINCTRL_PIN(31, "GPIO_31" ), |
85 | PINCTRL_PIN(32, "GPIO_32" ), |
86 | PINCTRL_PIN(33, "GPIO_33" ), |
87 | PINCTRL_PIN(34, "GPIO_34" ), |
88 | PINCTRL_PIN(35, "GPIO_35" ), |
89 | PINCTRL_PIN(36, "GPIO_36" ), |
90 | PINCTRL_PIN(37, "GPIO_37" ), |
91 | PINCTRL_PIN(38, "GPIO_38" ), |
92 | PINCTRL_PIN(39, "GPIO_39" ), |
93 | PINCTRL_PIN(40, "GPIO_40" ), |
94 | PINCTRL_PIN(41, "GPIO_41" ), |
95 | PINCTRL_PIN(42, "GPIO_42" ), |
96 | PINCTRL_PIN(43, "GPIO_43" ), |
97 | PINCTRL_PIN(44, "GPIO_44" ), |
98 | PINCTRL_PIN(45, "GPIO_45" ), |
99 | PINCTRL_PIN(46, "GPIO_46" ), |
100 | PINCTRL_PIN(47, "GPIO_47" ), |
101 | PINCTRL_PIN(48, "GPIO_48" ), |
102 | PINCTRL_PIN(49, "GPIO_49" ), |
103 | PINCTRL_PIN(50, "GPIO_50" ), |
104 | PINCTRL_PIN(51, "GPIO_51" ), |
105 | PINCTRL_PIN(52, "GPIO_52" ), |
106 | PINCTRL_PIN(53, "GPIO_53" ), |
107 | PINCTRL_PIN(54, "GPIO_54" ), |
108 | PINCTRL_PIN(55, "GPIO_55" ), |
109 | PINCTRL_PIN(56, "GPIO_56" ), |
110 | PINCTRL_PIN(57, "GPIO_57" ), |
111 | PINCTRL_PIN(58, "GPIO_58" ), |
112 | PINCTRL_PIN(59, "GPIO_59" ), |
113 | PINCTRL_PIN(60, "GPIO_60" ), |
114 | PINCTRL_PIN(61, "GPIO_61" ), |
115 | PINCTRL_PIN(62, "GPIO_62" ), |
116 | PINCTRL_PIN(63, "GPIO_63" ), |
117 | PINCTRL_PIN(64, "GPIO_64" ), |
118 | PINCTRL_PIN(65, "GPIO_65" ), |
119 | PINCTRL_PIN(66, "GPIO_66" ), |
120 | PINCTRL_PIN(67, "GPIO_67" ), |
121 | PINCTRL_PIN(68, "GPIO_68" ), |
122 | PINCTRL_PIN(69, "GPIO_69" ), |
123 | PINCTRL_PIN(70, "GPIO_70" ), |
124 | PINCTRL_PIN(71, "GPIO_71" ), |
125 | PINCTRL_PIN(72, "GPIO_72" ), |
126 | PINCTRL_PIN(73, "GPIO_73" ), |
127 | PINCTRL_PIN(74, "GPIO_74" ), |
128 | PINCTRL_PIN(75, "GPIO_75" ), |
129 | PINCTRL_PIN(76, "GPIO_76" ), |
130 | PINCTRL_PIN(77, "GPIO_77" ), |
131 | PINCTRL_PIN(78, "GPIO_78" ), |
132 | PINCTRL_PIN(79, "GPIO_79" ), |
133 | }; |
134 | |
135 | #define DECLARE_MSM_GPIO_PINS(pin) \ |
136 | static const unsigned int gpio##pin##_pins[] = { pin } |
137 | DECLARE_MSM_GPIO_PINS(0); |
138 | DECLARE_MSM_GPIO_PINS(1); |
139 | DECLARE_MSM_GPIO_PINS(2); |
140 | DECLARE_MSM_GPIO_PINS(3); |
141 | DECLARE_MSM_GPIO_PINS(4); |
142 | DECLARE_MSM_GPIO_PINS(5); |
143 | DECLARE_MSM_GPIO_PINS(6); |
144 | DECLARE_MSM_GPIO_PINS(7); |
145 | DECLARE_MSM_GPIO_PINS(8); |
146 | DECLARE_MSM_GPIO_PINS(9); |
147 | DECLARE_MSM_GPIO_PINS(10); |
148 | DECLARE_MSM_GPIO_PINS(11); |
149 | DECLARE_MSM_GPIO_PINS(12); |
150 | DECLARE_MSM_GPIO_PINS(13); |
151 | DECLARE_MSM_GPIO_PINS(14); |
152 | DECLARE_MSM_GPIO_PINS(15); |
153 | DECLARE_MSM_GPIO_PINS(16); |
154 | DECLARE_MSM_GPIO_PINS(17); |
155 | DECLARE_MSM_GPIO_PINS(18); |
156 | DECLARE_MSM_GPIO_PINS(19); |
157 | DECLARE_MSM_GPIO_PINS(20); |
158 | DECLARE_MSM_GPIO_PINS(21); |
159 | DECLARE_MSM_GPIO_PINS(22); |
160 | DECLARE_MSM_GPIO_PINS(23); |
161 | DECLARE_MSM_GPIO_PINS(24); |
162 | DECLARE_MSM_GPIO_PINS(25); |
163 | DECLARE_MSM_GPIO_PINS(26); |
164 | DECLARE_MSM_GPIO_PINS(27); |
165 | DECLARE_MSM_GPIO_PINS(28); |
166 | DECLARE_MSM_GPIO_PINS(29); |
167 | DECLARE_MSM_GPIO_PINS(30); |
168 | DECLARE_MSM_GPIO_PINS(31); |
169 | DECLARE_MSM_GPIO_PINS(32); |
170 | DECLARE_MSM_GPIO_PINS(33); |
171 | DECLARE_MSM_GPIO_PINS(34); |
172 | DECLARE_MSM_GPIO_PINS(35); |
173 | DECLARE_MSM_GPIO_PINS(36); |
174 | DECLARE_MSM_GPIO_PINS(37); |
175 | DECLARE_MSM_GPIO_PINS(38); |
176 | DECLARE_MSM_GPIO_PINS(39); |
177 | DECLARE_MSM_GPIO_PINS(40); |
178 | DECLARE_MSM_GPIO_PINS(41); |
179 | DECLARE_MSM_GPIO_PINS(42); |
180 | DECLARE_MSM_GPIO_PINS(43); |
181 | DECLARE_MSM_GPIO_PINS(44); |
182 | DECLARE_MSM_GPIO_PINS(45); |
183 | DECLARE_MSM_GPIO_PINS(46); |
184 | DECLARE_MSM_GPIO_PINS(47); |
185 | DECLARE_MSM_GPIO_PINS(48); |
186 | DECLARE_MSM_GPIO_PINS(49); |
187 | DECLARE_MSM_GPIO_PINS(50); |
188 | DECLARE_MSM_GPIO_PINS(51); |
189 | DECLARE_MSM_GPIO_PINS(52); |
190 | DECLARE_MSM_GPIO_PINS(53); |
191 | DECLARE_MSM_GPIO_PINS(54); |
192 | DECLARE_MSM_GPIO_PINS(55); |
193 | DECLARE_MSM_GPIO_PINS(56); |
194 | DECLARE_MSM_GPIO_PINS(57); |
195 | DECLARE_MSM_GPIO_PINS(58); |
196 | DECLARE_MSM_GPIO_PINS(59); |
197 | DECLARE_MSM_GPIO_PINS(60); |
198 | DECLARE_MSM_GPIO_PINS(61); |
199 | DECLARE_MSM_GPIO_PINS(62); |
200 | DECLARE_MSM_GPIO_PINS(63); |
201 | DECLARE_MSM_GPIO_PINS(64); |
202 | DECLARE_MSM_GPIO_PINS(65); |
203 | DECLARE_MSM_GPIO_PINS(66); |
204 | DECLARE_MSM_GPIO_PINS(67); |
205 | DECLARE_MSM_GPIO_PINS(68); |
206 | DECLARE_MSM_GPIO_PINS(69); |
207 | DECLARE_MSM_GPIO_PINS(70); |
208 | DECLARE_MSM_GPIO_PINS(71); |
209 | DECLARE_MSM_GPIO_PINS(72); |
210 | DECLARE_MSM_GPIO_PINS(73); |
211 | DECLARE_MSM_GPIO_PINS(74); |
212 | DECLARE_MSM_GPIO_PINS(75); |
213 | DECLARE_MSM_GPIO_PINS(76); |
214 | DECLARE_MSM_GPIO_PINS(77); |
215 | DECLARE_MSM_GPIO_PINS(78); |
216 | DECLARE_MSM_GPIO_PINS(79); |
217 | |
218 | enum ipq6018_functions { |
219 | msm_mux_atest_char, |
220 | msm_mux_atest_char0, |
221 | msm_mux_atest_char1, |
222 | msm_mux_atest_char2, |
223 | msm_mux_atest_char3, |
224 | msm_mux_audio0, |
225 | msm_mux_audio1, |
226 | msm_mux_audio2, |
227 | msm_mux_audio3, |
228 | msm_mux_audio_rxbclk, |
229 | msm_mux_audio_rxfsync, |
230 | msm_mux_audio_rxmclk, |
231 | msm_mux_audio_rxmclkin, |
232 | msm_mux_audio_txbclk, |
233 | msm_mux_audio_txfsync, |
234 | msm_mux_audio_txmclk, |
235 | msm_mux_audio_txmclkin, |
236 | msm_mux_blsp0_i2c, |
237 | msm_mux_blsp0_spi, |
238 | msm_mux_blsp0_uart, |
239 | msm_mux_blsp1_i2c, |
240 | msm_mux_blsp1_spi, |
241 | msm_mux_blsp1_uart, |
242 | msm_mux_blsp2_i2c, |
243 | msm_mux_blsp2_spi, |
244 | msm_mux_blsp2_uart, |
245 | msm_mux_blsp3_i2c, |
246 | msm_mux_blsp3_spi, |
247 | msm_mux_blsp3_uart, |
248 | msm_mux_blsp4_i2c, |
249 | msm_mux_blsp4_spi, |
250 | msm_mux_blsp4_uart, |
251 | msm_mux_blsp5_i2c, |
252 | msm_mux_blsp5_uart, |
253 | msm_mux_burn0, |
254 | msm_mux_burn1, |
255 | msm_mux_cri_trng, |
256 | msm_mux_cri_trng0, |
257 | msm_mux_cri_trng1, |
258 | msm_mux_cxc0, |
259 | msm_mux_cxc1, |
260 | msm_mux_dbg_out, |
261 | msm_mux_gcc_plltest, |
262 | msm_mux_gcc_tlmm, |
263 | msm_mux_gpio, |
264 | msm_mux_lpass_aud, |
265 | msm_mux_lpass_aud0, |
266 | msm_mux_lpass_aud1, |
267 | msm_mux_lpass_aud2, |
268 | msm_mux_lpass_pcm, |
269 | msm_mux_lpass_pdm, |
270 | msm_mux_mac00, |
271 | msm_mux_mac01, |
272 | msm_mux_mac10, |
273 | msm_mux_mac11, |
274 | msm_mux_mac12, |
275 | msm_mux_mac13, |
276 | msm_mux_mac20, |
277 | msm_mux_mac21, |
278 | msm_mux_mdc, |
279 | msm_mux_mdio, |
280 | msm_mux_pcie0_clk, |
281 | msm_mux_pcie0_rst, |
282 | msm_mux_pcie0_wake, |
283 | msm_mux_prng_rosc, |
284 | msm_mux_pta1_0, |
285 | msm_mux_pta1_1, |
286 | msm_mux_pta1_2, |
287 | msm_mux_pta2_0, |
288 | msm_mux_pta2_1, |
289 | msm_mux_pta2_2, |
290 | msm_mux_pwm00, |
291 | msm_mux_pwm01, |
292 | msm_mux_pwm02, |
293 | msm_mux_pwm03, |
294 | msm_mux_pwm04, |
295 | msm_mux_pwm10, |
296 | msm_mux_pwm11, |
297 | msm_mux_pwm12, |
298 | msm_mux_pwm13, |
299 | msm_mux_pwm14, |
300 | msm_mux_pwm20, |
301 | msm_mux_pwm21, |
302 | msm_mux_pwm22, |
303 | msm_mux_pwm23, |
304 | msm_mux_pwm24, |
305 | msm_mux_pwm30, |
306 | msm_mux_pwm31, |
307 | msm_mux_pwm32, |
308 | msm_mux_pwm33, |
309 | msm_mux_qdss_cti_trig_in_a0, |
310 | msm_mux_qdss_cti_trig_in_a1, |
311 | msm_mux_qdss_cti_trig_out_a0, |
312 | msm_mux_qdss_cti_trig_out_a1, |
313 | msm_mux_qdss_cti_trig_in_b0, |
314 | msm_mux_qdss_cti_trig_in_b1, |
315 | msm_mux_qdss_cti_trig_out_b0, |
316 | msm_mux_qdss_cti_trig_out_b1, |
317 | msm_mux_qdss_traceclk_a, |
318 | msm_mux_qdss_tracectl_a, |
319 | msm_mux_qdss_tracedata_a, |
320 | msm_mux_qdss_traceclk_b, |
321 | msm_mux_qdss_tracectl_b, |
322 | msm_mux_qdss_tracedata_b, |
323 | msm_mux_qpic_pad, |
324 | msm_mux_rx0, |
325 | msm_mux_rx1, |
326 | msm_mux_rx_swrm, |
327 | msm_mux_rx_swrm0, |
328 | msm_mux_rx_swrm1, |
329 | msm_mux_sd_card, |
330 | msm_mux_sd_write, |
331 | msm_mux_tsens_max, |
332 | msm_mux_tx_swrm, |
333 | msm_mux_tx_swrm0, |
334 | msm_mux_tx_swrm1, |
335 | msm_mux_tx_swrm2, |
336 | msm_mux_wci20, |
337 | msm_mux_wci21, |
338 | msm_mux_wci22, |
339 | msm_mux_wci23, |
340 | msm_mux_wsa_swrm, |
341 | msm_mux__, |
342 | }; |
343 | |
344 | static const char * const blsp3_uart_groups[] = { |
345 | "gpio73" , "gpio74" , "gpio75" , "gpio76" , |
346 | }; |
347 | |
348 | static const char * const blsp3_i2c_groups[] = { |
349 | "gpio73" , "gpio74" , |
350 | }; |
351 | |
352 | static const char * const blsp3_spi_groups[] = { |
353 | "gpio73" , "gpio74" , "gpio75" , "gpio76" , "gpio77" , "gpio78" , "gpio79" , |
354 | }; |
355 | |
356 | static const char * const wci20_groups[] = { |
357 | "gpio0" , "gpio2" , |
358 | }; |
359 | |
360 | static const char * const qpic_pad_groups[] = { |
361 | "gpio0" , "gpio1" , "gpio2" , "gpio3" , "gpio4" , "gpio9" , "gpio10" , |
362 | "gpio11" , "gpio17" , "gpio15" , "gpio12" , "gpio13" , "gpio14" , "gpio5" , |
363 | "gpio6" , "gpio7" , "gpio8" , |
364 | }; |
365 | |
366 | static const char * const burn0_groups[] = { |
367 | "gpio0" , |
368 | }; |
369 | |
370 | static const char * const mac12_groups[] = { |
371 | "gpio1" , "gpio11" , |
372 | }; |
373 | |
374 | static const char * const qdss_tracectl_b_groups[] = { |
375 | "gpio1" , |
376 | }; |
377 | |
378 | static const char * const burn1_groups[] = { |
379 | "gpio1" , |
380 | }; |
381 | |
382 | static const char * const qdss_traceclk_b_groups[] = { |
383 | "gpio0" , |
384 | }; |
385 | |
386 | static const char * const qdss_tracedata_b_groups[] = { |
387 | "gpio2" , "gpio3" , "gpio4" , "gpio5" , "gpio6" , "gpio7" , "gpio8" , "gpio9" , |
388 | "gpio10" , "gpio11" , "gpio12" , "gpio13" , "gpio14" , "gpio15" , "gpio16" , |
389 | "gpio17" , |
390 | }; |
391 | |
392 | static const char * const mac01_groups[] = { |
393 | "gpio3" , "gpio4" , |
394 | }; |
395 | |
396 | static const char * const mac21_groups[] = { |
397 | "gpio5" , "gpio6" , |
398 | }; |
399 | |
400 | static const char * const atest_char_groups[] = { |
401 | "gpio9" , |
402 | }; |
403 | |
404 | static const char * const cxc0_groups[] = { |
405 | "gpio9" , "gpio16" , |
406 | }; |
407 | |
408 | static const char * const mac13_groups[] = { |
409 | "gpio9" , "gpio16" , |
410 | }; |
411 | |
412 | static const char * const dbg_out_groups[] = { |
413 | "gpio9" , |
414 | }; |
415 | |
416 | static const char * const wci22_groups[] = { |
417 | "gpio11" , "gpio17" , |
418 | }; |
419 | |
420 | static const char * const pwm00_groups[] = { |
421 | "gpio18" , |
422 | }; |
423 | |
424 | static const char * const atest_char0_groups[] = { |
425 | "gpio18" , |
426 | }; |
427 | |
428 | static const char * const wci23_groups[] = { |
429 | "gpio18" , "gpio19" , |
430 | }; |
431 | |
432 | static const char * const mac11_groups[] = { |
433 | "gpio18" , "gpio19" , |
434 | }; |
435 | |
436 | static const char * const pwm10_groups[] = { |
437 | "gpio19" , |
438 | }; |
439 | |
440 | static const char * const atest_char1_groups[] = { |
441 | "gpio19" , |
442 | }; |
443 | |
444 | static const char * const pwm20_groups[] = { |
445 | "gpio20" , |
446 | }; |
447 | |
448 | static const char * const atest_char2_groups[] = { |
449 | "gpio20" , |
450 | }; |
451 | |
452 | static const char * const pwm30_groups[] = { |
453 | "gpio21" , |
454 | }; |
455 | |
456 | static const char * const atest_char3_groups[] = { |
457 | "gpio21" , |
458 | }; |
459 | |
460 | static const char * const audio_txmclk_groups[] = { |
461 | "gpio22" , |
462 | }; |
463 | |
464 | static const char * const audio_txmclkin_groups[] = { |
465 | "gpio22" , |
466 | }; |
467 | |
468 | static const char * const pwm02_groups[] = { |
469 | "gpio22" , |
470 | }; |
471 | |
472 | static const char * const tx_swrm0_groups[] = { |
473 | "gpio22" , |
474 | }; |
475 | |
476 | static const char * const qdss_cti_trig_out_b0_groups[] = { |
477 | "gpio22" , |
478 | }; |
479 | |
480 | static const char * const audio_txbclk_groups[] = { |
481 | "gpio23" , |
482 | }; |
483 | |
484 | static const char * const pwm12_groups[] = { |
485 | "gpio23" , |
486 | }; |
487 | |
488 | static const char * const wsa_swrm_groups[] = { |
489 | "gpio23" , "gpio24" , |
490 | }; |
491 | |
492 | static const char * const tx_swrm1_groups[] = { |
493 | "gpio23" , |
494 | }; |
495 | |
496 | static const char * const qdss_cti_trig_in_b0_groups[] = { |
497 | "gpio23" , |
498 | }; |
499 | |
500 | static const char * const audio_txfsync_groups[] = { |
501 | "gpio24" , |
502 | }; |
503 | |
504 | static const char * const pwm22_groups[] = { |
505 | "gpio24" , |
506 | }; |
507 | |
508 | static const char * const tx_swrm2_groups[] = { |
509 | "gpio24" , |
510 | }; |
511 | |
512 | static const char * const qdss_cti_trig_out_b1_groups[] = { |
513 | "gpio24" , |
514 | }; |
515 | |
516 | static const char * const audio0_groups[] = { |
517 | "gpio25" , "gpio32" , |
518 | }; |
519 | |
520 | static const char * const pwm32_groups[] = { |
521 | "gpio25" , |
522 | }; |
523 | |
524 | static const char * const tx_swrm_groups[] = { |
525 | "gpio25" , |
526 | }; |
527 | |
528 | static const char * const qdss_cti_trig_in_b1_groups[] = { |
529 | "gpio25" , |
530 | }; |
531 | |
532 | static const char * const audio1_groups[] = { |
533 | "gpio26" , "gpio33" , |
534 | }; |
535 | |
536 | static const char * const pwm04_groups[] = { |
537 | "gpio26" , |
538 | }; |
539 | |
540 | static const char * const audio2_groups[] = { |
541 | "gpio27" , |
542 | }; |
543 | |
544 | static const char * const pwm14_groups[] = { |
545 | "gpio27" , |
546 | }; |
547 | |
548 | static const char * const audio3_groups[] = { |
549 | "gpio28" , |
550 | }; |
551 | |
552 | static const char * const pwm24_groups[] = { |
553 | "gpio28" , |
554 | }; |
555 | |
556 | static const char * const audio_rxmclk_groups[] = { |
557 | "gpio29" , |
558 | }; |
559 | |
560 | static const char * const audio_rxmclkin_groups[] = { |
561 | "gpio29" , |
562 | }; |
563 | |
564 | static const char * const pwm03_groups[] = { |
565 | "gpio29" , |
566 | }; |
567 | |
568 | static const char * const lpass_pdm_groups[] = { |
569 | "gpio29" , "gpio30" , "gpio31" , "gpio32" , |
570 | }; |
571 | |
572 | static const char * const lpass_aud_groups[] = { |
573 | "gpio29" , |
574 | }; |
575 | |
576 | static const char * const qdss_cti_trig_in_a1_groups[] = { |
577 | "gpio29" , |
578 | }; |
579 | |
580 | static const char * const audio_rxbclk_groups[] = { |
581 | "gpio30" , |
582 | }; |
583 | |
584 | static const char * const pwm13_groups[] = { |
585 | "gpio30" , |
586 | }; |
587 | |
588 | static const char * const lpass_aud0_groups[] = { |
589 | "gpio30" , |
590 | }; |
591 | |
592 | static const char * const rx_swrm_groups[] = { |
593 | "gpio30" , |
594 | }; |
595 | |
596 | static const char * const qdss_cti_trig_out_a1_groups[] = { |
597 | "gpio30" , |
598 | }; |
599 | |
600 | static const char * const audio_rxfsync_groups[] = { |
601 | "gpio31" , |
602 | }; |
603 | |
604 | static const char * const pwm23_groups[] = { |
605 | "gpio31" , |
606 | }; |
607 | |
608 | static const char * const lpass_aud1_groups[] = { |
609 | "gpio31" , |
610 | }; |
611 | |
612 | static const char * const rx_swrm0_groups[] = { |
613 | "gpio31" , |
614 | }; |
615 | |
616 | static const char * const qdss_cti_trig_in_a0_groups[] = { |
617 | "gpio31" , |
618 | }; |
619 | |
620 | static const char * const pwm33_groups[] = { |
621 | "gpio32" , |
622 | }; |
623 | |
624 | static const char * const lpass_aud2_groups[] = { |
625 | "gpio32" , |
626 | }; |
627 | |
628 | static const char * const rx_swrm1_groups[] = { |
629 | "gpio32" , |
630 | }; |
631 | |
632 | static const char * const qdss_cti_trig_out_a0_groups[] = { |
633 | "gpio32" , |
634 | }; |
635 | |
636 | static const char * const lpass_pcm_groups[] = { |
637 | "gpio34" , "gpio35" , "gpio36" , "gpio37" , |
638 | }; |
639 | |
640 | static const char * const mac10_groups[] = { |
641 | "gpio34" , "gpio35" , |
642 | }; |
643 | |
644 | static const char * const mac00_groups[] = { |
645 | "gpio34" , "gpio35" , |
646 | }; |
647 | |
648 | static const char * const mac20_groups[] = { |
649 | "gpio36" , "gpio37" , |
650 | }; |
651 | |
652 | static const char * const blsp0_uart_groups[] = { |
653 | "gpio38" , "gpio39" , "gpio40" , "gpio41" , |
654 | }; |
655 | |
656 | static const char * const blsp0_i2c_groups[] = { |
657 | "gpio38" , "gpio39" , |
658 | }; |
659 | |
660 | static const char * const blsp0_spi_groups[] = { |
661 | "gpio38" , "gpio39" , "gpio40" , "gpio41" , |
662 | }; |
663 | |
664 | static const char * const blsp2_uart_groups[] = { |
665 | "gpio42" , "gpio43" , "gpio44" , "gpio45" , |
666 | }; |
667 | |
668 | static const char * const blsp2_i2c_groups[] = { |
669 | "gpio42" , "gpio43" , |
670 | }; |
671 | |
672 | static const char * const blsp2_spi_groups[] = { |
673 | "gpio42" , "gpio43" , "gpio44" , "gpio45" , |
674 | }; |
675 | |
676 | static const char * const blsp5_i2c_groups[] = { |
677 | "gpio46" , "gpio47" , |
678 | }; |
679 | |
680 | static const char * const blsp5_uart_groups[] = { |
681 | "gpio48" , "gpio49" , |
682 | }; |
683 | |
684 | static const char * const qdss_traceclk_a_groups[] = { |
685 | "gpio48" , |
686 | }; |
687 | |
688 | static const char * const qdss_tracectl_a_groups[] = { |
689 | "gpio49" , |
690 | }; |
691 | |
692 | static const char * const pwm01_groups[] = { |
693 | "gpio50" , |
694 | }; |
695 | |
696 | static const char * const pta1_1_groups[] = { |
697 | "gpio51" , |
698 | }; |
699 | |
700 | static const char * const pwm11_groups[] = { |
701 | "gpio51" , |
702 | }; |
703 | |
704 | static const char * const rx1_groups[] = { |
705 | "gpio51" , |
706 | }; |
707 | |
708 | static const char * const pta1_2_groups[] = { |
709 | "gpio52" , |
710 | }; |
711 | |
712 | static const char * const pwm21_groups[] = { |
713 | "gpio52" , |
714 | }; |
715 | |
716 | static const char * const pta1_0_groups[] = { |
717 | "gpio53" , |
718 | }; |
719 | |
720 | static const char * const pwm31_groups[] = { |
721 | "gpio53" , |
722 | }; |
723 | |
724 | static const char * const prng_rosc_groups[] = { |
725 | "gpio53" , |
726 | }; |
727 | |
728 | static const char * const blsp4_uart_groups[] = { |
729 | "gpio55" , "gpio56" , "gpio57" , "gpio58" , |
730 | }; |
731 | |
732 | static const char * const blsp4_i2c_groups[] = { |
733 | "gpio55" , "gpio56" , |
734 | }; |
735 | |
736 | static const char * const blsp4_spi_groups[] = { |
737 | "gpio55" , "gpio56" , "gpio57" , "gpio58" , |
738 | }; |
739 | |
740 | static const char * const pcie0_clk_groups[] = { |
741 | "gpio59" , |
742 | }; |
743 | |
744 | static const char * const cri_trng0_groups[] = { |
745 | "gpio59" , |
746 | }; |
747 | |
748 | static const char * const pcie0_rst_groups[] = { |
749 | "gpio60" , |
750 | }; |
751 | |
752 | static const char * const cri_trng1_groups[] = { |
753 | "gpio60" , |
754 | }; |
755 | |
756 | static const char * const pcie0_wake_groups[] = { |
757 | "gpio61" , |
758 | }; |
759 | |
760 | static const char * const cri_trng_groups[] = { |
761 | "gpio61" , |
762 | }; |
763 | |
764 | static const char * const sd_card_groups[] = { |
765 | "gpio62" , |
766 | }; |
767 | |
768 | static const char * const sd_write_groups[] = { |
769 | "gpio63" , |
770 | }; |
771 | |
772 | static const char * const rx0_groups[] = { |
773 | "gpio63" , |
774 | }; |
775 | |
776 | static const char * const tsens_max_groups[] = { |
777 | "gpio63" , |
778 | }; |
779 | |
780 | static const char * const mdc_groups[] = { |
781 | "gpio64" , |
782 | }; |
783 | |
784 | static const char * const qdss_tracedata_a_groups[] = { |
785 | "gpio64" , "gpio65" , "gpio66" , "gpio67" , "gpio68" , "gpio69" , "gpio70" , |
786 | "gpio71" , "gpio72" , "gpio73" , "gpio74" , "gpio75" , "gpio76" , "gpio77" , |
787 | "gpio78" , "gpio79" , |
788 | }; |
789 | |
790 | static const char * const mdio_groups[] = { |
791 | "gpio65" , |
792 | }; |
793 | |
794 | static const char * const pta2_0_groups[] = { |
795 | "gpio66" , |
796 | }; |
797 | |
798 | static const char * const wci21_groups[] = { |
799 | "gpio66" , "gpio68" , |
800 | }; |
801 | |
802 | static const char * const cxc1_groups[] = { |
803 | "gpio66" , "gpio68" , |
804 | }; |
805 | |
806 | static const char * const pta2_1_groups[] = { |
807 | "gpio67" , |
808 | }; |
809 | |
810 | static const char * const pta2_2_groups[] = { |
811 | "gpio68" , |
812 | }; |
813 | |
814 | static const char * const blsp1_uart_groups[] = { |
815 | "gpio69" , "gpio70" , "gpio71" , "gpio72" , |
816 | }; |
817 | |
818 | static const char * const blsp1_i2c_groups[] = { |
819 | "gpio69" , "gpio70" , |
820 | }; |
821 | |
822 | static const char * const blsp1_spi_groups[] = { |
823 | "gpio69" , "gpio70" , "gpio71" , "gpio72" , |
824 | }; |
825 | |
826 | static const char * const gcc_plltest_groups[] = { |
827 | "gpio69" , "gpio71" , |
828 | }; |
829 | |
830 | static const char * const gcc_tlmm_groups[] = { |
831 | "gpio70" , |
832 | }; |
833 | |
834 | static const char * const gpio_groups[] = { |
835 | "gpio0" , "gpio1" , "gpio2" , "gpio3" , "gpio4" , "gpio5" , "gpio6" , "gpio7" , |
836 | "gpio8" , "gpio9" , "gpio10" , "gpio11" , "gpio12" , "gpio13" , "gpio14" , |
837 | "gpio15" , "gpio16" , "gpio17" , "gpio18" , "gpio19" , "gpio20" , "gpio21" , |
838 | "gpio22" , "gpio23" , "gpio24" , "gpio25" , "gpio26" , "gpio27" , "gpio28" , |
839 | "gpio29" , "gpio30" , "gpio31" , "gpio32" , "gpio33" , "gpio34" , "gpio35" , |
840 | "gpio36" , "gpio37" , "gpio38" , "gpio39" , "gpio40" , "gpio41" , "gpio42" , |
841 | "gpio43" , "gpio44" , "gpio45" , "gpio46" , "gpio47" , "gpio48" , "gpio49" , |
842 | "gpio50" , "gpio51" , "gpio52" , "gpio53" , "gpio54" , "gpio55" , "gpio56" , |
843 | "gpio57" , "gpio58" , "gpio59" , "gpio60" , "gpio61" , "gpio62" , "gpio63" , |
844 | "gpio64" , "gpio65" , "gpio66" , "gpio67" , "gpio68" , "gpio69" , "gpio70" , |
845 | "gpio71" , "gpio72" , "gpio73" , "gpio74" , "gpio75" , "gpio76" , "gpio77" , |
846 | "gpio78" , "gpio79" , |
847 | }; |
848 | |
849 | static const struct pinfunction ipq6018_functions[] = { |
850 | MSM_PIN_FUNCTION(atest_char), |
851 | MSM_PIN_FUNCTION(atest_char0), |
852 | MSM_PIN_FUNCTION(atest_char1), |
853 | MSM_PIN_FUNCTION(atest_char2), |
854 | MSM_PIN_FUNCTION(atest_char3), |
855 | MSM_PIN_FUNCTION(audio0), |
856 | MSM_PIN_FUNCTION(audio1), |
857 | MSM_PIN_FUNCTION(audio2), |
858 | MSM_PIN_FUNCTION(audio3), |
859 | MSM_PIN_FUNCTION(audio_rxbclk), |
860 | MSM_PIN_FUNCTION(audio_rxfsync), |
861 | MSM_PIN_FUNCTION(audio_rxmclk), |
862 | MSM_PIN_FUNCTION(audio_rxmclkin), |
863 | MSM_PIN_FUNCTION(audio_txbclk), |
864 | MSM_PIN_FUNCTION(audio_txfsync), |
865 | MSM_PIN_FUNCTION(audio_txmclk), |
866 | MSM_PIN_FUNCTION(audio_txmclkin), |
867 | MSM_PIN_FUNCTION(blsp0_i2c), |
868 | MSM_PIN_FUNCTION(blsp0_spi), |
869 | MSM_PIN_FUNCTION(blsp0_uart), |
870 | MSM_PIN_FUNCTION(blsp1_i2c), |
871 | MSM_PIN_FUNCTION(blsp1_spi), |
872 | MSM_PIN_FUNCTION(blsp1_uart), |
873 | MSM_PIN_FUNCTION(blsp2_i2c), |
874 | MSM_PIN_FUNCTION(blsp2_spi), |
875 | MSM_PIN_FUNCTION(blsp2_uart), |
876 | MSM_PIN_FUNCTION(blsp3_i2c), |
877 | MSM_PIN_FUNCTION(blsp3_spi), |
878 | MSM_PIN_FUNCTION(blsp3_uart), |
879 | MSM_PIN_FUNCTION(blsp4_i2c), |
880 | MSM_PIN_FUNCTION(blsp4_spi), |
881 | MSM_PIN_FUNCTION(blsp4_uart), |
882 | MSM_PIN_FUNCTION(blsp5_i2c), |
883 | MSM_PIN_FUNCTION(blsp5_uart), |
884 | MSM_PIN_FUNCTION(burn0), |
885 | MSM_PIN_FUNCTION(burn1), |
886 | MSM_PIN_FUNCTION(cri_trng), |
887 | MSM_PIN_FUNCTION(cri_trng0), |
888 | MSM_PIN_FUNCTION(cri_trng1), |
889 | MSM_PIN_FUNCTION(cxc0), |
890 | MSM_PIN_FUNCTION(cxc1), |
891 | MSM_PIN_FUNCTION(dbg_out), |
892 | MSM_PIN_FUNCTION(gcc_plltest), |
893 | MSM_PIN_FUNCTION(gcc_tlmm), |
894 | MSM_PIN_FUNCTION(gpio), |
895 | MSM_PIN_FUNCTION(lpass_aud), |
896 | MSM_PIN_FUNCTION(lpass_aud0), |
897 | MSM_PIN_FUNCTION(lpass_aud1), |
898 | MSM_PIN_FUNCTION(lpass_aud2), |
899 | MSM_PIN_FUNCTION(lpass_pcm), |
900 | MSM_PIN_FUNCTION(lpass_pdm), |
901 | MSM_PIN_FUNCTION(mac00), |
902 | MSM_PIN_FUNCTION(mac01), |
903 | MSM_PIN_FUNCTION(mac10), |
904 | MSM_PIN_FUNCTION(mac11), |
905 | MSM_PIN_FUNCTION(mac12), |
906 | MSM_PIN_FUNCTION(mac13), |
907 | MSM_PIN_FUNCTION(mac20), |
908 | MSM_PIN_FUNCTION(mac21), |
909 | MSM_PIN_FUNCTION(mdc), |
910 | MSM_PIN_FUNCTION(mdio), |
911 | MSM_PIN_FUNCTION(pcie0_clk), |
912 | MSM_PIN_FUNCTION(pcie0_rst), |
913 | MSM_PIN_FUNCTION(pcie0_wake), |
914 | MSM_PIN_FUNCTION(prng_rosc), |
915 | MSM_PIN_FUNCTION(pta1_0), |
916 | MSM_PIN_FUNCTION(pta1_1), |
917 | MSM_PIN_FUNCTION(pta1_2), |
918 | MSM_PIN_FUNCTION(pta2_0), |
919 | MSM_PIN_FUNCTION(pta2_1), |
920 | MSM_PIN_FUNCTION(pta2_2), |
921 | MSM_PIN_FUNCTION(pwm00), |
922 | MSM_PIN_FUNCTION(pwm01), |
923 | MSM_PIN_FUNCTION(pwm02), |
924 | MSM_PIN_FUNCTION(pwm03), |
925 | MSM_PIN_FUNCTION(pwm04), |
926 | MSM_PIN_FUNCTION(pwm10), |
927 | MSM_PIN_FUNCTION(pwm11), |
928 | MSM_PIN_FUNCTION(pwm12), |
929 | MSM_PIN_FUNCTION(pwm13), |
930 | MSM_PIN_FUNCTION(pwm14), |
931 | MSM_PIN_FUNCTION(pwm20), |
932 | MSM_PIN_FUNCTION(pwm21), |
933 | MSM_PIN_FUNCTION(pwm22), |
934 | MSM_PIN_FUNCTION(pwm23), |
935 | MSM_PIN_FUNCTION(pwm24), |
936 | MSM_PIN_FUNCTION(pwm30), |
937 | MSM_PIN_FUNCTION(pwm31), |
938 | MSM_PIN_FUNCTION(pwm32), |
939 | MSM_PIN_FUNCTION(pwm33), |
940 | MSM_PIN_FUNCTION(qdss_cti_trig_in_a0), |
941 | MSM_PIN_FUNCTION(qdss_cti_trig_in_a1), |
942 | MSM_PIN_FUNCTION(qdss_cti_trig_out_a0), |
943 | MSM_PIN_FUNCTION(qdss_cti_trig_out_a1), |
944 | MSM_PIN_FUNCTION(qdss_cti_trig_in_b0), |
945 | MSM_PIN_FUNCTION(qdss_cti_trig_in_b1), |
946 | MSM_PIN_FUNCTION(qdss_cti_trig_out_b0), |
947 | MSM_PIN_FUNCTION(qdss_cti_trig_out_b1), |
948 | MSM_PIN_FUNCTION(qdss_traceclk_a), |
949 | MSM_PIN_FUNCTION(qdss_tracectl_a), |
950 | MSM_PIN_FUNCTION(qdss_tracedata_a), |
951 | MSM_PIN_FUNCTION(qdss_traceclk_b), |
952 | MSM_PIN_FUNCTION(qdss_tracectl_b), |
953 | MSM_PIN_FUNCTION(qdss_tracedata_b), |
954 | MSM_PIN_FUNCTION(qpic_pad), |
955 | MSM_PIN_FUNCTION(rx0), |
956 | MSM_PIN_FUNCTION(rx1), |
957 | MSM_PIN_FUNCTION(rx_swrm), |
958 | MSM_PIN_FUNCTION(rx_swrm0), |
959 | MSM_PIN_FUNCTION(rx_swrm1), |
960 | MSM_PIN_FUNCTION(sd_card), |
961 | MSM_PIN_FUNCTION(sd_write), |
962 | MSM_PIN_FUNCTION(tsens_max), |
963 | MSM_PIN_FUNCTION(tx_swrm), |
964 | MSM_PIN_FUNCTION(tx_swrm0), |
965 | MSM_PIN_FUNCTION(tx_swrm1), |
966 | MSM_PIN_FUNCTION(tx_swrm2), |
967 | MSM_PIN_FUNCTION(wci20), |
968 | MSM_PIN_FUNCTION(wci21), |
969 | MSM_PIN_FUNCTION(wci22), |
970 | MSM_PIN_FUNCTION(wci23), |
971 | MSM_PIN_FUNCTION(wsa_swrm), |
972 | }; |
973 | |
974 | static const struct msm_pingroup ipq6018_groups[] = { |
975 | PINGROUP(0, qpic_pad, wci20, qdss_traceclk_b, _, burn0, _, _, _, _), |
976 | PINGROUP(1, qpic_pad, mac12, qdss_tracectl_b, _, burn1, _, _, _, _), |
977 | PINGROUP(2, qpic_pad, wci20, qdss_tracedata_b, _, _, _, _, _, _), |
978 | PINGROUP(3, qpic_pad, mac01, qdss_tracedata_b, _, _, _, _, _, _), |
979 | PINGROUP(4, qpic_pad, mac01, qdss_tracedata_b, _, _, _, _, _, _), |
980 | PINGROUP(5, qpic_pad, mac21, qdss_tracedata_b, _, _, _, _, _, _), |
981 | PINGROUP(6, qpic_pad, mac21, qdss_tracedata_b, _, _, _, _, _, _), |
982 | PINGROUP(7, qpic_pad, qdss_tracedata_b, _, _, _, _, _, _, _), |
983 | PINGROUP(8, qpic_pad, qdss_tracedata_b, _, _, _, _, _, _, _), |
984 | PINGROUP(9, qpic_pad, atest_char, cxc0, mac13, dbg_out, qdss_tracedata_b, _, _, _), |
985 | PINGROUP(10, qpic_pad, qdss_tracedata_b, _, _, _, _, _, _, _), |
986 | PINGROUP(11, qpic_pad, wci22, mac12, qdss_tracedata_b, _, _, _, _, _), |
987 | PINGROUP(12, qpic_pad, qdss_tracedata_b, _, _, _, _, _, _, _), |
988 | PINGROUP(13, qpic_pad, qdss_tracedata_b, _, _, _, _, _, _, _), |
989 | PINGROUP(14, qpic_pad, qdss_tracedata_b, _, _, _, _, _, _, _), |
990 | PINGROUP(15, qpic_pad, qdss_tracedata_b, _, _, _, _, _, _, _), |
991 | PINGROUP(16, qpic_pad, cxc0, mac13, qdss_tracedata_b, _, _, _, _, _), |
992 | PINGROUP(17, qpic_pad, qdss_tracedata_b, wci22, _, _, _, _, _, _), |
993 | PINGROUP(18, pwm00, atest_char0, wci23, mac11, _, _, _, _, _), |
994 | PINGROUP(19, pwm10, atest_char1, wci23, mac11, _, _, _, _, _), |
995 | PINGROUP(20, pwm20, atest_char2, _, _, _, _, _, _, _), |
996 | PINGROUP(21, pwm30, atest_char3, _, _, _, _, _, _, _), |
997 | PINGROUP(22, audio_txmclk, audio_txmclkin, pwm02, tx_swrm0, _, qdss_cti_trig_out_b0, _, _, _), |
998 | PINGROUP(23, audio_txbclk, pwm12, wsa_swrm, tx_swrm1, _, qdss_cti_trig_in_b0, _, _, _), |
999 | PINGROUP(24, audio_txfsync, pwm22, wsa_swrm, tx_swrm2, _, qdss_cti_trig_out_b1, _, _, _), |
1000 | PINGROUP(25, audio0, pwm32, tx_swrm, _, qdss_cti_trig_in_b1, _, _, _, _), |
1001 | PINGROUP(26, audio1, pwm04, _, _, _, _, _, _, _), |
1002 | PINGROUP(27, audio2, pwm14, _, _, _, _, _, _, _), |
1003 | PINGROUP(28, audio3, pwm24, _, _, _, _, _, _, _), |
1004 | PINGROUP(29, audio_rxmclk, audio_rxmclkin, pwm03, lpass_pdm, lpass_aud, qdss_cti_trig_in_a1, _, _, _), |
1005 | PINGROUP(30, audio_rxbclk, pwm13, lpass_pdm, lpass_aud0, rx_swrm, _, qdss_cti_trig_out_a1, _, _), |
1006 | PINGROUP(31, audio_rxfsync, pwm23, lpass_pdm, lpass_aud1, rx_swrm0, _, qdss_cti_trig_in_a0, _, _), |
1007 | PINGROUP(32, audio0, pwm33, lpass_pdm, lpass_aud2, rx_swrm1, _, qdss_cti_trig_out_a0, _, _), |
1008 | PINGROUP(33, audio1, _, _, _, _, _, _, _, _), |
1009 | PINGROUP(34, lpass_pcm, mac10, mac00, _, _, _, _, _, _), |
1010 | PINGROUP(35, lpass_pcm, mac10, mac00, _, _, _, _, _, _), |
1011 | PINGROUP(36, lpass_pcm, mac20, _, _, _, _, _, _, _), |
1012 | PINGROUP(37, lpass_pcm, mac20, _, _, _, _, _, _, _), |
1013 | PINGROUP(38, blsp0_uart, blsp0_i2c, blsp0_spi, _, _, _, _, _, _), |
1014 | PINGROUP(39, blsp0_uart, blsp0_i2c, blsp0_spi, _, _, _, _, _, _), |
1015 | PINGROUP(40, blsp0_uart, blsp0_spi, _, _, _, _, _, _, _), |
1016 | PINGROUP(41, blsp0_uart, blsp0_spi, _, _, _, _, _, _, _), |
1017 | PINGROUP(42, blsp2_uart, blsp2_i2c, blsp2_spi, _, _, _, _, _, _), |
1018 | PINGROUP(43, blsp2_uart, blsp2_i2c, blsp2_spi, _, _, _, _, _, _), |
1019 | PINGROUP(44, blsp2_uart, blsp2_spi, _, _, _, _, _, _, _), |
1020 | PINGROUP(45, blsp2_uart, blsp2_spi, _, _, _, _, _, _, _), |
1021 | PINGROUP(46, blsp5_i2c, _, _, _, _, _, _, _, _), |
1022 | PINGROUP(47, blsp5_i2c, _, _, _, _, _, _, _, _), |
1023 | PINGROUP(48, blsp5_uart, _, qdss_traceclk_a, _, _, _, _, _, _), |
1024 | PINGROUP(49, blsp5_uart, _, qdss_tracectl_a, _, _, _, _, _, _), |
1025 | PINGROUP(50, pwm01, _, _, _, _, _, _, _, _), |
1026 | PINGROUP(51, pta1_1, pwm11, _, rx1, _, _, _, _, _), |
1027 | PINGROUP(52, pta1_2, pwm21, _, _, _, _, _, _, _), |
1028 | PINGROUP(53, pta1_0, pwm31, prng_rosc, _, _, _, _, _, _), |
1029 | PINGROUP(54, _, _, _, _, _, _, _, _, _), |
1030 | PINGROUP(55, blsp4_uart, blsp4_i2c, blsp4_spi, _, _, _, _, _, _), |
1031 | PINGROUP(56, blsp4_uart, blsp4_i2c, blsp4_spi, _, _, _, _, _, _), |
1032 | PINGROUP(57, blsp4_uart, blsp4_spi, _, _, _, _, _, _, _), |
1033 | PINGROUP(58, blsp4_uart, blsp4_spi, _, _, _, _, _, _, _), |
1034 | PINGROUP(59, pcie0_clk, _, _, cri_trng0, _, _, _, _, _), |
1035 | PINGROUP(60, pcie0_rst, _, _, cri_trng1, _, _, _, _, _), |
1036 | PINGROUP(61, pcie0_wake, _, _, cri_trng, _, _, _, _, _), |
1037 | PINGROUP(62, sd_card, _, _, _, _, _, _, _, _), |
1038 | PINGROUP(63, sd_write, rx0, _, tsens_max, _, _, _, _, _), |
1039 | PINGROUP(64, mdc, _, qdss_tracedata_a, _, _, _, _, _, _), |
1040 | PINGROUP(65, mdio, _, qdss_tracedata_a, _, _, _, _, _, _), |
1041 | PINGROUP(66, pta2_0, wci21, cxc1, qdss_tracedata_a, _, _, _, _, _), |
1042 | PINGROUP(67, pta2_1, qdss_tracedata_a, _, _, _, _, _, _, _), |
1043 | PINGROUP(68, pta2_2, wci21, cxc1, qdss_tracedata_a, _, _, _, _, _), |
1044 | PINGROUP(69, blsp1_uart, blsp1_i2c, blsp1_spi, gcc_plltest, qdss_tracedata_a, _, _, _, _), |
1045 | PINGROUP(70, blsp1_uart, blsp1_i2c, blsp1_spi, gcc_tlmm, qdss_tracedata_a, _, _, _, _), |
1046 | PINGROUP(71, blsp1_uart, blsp1_spi, gcc_plltest, qdss_tracedata_a, _, _, _, _, _), |
1047 | PINGROUP(72, blsp1_uart, blsp1_spi, qdss_tracedata_a, _, _, _, _, _, _), |
1048 | PINGROUP(73, blsp3_uart, blsp3_i2c, blsp3_spi, _, qdss_tracedata_a, _, _, _, _), |
1049 | PINGROUP(74, blsp3_uart, blsp3_i2c, blsp3_spi, _, qdss_tracedata_a, _, _, _, _), |
1050 | PINGROUP(75, blsp3_uart, blsp3_spi, _, qdss_tracedata_a, _, _, _, _, _), |
1051 | PINGROUP(76, blsp3_uart, blsp3_spi, _, qdss_tracedata_a, _, _, _, _, _), |
1052 | PINGROUP(77, blsp3_spi, _, qdss_tracedata_a, _, _, _, _, _, _), |
1053 | PINGROUP(78, blsp3_spi, _, qdss_tracedata_a, _, _, _, _, _, _), |
1054 | PINGROUP(79, blsp3_spi, _, qdss_tracedata_a, _, _, _, _, _, _), |
1055 | }; |
1056 | |
1057 | static const struct msm_pinctrl_soc_data ipq6018_pinctrl = { |
1058 | .pins = ipq6018_pins, |
1059 | .npins = ARRAY_SIZE(ipq6018_pins), |
1060 | .functions = ipq6018_functions, |
1061 | .nfunctions = ARRAY_SIZE(ipq6018_functions), |
1062 | .groups = ipq6018_groups, |
1063 | .ngroups = ARRAY_SIZE(ipq6018_groups), |
1064 | .ngpios = 80, |
1065 | }; |
1066 | |
1067 | static int ipq6018_pinctrl_probe(struct platform_device *pdev) |
1068 | { |
1069 | return msm_pinctrl_probe(pdev, soc_data: &ipq6018_pinctrl); |
1070 | } |
1071 | |
1072 | static const struct of_device_id ipq6018_pinctrl_of_match[] = { |
1073 | { .compatible = "qcom,ipq6018-pinctrl" , }, |
1074 | { }, |
1075 | }; |
1076 | |
1077 | static struct platform_driver ipq6018_pinctrl_driver = { |
1078 | .driver = { |
1079 | .name = "ipq6018-pinctrl" , |
1080 | .of_match_table = ipq6018_pinctrl_of_match, |
1081 | }, |
1082 | .probe = ipq6018_pinctrl_probe, |
1083 | .remove_new = msm_pinctrl_remove, |
1084 | }; |
1085 | |
1086 | static int __init ipq6018_pinctrl_init(void) |
1087 | { |
1088 | return platform_driver_register(&ipq6018_pinctrl_driver); |
1089 | } |
1090 | arch_initcall(ipq6018_pinctrl_init); |
1091 | |
1092 | static void __exit ipq6018_pinctrl_exit(void) |
1093 | { |
1094 | platform_driver_unregister(&ipq6018_pinctrl_driver); |
1095 | } |
1096 | module_exit(ipq6018_pinctrl_exit); |
1097 | |
1098 | MODULE_DESCRIPTION("QTI ipq6018 pinctrl driver" ); |
1099 | MODULE_LICENSE("GPL v2" ); |
1100 | MODULE_DEVICE_TABLE(of, ipq6018_pinctrl_of_match); |
1101 | |