2 * Copyright (C) 2014 STMicroelectronics Limited.
3 * Author: Giuseppe Cavallaro <peppe.cavallaro@st.com>
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * publishhed by the Free Software Foundation.
9 #include "stih407-pinctrl.dtsi"
10 #include <dt-bindings/mfd/st-lpc.h>
11 #include <dt-bindings/phy/phy.h>
12 #include <dt-bindings/reset/stih407-resets.h>
13 #include <dt-bindings/interrupt-controller/irq-st.h>
23 compatible = "arm,cortex-a9";
26 /* u-boot puts hpen in SBC dmem at 0xa4 offset */
27 cpu-release-addr = <0x94100A4>;
30 operating-points = <1500000 0
37 clock-latency = <100000>;
41 compatible = "arm,cortex-a9";
44 /* u-boot puts hpen in SBC dmem at 0xa4 offset */
45 cpu-release-addr = <0x94100A4>;
48 operating-points = <1500000 0
55 intc: interrupt-controller@08761000 {
56 compatible = "arm,cortex-a9-gic";
57 #interrupt-cells = <3>;
59 reg = <0x08761000 0x1000>, <0x08760100 0x100>;
63 compatible = "arm,cortex-a9-scu";
64 reg = <0x08760000 0x1000>;
68 interrupt-parent = <&intc>;
69 compatible = "arm,cortex-a9-global-timer";
70 reg = <0x08760200 0x100>;
71 interrupts = <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>;
72 clocks = <&arm_periph_clk>;
75 l2: cache-controller {
76 compatible = "arm,pl310-cache";
77 reg = <0x08762000 0x1000>;
78 arm,data-latency = <3 3 3>;
79 arm,tag-latency = <2 2 2>;
85 interrupt-parent = <&intc>;
86 compatible = "arm,cortex-a9-pmu";
87 interrupts = <GIC_PPI 15 IRQ_TYPE_LEVEL_HIGH>;
90 pwm_regulator: pwm-regulator {
91 compatible = "pwm-regulator";
92 pwms = <&pwm1 3 8448>;
93 regulator-name = "CPU_1V0_AVS";
94 regulator-min-microvolt = <784000>;
95 regulator-max-microvolt = <1299000>;
97 max-duty-cycle = <255>;
102 #address-cells = <1>;
104 interrupt-parent = <&intc>;
106 compatible = "simple-bus";
109 compatible = "st,stih407-restart";
110 st,syscfg = <&syscfg_sbc_reg>;
114 powerdown: powerdown-controller {
115 compatible = "st,stih407-powerdown";
119 softreset: softreset-controller {
120 compatible = "st,stih407-softreset";
124 picophyreset: picophyreset-controller {
125 compatible = "st,stih407-picophyreset";
129 syscfg_sbc: sbc-syscfg@9620000 {
130 compatible = "st,stih407-sbc-syscfg", "syscon";
131 reg = <0x9620000 0x1000>;
134 syscfg_front: front-syscfg@9280000 {
135 compatible = "st,stih407-front-syscfg", "syscon";
136 reg = <0x9280000 0x1000>;
139 syscfg_rear: rear-syscfg@9290000 {
140 compatible = "st,stih407-rear-syscfg", "syscon";
141 reg = <0x9290000 0x1000>;
144 syscfg_flash: flash-syscfg@92a0000 {
145 compatible = "st,stih407-flash-syscfg", "syscon";
146 reg = <0x92a0000 0x1000>;
149 syscfg_sbc_reg: fvdp-lite-syscfg@9600000 {
150 compatible = "st,stih407-sbc-reg-syscfg", "syscon";
151 reg = <0x9600000 0x1000>;
154 syscfg_core: core-syscfg@92b0000 {
155 compatible = "st,stih407-core-syscfg", "syscon";
156 reg = <0x92b0000 0x1000>;
159 syscfg_lpm: lpm-syscfg@94b5100 {
160 compatible = "st,stih407-lpm-syscfg", "syscon";
161 reg = <0x94b5100 0x1000>;
165 compatible = "st,stih407-irq-syscfg";
166 st,syscfg = <&syscfg_core>;
167 st,irq-device = <ST_IRQ_SYSCFG_PMU_0>,
168 <ST_IRQ_SYSCFG_PMU_1>;
169 st,fiq-device = <ST_IRQ_SYSCFG_DISABLED>,
170 <ST_IRQ_SYSCFG_DISABLED>;
174 vtg_main: sti-vtg-main@8d02800 {
175 compatible = "st,vtg";
176 reg = <0x8d02800 0x200>;
177 interrupts = <GIC_SPI 108 IRQ_TYPE_NONE>;
180 vtg_aux: sti-vtg-aux@8d00200 {
181 compatible = "st,vtg";
182 reg = <0x8d00200 0x100>;
183 interrupts = <GIC_SPI 109 IRQ_TYPE_NONE>;
187 compatible = "st,asc";
188 reg = <0x9830000 0x2c>;
189 interrupts = <GIC_SPI 122 IRQ_TYPE_NONE>;
190 pinctrl-names = "default";
191 pinctrl-0 = <&pinctrl_serial0>;
192 clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
198 compatible = "st,asc";
199 reg = <0x9831000 0x2c>;
200 interrupts = <GIC_SPI 123 IRQ_TYPE_NONE>;
201 pinctrl-names = "default";
202 pinctrl-0 = <&pinctrl_serial1>;
203 clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
209 compatible = "st,asc";
210 reg = <0x9832000 0x2c>;
211 interrupts = <GIC_SPI 124 IRQ_TYPE_NONE>;
212 pinctrl-names = "default";
213 pinctrl-0 = <&pinctrl_serial2>;
214 clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
219 /* SBC_ASC0 - UART10 */
220 sbc_serial0: serial@9530000 {
221 compatible = "st,asc";
222 reg = <0x9530000 0x2c>;
223 interrupts = <GIC_SPI 138 IRQ_TYPE_NONE>;
224 pinctrl-names = "default";
225 pinctrl-0 = <&pinctrl_sbc_serial0>;
226 clocks = <&clk_sysin>;
232 compatible = "st,asc";
233 reg = <0x9531000 0x2c>;
234 interrupts = <GIC_SPI 139 IRQ_TYPE_NONE>;
235 pinctrl-names = "default";
236 pinctrl-0 = <&pinctrl_sbc_serial1>;
237 clocks = <&clk_sysin>;
243 compatible = "st,comms-ssc4-i2c";
244 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
245 reg = <0x9840000 0x110>;
246 clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
248 clock-frequency = <400000>;
249 pinctrl-names = "default";
250 pinctrl-0 = <&pinctrl_i2c0_default>;
256 compatible = "st,comms-ssc4-i2c";
257 reg = <0x9841000 0x110>;
258 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
259 clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
261 clock-frequency = <400000>;
262 pinctrl-names = "default";
263 pinctrl-0 = <&pinctrl_i2c1_default>;
269 compatible = "st,comms-ssc4-i2c";
270 reg = <0x9842000 0x110>;
271 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
272 clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
274 clock-frequency = <400000>;
275 pinctrl-names = "default";
276 pinctrl-0 = <&pinctrl_i2c2_default>;
282 compatible = "st,comms-ssc4-i2c";
283 reg = <0x9843000 0x110>;
284 interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
285 clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
287 clock-frequency = <400000>;
288 pinctrl-names = "default";
289 pinctrl-0 = <&pinctrl_i2c3_default>;
295 compatible = "st,comms-ssc4-i2c";
296 reg = <0x9844000 0x110>;
297 interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
298 clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
300 clock-frequency = <400000>;
301 pinctrl-names = "default";
302 pinctrl-0 = <&pinctrl_i2c4_default>;
308 compatible = "st,comms-ssc4-i2c";
309 reg = <0x9845000 0x110>;
310 interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
311 clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
313 clock-frequency = <400000>;
314 pinctrl-names = "default";
315 pinctrl-0 = <&pinctrl_i2c5_default>;
323 compatible = "st,comms-ssc4-i2c";
324 reg = <0x9540000 0x110>;
325 interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>;
326 clocks = <&clk_sysin>;
328 clock-frequency = <400000>;
329 pinctrl-names = "default";
330 pinctrl-0 = <&pinctrl_i2c10_default>;
336 compatible = "st,comms-ssc4-i2c";
337 reg = <0x9541000 0x110>;
338 interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
339 clocks = <&clk_sysin>;
341 clock-frequency = <400000>;
342 pinctrl-names = "default";
343 pinctrl-0 = <&pinctrl_i2c11_default>;
348 usb2_picophy0: phy1 {
349 compatible = "st,stih407-usb2-phy";
351 st,syscfg = <&syscfg_core 0x100 0xf4>;
352 resets = <&softreset STIH407_PICOPHY_SOFTRESET>,
353 <&picophyreset STIH407_PICOPHY2_RESET>;
354 reset-names = "global", "port";
357 miphy28lp_phy: miphy28lp@9b22000 {
358 compatible = "st,miphy28lp-phy";
359 st,syscfg = <&syscfg_core>;
360 #address-cells = <1>;
364 phy_port0: port@9b22000 {
365 reg = <0x9b22000 0xff>,
368 reg-names = "sata-up",
372 st,syscfg = <0x114 0x818 0xe0 0xec>;
375 reset-names = "miphy-sw-rst";
376 resets = <&softreset STIH407_MIPHY0_SOFTRESET>;
379 phy_port1: port@9b2a000 {
380 reg = <0x9b2a000 0xff>,
383 reg-names = "sata-up",
387 st,syscfg = <0x118 0x81c 0xe4 0xf0>;
391 reset-names = "miphy-sw-rst";
392 resets = <&softreset STIH407_MIPHY1_SOFTRESET>;
395 phy_port2: port@8f95000 {
396 reg = <0x8f95000 0xff>,
401 st,syscfg = <0x11c 0x820>;
405 reset-names = "miphy-sw-rst";
406 resets = <&softreset STIH407_MIPHY2_SOFTRESET>;
411 compatible = "st,comms-ssc4-spi";
412 reg = <0x9840000 0x110>;
413 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
414 clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
416 pinctrl-0 = <&pinctrl_spi0_default>;
417 pinctrl-names = "default";
418 #address-cells = <1>;
425 compatible = "st,comms-ssc4-spi";
426 reg = <0x9841000 0x110>;
427 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
428 clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
430 pinctrl-names = "default";
431 pinctrl-0 = <&pinctrl_spi1_default>;
437 compatible = "st,comms-ssc4-spi";
438 reg = <0x9842000 0x110>;
439 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
440 clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
442 pinctrl-names = "default";
443 pinctrl-0 = <&pinctrl_spi2_default>;
449 compatible = "st,comms-ssc4-spi";
450 reg = <0x9843000 0x110>;
451 interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
452 clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
454 pinctrl-names = "default";
455 pinctrl-0 = <&pinctrl_spi3_default>;
461 compatible = "st,comms-ssc4-spi";
462 reg = <0x9844000 0x110>;
463 interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
464 clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
466 pinctrl-names = "default";
467 pinctrl-0 = <&pinctrl_spi4_default>;
474 compatible = "st,comms-ssc4-spi";
475 reg = <0x9540000 0x110>;
476 interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>;
477 clocks = <&clk_sysin>;
479 pinctrl-names = "default";
480 pinctrl-0 = <&pinctrl_spi10_default>;
486 compatible = "st,comms-ssc4-spi";
487 reg = <0x9541000 0x110>;
488 interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
489 clocks = <&clk_sysin>;
491 pinctrl-names = "default";
492 pinctrl-0 = <&pinctrl_spi11_default>;
498 compatible = "st,comms-ssc4-spi";
499 reg = <0x9542000 0x110>;
500 interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
501 clocks = <&clk_sysin>;
503 pinctrl-names = "default";
504 pinctrl-0 = <&pinctrl_spi12_default>;
509 mmc0: sdhci@09060000 {
510 compatible = "st,sdhci-stih407", "st,sdhci";
512 reg = <0x09060000 0x7ff>, <0x9061008 0x20>;
513 reg-names = "mmc", "top-mmc-delay";
514 interrupts = <GIC_SPI 92 IRQ_TYPE_NONE>;
515 interrupt-names = "mmcirq";
516 pinctrl-names = "default";
517 pinctrl-0 = <&pinctrl_mmc0>;
519 clocks = <&clk_s_c0_flexgen CLK_MMC_0>;
524 mmc1: sdhci@09080000 {
525 compatible = "st,sdhci-stih407", "st,sdhci";
527 reg = <0x09080000 0x7ff>;
529 interrupts = <GIC_SPI 90 IRQ_TYPE_NONE>;
530 interrupt-names = "mmcirq";
531 pinctrl-names = "default";
532 pinctrl-0 = <&pinctrl_sd1>;
534 clocks = <&clk_s_c0_flexgen CLK_MMC_1>;
535 resets = <&softreset STIH407_MMC1_SOFTRESET>;
539 /* Watchdog and Real-Time Clock */
541 compatible = "st,stih407-lpc";
542 reg = <0x8787000 0x1000>;
543 interrupts = <GIC_SPI 129 IRQ_TYPE_EDGE_RISING>;
544 clocks = <&clk_s_d3_flexgen CLK_LPC_0>;
546 st,syscfg = <&syscfg_core>;
547 st,lpc-mode = <ST_LPC_MODE_WDT>;
551 compatible = "st,stih407-lpc";
552 reg = <0x8788000 0x1000>;
553 interrupts = <GIC_SPI 130 IRQ_TYPE_EDGE_RISING>;
554 clocks = <&clk_s_d3_flexgen CLK_LPC_1>;
555 st,lpc-mode = <ST_LPC_MODE_RTC>;
558 sata0: sata@9b20000 {
559 compatible = "st,ahci";
560 reg = <0x9b20000 0x1000>;
562 interrupts = <GIC_SPI 159 IRQ_TYPE_NONE>;
563 interrupt-names = "hostc";
565 phys = <&phy_port0 PHY_TYPE_SATA>;
566 phy-names = "ahci_phy";
568 resets = <&powerdown STIH407_SATA0_POWERDOWN>,
569 <&softreset STIH407_SATA0_SOFTRESET>,
570 <&softreset STIH407_SATA0_PWR_SOFTRESET>;
571 reset-names = "pwr-dwn", "sw-rst", "pwr-rst";
573 clock-names = "ahci_clk";
574 clocks = <&clk_s_c0_flexgen CLK_ICN_REG>;
579 sata1: sata@9b28000 {
580 compatible = "st,ahci";
581 reg = <0x9b28000 0x1000>;
583 interrupts = <GIC_SPI 170 IRQ_TYPE_NONE>;
584 interrupt-names = "hostc";
586 phys = <&phy_port1 PHY_TYPE_SATA>;
587 phy-names = "ahci_phy";
589 resets = <&powerdown STIH407_SATA1_POWERDOWN>,
590 <&softreset STIH407_SATA1_SOFTRESET>,
591 <&softreset STIH407_SATA1_PWR_SOFTRESET>;
592 reset-names = "pwr-dwn",
596 clock-names = "ahci_clk";
597 clocks = <&clk_s_c0_flexgen CLK_ICN_REG>;
603 st_dwc3: dwc3@8f94000 {
604 compatible = "st,stih407-dwc3";
605 reg = <0x08f94000 0x1000>, <0x110 0x4>;
606 reg-names = "reg-glue", "syscfg-reg";
607 st,syscfg = <&syscfg_core>;
608 resets = <&powerdown STIH407_USB3_POWERDOWN>,
609 <&softreset STIH407_MIPHY2_SOFTRESET>;
610 reset-names = "powerdown", "softreset";
611 #address-cells = <1>;
613 pinctrl-names = "default";
614 pinctrl-0 = <&pinctrl_usb3>;
620 compatible = "snps,dwc3";
621 reg = <0x09900000 0x100000>;
622 interrupts = <GIC_SPI 155 IRQ_TYPE_NONE>;
624 phy-names = "usb2-phy", "usb3-phy";
625 phys = <&usb2_picophy0>,
626 <&phy_port2 PHY_TYPE_USB3>;
630 /* COMMS PWM Module */
632 compatible = "st,sti-pwm";
634 reg = <0x9810000 0x68>;
635 pinctrl-names = "default";
636 pinctrl-0 = <&pinctrl_pwm0_chan0_default>;
638 clocks = <&clk_sysin>;
639 st,pwm-num-chan = <1>;
646 compatible = "st,sti-pwm";
648 reg = <0x9510000 0x68>;
649 pinctrl-names = "default";
650 pinctrl-0 = <&pinctrl_pwm1_chan0_default
651 &pinctrl_pwm1_chan1_default
652 &pinctrl_pwm1_chan2_default
653 &pinctrl_pwm1_chan3_default>;
655 clocks = <&clk_sysin>;
656 st,pwm-num-chan = <4>;
661 rng10: rng@08a89000 {
662 compatible = "st,rng";
663 reg = <0x08a89000 0x1000>;
664 clocks = <&clk_sysin>;
668 rng11: rng@08a8a000 {
669 compatible = "st,rng";
670 reg = <0x08a8a000 0x1000>;
671 clocks = <&clk_sysin>;
675 ethernet0: dwmac@9630000 {
676 device_type = "network";
678 compatible = "st,stih407-dwmac", "snps,dwmac", "snps,dwmac-3.710";
679 reg = <0x9630000 0x8000>, <0x80 0x4>;
680 reg-names = "stmmaceth", "sti-ethconf";
682 st,syscon = <&syscfg_sbc_reg 0x80>;
684 resets = <&softreset STIH407_ETH1_SOFTRESET>;
685 reset-names = "stmmaceth";
687 interrupts = <GIC_SPI 98 IRQ_TYPE_NONE>,
688 <GIC_SPI 99 IRQ_TYPE_NONE>;
689 interrupt-names = "macirq", "eth_wake_irq";
694 pinctrl-names = "default";
695 pinctrl-0 = <&pinctrl_rgmii1>;
697 clock-names = "stmmaceth", "sti-ethclk";
698 clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>,
699 <&clk_s_c0_flexgen CLK_ETH_PHY>;
702 rng10: rng@08a89000 {
703 compatible = "st,rng";
704 reg = <0x08a89000 0x1000>;
705 clocks = <&clk_sysin>;
709 rng11: rng@08a8a000 {
710 compatible = "st,rng";
711 reg = <0x08a8a000 0x1000>;
712 clocks = <&clk_sysin>;