1/*
2 * Samsung's S3C64xx SoC series common device tree source
3 * - pin control-related definitions
4 *
5 * Copyright (c) 2013 Tomasz Figa <tomasz.figa@gmail.com>
6 *
7 * Samsung's S3C64xx SoCs pin banks, pin-mux and pin-config options are
8 * listed as device tree nodes in this file.
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License version 2 as
12 * published by the Free Software Foundation.
13 */
14
15#define PIN_PULL_NONE	0
16#define PIN_PULL_DOWN	1
17#define PIN_PULL_UP	2
18
19&pinctrl0 {
20	/*
21	 * Pin banks
22	 */
23
24	gpa: gpa {
25		gpio-controller;
26		#gpio-cells = <2>;
27		interrupt-controller;
28		#interrupt-cells = <2>;
29	};
30
31	gpb: gpb {
32		gpio-controller;
33		#gpio-cells = <2>;
34		interrupt-controller;
35		#interrupt-cells = <2>;
36	};
37
38	gpc: gpc {
39		gpio-controller;
40		#gpio-cells = <2>;
41		interrupt-controller;
42		#interrupt-cells = <2>;
43	};
44
45	gpd: gpd {
46		gpio-controller;
47		#gpio-cells = <2>;
48		interrupt-controller;
49		#interrupt-cells = <2>;
50	};
51
52	gpe: gpe {
53		gpio-controller;
54		#gpio-cells = <2>;
55	};
56
57	gpf: gpf {
58		gpio-controller;
59		#gpio-cells = <2>;
60		interrupt-controller;
61		#interrupt-cells = <2>;
62	};
63
64	gpg: gpg {
65		gpio-controller;
66		#gpio-cells = <2>;
67		interrupt-controller;
68		#interrupt-cells = <2>;
69	};
70
71	gph: gph {
72		gpio-controller;
73		#gpio-cells = <2>;
74		interrupt-controller;
75		#interrupt-cells = <2>;
76	};
77
78	gpi: gpi {
79		gpio-controller;
80		#gpio-cells = <2>;
81	};
82
83	gpj: gpj {
84		gpio-controller;
85		#gpio-cells = <2>;
86	};
87
88	gpk: gpk {
89		gpio-controller;
90		#gpio-cells = <2>;
91	};
92
93	gpl: gpl {
94		gpio-controller;
95		#gpio-cells = <2>;
96		interrupt-controller;
97		#interrupt-cells = <2>;
98	};
99
100	gpm: gpm {
101		gpio-controller;
102		#gpio-cells = <2>;
103		interrupt-controller;
104		#interrupt-cells = <2>;
105	};
106
107	gpn: gpn {
108		gpio-controller;
109		#gpio-cells = <2>;
110		interrupt-controller;
111		#interrupt-cells = <2>;
112	};
113
114	gpo: gpo {
115		gpio-controller;
116		#gpio-cells = <2>;
117		interrupt-controller;
118		#interrupt-cells = <2>;
119	};
120
121	gpp: gpp {
122		gpio-controller;
123		#gpio-cells = <2>;
124		interrupt-controller;
125		#interrupt-cells = <2>;
126	};
127
128	gpq: gpq {
129		gpio-controller;
130		#gpio-cells = <2>;
131		interrupt-controller;
132		#interrupt-cells = <2>;
133	};
134
135	/*
136	 * Pin groups
137	 */
138
139	uart0_data: uart0-data {
140		samsung,pins = "gpa-0", "gpa-1";
141		samsung,pin-function = <2>;
142		samsung,pin-pud = <PIN_PULL_NONE>;
143	};
144
145	uart0_fctl: uart0-fctl {
146		samsung,pins = "gpa-2", "gpa-3";
147		samsung,pin-function = <2>;
148		samsung,pin-pud = <PIN_PULL_NONE>;
149	};
150
151	uart1_data: uart1-data {
152		samsung,pins = "gpa-4", "gpa-5";
153		samsung,pin-function = <2>;
154		samsung,pin-pud = <PIN_PULL_NONE>;
155	};
156
157	uart1_fctl: uart1-fctl {
158		samsung,pins = "gpa-6", "gpa-7";
159		samsung,pin-function = <2>;
160		samsung,pin-pud = <PIN_PULL_NONE>;
161	};
162
163	uart2_data: uart2-data {
164		samsung,pins = "gpb-0", "gpb-1";
165		samsung,pin-function = <2>;
166		samsung,pin-pud = <PIN_PULL_NONE>;
167	};
168
169	uart3_data: uart3-data {
170		samsung,pins = "gpb-2", "gpb-3";
171		samsung,pin-function = <2>;
172		samsung,pin-pud = <PIN_PULL_NONE>;
173	};
174
175	ext_dma_0: ext-dma-0 {
176		samsung,pins = "gpb-0", "gpb-1";
177		samsung,pin-function = <3>;
178		samsung,pin-pud = <PIN_PULL_NONE>;
179	};
180
181	ext_dma_1: ext-dma-1 {
182		samsung,pins = "gpb-2", "gpb-3";
183		samsung,pin-function = <4>;
184		samsung,pin-pud = <PIN_PULL_NONE>;
185	};
186
187	irda_data_0: irda-data-0 {
188		samsung,pins = "gpb-0", "gpb-1";
189		samsung,pin-function = <4>;
190		samsung,pin-pud = <PIN_PULL_NONE>;
191	};
192
193	irda_data_1: irda-data-1 {
194		samsung,pins = "gpb-2", "gpb-3";
195		samsung,pin-function = <3>;
196		samsung,pin-pud = <PIN_PULL_NONE>;
197	};
198
199	irda_sdbw: irda-sdbw {
200		samsung,pins = "gpb-4";
201		samsung,pin-function = <2>;
202		samsung,pin-pud = <PIN_PULL_NONE>;
203	};
204
205	i2c0_bus: i2c0-bus {
206		samsung,pins = "gpb-5", "gpb-6";
207		samsung,pin-function = <2>;
208		samsung,pin-pud = <PIN_PULL_UP>;
209	};
210
211	i2c1_bus: i2c1-bus {
212		/* S3C6410-only */
213		samsung,pins = "gpb-2", "gpb-3";
214		samsung,pin-function = <6>;
215		samsung,pin-pud = <PIN_PULL_UP>;
216	};
217
218	spi0_bus: spi0-bus {
219		samsung,pins = "gpc-0", "gpc-1", "gpc-2";
220		samsung,pin-function = <2>;
221		samsung,pin-pud = <PIN_PULL_UP>;
222	};
223
224	spi0_cs: spi0-cs {
225		samsung,pins = "gpc-3";
226		samsung,pin-function = <2>;
227		samsung,pin-pud = <PIN_PULL_NONE>;
228	};
229
230	spi1_bus: spi1-bus {
231		samsung,pins = "gpc-4", "gpc-5", "gpc-6";
232		samsung,pin-function = <2>;
233		samsung,pin-pud = <PIN_PULL_UP>;
234	};
235
236	spi1_cs: spi1-cs {
237		samsung,pins = "gpc-7";
238		samsung,pin-function = <2>;
239		samsung,pin-pud = <PIN_PULL_NONE>;
240	};
241
242	sd0_cmd: sd0-cmd {
243		samsung,pins = "gpg-1";
244		samsung,pin-function = <2>;
245		samsung,pin-pud = <PIN_PULL_NONE>;
246	};
247
248	sd0_clk: sd0-clk {
249		samsung,pins = "gpg-0";
250		samsung,pin-function = <2>;
251		samsung,pin-pud = <PIN_PULL_NONE>;
252	};
253
254	sd0_bus1: sd0-bus1 {
255		samsung,pins = "gpg-2";
256		samsung,pin-function = <2>;
257		samsung,pin-pud = <PIN_PULL_NONE>;
258	};
259
260	sd0_bus4: sd0-bus4 {
261		samsung,pins = "gpg-2", "gpg-3", "gpg-4", "gpg-5";
262		samsung,pin-function = <2>;
263		samsung,pin-pud = <PIN_PULL_NONE>;
264	};
265
266	sd0_cd: sd0-cd {
267		samsung,pins = "gpg-6";
268		samsung,pin-function = <2>;
269		samsung,pin-pud = <PIN_PULL_UP>;
270	};
271
272	sd1_cmd: sd1-cmd {
273		samsung,pins = "gph-1";
274		samsung,pin-function = <2>;
275		samsung,pin-pud = <PIN_PULL_NONE>;
276	};
277
278	sd1_clk: sd1-clk {
279		samsung,pins = "gph-0";
280		samsung,pin-function = <2>;
281		samsung,pin-pud = <PIN_PULL_NONE>;
282	};
283
284	sd1_bus1: sd1-bus1 {
285		samsung,pins = "gph-2";
286		samsung,pin-function = <2>;
287		samsung,pin-pud = <PIN_PULL_NONE>;
288	};
289
290	sd1_bus4: sd1-bus4 {
291		samsung,pins = "gph-2", "gph-3", "gph-4", "gph-5";
292		samsung,pin-function = <2>;
293		samsung,pin-pud = <PIN_PULL_NONE>;
294	};
295
296	sd1_bus8: sd1-bus8 {
297		samsung,pins = "gph-2", "gph-3", "gph-4", "gph-5",
298				"gph-6", "gph-7", "gph-8", "gph-9";
299		samsung,pin-function = <2>;
300		samsung,pin-pud = <PIN_PULL_NONE>;
301	};
302
303	sd1_cd: sd1-cd {
304		samsung,pins = "gpg-6";
305		samsung,pin-function = <3>;
306		samsung,pin-pud = <PIN_PULL_UP>;
307	};
308
309	sd2_cmd: sd2-cmd {
310		samsung,pins = "gpc-4";
311		samsung,pin-function = <3>;
312		samsung,pin-pud = <PIN_PULL_NONE>;
313	};
314
315	sd2_clk: sd2-clk {
316		samsung,pins = "gpc-5";
317		samsung,pin-function = <3>;
318		samsung,pin-pud = <PIN_PULL_NONE>;
319	};
320
321	sd2_bus1: sd2-bus1 {
322		samsung,pins = "gph-6";
323		samsung,pin-function = <3>;
324		samsung,pin-pud = <PIN_PULL_NONE>;
325	};
326
327	sd2_bus4: sd2-bus4 {
328		samsung,pins = "gph-6", "gph-7", "gph-8", "gph-9";
329		samsung,pin-function = <3>;
330		samsung,pin-pud = <PIN_PULL_NONE>;
331	};
332
333	i2s0_bus: i2s0-bus {
334		samsung,pins = "gpd-0", "gpd-2", "gpd-3", "gpd-4";
335		samsung,pin-function = <3>;
336		samsung,pin-pud = <PIN_PULL_NONE>;
337	};
338
339	i2s0_cdclk: i2s0-cdclk {
340		samsung,pins = "gpd-1";
341		samsung,pin-function = <3>;
342		samsung,pin-pud = <PIN_PULL_NONE>;
343	};
344
345	i2s1_bus: i2s1-bus {
346		samsung,pins = "gpe-0", "gpe-2", "gpe-3", "gpe-4";
347		samsung,pin-function = <3>;
348		samsung,pin-pud = <PIN_PULL_NONE>;
349	};
350
351	i2s1_cdclk: i2s1-cdclk {
352		samsung,pins = "gpe-1";
353		samsung,pin-function = <3>;
354		samsung,pin-pud = <PIN_PULL_NONE>;
355	};
356
357	i2s2_bus: i2s2-bus {
358		/* S3C6410-only */
359		samsung,pins = "gpc-4", "gpc-5", "gpc-6", "gph-6",
360				"gph-8", "gph-9";
361		samsung,pin-function = <5>;
362		samsung,pin-pud = <PIN_PULL_NONE>;
363	};
364
365	i2s2_cdclk: i2s2-cdclk {
366		/* S3C6410-only */
367		samsung,pins = "gph-7";
368		samsung,pin-function = <5>;
369		samsung,pin-pud = <PIN_PULL_NONE>;
370	};
371
372	pcm0_bus: pcm0-bus {
373		samsung,pins = "gpd-0", "gpd-2", "gpd-3", "gpd-4";
374		samsung,pin-function = <2>;
375		samsung,pin-pud = <PIN_PULL_NONE>;
376	};
377
378	pcm0_extclk: pcm0-extclk {
379		samsung,pins = "gpd-1";
380		samsung,pin-function = <2>;
381		samsung,pin-pud = <PIN_PULL_NONE>;
382	};
383
384	pcm1_bus: pcm1-bus {
385		samsung,pins = "gpe-0", "gpe-2", "gpe-3", "gpe-4";
386		samsung,pin-function = <2>;
387		samsung,pin-pud = <PIN_PULL_NONE>;
388	};
389
390	pcm1_extclk: pcm1-extclk {
391		samsung,pins = "gpe-1";
392		samsung,pin-function = <2>;
393		samsung,pin-pud = <PIN_PULL_NONE>;
394	};
395
396	ac97_bus_0: ac97-bus-0 {
397		samsung,pins = "gpd-0", "gpd-1", "gpd-2", "gpd-3", "gpd-4";
398		samsung,pin-function = <4>;
399		samsung,pin-pud = <PIN_PULL_NONE>;
400	};
401
402	ac97_bus_1: ac97-bus-1 {
403		samsung,pins = "gpe-0", "gpe-1", "gpe-2", "gpe-3", "gpe-4";
404		samsung,pin-function = <4>;
405		samsung,pin-pud = <PIN_PULL_NONE>;
406	};
407
408	cam_port: cam-port {
409		samsung,pins = "gpf-0", "gpf-1", "gpf-2", "gpf-4",
410				"gpf-5", "gpf-6", "gpf-7", "gpf-8",
411				"gpf-9", "gpf-10", "gpf-11", "gpf-12";
412		samsung,pin-function = <2>;
413		samsung,pin-pud = <PIN_PULL_NONE>;
414	};
415
416	cam_rst: cam-rst {
417		samsung,pins = "gpf-3";
418		samsung,pin-function = <2>;
419		samsung,pin-pud = <PIN_PULL_NONE>;
420	};
421
422	cam_field: cam-field {
423		/* S3C6410-only */
424		samsung,pins = "gpb-4";
425		samsung,pin-function = <3>;
426		samsung,pin-pud = <PIN_PULL_NONE>;
427	};
428
429	pwm_extclk: pwm-extclk {
430		samsung,pins = "gpf-13";
431		samsung,pin-function = <2>;
432		samsung,pin-pud = <PIN_PULL_NONE>;
433	};
434
435	pwm0_out: pwm0-out {
436		samsung,pins = "gpf-14";
437		samsung,pin-function = <2>;
438		samsung,pin-pud = <PIN_PULL_NONE>;
439	};
440
441	pwm1_out: pwm1-out {
442		samsung,pins = "gpf-15";
443		samsung,pin-function = <2>;
444		samsung,pin-pud = <PIN_PULL_NONE>;
445	};
446
447	clkout0: clkout-0 {
448		samsung,pins = "gpf-14";
449		samsung,pin-function = <3>;
450		samsung,pin-pud = <PIN_PULL_NONE>;
451	};
452
453	keypad_col0_0: keypad-col0-0 {
454		samsung,pins = "gph-0";
455		samsung,pin-function = <4>;
456		samsung,pin-pud = <PIN_PULL_NONE>;
457	};
458
459	keypad_col1_0: keypad-col1-0 {
460		samsung,pins = "gph-1";
461		samsung,pin-function = <4>;
462		samsung,pin-pud = <PIN_PULL_NONE>;
463	};
464
465	keypad_col2_0: keypad-col2-0 {
466		samsung,pins = "gph-2";
467		samsung,pin-function = <4>;
468		samsung,pin-pud = <PIN_PULL_NONE>;
469	};
470
471	keypad_col3_0: keypad-col3-0 {
472		samsung,pins = "gph-3";
473		samsung,pin-function = <4>;
474		samsung,pin-pud = <PIN_PULL_NONE>;
475	};
476
477	keypad_col4_0: keypad-col4-0 {
478		samsung,pins = "gph-4";
479		samsung,pin-function = <4>;
480		samsung,pin-pud = <PIN_PULL_NONE>;
481	};
482
483	keypad_col5_0: keypad-col5-0 {
484		samsung,pins = "gph-5";
485		samsung,pin-function = <4>;
486		samsung,pin-pud = <PIN_PULL_NONE>;
487	};
488
489	keypad_col6_0: keypad-col6-0 {
490		samsung,pins = "gph-6";
491		samsung,pin-function = <4>;
492		samsung,pin-pud = <PIN_PULL_NONE>;
493	};
494
495	keypad_col7_0: keypad-col7-0 {
496		samsung,pins = "gph-7";
497		samsung,pin-function = <4>;
498		samsung,pin-pud = <PIN_PULL_NONE>;
499	};
500
501	keypad_col0_1: keypad-col0-1 {
502		samsung,pins = "gpl-0";
503		samsung,pin-function = <3>;
504		samsung,pin-pud = <PIN_PULL_NONE>;
505	};
506
507	keypad_col1_1: keypad-col1-1 {
508		samsung,pins = "gpl-1";
509		samsung,pin-function = <3>;
510		samsung,pin-pud = <PIN_PULL_NONE>;
511	};
512
513	keypad_col2_1: keypad-col2-1 {
514		samsung,pins = "gpl-2";
515		samsung,pin-function = <3>;
516		samsung,pin-pud = <PIN_PULL_NONE>;
517	};
518
519	keypad_col3_1: keypad-col3-1 {
520		samsung,pins = "gpl-3";
521		samsung,pin-function = <3>;
522		samsung,pin-pud = <PIN_PULL_NONE>;
523	};
524
525	keypad_col4_1: keypad-col4-1 {
526		samsung,pins = "gpl-4";
527		samsung,pin-function = <3>;
528		samsung,pin-pud = <PIN_PULL_NONE>;
529	};
530
531	keypad_col5_1: keypad-col5-1 {
532		samsung,pins = "gpl-5";
533		samsung,pin-function = <3>;
534		samsung,pin-pud = <PIN_PULL_NONE>;
535	};
536
537	keypad_col6_1: keypad-col6-1 {
538		samsung,pins = "gpl-6";
539		samsung,pin-function = <3>;
540		samsung,pin-pud = <PIN_PULL_NONE>;
541	};
542
543	keypad_col7_1: keypad-col7-1 {
544		samsung,pins = "gpl-7";
545		samsung,pin-function = <3>;
546		samsung,pin-pud = <PIN_PULL_NONE>;
547	};
548
549	keypad_row0_0: keypad-row0-0 {
550		samsung,pins = "gpk-8";
551		samsung,pin-function = <3>;
552		samsung,pin-pud = <PIN_PULL_NONE>;
553	};
554
555	keypad_row1_0: keypad-row1-0 {
556		samsung,pins = "gpk-9";
557		samsung,pin-function = <3>;
558		samsung,pin-pud = <PIN_PULL_NONE>;
559	};
560
561	keypad_row2_0: keypad-row2-0 {
562		samsung,pins = "gpk-10";
563		samsung,pin-function = <3>;
564		samsung,pin-pud = <PIN_PULL_NONE>;
565	};
566
567	keypad_row3_0: keypad-row3-0 {
568		samsung,pins = "gpk-11";
569		samsung,pin-function = <3>;
570		samsung,pin-pud = <PIN_PULL_NONE>;
571	};
572
573	keypad_row4_0: keypad-row4-0 {
574		samsung,pins = "gpk-12";
575		samsung,pin-function = <3>;
576		samsung,pin-pud = <PIN_PULL_NONE>;
577	};
578
579	keypad_row5_0: keypad-row5-0 {
580		samsung,pins = "gpk-13";
581		samsung,pin-function = <3>;
582		samsung,pin-pud = <PIN_PULL_NONE>;
583	};
584
585	keypad_row6_0: keypad-row6-0 {
586		samsung,pins = "gpk-14";
587		samsung,pin-function = <3>;
588		samsung,pin-pud = <PIN_PULL_NONE>;
589	};
590
591	keypad_row7_0: keypad-row7-0 {
592		samsung,pins = "gpk-15";
593		samsung,pin-function = <3>;
594		samsung,pin-pud = <PIN_PULL_NONE>;
595	};
596
597	keypad_row0_1: keypad-row0-1 {
598		samsung,pins = "gpn-0";
599		samsung,pin-function = <3>;
600		samsung,pin-pud = <PIN_PULL_NONE>;
601	};
602
603	keypad_row1_1: keypad-row1-1 {
604		samsung,pins = "gpn-1";
605		samsung,pin-function = <3>;
606		samsung,pin-pud = <PIN_PULL_NONE>;
607	};
608
609	keypad_row2_1: keypad-row2-1 {
610		samsung,pins = "gpn-2";
611		samsung,pin-function = <3>;
612		samsung,pin-pud = <PIN_PULL_NONE>;
613	};
614
615	keypad_row3_1: keypad-row3-1 {
616		samsung,pins = "gpn-3";
617		samsung,pin-function = <3>;
618		samsung,pin-pud = <PIN_PULL_NONE>;
619	};
620
621	keypad_row4_1: keypad-row4-1 {
622		samsung,pins = "gpn-4";
623		samsung,pin-function = <3>;
624		samsung,pin-pud = <PIN_PULL_NONE>;
625	};
626
627	keypad_row5_1: keypad-row5-1 {
628		samsung,pins = "gpn-5";
629		samsung,pin-function = <3>;
630		samsung,pin-pud = <PIN_PULL_NONE>;
631	};
632
633	keypad_row6_1: keypad-row6-1 {
634		samsung,pins = "gpn-6";
635		samsung,pin-function = <3>;
636		samsung,pin-pud = <PIN_PULL_NONE>;
637	};
638
639	keypad_row7_1: keypad-row7-1 {
640		samsung,pins = "gpn-7";
641		samsung,pin-function = <3>;
642		samsung,pin-pud = <PIN_PULL_NONE>;
643	};
644
645	lcd_ctrl: lcd-ctrl {
646		samsung,pins = "gpj-8", "gpj-9", "gpj-10", "gpj-11";
647		samsung,pin-function = <2>;
648		samsung,pin-pud = <PIN_PULL_NONE>;
649	};
650
651	lcd_data16: lcd-data-width16 {
652		samsung,pins = "gpi-3", "gpi-4", "gpi-5", "gpi-6",
653				"gpi-7", "gpi-10", "gpi-11", "gpi-12",
654				"gpi-13", "gpi-14", "gpi-15", "gpj-3",
655				"gpj-4", "gpj-5", "gpj-6", "gpj-7";
656		samsung,pin-function = <2>;
657		samsung,pin-pud = <PIN_PULL_NONE>;
658	};
659
660	lcd_data18: lcd-data-width18 {
661		samsung,pins = "gpi-2", "gpi-3", "gpi-4", "gpi-5",
662				"gpi-6", "gpi-7", "gpi-10", "gpi-11",
663				"gpi-12", "gpi-13", "gpi-14", "gpi-15",
664				"gpj-2", "gpj-3", "gpj-4", "gpj-5",
665				"gpj-6", "gpj-7";
666		samsung,pin-function = <2>;
667		samsung,pin-pud = <PIN_PULL_NONE>;
668	};
669
670	lcd_data24: lcd-data-width24 {
671		samsung,pins = "gpi-0", "gpi-1", "gpi-2", "gpi-3",
672				"gpi-4", "gpi-5", "gpi-6", "gpi-7",
673				"gpi-8", "gpi-9", "gpi-10", "gpi-11",
674				"gpi-12", "gpi-13", "gpi-14", "gpi-15",
675				"gpj-0", "gpj-1", "gpj-2", "gpj-3",
676				"gpj-4", "gpj-5", "gpj-6", "gpj-7";
677		samsung,pin-function = <2>;
678		samsung,pin-pud = <PIN_PULL_NONE>;
679	};
680
681	hsi_bus: hsi-bus {
682		samsung,pins = "gpk-0", "gpk-1", "gpk-2", "gpk-3",
683				"gpk-4", "gpk-5", "gpk-6", "gpk-7";
684		samsung,pin-function = <3>;
685		samsung,pin-pud = <PIN_PULL_NONE>;
686	};
687};
688