1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Exynos5410 SoC pin-mux and pin-config device tree source
4 *
5 * Copyright (c) 2013 Hardkernel Co., Ltd.
6 *              https://www.hardkernel.com
7 */
8
9#include "exynos-pinctrl.h"
10
11&pinctrl_0 {
12	gpa0: gpa0-gpio-bank {
13		gpio-controller;
14		#gpio-cells = <2>;
15
16		interrupt-controller;
17		#interrupt-cells = <2>;
18	};
19
20	gpa1: gpa1-gpio-bank {
21		gpio-controller;
22		#gpio-cells = <2>;
23
24		interrupt-controller;
25		#interrupt-cells = <2>;
26	};
27
28	gpa2: gpa2-gpio-bank {
29		gpio-controller;
30		#gpio-cells = <2>;
31
32		interrupt-controller;
33		#interrupt-cells = <2>;
34	};
35
36	gpb0: gpb0-gpio-bank {
37		gpio-controller;
38		#gpio-cells = <2>;
39
40		interrupt-controller;
41		#interrupt-cells = <2>;
42	};
43
44	gpb1: gpb1-gpio-bank {
45		gpio-controller;
46		#gpio-cells = <2>;
47
48		interrupt-controller;
49		#interrupt-cells = <2>;
50	};
51
52	gpb2: gpb2-gpio-bank {
53		gpio-controller;
54		#gpio-cells = <2>;
55
56		interrupt-controller;
57		#interrupt-cells = <2>;
58	};
59
60	gpb3: gpb3-gpio-bank {
61		gpio-controller;
62		#gpio-cells = <2>;
63
64		interrupt-controller;
65		#interrupt-cells = <2>;
66	};
67
68	gpc0: gpc0-gpio-bank {
69		gpio-controller;
70		#gpio-cells = <2>;
71
72		interrupt-controller;
73		#interrupt-cells = <2>;
74	};
75
76	gpc3: gpc3-gpio-bank {
77		gpio-controller;
78		#gpio-cells = <2>;
79
80		interrupt-controller;
81		#interrupt-cells = <2>;
82	};
83
84	gpc1: gpc1-gpio-bank {
85		gpio-controller;
86		#gpio-cells = <2>;
87
88		interrupt-controller;
89		#interrupt-cells = <2>;
90	};
91
92	gpc2: gpc2-gpio-bank {
93		gpio-controller;
94		#gpio-cells = <2>;
95
96		interrupt-controller;
97		#interrupt-cells = <2>;
98	};
99
100	gpm5: gpm5-gpio-bank {
101		gpio-controller;
102		#gpio-cells = <2>;
103	};
104
105	gpd1: gpd1-gpio-bank {
106		gpio-controller;
107		#gpio-cells = <2>;
108
109		interrupt-controller;
110		#interrupt-cells = <2>;
111	};
112
113	gpe0: gpe0-gpio-bank {
114		gpio-controller;
115		#gpio-cells = <2>;
116
117		interrupt-controller;
118		#interrupt-cells = <2>;
119	};
120
121	gpe1: gpe1-gpio-bank {
122		gpio-controller;
123		#gpio-cells = <2>;
124
125		interrupt-controller;
126		#interrupt-cells = <2>;
127	};
128
129	gpf0: gpf0-gpio-bank {
130		gpio-controller;
131		#gpio-cells = <2>;
132
133		interrupt-controller;
134		#interrupt-cells = <2>;
135	};
136
137	gpf1: gpf1-gpio-bank {
138		gpio-controller;
139		#gpio-cells = <2>;
140
141		interrupt-controller;
142		#interrupt-cells = <2>;
143	};
144
145	gpg0: gpg0-gpio-bank {
146		gpio-controller;
147		#gpio-cells = <2>;
148
149		interrupt-controller;
150		#interrupt-cells = <2>;
151	};
152
153	gpg1: gpg1-gpio-bank {
154		gpio-controller;
155		#gpio-cells = <2>;
156
157		interrupt-controller;
158		#interrupt-cells = <2>;
159	};
160
161	gpg2: gpg2-gpio-bank {
162		gpio-controller;
163		#gpio-cells = <2>;
164
165		interrupt-controller;
166		#interrupt-cells = <2>;
167	};
168
169	gph0: gph0-gpio-bank {
170		gpio-controller;
171		#gpio-cells = <2>;
172
173		interrupt-controller;
174		#interrupt-cells = <2>;
175	};
176
177	gph1: gph1-gpio-bank {
178		gpio-controller;
179		#gpio-cells = <2>;
180
181		interrupt-controller;
182		#interrupt-cells = <2>;
183	};
184
185	gpm7: gpm7-gpio-bank {
186		gpio-controller;
187		#gpio-cells = <2>;
188	};
189
190	gpy0: gpy0-gpio-bank {
191		gpio-controller;
192		#gpio-cells = <2>;
193	};
194
195	gpy1: gpy1-gpio-bank {
196		gpio-controller;
197		#gpio-cells = <2>;
198	};
199
200	gpy2: gpy2-gpio-bank {
201		gpio-controller;
202		#gpio-cells = <2>;
203	};
204
205	gpy3: gpy3-gpio-bank {
206		gpio-controller;
207		#gpio-cells = <2>;
208	};
209
210	gpy4: gpy4-gpio-bank {
211		gpio-controller;
212		#gpio-cells = <2>;
213	};
214
215	gpy5: gpy5-gpio-bank {
216		gpio-controller;
217		#gpio-cells = <2>;
218	};
219
220	gpy6: gpy6-gpio-bank {
221		gpio-controller;
222		#gpio-cells = <2>;
223	};
224
225	gpy7: gpy7-gpio-bank {
226		gpio-controller;
227		#gpio-cells = <2>;
228	};
229
230	gpx0: gpx0-gpio-bank {
231		gpio-controller;
232		#gpio-cells = <2>;
233
234		interrupt-controller;
235		interrupt-parent = <&combiner>;
236		#interrupt-cells = <2>;
237		interrupts = <23 0>,
238			     <24 0>,
239			     <25 0>,
240			     <25 1>,
241			     <26 0>,
242			     <26 1>,
243			     <27 0>,
244			     <27 1>;
245	};
246
247	gpx1: gpx1-gpio-bank {
248		gpio-controller;
249		#gpio-cells = <2>;
250
251		interrupt-controller;
252		interrupt-parent = <&combiner>;
253		#interrupt-cells = <2>;
254		interrupts = <28 0>,
255			     <28 1>,
256			     <29 0>,
257			     <29 1>,
258			     <30 0>,
259			     <30 1>,
260			     <31 0>,
261			     <31 1>;
262	};
263
264	gpx2: gpx2-gpio-bank {
265		gpio-controller;
266		#gpio-cells = <2>;
267
268		interrupt-controller;
269		#interrupt-cells = <2>;
270	};
271
272	gpx3: gpx3-gpio-bank {
273		gpio-controller;
274		#gpio-cells = <2>;
275
276		interrupt-controller;
277		#interrupt-cells = <2>;
278	};
279
280	uart0_data: uart0-data-pins {
281		samsung,pins = "gpa0-0", "gpa0-1";
282		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
283		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
284		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
285	};
286
287	uart0_fctl: uart0-fctl-pins {
288		samsung,pins = "gpa0-2", "gpa0-3";
289		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
290		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
291		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
292	};
293
294	uart1_data: uart1-data-pins {
295		samsung,pins = "gpa0-4", "gpa0-5";
296		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
297		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
298		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
299	};
300
301	uart1_fctl: uart1-fctl-pins {
302		samsung,pins = "gpa0-6", "gpa0-7";
303		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
304		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
305		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
306	};
307
308	i2c2_bus: i2c2-bus-pins {
309		samsung,pins = "gpa0-6", "gpa0-7";
310		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
311		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
312		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
313	};
314
315	uart2_data: uart2-data-pins {
316		samsung,pins = "gpa1-0", "gpa1-1";
317		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
318		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
319		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
320	};
321
322	uart2_fctl: uart2-fctl-pins {
323		samsung,pins = "gpa1-2", "gpa1-3";
324		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
325		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
326		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
327	};
328
329	i2c3_bus: i2c3-bus-pins {
330		samsung,pins = "gpa1-2", "gpa1-3";
331		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
332		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
333		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
334	};
335
336	uart3_data: uart3-data-pins {
337		samsung,pins = "gpa1-4", "gpa1-5";
338		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
339		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
340		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
341	};
342
343	i2c4_hs_bus: i2c4-hs-bus-pins {
344		samsung,pins = "gpa2-0", "gpa2-1";
345		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
346		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
347		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
348	};
349
350	i2c5_hs_bus: i2c5-hs-bus-pins {
351		samsung,pins = "gpa2-2", "gpa2-3";
352		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
353		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
354		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
355	};
356
357	i2c6_hs_bus: i2c6-hs-bus-pins {
358		samsung,pins = "gpb1-3", "gpb1-4";
359		samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
360		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
361		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
362	};
363
364	pwm0_out: pwm0-out-pins {
365		samsung,pins = "gpb2-0";
366		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
367		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
368		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
369	};
370
371	pwm1_out: pwm1-out-pins {
372		samsung,pins = "gpb2-1";
373		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
374		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
375		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
376	};
377
378	pwm2_out: pwm2-out-pins {
379		samsung,pins = "gpb2-2";
380		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
381		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
382		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
383	};
384
385	pwm3_out: pwm3-out-pins {
386		samsung,pins = "gpb2-3";
387		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
388		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
389		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
390	};
391
392	i2c7_hs_bus: i2c7-hs-bus-pins {
393		samsung,pins = "gpb2-2", "gpb2-3";
394		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
395		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
396		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
397	};
398
399	i2c0_bus: i2c0-bus-pins {
400		samsung,pins = "gpb3-0", "gpb3-1";
401		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
402		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
403		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
404	};
405
406	i2c1_bus: i2c1-bus-pins {
407		samsung,pins = "gpb3-2", "gpb3-3";
408		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
409		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
410		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
411	};
412
413	sd0_clk: sd0-clk-pins {
414		samsung,pins = "gpc0-0";
415		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
416		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
417		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
418	};
419
420	sd0_cmd: sd0-cmd-pins {
421		samsung,pins = "gpc0-1";
422		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
423		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
424		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
425	};
426
427	sd0_cd: sd0-cd-pins {
428		samsung,pins = "gpc0-2";
429		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
430		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
431		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
432	};
433
434	sd0_bus1: sd0-bus-width1-pins {
435		samsung,pins = "gpc0-3";
436		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
437		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
438		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
439	};
440
441	sd0_bus4: sd0-bus-width4-pins {
442		samsung,pins = "gpc0-4", "gpc0-5", "gpc0-6";
443		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
444		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
445		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
446	};
447
448	sd2_clk: sd2-clk-pins {
449		samsung,pins = "gpc2-0";
450		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
451		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
452		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
453	};
454
455	sd2_cmd: sd2-cmd-pins {
456		samsung,pins = "gpc2-1";
457		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
458		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
459		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
460	};
461
462	sd2_cd: sd2-cd-pins {
463		samsung,pins = "gpc2-2";
464		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
465		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
466		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
467	};
468
469	sd2_bus1: sd2-bus-width1-pins {
470		samsung,pins = "gpc2-3";
471		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
472		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
473		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
474	};
475
476	sd2_bus4: sd2-bus-width4-pins {
477		samsung,pins = "gpc2-4", "gpc2-5", "gpc2-6";
478		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
479		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
480		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
481	};
482
483	sd0_bus8: sd0-bus-width8-pins {
484		samsung,pins = "gpc3-0", "gpc3-1", "gpc3-2", "gpc3-3";
485		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
486		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
487		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
488	};
489};
490
491&pinctrl_1 {
492	gpj0: gpj0-gpio-bank {
493		gpio-controller;
494		#gpio-cells = <2>;
495
496		interrupt-controller;
497		#interrupt-cells = <2>;
498	};
499
500	gpj1: gpj1-gpio-bank {
501		gpio-controller;
502		#gpio-cells = <2>;
503
504		interrupt-controller;
505		#interrupt-cells = <2>;
506	};
507
508	gpj2: gpj2-gpio-bank {
509		gpio-controller;
510		#gpio-cells = <2>;
511
512		interrupt-controller;
513		#interrupt-cells = <2>;
514	};
515
516	gpj3: gpj3-gpio-bank {
517		gpio-controller;
518		#gpio-cells = <2>;
519
520		interrupt-controller;
521		#interrupt-cells = <2>;
522	};
523
524	gpj4: gpj4-gpio-bank {
525		gpio-controller;
526		#gpio-cells = <2>;
527
528		interrupt-controller;
529		#interrupt-cells = <2>;
530	};
531
532	gpk0: gpk0-gpio-bank {
533		gpio-controller;
534		#gpio-cells = <2>;
535
536		interrupt-controller;
537		#interrupt-cells = <2>;
538	};
539
540	gpk1: gpk1-gpio-bank {
541		gpio-controller;
542		#gpio-cells = <2>;
543
544		interrupt-controller;
545		#interrupt-cells = <2>;
546	};
547
548	gpk2: gpk2-gpio-bank {
549		gpio-controller;
550		#gpio-cells = <2>;
551
552		interrupt-controller;
553		#interrupt-cells = <2>;
554	};
555
556	gpk3: gpk3-gpio-bank {
557		gpio-controller;
558		#gpio-cells = <2>;
559
560		interrupt-controller;
561		#interrupt-cells = <2>;
562	};
563
564	usb3_1_oc: usb3-1-oc-pins {
565		samsung,pins = "gpk2-4", "gpk2-5";
566		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
567		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
568		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
569	};
570
571	usb3_1_vbusctrl: usb3-1-vbusctrl-pins {
572		samsung,pins = "gpk2-6", "gpk2-7";
573		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
574		samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
575		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
576	};
577
578	usb3_0_oc: usb3-0-oc-pins {
579		samsung,pins = "gpk3-0", "gpk3-1";
580		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
581		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
582		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
583	};
584
585	usb3_0_vbusctrl: usb3-0-vbusctrl-pins {
586		samsung,pins = "gpk3-2", "gpk3-3";
587		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
588		samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
589		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
590	};
591};
592
593&pinctrl_2 {
594	gpv0: gpv0-gpio-bank {
595		gpio-controller;
596		#gpio-cells = <2>;
597
598		interrupt-controller;
599		#interrupt-cells = <2>;
600	};
601
602	gpv1: gpv1-gpio-bank {
603		gpio-controller;
604		#gpio-cells = <2>;
605
606		interrupt-controller;
607		#interrupt-cells = <2>;
608	};
609
610	gpv2: gpv2-gpio-bank {
611		gpio-controller;
612		#gpio-cells = <2>;
613
614		interrupt-controller;
615		#interrupt-cells = <2>;
616	};
617
618	gpv3: gpv3-gpio-bank {
619		gpio-controller;
620		#gpio-cells = <2>;
621
622		interrupt-controller;
623		#interrupt-cells = <2>;
624	};
625
626	gpv4: gpv4-gpio-bank {
627		gpio-controller;
628		#gpio-cells = <2>;
629
630		interrupt-controller;
631		#interrupt-cells = <2>;
632	};
633};
634
635&pinctrl_3 {
636	gpz: gpz-gpio-bank {
637		gpio-controller;
638		#gpio-cells = <2>;
639
640		interrupt-controller;
641		#interrupt-cells = <2>;
642	};
643
644	audi2s0_bus: audi2s0-bus-pins {
645		samsung,pins = "gpz-0", "gpz-1", "gpz-2", "gpz-3",
646				"gpz-4";
647		samsung,pin-function = <2>;
648		samsung,pin-pud = <0>;
649		samsung,pin-drv = <0>;
650	};
651
652};
653