3 * Copyright (C) 2013 STMicroelectronics Limited.
4 * Author: Srinivas Kandagatla <srinivas.kandagatla@st.com>
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * publishhed by the Free Software Foundation.
10 #include "st-pincfg.h"
11 #include <dt-bindings/interrupt-controller/arm-gic.h>
51 compatible = "st,stih416-sbc-pinctrl";
52 st,syscfg = <&syscfg_sbc>;
53 reg = <0xfe61f080 0x4>;
55 interrupts = <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>;
56 interrupt-names = "irqmux";
57 ranges = <0 0xfe610000 0x6000>;
63 #interrupt-cells = <2>;
65 st,bank-name = "PIO0";
71 #interrupt-cells = <2>;
73 st,bank-name = "PIO1";
79 #interrupt-cells = <2>;
81 st,bank-name = "PIO2";
87 #interrupt-cells = <2>;
89 st,bank-name = "PIO3";
95 #interrupt-cells = <2>;
97 st,bank-name = "PIO4";
99 pio40: gpio@fe615000 {
102 interrupt-controller;
103 #interrupt-cells = <2>;
104 reg = <0x5000 0x100>;
105 st,bank-name = "PIO40";
106 st,retime-pin-mask = <0x7f>;
112 ir = <&pio4 0 ALT2 IN>;
117 pinctrl_sbc_serial1: sbc_serial1 {
119 tx = <&pio2 6 ALT3 OUT>;
120 rx = <&pio2 7 ALT3 IN>;
126 pinctrl_keyscan: keyscan {
128 keyin0 = <&pio0 2 ALT2 IN>;
129 keyin1 = <&pio0 3 ALT2 IN>;
130 keyin2 = <&pio0 4 ALT2 IN>;
131 keyin3 = <&pio2 6 ALT2 IN>;
133 keyout0 = <&pio1 6 ALT2 OUT>;
134 keyout1 = <&pio1 7 ALT2 OUT>;
135 keyout2 = <&pio0 6 ALT2 OUT>;
136 keyout3 = <&pio2 7 ALT2 OUT>;
142 pinctrl_sbc_i2c0_default: sbc_i2c0-default {
144 sda = <&pio4 6 ALT1 BIDIR>;
145 scl = <&pio4 5 ALT1 BIDIR>;
153 oc-detect = <&pio40 0 ALT1 IN>;
154 pwr-enable = <&pio40 1 ALT1 OUT>;
160 pinctrl_sbc_i2c1_default: sbc_i2c1-default {
162 sda = <&pio3 2 ALT2 BIDIR>;
163 scl = <&pio3 1 ALT2 BIDIR>;
171 txd0 = <&pio0 0 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
172 txd1 = <&pio0 1 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
173 txd2 = <&pio0 2 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
174 txd3 = <&pio0 3 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
175 txer = <&pio0 4 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
176 txen = <&pio0 5 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
177 txclk = <&pio0 6 ALT1 IN NICLK 0 CLK_A>;
178 col = <&pio0 7 ALT1 IN BYPASS 1000>;
180 mdio = <&pio1 0 ALT1 OUT BYPASS 1500>;
181 mdc = <&pio1 1 ALT1 OUT NICLK 0 CLK_A>;
182 crs = <&pio1 2 ALT1 IN BYPASS 1000>;
183 mdint = <&pio1 3 ALT1 IN BYPASS 0>;
184 rxd0 = <&pio1 4 ALT1 IN SE_NICLK_IO 0 CLK_A>;
185 rxd1 = <&pio1 5 ALT1 IN SE_NICLK_IO 0 CLK_A>;
186 rxd2 = <&pio1 6 ALT1 IN SE_NICLK_IO 0 CLK_A>;
187 rxd3 = <&pio1 7 ALT1 IN SE_NICLK_IO 0 CLK_A>;
189 rxdv = <&pio2 0 ALT1 IN SE_NICLK_IO 0 CLK_A>;
190 rx_er = <&pio2 1 ALT1 IN SE_NICLK_IO 0 CLK_A>;
191 rxclk = <&pio2 2 ALT1 IN NICLK 0 CLK_A>;
192 phyclk = <&pio2 3 ALT1 OUT NICLK 0 CLK_A>;
195 pinctrl_rgmii1: rgmii1-0 {
197 txd0 = <&pio0 0 ALT1 OUT DE_IO 500 CLK_A>;
198 txd1 = <&pio0 1 ALT1 OUT DE_IO 500 CLK_A>;
199 txd2 = <&pio0 2 ALT1 OUT DE_IO 500 CLK_A>;
200 txd3 = <&pio0 3 ALT1 OUT DE_IO 500 CLK_A>;
201 txen = <&pio0 5 ALT1 OUT DE_IO 0 CLK_A>;
202 txclk = <&pio0 6 ALT1 IN NICLK 0 CLK_A>;
204 mdio = <&pio1 0 ALT1 OUT BYPASS 0>;
205 mdc = <&pio1 1 ALT1 OUT NICLK 0 CLK_A>;
206 rxd0 = <&pio1 4 ALT1 IN DE_IO 500 CLK_A>;
207 rxd1 = <&pio1 5 ALT1 IN DE_IO 500 CLK_A>;
208 rxd2 = <&pio1 6 ALT1 IN DE_IO 500 CLK_A>;
209 rxd3 = <&pio1 7 ALT1 IN DE_IO 500 CLK_A>;
211 rxdv = <&pio2 0 ALT1 IN DE_IO 500 CLK_A>;
212 rxclk = <&pio2 2 ALT1 IN NICLK 0 CLK_A>;
213 phyclk = <&pio2 3 ALT4 OUT NICLK 0 CLK_B>;
215 clk125= <&pio3 7 ALT4 IN NICLK 0 CLK_A>;
221 pinctrl_pwm1_chan0_default: pwm1-0-default {
223 pwm-out = <&pio3 0 ALT1 OUT>;
226 pinctrl_pwm1_chan1_default: pwm1-1-default {
228 pwm-out = <&pio4 4 ALT1 OUT>;
231 pinctrl_pwm1_chan2_default: pwm1-2-default {
233 pwm-out = <&pio4 6 ALT3 OUT>;
236 pinctrl_pwm1_chan3_default: pwm1-3-default {
238 pwm-out = <&pio4 7 ALT3 OUT>;
244 pin-controller-front {
245 #address-cells = <1>;
247 compatible = "st,stih416-front-pinctrl";
248 st,syscfg = <&syscfg_front>;
249 reg = <0xfee0f080 0x4>;
250 reg-names = "irqmux";
251 interrupts = <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>;
252 interrupt-names = "irqmux";
253 ranges = <0 0xfee00000 0x10000>;
255 pio5: gpio@fee00000 {
258 interrupt-controller;
259 #interrupt-cells = <2>;
261 st,bank-name = "PIO5";
263 pio6: gpio@fee01000 {
266 interrupt-controller;
267 #interrupt-cells = <2>;
268 reg = <0x1000 0x100>;
269 st,bank-name = "PIO6";
271 pio7: gpio@fee02000 {
274 interrupt-controller;
275 #interrupt-cells = <2>;
276 reg = <0x2000 0x100>;
277 st,bank-name = "PIO7";
279 pio8: gpio@fee03000 {
282 interrupt-controller;
283 #interrupt-cells = <2>;
284 reg = <0x3000 0x100>;
285 st,bank-name = "PIO8";
287 pio9: gpio@fee04000 {
290 interrupt-controller;
291 #interrupt-cells = <2>;
292 reg = <0x4000 0x100>;
293 st,bank-name = "PIO9";
295 pio10: gpio@fee05000 {
298 interrupt-controller;
299 #interrupt-cells = <2>;
300 reg = <0x5000 0x100>;
301 st,bank-name = "PIO10";
303 pio11: gpio@fee06000 {
306 interrupt-controller;
307 #interrupt-cells = <2>;
308 reg = <0x6000 0x100>;
309 st,bank-name = "PIO11";
311 pio12: gpio@fee07000 {
314 interrupt-controller;
315 #interrupt-cells = <2>;
316 reg = <0x7000 0x100>;
317 st,bank-name = "PIO12";
319 pio30: gpio@fee08000 {
322 interrupt-controller;
323 #interrupt-cells = <2>;
324 reg = <0x8000 0x100>;
325 st,bank-name = "PIO30";
327 pio31: gpio@fee09000 {
330 interrupt-controller;
331 #interrupt-cells = <2>;
332 reg = <0x9000 0x100>;
333 st,bank-name = "PIO31";
337 pinctrl_pwm0_chan0_default: pwm0-0-default {
339 pwm-out = <&pio9 7 ALT2 OUT>;
345 pinctrl_serial2_oe: serial2-1 {
347 output-enable = <&pio11 3 ALT2 OUT>;
353 pinctrl_i2c0_default: i2c0-default {
355 sda = <&pio9 3 ALT1 BIDIR>;
356 scl = <&pio9 2 ALT1 BIDIR>;
364 oc-detect = <&pio9 4 ALT1 IN>;
365 pwr-enable = <&pio9 5 ALT1 OUT>;
372 pinctrl_i2c1_default: i2c1-default {
374 sda = <&pio12 1 ALT1 BIDIR>;
375 scl = <&pio12 0 ALT1 BIDIR>;
383 spi-fsm-clk = <&pio12 2 ALT1 OUT>;
384 spi-fsm-cs = <&pio12 3 ALT1 OUT>;
385 spi-fsm-mosi = <&pio12 4 ALT1 OUT>;
386 spi-fsm-miso = <&pio12 5 ALT1 IN>;
387 spi-fsm-hol = <&pio12 6 ALT1 OUT>;
388 spi-fsm-wp = <&pio12 7 ALT1 OUT>;
394 pin-controller-rear {
395 #address-cells = <1>;
397 compatible = "st,stih416-rear-pinctrl";
398 st,syscfg = <&syscfg_rear>;
399 reg = <0xfe82f080 0x4>;
400 reg-names = "irqmux";
401 interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
402 interrupt-names = "irqmux";
403 ranges = <0 0xfe820000 0x6000>;
405 pio13: gpio@fe820000 {
408 interrupt-controller;
409 #interrupt-cells = <2>;
411 st,bank-name = "PIO13";
413 pio14: gpio@fe821000 {
416 interrupt-controller;
417 #interrupt-cells = <2>;
418 reg = <0x1000 0x100>;
419 st,bank-name = "PIO14";
421 pio15: gpio@fe822000 {
424 interrupt-controller;
425 #interrupt-cells = <2>;
426 reg = <0x2000 0x100>;
427 st,bank-name = "PIO15";
429 pio16: gpio@fe823000 {
432 interrupt-controller;
433 #interrupt-cells = <2>;
434 reg = <0x3000 0x100>;
435 st,bank-name = "PIO16";
437 pio17: gpio@fe824000 {
440 interrupt-controller;
441 #interrupt-cells = <2>;
442 reg = <0x4000 0x100>;
443 st,bank-name = "PIO17";
445 pio18: gpio@fe825000 {
448 interrupt-controller;
449 #interrupt-cells = <2>;
450 reg = <0x5000 0x100>;
451 st,bank-name = "PIO18";
452 st,retime-pin-mask = <0xf>;
456 pinctrl_serial2: serial2-0 {
458 tx = <&pio17 4 ALT2 OUT>;
459 rx = <&pio17 5 ALT2 IN>;
467 mdint = <&pio13 6 ALT2 IN BYPASS 0>;
468 txen = <&pio13 7 ALT2 OUT SE_NICLK_IO 0 CLK_A>;
469 txd0 = <&pio14 0 ALT2 OUT SE_NICLK_IO 0 CLK_A>;
470 txd1 = <&pio14 1 ALT2 OUT SE_NICLK_IO 0 CLK_A>;
471 txd2 = <&pio14 2 ALT2 OUT SE_NICLK_IO 0 CLK_B>;
472 txd3 = <&pio14 3 ALT2 OUT SE_NICLK_IO 0 CLK_B>;
474 txclk = <&pio15 0 ALT2 IN NICLK 0 CLK_A>;
475 txer = <&pio15 1 ALT2 OUT SE_NICLK_IO 0 CLK_A>;
476 crs = <&pio15 2 ALT2 IN BYPASS 1000>;
477 col = <&pio15 3 ALT2 IN BYPASS 1000>;
478 mdio= <&pio15 4 ALT2 OUT BYPASS 1500>;
479 mdc = <&pio15 5 ALT2 OUT NICLK 0 CLK_B>;
481 rxd0 = <&pio16 0 ALT2 IN SE_NICLK_IO 0 CLK_A>;
482 rxd1 = <&pio16 1 ALT2 IN SE_NICLK_IO 0 CLK_A>;
483 rxd2 = <&pio16 2 ALT2 IN SE_NICLK_IO 0 CLK_A>;
484 rxd3 = <&pio16 3 ALT2 IN SE_NICLK_IO 0 CLK_A>;
485 rxdv = <&pio15 6 ALT2 IN SE_NICLK_IO 0 CLK_A>;
486 rx_er = <&pio15 7 ALT2 IN SE_NICLK_IO 0 CLK_A>;
487 rxclk = <&pio17 0 ALT2 IN NICLK 0 CLK_A>;
488 phyclk = <&pio13 5 ALT2 OUT NICLK 0 CLK_B>;
492 pinctrl_gmii0: gmii0 {
496 pinctrl_rgmii0: rgmii0 {
498 phyclk = <&pio13 5 ALT4 OUT NICLK 0 CLK_B>;
499 txen = <&pio13 7 ALT2 OUT DE_IO 0 CLK_A>;
500 txd0 = <&pio14 0 ALT2 OUT DE_IO 500 CLK_A>;
501 txd1 = <&pio14 1 ALT2 OUT DE_IO 500 CLK_A>;
502 txd2 = <&pio14 2 ALT2 OUT DE_IO 500 CLK_B>;
503 txd3 = <&pio14 3 ALT2 OUT DE_IO 500 CLK_B>;
504 txclk = <&pio15 0 ALT2 IN NICLK 0 CLK_A>;
506 mdio = <&pio15 4 ALT2 OUT BYPASS 0>;
507 mdc = <&pio15 5 ALT2 OUT NICLK 0 CLK_B>;
509 rxdv = <&pio15 6 ALT2 IN DE_IO 500 CLK_A>;
510 rxd0 =<&pio16 0 ALT2 IN DE_IO 500 CLK_A>;
511 rxd1 =<&pio16 1 ALT2 IN DE_IO 500 CLK_A>;
512 rxd2 =<&pio16 2 ALT2 IN DE_IO 500 CLK_A>;
513 rxd3 =<&pio16 3 ALT2 IN DE_IO 500 CLK_A>;
514 rxclk =<&pio17 0 ALT2 IN NICLK 0 CLK_A>;
516 clk125=<&pio17 6 ALT1 IN NICLK 0 CLK_A>;
524 mmcclk = <&pio13 4 ALT4 BIDIR_PU NICLK 0 CLK_B>;
525 data0 = <&pio14 4 ALT4 BIDIR_PU BYPASS 0>;
526 data1 = <&pio14 5 ALT4 BIDIR_PU BYPASS 0>;
527 data2 = <&pio14 6 ALT4 BIDIR_PU BYPASS 0>;
528 data3 = <&pio14 7 ALT4 BIDIR_PU BYPASS 0>;
529 cmd = <&pio15 1 ALT4 BIDIR_PU BYPASS 0>;
530 wp = <&pio15 3 ALT4 IN>;
531 data4 = <&pio16 4 ALT4 BIDIR_PU BYPASS 0>;
532 data5 = <&pio16 5 ALT4 BIDIR_PU BYPASS 0>;
533 data6 = <&pio16 6 ALT4 BIDIR_PU BYPASS 0>;
534 data7 = <&pio16 7 ALT4 BIDIR_PU BYPASS 0>;
535 pwr = <&pio17 1 ALT4 OUT>;
536 cd = <&pio17 2 ALT4 IN>;
537 led = <&pio17 3 ALT4 OUT>;
544 mmcclk = <&pio15 0 ALT3 BIDIR_PU NICLK 0 CLK_B>;
545 data0 = <&pio13 7 ALT3 BIDIR_PU BYPASS 0>;
546 data1 = <&pio14 1 ALT3 BIDIR_PU BYPASS 0>;
547 data2 = <&pio14 2 ALT3 BIDIR_PU BYPASS 0>;
548 data3 = <&pio14 3 ALT3 BIDIR_PU BYPASS 0>;
549 cmd = <&pio15 4 ALT3 BIDIR_PU BYPASS 0>;
550 data4 = <&pio15 6 ALT3 BIDIR_PU BYPASS 0>;
551 data5 = <&pio15 7 ALT3 BIDIR_PU BYPASS 0>;
552 data6 = <&pio16 0 ALT3 BIDIR_PU BYPASS 0>;
553 data7 = <&pio16 1 ALT3 BIDIR_PU BYPASS 0>;
554 pwr = <&pio16 2 ALT3 OUT>;
555 nreset = <&pio13 6 ALT3 OUT>;
563 oc-detect = <&pio18 0 ALT1 IN>;
564 pwr-enable = <&pio18 1 ALT1 OUT>;
569 oc-detect = <&pio18 2 ALT1 IN>;
570 pwr-enable = <&pio18 3 ALT1 OUT>;
576 pinctrl_pwm0_chan1_default: pwm0-1-default {
578 pwm-out = <&pio13 2 ALT2 OUT>;
581 pinctrl_pwm0_chan2_default: pwm0-2-default {
583 pwm-out = <&pio15 2 ALT4 OUT>;
586 pinctrl_pwm0_chan3_default: pwm0-3-default {
588 pwm-out = <&pio17 4 ALT1 OUT>;
595 pin-controller-fvdp-fe {
596 #address-cells = <1>;
598 compatible = "st,stih416-fvdp-fe-pinctrl";
599 st,syscfg = <&syscfg_fvdp_fe>;
600 reg = <0xfd6bf080 0x4>;
601 reg-names = "irqmux";
602 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
603 interrupt-names = "irqmux";
604 ranges = <0 0xfd6b0000 0x3000>;
606 pio100: gpio@fd6b0000 {
609 interrupt-controller;
610 #interrupt-cells = <2>;
612 st,bank-name = "PIO100";
614 pio101: gpio@fd6b1000 {
617 interrupt-controller;
618 #interrupt-cells = <2>;
619 reg = <0x1000 0x100>;
620 st,bank-name = "PIO101";
622 pio102: gpio@fd6b2000 {
625 interrupt-controller;
626 #interrupt-cells = <2>;
627 reg = <0x2000 0x100>;
628 st,bank-name = "PIO102";
632 pin-controller-fvdp-lite {
633 #address-cells = <1>;
635 compatible = "st,stih416-fvdp-lite-pinctrl";
636 st,syscfg = <&syscfg_fvdp_lite>;
637 reg = <0xfd33f080 0x4>;
638 reg-names = "irqmux";
639 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
640 interrupt-names = "irqmux";
641 ranges = <0 0xfd330000 0x5000>;
643 pio103: gpio@fd330000 {
646 interrupt-controller;
647 #interrupt-cells = <2>;
649 st,bank-name = "PIO103";
651 pio104: gpio@fd331000 {
654 interrupt-controller;
655 #interrupt-cells = <2>;
656 reg = <0x1000 0x100>;
657 st,bank-name = "PIO104";
659 pio105: gpio@fd332000 {
662 interrupt-controller;
663 #interrupt-cells = <2>;
664 reg = <0x2000 0x100>;
665 st,bank-name = "PIO105";
667 pio106: gpio@fd333000 {
670 interrupt-controller;
671 #interrupt-cells = <2>;
672 reg = <0x3000 0x100>;
673 st,bank-name = "PIO106";
676 pio107: gpio@fd334000 {
679 interrupt-controller;
680 #interrupt-cells = <2>;
681 reg = <0x4000 0x100>;
682 st,bank-name = "PIO107";
683 st,retime-pin-mask = <0xf>;