Loading...
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Samsung's Exynos3250 SoCs pin-mux and pin-config device tree source
4 *
5 * Copyright (c) 2014 Samsung Electronics Co., Ltd.
6 * http://www.samsung.com
7 *
8 * Samsung's Exynos3250 SoCs pin-mux and pin-config optiosn are listed as device
9 * tree nodes are listed in this file.
10 */
11
12#include <dt-bindings/pinctrl/samsung.h>
13
14#define PIN_IN(_pin, _pull, _drv) \
15 _pin { \
16 samsung,pins = #_pin; \
17 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; \
18 samsung,pin-pud = <EXYNOS_PIN_PULL_ ##_pull>; \
19 samsung,pin-drv = <EXYNOS4_PIN_DRV_ ##_drv>; \
20 }
21
22#define PIN_OUT(_pin, _drv) \
23 _pin { \
24 samsung,pins = #_pin; \
25 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; \
26 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; \
27 samsung,pin-drv = <EXYNOS4_PIN_DRV_ ##_drv>; \
28 }
29
30#define PIN_OUT_SET(_pin, _val, _drv) \
31 _pin { \
32 samsung,pins = #_pin; \
33 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; \
34 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; \
35 samsung,pin-drv = <EXYNOS4_PIN_DRV_ ##_drv>; \
36 samsung,pin-val = <_val>; \
37 }
38
39#define PIN_CFG(_pin, _sel, _pull, _drv) \
40 _pin { \
41 samsung,pins = #_pin; \
42 samsung,pin-function = <_sel>; \
43 samsung,pin-pud = <EXYNOS_PIN_PULL_ ##_pull>; \
44 samsung,pin-drv = <EXYNOS4_PIN_DRV_ ##_drv>; \
45 }
46
47#define PIN_SLP(_pin, _mode, _pull) \
48 _pin { \
49 samsung,pins = #_pin; \
50 samsung,pin-con-pdn = <EXYNOS_PIN_PDN_ ##_mode>; \
51 samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_ ##_pull>; \
52 }
53
54&pinctrl_0 {
55 gpa0: gpa0 {
56 gpio-controller;
57 #gpio-cells = <2>;
58
59 interrupt-controller;
60 #interrupt-cells = <2>;
61 };
62
63 gpa1: gpa1 {
64 gpio-controller;
65 #gpio-cells = <2>;
66
67 interrupt-controller;
68 #interrupt-cells = <2>;
69 };
70
71 gpb: gpb {
72 gpio-controller;
73 #gpio-cells = <2>;
74
75 interrupt-controller;
76 #interrupt-cells = <2>;
77 };
78
79 gpc0: gpc0 {
80 gpio-controller;
81 #gpio-cells = <2>;
82
83 interrupt-controller;
84 #interrupt-cells = <2>;
85 };
86
87 gpc1: gpc1 {
88 gpio-controller;
89 #gpio-cells = <2>;
90
91 interrupt-controller;
92 #interrupt-cells = <2>;
93 };
94
95 gpd0: gpd0 {
96 gpio-controller;
97 #gpio-cells = <2>;
98
99 interrupt-controller;
100 #interrupt-cells = <2>;
101 };
102
103 gpd1: gpd1 {
104 gpio-controller;
105 #gpio-cells = <2>;
106
107 interrupt-controller;
108 #interrupt-cells = <2>;
109 };
110
111 uart0_data: uart0-data {
112 samsung,pins = "gpa0-0", "gpa0-1";
113 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
114 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
115 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
116 };
117
118 uart0_fctl: uart0-fctl {
119 samsung,pins = "gpa0-2", "gpa0-3";
120 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
121 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
122 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
123 };
124
125 uart1_data: uart1-data {
126 samsung,pins = "gpa0-4", "gpa0-5";
127 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
128 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
129 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
130 };
131
132 uart1_fctl: uart1-fctl {
133 samsung,pins = "gpa0-6", "gpa0-7";
134 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
135 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
136 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
137 };
138
139 i2c2_bus: i2c2-bus {
140 samsung,pins = "gpa0-6", "gpa0-7";
141 samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
142 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
143 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
144 };
145
146 uart2_data: uart2-data {
147 samsung,pins = "gpa1-0", "gpa1-1";
148 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
149 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
150 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
151 };
152
153 i2c3_bus: i2c3-bus {
154 samsung,pins = "gpa1-2", "gpa1-3";
155 samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
156 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
157 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
158 };
159
160 spi0_bus: spi0-bus {
161 samsung,pins = "gpb-0", "gpb-2", "gpb-3";
162 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
163 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
164 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
165 };
166
167 i2c4_bus: i2c4-bus {
168 samsung,pins = "gpb-0", "gpb-1";
169 samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
170 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
171 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
172 };
173
174 spi1_bus: spi1-bus {
175 samsung,pins = "gpb-4", "gpb-6", "gpb-7";
176 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
177 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
178 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
179 };
180
181 i2c5_bus: i2c5-bus {
182 samsung,pins = "gpb-2", "gpb-3";
183 samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
184 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
185 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
186 };
187
188 i2s2_bus: i2s2-bus {
189 samsung,pins = "gpc1-0", "gpc1-1", "gpc1-2", "gpc1-3",
190 "gpc1-4";
191 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
192 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
193 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
194 };
195
196 pcm2_bus: pcm2-bus {
197 samsung,pins = "gpc1-0", "gpc1-1", "gpc1-2", "gpc1-3",
198 "gpc1-4";
199 samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
200 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
201 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
202 };
203
204 i2c6_bus: i2c6-bus {
205 samsung,pins = "gpc1-3", "gpc1-4";
206 samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
207 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
208 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
209 };
210
211 pwm0_out: pwm0-out {
212 samsung,pins = "gpd0-0";
213 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
214 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
215 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
216 };
217
218 pwm1_out: pwm1-out {
219 samsung,pins = "gpd0-1";
220 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
221 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
222 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
223 };
224
225 i2c7_bus: i2c7-bus {
226 samsung,pins = "gpd0-2", "gpd0-3";
227 samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
228 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
229 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
230 };
231
232 pwm2_out: pwm2-out {
233 samsung,pins = "gpd0-2";
234 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
235 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
236 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
237 };
238
239 pwm3_out: pwm3-out {
240 samsung,pins = "gpd0-3";
241 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
242 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
243 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
244 };
245
246 i2c0_bus: i2c0-bus {
247 samsung,pins = "gpd1-0", "gpd1-1";
248 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
249 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
250 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
251 };
252
253 mipi0_clk: mipi0-clk {
254 samsung,pins = "gpd1-0", "gpd1-1";
255 samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
256 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
257 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
258 };
259
260 i2c1_bus: i2c1-bus {
261 samsung,pins = "gpd1-2", "gpd1-3";
262 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
263 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
264 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
265 };
266};
267
268&pinctrl_1 {
269 gpe0: gpe0 {
270 gpio-controller;
271 #gpio-cells = <2>;
272 };
273
274 gpe1: gpe1 {
275 gpio-controller;
276 #gpio-cells = <2>;
277 };
278
279 gpe2: gpe2 {
280 gpio-controller;
281 #gpio-cells = <2>;
282 };
283
284 gpk0: gpk0 {
285 gpio-controller;
286 #gpio-cells = <2>;
287
288 interrupt-controller;
289 #interrupt-cells = <2>;
290 };
291
292 gpk1: gpk1 {
293 gpio-controller;
294 #gpio-cells = <2>;
295
296 interrupt-controller;
297 #interrupt-cells = <2>;
298 };
299
300 gpk2: gpk2 {
301 gpio-controller;
302 #gpio-cells = <2>;
303
304 interrupt-controller;
305 #interrupt-cells = <2>;
306 };
307
308 gpl0: gpl0 {
309 gpio-controller;
310 #gpio-cells = <2>;
311
312 interrupt-controller;
313 #interrupt-cells = <2>;
314 };
315
316 gpm0: gpm0 {
317 gpio-controller;
318 #gpio-cells = <2>;
319
320 interrupt-controller;
321 #interrupt-cells = <2>;
322 };
323
324 gpm1: gpm1 {
325 gpio-controller;
326 #gpio-cells = <2>;
327
328 interrupt-controller;
329 #interrupt-cells = <2>;
330 };
331
332 gpm2: gpm2 {
333 gpio-controller;
334 #gpio-cells = <2>;
335
336 interrupt-controller;
337 #interrupt-cells = <2>;
338 };
339
340 gpm3: gpm3 {
341 gpio-controller;
342 #gpio-cells = <2>;
343
344 interrupt-controller;
345 #interrupt-cells = <2>;
346 };
347
348 gpm4: gpm4 {
349 gpio-controller;
350 #gpio-cells = <2>;
351
352 interrupt-controller;
353 #interrupt-cells = <2>;
354 };
355
356 gpx0: gpx0 {
357 gpio-controller;
358 #gpio-cells = <2>;
359
360 interrupt-controller;
361 interrupt-parent = <&gic>;
362 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
363 <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
364 <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
365 <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
366 <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>,
367 <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>,
368 <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>,
369 <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
370 #interrupt-cells = <2>;
371 };
372
373 gpx1: gpx1 {
374 gpio-controller;
375 #gpio-cells = <2>;
376
377 interrupt-controller;
378 interrupt-parent = <&gic>;
379 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
380 <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>,
381 <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>,
382 <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>,
383 <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>,
384 <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>,
385 <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>,
386 <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
387 #interrupt-cells = <2>;
388 };
389
390 gpx2: gpx2 {
391 gpio-controller;
392 #gpio-cells = <2>;
393
394 interrupt-controller;
395 #interrupt-cells = <2>;
396 };
397
398 gpx3: gpx3 {
399 gpio-controller;
400 #gpio-cells = <2>;
401
402 interrupt-controller;
403 #interrupt-cells = <2>;
404 };
405
406 sd0_clk: sd0-clk {
407 samsung,pins = "gpk0-0";
408 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
409 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
410 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
411 };
412
413 sd0_cmd: sd0-cmd {
414 samsung,pins = "gpk0-1";
415 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
416 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
417 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
418 };
419
420 sd0_cd: sd0-cd {
421 samsung,pins = "gpk0-2";
422 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
423 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
424 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
425 };
426
427 sd0_rdqs: sd0-rdqs {
428 samsung,pins = "gpk0-7";
429 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
430 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
431 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
432 };
433
434 sd0_bus1: sd0-bus-width1 {
435 samsung,pins = "gpk0-3";
436 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
437 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
438 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
439 };
440
441 sd0_bus4: sd0-bus-width4 {
442 samsung,pins = "gpk0-4", "gpk0-5", "gpk0-6";
443 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
444 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
445 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
446 };
447
448 sd0_bus8: sd0-bus-width8 {
449 samsung,pins = "gpl0-0", "gpl0-1", "gpl0-2", "gpl0-3";
450 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
451 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
452 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
453 };
454
455 sd1_clk: sd1-clk {
456 samsung,pins = "gpk1-0";
457 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
458 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
459 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
460 };
461
462 sd1_cmd: sd1-cmd {
463 samsung,pins = "gpk1-1";
464 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
465 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
466 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
467 };
468
469 sd1_cd: sd1-cd {
470 samsung,pins = "gpk1-2";
471 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
472 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
473 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
474 };
475
476 sd1_bus1: sd1-bus-width1 {
477 samsung,pins = "gpk1-3";
478 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
479 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
480 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
481 };
482
483 sd1_bus4: sd1-bus-width4 {
484 samsung,pins = "gpk1-4", "gpk1-5", "gpk1-6";
485 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
486 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
487 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
488 };
489
490 sd2_clk: sd2-clk {
491 samsung,pins = "gpk2-0";
492 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
493 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
494 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
495 };
496
497 sd2_cmd: sd2-cmd {
498 samsung,pins = "gpk2-1";
499 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
500 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
501 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
502 };
503
504 sd2_cd: sd2-cd {
505 samsung,pins = "gpk2-2";
506 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
507 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
508 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
509 };
510
511 sd2_bus1: sd2-bus-width1 {
512 samsung,pins = "gpk2-3";
513 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
514 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
515 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
516 };
517
518 sd2_bus4: sd2-bus-width4 {
519 samsung,pins = "gpk2-4", "gpk2-5", "gpk2-6";
520 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
521 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
522 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
523 };
524
525 cam_port_b_io: cam-port-b-io {
526 samsung,pins = "gpm0-0", "gpm0-1", "gpm0-2", "gpm0-3",
527 "gpm0-4", "gpm0-5", "gpm0-6", "gpm0-7",
528 "gpm1-0", "gpm1-1", "gpm2-0", "gpm2-1";
529 samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
530 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
531 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
532 };
533
534 cam_port_b_clk_active: cam-port-b-clk-active {
535 samsung,pins = "gpm2-2";
536 samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
537 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
538 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
539 };
540
541 cam_port_b_clk_idle: cam-port-b-clk-idle {
542 samsung,pins = "gpm2-2";
543 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
544 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
545 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
546 };
547
548 fimc_is_i2c0: fimc-is-i2c0 {
549 samsung,pins = "gpm4-0", "gpm4-1";
550 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
551 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
552 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
553 };
554
555 fimc_is_i2c1: fimc-is-i2c1 {
556 samsung,pins = "gpm4-2", "gpm4-3";
557 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
558 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
559 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
560 };
561
562 fimc_is_uart: fimc-is-uart {
563 samsung,pins = "gpm3-5", "gpm3-7";
564 samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
565 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
566 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
567 };
568};
1/*
2 * Samsung's Exynos3250 SoCs pin-mux and pin-config device tree source
3 *
4 * Copyright (c) 2014 Samsung Electronics Co., Ltd.
5 * http://www.samsung.com
6 *
7 * Samsung's Exynos3250 SoCs pin-mux and pin-config optiosn are listed as device
8 * tree nodes are listed 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#include <dt-bindings/pinctrl/samsung.h>
16
17#define PIN_IN(_pin, _pull, _drv) \
18 _pin { \
19 samsung,pins = #_pin; \
20 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; \
21 samsung,pin-pud = <EXYNOS_PIN_PULL_ ##_pull>; \
22 samsung,pin-drv = <EXYNOS4_PIN_DRV_ ##_drv>; \
23 }
24
25#define PIN_OUT(_pin, _drv) \
26 _pin { \
27 samsung,pins = #_pin; \
28 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; \
29 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; \
30 samsung,pin-drv = <EXYNOS4_PIN_DRV_ ##_drv>; \
31 }
32
33#define PIN_OUT_SET(_pin, _val, _drv) \
34 _pin { \
35 samsung,pins = #_pin; \
36 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; \
37 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; \
38 samsung,pin-drv = <EXYNOS4_PIN_DRV_ ##_drv>; \
39 samsung,pin-val = <_val>; \
40 }
41
42#define PIN_CFG(_pin, _sel, _pull, _drv) \
43 _pin { \
44 samsung,pins = #_pin; \
45 samsung,pin-function = <_sel>; \
46 samsung,pin-pud = <EXYNOS_PIN_PULL_ ##_pull>; \
47 samsung,pin-drv = <EXYNOS4_PIN_DRV_ ##_drv>; \
48 }
49
50#define PIN_SLP(_pin, _mode, _pull) \
51 _pin { \
52 samsung,pins = #_pin; \
53 samsung,pin-con-pdn = <EXYNOS_PIN_PDN_ ##_mode>; \
54 samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_ ##_pull>; \
55 }
56
57&pinctrl_0 {
58 gpa0: gpa0 {
59 gpio-controller;
60 #gpio-cells = <2>;
61
62 interrupt-controller;
63 #interrupt-cells = <2>;
64 };
65
66 gpa1: gpa1 {
67 gpio-controller;
68 #gpio-cells = <2>;
69
70 interrupt-controller;
71 #interrupt-cells = <2>;
72 };
73
74 gpb: gpb {
75 gpio-controller;
76 #gpio-cells = <2>;
77
78 interrupt-controller;
79 #interrupt-cells = <2>;
80 };
81
82 gpc0: gpc0 {
83 gpio-controller;
84 #gpio-cells = <2>;
85
86 interrupt-controller;
87 #interrupt-cells = <2>;
88 };
89
90 gpc1: gpc1 {
91 gpio-controller;
92 #gpio-cells = <2>;
93
94 interrupt-controller;
95 #interrupt-cells = <2>;
96 };
97
98 gpd0: gpd0 {
99 gpio-controller;
100 #gpio-cells = <2>;
101
102 interrupt-controller;
103 #interrupt-cells = <2>;
104 };
105
106 gpd1: gpd1 {
107 gpio-controller;
108 #gpio-cells = <2>;
109
110 interrupt-controller;
111 #interrupt-cells = <2>;
112 };
113
114 uart0_data: uart0-data {
115 samsung,pins = "gpa0-0", "gpa0-1";
116 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
117 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
118 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
119 };
120
121 uart0_fctl: uart0-fctl {
122 samsung,pins = "gpa0-2", "gpa0-3";
123 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
124 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
125 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
126 };
127
128 uart1_data: uart1-data {
129 samsung,pins = "gpa0-4", "gpa0-5";
130 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
131 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
132 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
133 };
134
135 uart1_fctl: uart1-fctl {
136 samsung,pins = "gpa0-6", "gpa0-7";
137 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
138 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
139 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
140 };
141
142 i2c2_bus: i2c2-bus {
143 samsung,pins = "gpa0-6", "gpa0-7";
144 samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
145 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
146 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
147 };
148
149 uart2_data: uart2-data {
150 samsung,pins = "gpa1-0", "gpa1-1";
151 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
152 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
153 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
154 };
155
156 i2c3_bus: i2c3-bus {
157 samsung,pins = "gpa1-2", "gpa1-3";
158 samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
159 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
160 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
161 };
162
163 spi0_bus: spi0-bus {
164 samsung,pins = "gpb-0", "gpb-2", "gpb-3";
165 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
166 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
167 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
168 };
169
170 i2c4_bus: i2c4-bus {
171 samsung,pins = "gpb-0", "gpb-1";
172 samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
173 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
174 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
175 };
176
177 spi1_bus: spi1-bus {
178 samsung,pins = "gpb-4", "gpb-6", "gpb-7";
179 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
180 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
181 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
182 };
183
184 i2c5_bus: i2c5-bus {
185 samsung,pins = "gpb-2", "gpb-3";
186 samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
187 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
188 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
189 };
190
191 i2s2_bus: i2s2-bus {
192 samsung,pins = "gpc1-0", "gpc1-1", "gpc1-2", "gpc1-3",
193 "gpc1-4";
194 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
195 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
196 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
197 };
198
199 pcm2_bus: pcm2-bus {
200 samsung,pins = "gpc1-0", "gpc1-1", "gpc1-2", "gpc1-3",
201 "gpc1-4";
202 samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
203 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
204 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
205 };
206
207 i2c6_bus: i2c6-bus {
208 samsung,pins = "gpc1-3", "gpc1-4";
209 samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
210 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
211 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
212 };
213
214 pwm0_out: pwm0-out {
215 samsung,pins = "gpd0-0";
216 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
217 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
218 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
219 };
220
221 pwm1_out: pwm1-out {
222 samsung,pins = "gpd0-1";
223 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
224 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
225 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
226 };
227
228 i2c7_bus: i2c7-bus {
229 samsung,pins = "gpd0-2", "gpd0-3";
230 samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
231 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
232 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
233 };
234
235 pwm2_out: pwm2-out {
236 samsung,pins = "gpd0-2";
237 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
238 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
239 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
240 };
241
242 pwm3_out: pwm3-out {
243 samsung,pins = "gpd0-3";
244 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
245 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
246 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
247 };
248
249 i2c0_bus: i2c0-bus {
250 samsung,pins = "gpd1-0", "gpd1-1";
251 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
252 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
253 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
254 };
255
256 mipi0_clk: mipi0-clk {
257 samsung,pins = "gpd1-0", "gpd1-1";
258 samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
259 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
260 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
261 };
262
263 i2c1_bus: i2c1-bus {
264 samsung,pins = "gpd1-2", "gpd1-3";
265 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
266 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
267 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
268 };
269};
270
271&pinctrl_1 {
272 gpe0: gpe0 {
273 gpio-controller;
274 #gpio-cells = <2>;
275 };
276
277 gpe1: gpe1 {
278 gpio-controller;
279 #gpio-cells = <2>;
280 };
281
282 gpe2: gpe2 {
283 gpio-controller;
284 #gpio-cells = <2>;
285 };
286
287 gpk0: gpk0 {
288 gpio-controller;
289 #gpio-cells = <2>;
290
291 interrupt-controller;
292 #interrupt-cells = <2>;
293 };
294
295 gpk1: gpk1 {
296 gpio-controller;
297 #gpio-cells = <2>;
298
299 interrupt-controller;
300 #interrupt-cells = <2>;
301 };
302
303 gpk2: gpk2 {
304 gpio-controller;
305 #gpio-cells = <2>;
306
307 interrupt-controller;
308 #interrupt-cells = <2>;
309 };
310
311 gpl0: gpl0 {
312 gpio-controller;
313 #gpio-cells = <2>;
314
315 interrupt-controller;
316 #interrupt-cells = <2>;
317 };
318
319 gpm0: gpm0 {
320 gpio-controller;
321 #gpio-cells = <2>;
322
323 interrupt-controller;
324 #interrupt-cells = <2>;
325 };
326
327 gpm1: gpm1 {
328 gpio-controller;
329 #gpio-cells = <2>;
330
331 interrupt-controller;
332 #interrupt-cells = <2>;
333 };
334
335 gpm2: gpm2 {
336 gpio-controller;
337 #gpio-cells = <2>;
338
339 interrupt-controller;
340 #interrupt-cells = <2>;
341 };
342
343 gpm3: gpm3 {
344 gpio-controller;
345 #gpio-cells = <2>;
346
347 interrupt-controller;
348 #interrupt-cells = <2>;
349 };
350
351 gpm4: gpm4 {
352 gpio-controller;
353 #gpio-cells = <2>;
354
355 interrupt-controller;
356 #interrupt-cells = <2>;
357 };
358
359 gpx0: gpx0 {
360 gpio-controller;
361 #gpio-cells = <2>;
362
363 interrupt-controller;
364 interrupt-parent = <&gic>;
365 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
366 <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
367 <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
368 <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
369 <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>,
370 <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>,
371 <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>,
372 <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
373 #interrupt-cells = <2>;
374 };
375
376 gpx1: gpx1 {
377 gpio-controller;
378 #gpio-cells = <2>;
379
380 interrupt-controller;
381 interrupt-parent = <&gic>;
382 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
383 <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>,
384 <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>,
385 <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>,
386 <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>,
387 <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>,
388 <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>,
389 <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
390 #interrupt-cells = <2>;
391 };
392
393 gpx2: gpx2 {
394 gpio-controller;
395 #gpio-cells = <2>;
396
397 interrupt-controller;
398 #interrupt-cells = <2>;
399 };
400
401 gpx3: gpx3 {
402 gpio-controller;
403 #gpio-cells = <2>;
404
405 interrupt-controller;
406 #interrupt-cells = <2>;
407 };
408
409 sd0_clk: sd0-clk {
410 samsung,pins = "gpk0-0";
411 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
412 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
413 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
414 };
415
416 sd0_cmd: sd0-cmd {
417 samsung,pins = "gpk0-1";
418 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
419 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
420 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
421 };
422
423 sd0_cd: sd0-cd {
424 samsung,pins = "gpk0-2";
425 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
426 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
427 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
428 };
429
430 sd0_rdqs: sd0-rdqs {
431 samsung,pins = "gpk0-7";
432 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
433 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
434 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
435 };
436
437 sd0_bus1: sd0-bus-width1 {
438 samsung,pins = "gpk0-3";
439 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
440 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
441 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
442 };
443
444 sd0_bus4: sd0-bus-width4 {
445 samsung,pins = "gpk0-4", "gpk0-5", "gpk0-6";
446 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
447 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
448 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
449 };
450
451 sd0_bus8: sd0-bus-width8 {
452 samsung,pins = "gpl0-0", "gpl0-1", "gpl0-2", "gpl0-3";
453 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
454 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
455 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
456 };
457
458 sd1_clk: sd1-clk {
459 samsung,pins = "gpk1-0";
460 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
461 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
462 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
463 };
464
465 sd1_cmd: sd1-cmd {
466 samsung,pins = "gpk1-1";
467 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
468 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
469 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
470 };
471
472 sd1_cd: sd1-cd {
473 samsung,pins = "gpk1-2";
474 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
475 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
476 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
477 };
478
479 sd1_bus1: sd1-bus-width1 {
480 samsung,pins = "gpk1-3";
481 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
482 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
483 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
484 };
485
486 sd1_bus4: sd1-bus-width4 {
487 samsung,pins = "gpk1-4", "gpk1-5", "gpk1-6";
488 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
489 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
490 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
491 };
492
493 sd2_clk: sd2-clk {
494 samsung,pins = "gpk2-0";
495 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
496 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
497 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
498 };
499
500 sd2_cmd: sd2-cmd {
501 samsung,pins = "gpk2-1";
502 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
503 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
504 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
505 };
506
507 sd2_cd: sd2-cd {
508 samsung,pins = "gpk2-2";
509 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
510 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
511 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
512 };
513
514 sd2_bus1: sd2-bus-width1 {
515 samsung,pins = "gpk2-3";
516 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
517 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
518 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
519 };
520
521 sd2_bus4: sd2-bus-width4 {
522 samsung,pins = "gpk2-4", "gpk2-5", "gpk2-6";
523 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
524 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
525 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
526 };
527
528 cam_port_b_io: cam-port-b-io {
529 samsung,pins = "gpm0-0", "gpm0-1", "gpm0-2", "gpm0-3",
530 "gpm0-4", "gpm0-5", "gpm0-6", "gpm0-7",
531 "gpm1-0", "gpm1-1", "gpm2-0", "gpm2-1";
532 samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
533 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
534 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
535 };
536
537 cam_port_b_clk_active: cam-port-b-clk-active {
538 samsung,pins = "gpm2-2";
539 samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
540 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
541 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
542 };
543
544 cam_port_b_clk_idle: cam-port-b-clk-idle {
545 samsung,pins = "gpm2-2";
546 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
547 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
548 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
549 };
550
551 fimc_is_i2c0: fimc-is-i2c0 {
552 samsung,pins = "gpm4-0", "gpm4-1";
553 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
554 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
555 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
556 };
557
558 fimc_is_i2c1: fimc-is-i2c1 {
559 samsung,pins = "gpm4-2", "gpm4-3";
560 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
561 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
562 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
563 };
564
565 fimc_is_uart: fimc-is-uart {
566 samsung,pins = "gpm3-5", "gpm3-7";
567 samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
568 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
569 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
570 };
571};