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 compatible = "arm,cortex-a9";
40 /* u-boot puts hpen in SBC dmem at 0xa4 offset */
41 cpu-release-addr = <0x94100A4>;
44 operating-points = <1500000 0
51 intc: interrupt-controller@08761000 {
52 compatible = "arm,cortex-a9-gic";
53 #interrupt-cells = <3>;
55 reg = <0x08761000 0x1000>, <0x08760100 0x100>;
59 compatible = "arm,cortex-a9-scu";
60 reg = <0x08760000 0x1000>;
64 interrupt-parent = <&intc>;
65 compatible = "arm,cortex-a9-global-timer";
66 reg = <0x08760200 0x100>;
67 interrupts = <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>;
68 clocks = <&arm_periph_clk>;
71 l2: cache-controller {
72 compatible = "arm,pl310-cache";
73 reg = <0x08762000 0x1000>;
74 arm,data-latency = <3 3 3>;
75 arm,tag-latency = <2 2 2>;
81 interrupt-parent = <&intc>;
82 compatible = "arm,cortex-a9-pmu";
83 interrupts = <GIC_PPI 15 IRQ_TYPE_LEVEL_HIGH>;
86 pwm_regulator: pwm-regulator {
87 compatible = "pwm-regulator";
88 pwms = <&pwm1 3 8448>;
89 regulator-name = "CPU_1V0_AVS";
90 regulator-min-microvolt = <784000>;
91 regulator-max-microvolt = <1299000>;
93 max-duty-cycle = <255>;
100 interrupt-parent = <&intc>;
102 compatible = "simple-bus";
105 compatible = "st,stih407-restart";
106 st,syscfg = <&syscfg_sbc_reg>;
110 powerdown: powerdown-controller {
111 compatible = "st,stih407-powerdown";
115 softreset: softreset-controller {
116 compatible = "st,stih407-softreset";
120 picophyreset: picophyreset-controller {
121 compatible = "st,stih407-picophyreset";
125 syscfg_sbc: sbc-syscfg@9620000 {
126 compatible = "st,stih407-sbc-syscfg", "syscon";
127 reg = <0x9620000 0x1000>;
130 syscfg_front: front-syscfg@9280000 {
131 compatible = "st,stih407-front-syscfg", "syscon";
132 reg = <0x9280000 0x1000>;
135 syscfg_rear: rear-syscfg@9290000 {
136 compatible = "st,stih407-rear-syscfg", "syscon";
137 reg = <0x9290000 0x1000>;
140 syscfg_flash: flash-syscfg@92a0000 {
141 compatible = "st,stih407-flash-syscfg", "syscon";
142 reg = <0x92a0000 0x1000>;
145 syscfg_sbc_reg: fvdp-lite-syscfg@9600000 {
146 compatible = "st,stih407-sbc-reg-syscfg", "syscon";
147 reg = <0x9600000 0x1000>;
150 syscfg_core: core-syscfg@92b0000 {
151 compatible = "st,stih407-core-syscfg", "syscon";
152 reg = <0x92b0000 0x1000>;
155 syscfg_lpm: lpm-syscfg@94b5100 {
156 compatible = "st,stih407-lpm-syscfg", "syscon";
157 reg = <0x94b5100 0x1000>;
161 compatible = "st,stih407-irq-syscfg";
162 st,syscfg = <&syscfg_core>;
163 st,irq-device = <ST_IRQ_SYSCFG_PMU_0>,
164 <ST_IRQ_SYSCFG_PMU_1>;
165 st,fiq-device = <ST_IRQ_SYSCFG_DISABLED>,
166 <ST_IRQ_SYSCFG_DISABLED>;
170 vtg_main: sti-vtg-main@8d02800 {
171 compatible = "st,vtg";
172 reg = <0x8d02800 0x200>;
173 interrupts = <GIC_SPI 108 IRQ_TYPE_NONE>;
176 vtg_aux: sti-vtg-aux@8d00200 {
177 compatible = "st,vtg";
178 reg = <0x8d00200 0x100>;
179 interrupts = <GIC_SPI 109 IRQ_TYPE_NONE>;
183 compatible = "st,asc";
184 reg = <0x9830000 0x2c>;
185 interrupts = <GIC_SPI 122 IRQ_TYPE_NONE>;
186 pinctrl-names = "default";
187 pinctrl-0 = <&pinctrl_serial0>;
188 clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
194 compatible = "st,asc";
195 reg = <0x9831000 0x2c>;
196 interrupts = <GIC_SPI 123 IRQ_TYPE_NONE>;
197 pinctrl-names = "default";
198 pinctrl-0 = <&pinctrl_serial1>;
199 clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
205 compatible = "st,asc";
206 reg = <0x9832000 0x2c>;
207 interrupts = <GIC_SPI 124 IRQ_TYPE_NONE>;
208 pinctrl-names = "default";
209 pinctrl-0 = <&pinctrl_serial2>;
210 clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
215 /* SBC_ASC0 - UART10 */
216 sbc_serial0: serial@9530000 {
217 compatible = "st,asc";
218 reg = <0x9530000 0x2c>;
219 interrupts = <GIC_SPI 138 IRQ_TYPE_NONE>;
220 pinctrl-names = "default";
221 pinctrl-0 = <&pinctrl_sbc_serial0>;
222 clocks = <&clk_sysin>;
228 compatible = "st,asc";
229 reg = <0x9531000 0x2c>;
230 interrupts = <GIC_SPI 139 IRQ_TYPE_NONE>;
231 pinctrl-names = "default";
232 pinctrl-0 = <&pinctrl_sbc_serial1>;
233 clocks = <&clk_sysin>;
239 compatible = "st,comms-ssc4-i2c";
240 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
241 reg = <0x9840000 0x110>;
242 clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
244 clock-frequency = <400000>;
245 pinctrl-names = "default";
246 pinctrl-0 = <&pinctrl_i2c0_default>;
252 compatible = "st,comms-ssc4-i2c";
253 reg = <0x9841000 0x110>;
254 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
255 clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
257 clock-frequency = <400000>;
258 pinctrl-names = "default";
259 pinctrl-0 = <&pinctrl_i2c1_default>;
265 compatible = "st,comms-ssc4-i2c";
266 reg = <0x9842000 0x110>;
267 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
268 clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
270 clock-frequency = <400000>;
271 pinctrl-names = "default";
272 pinctrl-0 = <&pinctrl_i2c2_default>;
278 compatible = "st,comms-ssc4-i2c";
279 reg = <0x9843000 0x110>;
280 interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
281 clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
283 clock-frequency = <400000>;
284 pinctrl-names = "default";
285 pinctrl-0 = <&pinctrl_i2c3_default>;
291 compatible = "st,comms-ssc4-i2c";
292 reg = <0x9844000 0x110>;
293 interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
294 clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
296 clock-frequency = <400000>;
297 pinctrl-names = "default";
298 pinctrl-0 = <&pinctrl_i2c4_default>;
304 compatible = "st,comms-ssc4-i2c";
305 reg = <0x9845000 0x110>;
306 interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
307 clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
309 clock-frequency = <400000>;
310 pinctrl-names = "default";
311 pinctrl-0 = <&pinctrl_i2c5_default>;
319 compatible = "st,comms-ssc4-i2c";
320 reg = <0x9540000 0x110>;
321 interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>;
322 clocks = <&clk_sysin>;
324 clock-frequency = <400000>;
325 pinctrl-names = "default";
326 pinctrl-0 = <&pinctrl_i2c10_default>;
332 compatible = "st,comms-ssc4-i2c";
333 reg = <0x9541000 0x110>;
334 interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
335 clocks = <&clk_sysin>;
337 clock-frequency = <400000>;
338 pinctrl-names = "default";
339 pinctrl-0 = <&pinctrl_i2c11_default>;
344 usb2_picophy0: phy1 {
345 compatible = "st,stih407-usb2-phy";
347 st,syscfg = <&syscfg_core 0x100 0xf4>;
348 resets = <&softreset STIH407_PICOPHY_SOFTRESET>,
349 <&picophyreset STIH407_PICOPHY2_RESET>;
350 reset-names = "global", "port";
353 miphy28lp_phy: miphy28lp@9b22000 {
354 compatible = "st,miphy28lp-phy";
355 st,syscfg = <&syscfg_core>;
356 #address-cells = <1>;
360 phy_port0: port@9b22000 {
361 reg = <0x9b22000 0xff>,
364 reg-names = "sata-up",
368 st,syscfg = <0x114 0x818 0xe0 0xec>;
371 reset-names = "miphy-sw-rst";
372 resets = <&softreset STIH407_MIPHY0_SOFTRESET>;
375 phy_port1: port@9b2a000 {
376 reg = <0x9b2a000 0xff>,
379 reg-names = "sata-up",
383 st,syscfg = <0x118 0x81c 0xe4 0xf0>;
387 reset-names = "miphy-sw-rst";
388 resets = <&softreset STIH407_MIPHY1_SOFTRESET>;
391 phy_port2: port@8f95000 {
392 reg = <0x8f95000 0xff>,
397 st,syscfg = <0x11c 0x820>;
401 reset-names = "miphy-sw-rst";
402 resets = <&softreset STIH407_MIPHY2_SOFTRESET>;
407 compatible = "st,comms-ssc4-spi";
408 reg = <0x9840000 0x110>;
409 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
410 clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
412 pinctrl-0 = <&pinctrl_spi0_default>;
413 pinctrl-names = "default";
414 #address-cells = <1>;
421 compatible = "st,comms-ssc4-spi";
422 reg = <0x9841000 0x110>;
423 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
424 clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
426 pinctrl-names = "default";
427 pinctrl-0 = <&pinctrl_spi1_default>;
433 compatible = "st,comms-ssc4-spi";
434 reg = <0x9842000 0x110>;
435 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
436 clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
438 pinctrl-names = "default";
439 pinctrl-0 = <&pinctrl_spi2_default>;
445 compatible = "st,comms-ssc4-spi";
446 reg = <0x9843000 0x110>;
447 interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
448 clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
450 pinctrl-names = "default";
451 pinctrl-0 = <&pinctrl_spi3_default>;
457 compatible = "st,comms-ssc4-spi";
458 reg = <0x9844000 0x110>;
459 interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
460 clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
462 pinctrl-names = "default";
463 pinctrl-0 = <&pinctrl_spi4_default>;
470 compatible = "st,comms-ssc4-spi";
471 reg = <0x9540000 0x110>;
472 interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>;
473 clocks = <&clk_sysin>;
475 pinctrl-names = "default";
476 pinctrl-0 = <&pinctrl_spi10_default>;
482 compatible = "st,comms-ssc4-spi";
483 reg = <0x9541000 0x110>;
484 interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
485 clocks = <&clk_sysin>;
487 pinctrl-names = "default";
488 pinctrl-0 = <&pinctrl_spi11_default>;
494 compatible = "st,comms-ssc4-spi";
495 reg = <0x9542000 0x110>;
496 interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
497 clocks = <&clk_sysin>;
499 pinctrl-names = "default";
500 pinctrl-0 = <&pinctrl_spi12_default>;
505 mmc0: sdhci@09060000 {
506 compatible = "st,sdhci-stih407", "st,sdhci";
508 reg = <0x09060000 0x7ff>, <0x9061008 0x20>;
509 reg-names = "mmc", "top-mmc-delay";
510 interrupts = <GIC_SPI 92 IRQ_TYPE_NONE>;
511 interrupt-names = "mmcirq";
512 pinctrl-names = "default";
513 pinctrl-0 = <&pinctrl_mmc0>;
515 clocks = <&clk_s_c0_flexgen CLK_MMC_0>;
520 mmc1: sdhci@09080000 {
521 compatible = "st,sdhci-stih407", "st,sdhci";
523 reg = <0x09080000 0x7ff>;
525 interrupts = <GIC_SPI 90 IRQ_TYPE_NONE>;
526 interrupt-names = "mmcirq";
527 pinctrl-names = "default";
528 pinctrl-0 = <&pinctrl_sd1>;
530 clocks = <&clk_s_c0_flexgen CLK_MMC_1>;
531 resets = <&softreset STIH407_MMC1_SOFTRESET>;
535 /* Watchdog and Real-Time Clock */
537 compatible = "st,stih407-lpc";
538 reg = <0x8787000 0x1000>;
539 interrupts = <GIC_SPI 129 IRQ_TYPE_EDGE_RISING>;
540 clocks = <&clk_s_d3_flexgen CLK_LPC_0>;
542 st,syscfg = <&syscfg_core>;
543 st,lpc-mode = <ST_LPC_MODE_WDT>;
547 compatible = "st,stih407-lpc";
548 reg = <0x8788000 0x1000>;
549 interrupts = <GIC_SPI 130 IRQ_TYPE_EDGE_RISING>;
550 clocks = <&clk_s_d3_flexgen CLK_LPC_1>;
551 st,lpc-mode = <ST_LPC_MODE_RTC>;
554 sata0: sata@9b20000 {
555 compatible = "st,ahci";
556 reg = <0x9b20000 0x1000>;
558 interrupts = <GIC_SPI 159 IRQ_TYPE_NONE>;
559 interrupt-names = "hostc";
561 phys = <&phy_port0 PHY_TYPE_SATA>;
562 phy-names = "ahci_phy";
564 resets = <&powerdown STIH407_SATA0_POWERDOWN>,
565 <&softreset STIH407_SATA0_SOFTRESET>,
566 <&softreset STIH407_SATA0_PWR_SOFTRESET>;
567 reset-names = "pwr-dwn", "sw-rst", "pwr-rst";
569 clock-names = "ahci_clk";
570 clocks = <&clk_s_c0_flexgen CLK_ICN_REG>;
575 sata1: sata@9b28000 {
576 compatible = "st,ahci";
577 reg = <0x9b28000 0x1000>;
579 interrupts = <GIC_SPI 170 IRQ_TYPE_NONE>;
580 interrupt-names = "hostc";
582 phys = <&phy_port1 PHY_TYPE_SATA>;
583 phy-names = "ahci_phy";
585 resets = <&powerdown STIH407_SATA1_POWERDOWN>,
586 <&softreset STIH407_SATA1_SOFTRESET>,
587 <&softreset STIH407_SATA1_PWR_SOFTRESET>;
588 reset-names = "pwr-dwn",
592 clock-names = "ahci_clk";
593 clocks = <&clk_s_c0_flexgen CLK_ICN_REG>;
599 st_dwc3: dwc3@8f94000 {
600 compatible = "st,stih407-dwc3";
601 reg = <0x08f94000 0x1000>, <0x110 0x4>;
602 reg-names = "reg-glue", "syscfg-reg";
603 st,syscfg = <&syscfg_core>;
604 resets = <&powerdown STIH407_USB3_POWERDOWN>,
605 <&softreset STIH407_MIPHY2_SOFTRESET>;
606 reset-names = "powerdown", "softreset";
607 #address-cells = <1>;
609 pinctrl-names = "default";
610 pinctrl-0 = <&pinctrl_usb3>;
616 compatible = "snps,dwc3";
617 reg = <0x09900000 0x100000>;
618 interrupts = <GIC_SPI 155 IRQ_TYPE_NONE>;
620 phy-names = "usb2-phy", "usb3-phy";
621 phys = <&usb2_picophy0>,
622 <&phy_port2 PHY_TYPE_USB3>;
626 /* COMMS PWM Module */
628 compatible = "st,sti-pwm";
630 reg = <0x9810000 0x68>;
631 pinctrl-names = "default";
632 pinctrl-0 = <&pinctrl_pwm0_chan0_default>;
634 clocks = <&clk_sysin>;
635 st,pwm-num-chan = <1>;
642 compatible = "st,sti-pwm";
644 reg = <0x9510000 0x68>;
645 pinctrl-names = "default";
646 pinctrl-0 = <&pinctrl_pwm1_chan0_default
647 &pinctrl_pwm1_chan1_default
648 &pinctrl_pwm1_chan2_default
649 &pinctrl_pwm1_chan3_default>;
651 clocks = <&clk_sysin>;
652 st,pwm-num-chan = <4>;
657 rng10: rng@08a89000 {
658 compatible = "st,rng";
659 reg = <0x08a89000 0x1000>;
660 clocks = <&clk_sysin>;
664 rng11: rng@08a8a000 {
665 compatible = "st,rng";
666 reg = <0x08a8a000 0x1000>;
667 clocks = <&clk_sysin>;
671 ethernet0: dwmac@9630000 {
672 device_type = "network";
674 compatible = "st,stih407-dwmac", "snps,dwmac", "snps,dwmac-3.710";
675 reg = <0x9630000 0x8000>, <0x80 0x4>;
676 reg-names = "stmmaceth", "sti-ethconf";
678 st,syscon = <&syscfg_sbc_reg 0x80>;
680 resets = <&softreset STIH407_ETH1_SOFTRESET>;
681 reset-names = "stmmaceth";
683 interrupts = <GIC_SPI 98 IRQ_TYPE_NONE>,
684 <GIC_SPI 99 IRQ_TYPE_NONE>;
685 interrupt-names = "macirq", "eth_wake_irq";
690 pinctrl-names = "default";
691 pinctrl-0 = <&pinctrl_rgmii1>;
693 clock-names = "stmmaceth", "sti-ethclk";
694 clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>,
695 <&clk_s_c0_flexgen CLK_ETH_PHY>;
698 rng10: rng@08a89000 {
699 compatible = "st,rng";
700 reg = <0x08a89000 0x1000>;
701 clocks = <&clk_sysin>;
705 rng11: rng@08a8a000 {
706 compatible = "st,rng";
707 reg = <0x08a8a000 0x1000>;
708 clocks = <&clk_sysin>;