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-controller/stih407-resets.h>
13 #include <dt-bindings/interrupt-controller/irq-st.h>
23 compatible = "arm,cortex-a9";
28 compatible = "arm,cortex-a9";
33 intc: interrupt-controller@08761000 {
34 compatible = "arm,cortex-a9-gic";
35 #interrupt-cells = <3>;
37 reg = <0x08761000 0x1000>, <0x08760100 0x100>;
41 compatible = "arm,cortex-a9-scu";
42 reg = <0x08760000 0x1000>;
46 interrupt-parent = <&intc>;
47 compatible = "arm,cortex-a9-global-timer";
48 reg = <0x08760200 0x100>;
49 interrupts = <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>;
50 clocks = <&arm_periph_clk>;
53 l2: cache-controller {
54 compatible = "arm,pl310-cache";
55 reg = <0x08762000 0x1000>;
56 arm,data-latency = <3 3 3>;
57 arm,tag-latency = <2 2 2>;
63 interrupt-parent = <&intc>;
64 compatible = "arm,cortex-a9-pmu";
65 interrupts = <GIC_PPI 15 IRQ_TYPE_LEVEL_HIGH>;
71 interrupt-parent = <&intc>;
73 compatible = "simple-bus";
76 compatible = "st,stih407-restart";
77 st,syscfg = <&syscfg_sbc_reg>;
81 powerdown: powerdown-controller {
82 compatible = "st,stih407-powerdown";
86 softreset: softreset-controller {
87 compatible = "st,stih407-softreset";
91 picophyreset: picophyreset-controller {
92 compatible = "st,stih407-picophyreset";
96 syscfg_sbc: sbc-syscfg@9620000 {
97 compatible = "st,stih407-sbc-syscfg", "syscon";
98 reg = <0x9620000 0x1000>;
101 syscfg_front: front-syscfg@9280000 {
102 compatible = "st,stih407-front-syscfg", "syscon";
103 reg = <0x9280000 0x1000>;
106 syscfg_rear: rear-syscfg@9290000 {
107 compatible = "st,stih407-rear-syscfg", "syscon";
108 reg = <0x9290000 0x1000>;
111 syscfg_flash: flash-syscfg@92a0000 {
112 compatible = "st,stih407-flash-syscfg", "syscon";
113 reg = <0x92a0000 0x1000>;
116 syscfg_sbc_reg: fvdp-lite-syscfg@9600000 {
117 compatible = "st,stih407-sbc-reg-syscfg", "syscon";
118 reg = <0x9600000 0x1000>;
121 syscfg_core: core-syscfg@92b0000 {
122 compatible = "st,stih407-core-syscfg", "syscon";
123 reg = <0x92b0000 0x1000>;
126 syscfg_lpm: lpm-syscfg@94b5100 {
127 compatible = "st,stih407-lpm-syscfg", "syscon";
128 reg = <0x94b5100 0x1000>;
132 compatible = "st,stih407-irq-syscfg";
133 st,syscfg = <&syscfg_core>;
134 st,irq-device = <ST_IRQ_SYSCFG_PMU_0>,
135 <ST_IRQ_SYSCFG_PMU_1>;
136 st,fiq-device = <ST_IRQ_SYSCFG_DISABLED>,
137 <ST_IRQ_SYSCFG_DISABLED>;
141 compatible = "st,asc";
142 reg = <0x9830000 0x2c>;
143 interrupts = <GIC_SPI 122 IRQ_TYPE_NONE>;
144 pinctrl-names = "default";
145 pinctrl-0 = <&pinctrl_serial0>;
146 clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
152 compatible = "st,asc";
153 reg = <0x9831000 0x2c>;
154 interrupts = <GIC_SPI 123 IRQ_TYPE_NONE>;
155 pinctrl-names = "default";
156 pinctrl-0 = <&pinctrl_serial1>;
157 clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
163 compatible = "st,asc";
164 reg = <0x9832000 0x2c>;
165 interrupts = <GIC_SPI 124 IRQ_TYPE_NONE>;
166 pinctrl-names = "default";
167 pinctrl-0 = <&pinctrl_serial2>;
168 clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
173 /* SBC_ASC0 - UART10 */
174 sbc_serial0: serial@9530000 {
175 compatible = "st,asc";
176 reg = <0x9530000 0x2c>;
177 interrupts = <GIC_SPI 138 IRQ_TYPE_NONE>;
178 pinctrl-names = "default";
179 pinctrl-0 = <&pinctrl_sbc_serial0>;
180 clocks = <&clk_sysin>;
186 compatible = "st,asc";
187 reg = <0x9531000 0x2c>;
188 interrupts = <GIC_SPI 139 IRQ_TYPE_NONE>;
189 pinctrl-names = "default";
190 pinctrl-0 = <&pinctrl_sbc_serial1>;
191 clocks = <&clk_sysin>;
197 compatible = "st,comms-ssc4-i2c";
198 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
199 reg = <0x9840000 0x110>;
200 clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
202 clock-frequency = <400000>;
203 pinctrl-names = "default";
204 pinctrl-0 = <&pinctrl_i2c0_default>;
210 compatible = "st,comms-ssc4-i2c";
211 reg = <0x9841000 0x110>;
212 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
213 clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
215 clock-frequency = <400000>;
216 pinctrl-names = "default";
217 pinctrl-0 = <&pinctrl_i2c1_default>;
223 compatible = "st,comms-ssc4-i2c";
224 reg = <0x9842000 0x110>;
225 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
226 clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
228 clock-frequency = <400000>;
229 pinctrl-names = "default";
230 pinctrl-0 = <&pinctrl_i2c2_default>;
236 compatible = "st,comms-ssc4-i2c";
237 reg = <0x9843000 0x110>;
238 interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
239 clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
241 clock-frequency = <400000>;
242 pinctrl-names = "default";
243 pinctrl-0 = <&pinctrl_i2c3_default>;
249 compatible = "st,comms-ssc4-i2c";
250 reg = <0x9844000 0x110>;
251 interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
252 clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
254 clock-frequency = <400000>;
255 pinctrl-names = "default";
256 pinctrl-0 = <&pinctrl_i2c4_default>;
262 compatible = "st,comms-ssc4-i2c";
263 reg = <0x9845000 0x110>;
264 interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
265 clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
267 clock-frequency = <400000>;
268 pinctrl-names = "default";
269 pinctrl-0 = <&pinctrl_i2c5_default>;
277 compatible = "st,comms-ssc4-i2c";
278 reg = <0x9540000 0x110>;
279 interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>;
280 clocks = <&clk_sysin>;
282 clock-frequency = <400000>;
283 pinctrl-names = "default";
284 pinctrl-0 = <&pinctrl_i2c10_default>;
290 compatible = "st,comms-ssc4-i2c";
291 reg = <0x9541000 0x110>;
292 interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
293 clocks = <&clk_sysin>;
295 clock-frequency = <400000>;
296 pinctrl-names = "default";
297 pinctrl-0 = <&pinctrl_i2c11_default>;
302 usb2_picophy0: phy1 {
303 compatible = "st,stih407-usb2-phy";
305 st,syscfg = <&syscfg_core 0x100 0xf4>;
306 resets = <&softreset STIH407_PICOPHY_SOFTRESET>,
307 <&picophyreset STIH407_PICOPHY2_RESET>;
308 reset-names = "global", "port";
311 miphy28lp_phy: miphy28lp@9b22000 {
312 compatible = "st,miphy28lp-phy";
313 st,syscfg = <&syscfg_core>;
314 #address-cells = <1>;
318 phy_port0: port@9b22000 {
319 reg = <0x9b22000 0xff>,
322 reg-names = "sata-up",
326 st,syscfg = <0x114 0x818 0xe0 0xec>;
329 reset-names = "miphy-sw-rst";
330 resets = <&softreset STIH407_MIPHY0_SOFTRESET>;
333 phy_port1: port@9b2a000 {
334 reg = <0x9b2a000 0xff>,
337 reg-names = "sata-up",
341 st,syscfg = <0x118 0x81c 0xe4 0xf0>;
345 reset-names = "miphy-sw-rst";
346 resets = <&softreset STIH407_MIPHY1_SOFTRESET>;
349 phy_port2: port@8f95000 {
350 reg = <0x8f95000 0xff>,
355 st,syscfg = <0x11c 0x820>;
359 reset-names = "miphy-sw-rst";
360 resets = <&softreset STIH407_MIPHY2_SOFTRESET>;
365 compatible = "st,comms-ssc4-spi";
366 reg = <0x9840000 0x110>;
367 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
368 clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
370 pinctrl-0 = <&pinctrl_spi0_default>;
371 pinctrl-names = "default";
372 #address-cells = <1>;
379 compatible = "st,comms-ssc4-spi";
380 reg = <0x9841000 0x110>;
381 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
382 clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
389 compatible = "st,comms-ssc4-spi";
390 reg = <0x9842000 0x110>;
391 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
392 clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
399 compatible = "st,comms-ssc4-spi";
400 reg = <0x9843000 0x110>;
401 interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
402 clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
409 compatible = "st,comms-ssc4-spi";
410 reg = <0x9844000 0x110>;
411 interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
412 clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
420 compatible = "st,comms-ssc4-spi";
421 reg = <0x9540000 0x110>;
422 interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>;
423 clocks = <&clk_sysin>;
430 compatible = "st,comms-ssc4-spi";
431 reg = <0x9541000 0x110>;
432 interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
433 clocks = <&clk_sysin>;
440 compatible = "st,comms-ssc4-spi";
441 reg = <0x9542000 0x110>;
442 interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
443 clocks = <&clk_sysin>;
449 mmc0: sdhci@09060000 {
450 compatible = "st,sdhci-stih407", "st,sdhci";
452 reg = <0x09060000 0x7ff>, <0x9061008 0x20>;
453 reg-names = "mmc", "top-mmc-delay";
454 interrupts = <GIC_SPI 92 IRQ_TYPE_NONE>;
455 interrupt-names = "mmcirq";
456 pinctrl-names = "default";
457 pinctrl-0 = <&pinctrl_mmc0>;
459 clocks = <&clk_s_c0_flexgen CLK_MMC_0>;
464 mmc1: sdhci@09080000 {
465 compatible = "st,sdhci-stih407", "st,sdhci";
467 reg = <0x09080000 0x7ff>;
469 interrupts = <GIC_SPI 90 IRQ_TYPE_NONE>;
470 interrupt-names = "mmcirq";
471 pinctrl-names = "default";
472 pinctrl-0 = <&pinctrl_sd1>;
474 clocks = <&clk_s_c0_flexgen CLK_MMC_1>;
475 resets = <&softreset STIH407_MMC1_SOFTRESET>;
479 /* Watchdog and Real-Time Clock */
481 compatible = "st,stih407-lpc";
482 reg = <0x8787000 0x1000>;
483 interrupts = <GIC_SPI 129 IRQ_TYPE_EDGE_RISING>;
484 clocks = <&clk_s_d3_flexgen CLK_LPC_0>;
486 st,syscfg = <&syscfg_core>;
487 st,lpc-mode = <ST_LPC_MODE_WDT>;
491 compatible = "st,stih407-lpc";
492 reg = <0x8788000 0x1000>;
493 interrupts = <GIC_SPI 130 IRQ_TYPE_EDGE_RISING>;
494 clocks = <&clk_s_d3_flexgen CLK_LPC_1>;
495 st,lpc-mode = <ST_LPC_MODE_RTC>;
498 sata0: sata@9b20000 {
499 compatible = "st,ahci";
500 reg = <0x9b20000 0x1000>;
502 interrupts = <GIC_SPI 159 IRQ_TYPE_NONE>;
503 interrupt-names = "hostc";
505 phys = <&phy_port0 PHY_TYPE_SATA>;
506 phy-names = "ahci_phy";
508 resets = <&powerdown STIH407_SATA0_POWERDOWN>,
509 <&softreset STIH407_SATA0_SOFTRESET>,
510 <&softreset STIH407_SATA0_PWR_SOFTRESET>;
511 reset-names = "pwr-dwn", "sw-rst", "pwr-rst";
513 clock-names = "ahci_clk";
514 clocks = <&clk_s_c0_flexgen CLK_ICN_REG>;
519 sata1: sata@9b28000 {
520 compatible = "st,ahci";
521 reg = <0x9b28000 0x1000>;
523 interrupts = <GIC_SPI 170 IRQ_TYPE_NONE>;
524 interrupt-names = "hostc";
526 phys = <&phy_port1 PHY_TYPE_SATA>;
527 phy-names = "ahci_phy";
529 resets = <&powerdown STIH407_SATA1_POWERDOWN>,
530 <&softreset STIH407_SATA1_SOFTRESET>,
531 <&softreset STIH407_SATA1_PWR_SOFTRESET>;
532 reset-names = "pwr-dwn",
536 clock-names = "ahci_clk";
537 clocks = <&clk_s_c0_flexgen CLK_ICN_REG>;
542 st_dwc3: dwc3@8f94000 {
543 compatible = "st,stih407-dwc3";
544 reg = <0x08f94000 0x1000>, <0x110 0x4>;
545 reg-names = "reg-glue", "syscfg-reg";
546 st,syscfg = <&syscfg_core>;
547 resets = <&powerdown STIH407_USB3_POWERDOWN>,
548 <&softreset STIH407_MIPHY2_SOFTRESET>;
549 reset-names = "powerdown", "softreset";
550 #address-cells = <1>;
552 pinctrl-names = "default";
553 pinctrl-0 = <&pinctrl_usb3>;
559 compatible = "snps,dwc3";
560 reg = <0x09900000 0x100000>;
561 interrupts = <GIC_SPI 155 IRQ_TYPE_NONE>;
563 phy-names = "usb2-phy", "usb3-phy";
564 phys = <&usb2_picophy0>,
565 <&phy_port2 PHY_TYPE_USB3>;