1 // SPDX-License-Identifier: GPL-2.0
3 * Samsung's Exynos3250 SoCs pin-mux and pin-config device tree source
5 * Copyright (c) 2014 Samsung Electronics Co., Ltd.
6 * http://www.samsung.com
8 * Samsung's Exynos3250 SoCs pin-mux and pin-config optiosn are listed as device
9 * tree nodes are listed in this file.
12 #include <dt-bindings/pinctrl/samsung.h>
14 #define PIN_IN(_pin, _pull, _drv) \
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>; \
22 #define PIN_OUT(_pin, _drv) \
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>; \
30 #define PIN_OUT_SET(_pin, _val, _drv) \
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>; \
39 #define PIN_CFG(_pin, _sel, _pull, _drv) \
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>; \
47 #define PIN_SLP(_pin, _mode, _pull) \
49 samsung,pins = #_pin; \
50 samsung,pin-con-pdn = <EXYNOS_PIN_PDN_ ##_mode>; \
51 samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_ ##_pull>; \
60 #interrupt-cells = <2>;
68 #interrupt-cells = <2>;
76 #interrupt-cells = <2>;
84 #interrupt-cells = <2>;
92 #interrupt-cells = <2>;
100 #interrupt-cells = <2>;
107 interrupt-controller;
108 #interrupt-cells = <2>;
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>;
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>;
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>;
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>;
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>;
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>;
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>;
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>;
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>;
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>;
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>;
189 samsung,pins = "gpc1-0", "gpc1-1", "gpc1-2", "gpc1-3",
191 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
192 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
193 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
197 samsung,pins = "gpc1-0", "gpc1-1", "gpc1-2", "gpc1-3",
199 samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
200 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
201 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
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>;
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>;
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>;
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>;
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>;
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>;
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>;
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>;
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>;
288 interrupt-controller;
289 #interrupt-cells = <2>;
296 interrupt-controller;
297 #interrupt-cells = <2>;
304 interrupt-controller;
305 #interrupt-cells = <2>;
312 interrupt-controller;
313 #interrupt-cells = <2>;
320 interrupt-controller;
321 #interrupt-cells = <2>;
328 interrupt-controller;
329 #interrupt-cells = <2>;
336 interrupt-controller;
337 #interrupt-cells = <2>;
344 interrupt-controller;
345 #interrupt-cells = <2>;
352 interrupt-controller;
353 #interrupt-cells = <2>;
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>;
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>;
394 interrupt-controller;
395 #interrupt-cells = <2>;
402 interrupt-controller;
403 #interrupt-cells = <2>;
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>;
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>;
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>;
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>;
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>;
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>;
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>;
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>;
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>;
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>;
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>;
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>;
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>;
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>;
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>;
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>;
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>;
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>;
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>;
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>;
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>;
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>;
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>;