/* * Copyright (C) 2012 STMicroelectronics Limited. * Author: Srinivas Kandagatla * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * publishhed by the Free Software Foundation. */ #include "stih41x.dtsi" #include "stih416-clock.dtsi" #include "stih416-pinctrl.dtsi" #include #include #include #include / { L2: cache-controller { compatible = "arm,pl310-cache"; reg = <0xfffe2000 0x1000>; arm,data-latency = <3 3 3>; arm,tag-latency = <2 2 2>; cache-unified; cache-level = <2>; }; arm-pmu { compatible = "arm,cortex-a9-pmu"; interrupt-parent = <&intc>; interrupts = ; }; soc { #address-cells = <1>; #size-cells = <1>; interrupt-parent = <&intc>; ranges; compatible = "simple-bus"; restart { compatible = "st,stih416-restart"; st,syscfg = <&syscfg_sbc>; status = "okay"; }; powerdown: powerdown-controller { #reset-cells = <1>; compatible = "st,stih416-powerdown"; }; softreset: softreset-controller { #reset-cells = <1>; compatible = "st,stih416-softreset"; }; syscfg_sbc:sbc-syscfg@fe600000{ compatible = "st,stih416-sbc-syscfg", "syscon"; reg = <0xfe600000 0x1000>; }; syscfg_front:front-syscfg@fee10000{ compatible = "st,stih416-front-syscfg", "syscon"; reg = <0xfee10000 0x1000>; }; syscfg_rear:rear-syscfg@fe830000{ compatible = "st,stih416-rear-syscfg", "syscon"; reg = <0xfe830000 0x1000>; }; /* MPE */ syscfg_fvdp_fe:fvdp-fe-syscfg@fddf0000{ compatible = "st,stih416-fvdp-fe-syscfg", "syscon"; reg = <0xfddf0000 0x1000>; }; syscfg_fvdp_lite:fvdp-lite-syscfg@fd6a0000{ compatible = "st,stih416-fvdp-lite-syscfg", "syscon"; reg = <0xfd6a0000 0x1000>; }; syscfg_cpu:cpu-syscfg@fdde0000{ compatible = "st,stih416-cpu-syscfg", "syscon"; reg = <0xfdde0000 0x1000>; }; syscfg_compo:compo-syscfg@fd320000{ compatible = "st,stih416-compo-syscfg", "syscon"; reg = <0xfd320000 0x1000>; }; syscfg_transport:transport-syscfg@fd690000{ compatible = "st,stih416-transport-syscfg", "syscon"; reg = <0xfd690000 0x1000>; }; syscfg_lpm:lpm-syscfg@fe4b5100{ compatible = "st,stih416-lpm-syscfg", "syscon"; reg = <0xfe4b5100 0x8>; }; irq-syscfg { compatible = "st,stih416-irq-syscfg"; st,syscfg = <&syscfg_cpu>; st,irq-device = , ; st,fiq-device = , ; }; serial2: serial@fed32000{ compatible = "st,asc"; status = "disabled"; reg = <0xfed32000 0x2c>; interrupts = <0 197 0>; clocks = <&clk_s_a0_ls CLK_ICN_REG>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_serial2 &pinctrl_serial2_oe>; }; /* SBC_UART1 */ sbc_serial1: serial@fe531000 { compatible = "st,asc"; status = "disabled"; reg = <0xfe531000 0x2c>; interrupts = <0 210 0>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_sbc_serial1>; clocks = <&clk_sysin>; }; i2c@fed40000 { compatible = "st,comms-ssc4-i2c"; reg = <0xfed40000 0x110>; interrupts = ; clocks = <&clk_s_a0_ls CLK_ICN_REG>; clock-names = "ssc"; clock-frequency = <400000>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c0_default>; status = "disabled"; }; i2c@fed41000 { compatible = "st,comms-ssc4-i2c"; reg = <0xfed41000 0x110>; interrupts = ; clocks = <&clk_s_a0_ls CLK_ICN_REG>; clock-names = "ssc"; clock-frequency = <400000>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c1_default>; status = "disabled"; }; i2c@fe540000 { compatible = "st,comms-ssc4-i2c"; reg = <0xfe540000 0x110>; interrupts = ; clocks = <&clk_sysin>; clock-names = "ssc"; clock-frequency = <400000>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_sbc_i2c0_default>; status = "disabled"; }; i2c@fe541000 { compatible = "st,comms-ssc4-i2c"; reg = <0xfe541000 0x110>; interrupts = ; clocks = <&clk_sysin>; clock-names = "ssc"; clock-frequency = <400000>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_sbc_i2c1_default>; status = "disabled"; }; ethernet0: dwmac@fe810000 { device_type = "network"; compatible = "st,stih416-dwmac", "snps,dwmac", "snps,dwmac-3.710"; status = "disabled"; reg = <0xfe810000 0x8000>; reg-names = "stmmaceth"; interrupts = <0 133 0>, <0 134 0>, <0 135 0>; interrupt-names = "macirq", "eth_wake_irq", "eth_lpi"; snps,pbl = <32>; snps,mixed-burst; st,syscon = <&syscfg_rear 0x8bc>; resets = <&softreset STIH416_ETH0_SOFTRESET>; reset-names = "stmmaceth"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_mii0>; clock-names = "stmmaceth", "sti-ethclk"; clocks = <&clk_s_a1_ls CLK_ICN_IF_2>, <&clk_s_a1_ls CLK_GMAC0_PHY>; }; ethernet1: dwmac@fef08000 { device_type = "network"; compatible = "st,stih416-dwmac", "snps,dwmac", "snps,dwmac-3.710"; status = "disabled"; reg = <0xfef08000 0x8000>; reg-names = "stmmaceth"; interrupts = <0 136 0>, <0 137 0>, <0 138 0>; interrupt-names = "macirq", "eth_wake_irq", "eth_lpi"; snps,pbl = <32>; snps,mixed-burst; st,syscon = <&syscfg_sbc 0x7f0>; resets = <&softreset STIH416_ETH1_SOFTRESET>; reset-names = "stmmaceth"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_mii1>; clock-names = "stmmaceth", "sti-ethclk"; clocks = <&clk_s_a0_ls CLK_ICN_REG>, <&clk_s_a0_ls CLK_ETH1_PHY>; }; rc: rc@fe518000 { compatible = "st,comms-irb"; reg = <0xfe518000 0x234>; interrupts = <0 203 0>; rx-mode = "infrared"; clocks = <&clk_sysin>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_ir>; resets = <&softreset STIH416_IRB_SOFTRESET>; }; /* FSM */ spifsm: spifsm@fe902000 { compatible = "st,spi-fsm"; reg = <0xfe902000 0x1000>; pinctrl-0 = <&pinctrl_fsm>; st,syscfg = <&syscfg_rear>; st,boot-device-reg = <0x958>; st,boot-device-spi = <0x1a>; status = "disabled"; }; keyscan: keyscan@fe4b0000 { compatible = "st,sti-keyscan"; status = "disabled"; reg = <0xfe4b0000 0x2000>; interrupts = ; clocks = <&clk_sysin>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_keyscan>; resets = <&powerdown STIH416_KEYSCAN_POWERDOWN>, <&softreset STIH416_KEYSCAN_SOFTRESET>; }; temp0 { compatible = "st,stih416-sas-thermal"; clock-names = "thermal"; clocks = <&clockgen_c_vcc 14>; status = "okay"; }; temp1@fdfe8000 { compatible = "st,stih416-mpe-thermal"; reg = <0xfdfe8000 0x10>; clocks = <&clockgen_e 3>; clock-names = "thermal"; interrupts = ; status = "okay"; }; mmc0: sdhci@fe81e000 { compatible = "st,sdhci"; status = "disabled"; reg = <0xfe81e000 0x1000>; interrupts = ; interrupt-names = "mmcirq"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_mmc0>; clock-names = "mmc"; clocks = <&clk_s_a1_ls 1>; }; mmc1: sdhci@fe81f000 { compatible = "st,sdhci"; status = "disabled"; reg = <0xfe81f000 0x1000>; interrupts = ; interrupt-names = "mmcirq"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_mmc1>; clock-names = "mmc"; clocks = <&clk_s_a1_ls 8>; }; miphy365x_phy: phy@fe382000 { compatible = "st,miphy365x-phy"; st,syscfg = <&syscfg_rear 0x824 0x828>; #address-cells = <1>; #size-cells = <1>; ranges; phy_port0: port@fe382000 { #phy-cells = <1>; reg = <0xfe382000 0x100>, <0xfe394000 0x100>; reg-names = "sata", "pcie"; }; phy_port1: port@fe38a000 { #phy-cells = <1>; reg = <0xfe38a000 0x100>, <0xfe804000 0x100>; reg-names = "sata", "pcie"; }; }; sata0: sata@fe380000 { compatible = "st,sti-ahci"; reg = <0xfe380000 0x1000>; interrupts = ; interrupt-names = "hostc"; phys = <&phy_port0 PHY_TYPE_SATA>; phy-names = "sata-phy"; resets = <&powerdown STIH416_SATA0_POWERDOWN>, <&softreset STIH416_SATA0_SOFTRESET>; reset-names = "pwr-dwn", "sw-rst"; clock-names = "ahci_clk"; clocks = <&clk_s_a0_ls CLK_ICN_REG>; status = "disabled"; }; usb2_phy: phy@0 { compatible = "st,stih416-usb-phy"; #phy-cells = <0>; st,syscfg = <&syscfg_rear>; clocks = <&clk_sysin>; clock-names = "osc_phy"; }; ehci0: usb@fe1ffe00 { compatible = "st,st-ehci-300x"; reg = <0xfe1ffe00 0x100>; interrupts = ; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usb0>; clocks = <&clk_s_a1_ls 0>, <&clockgen_b0 0>; clock-names = "ic", "clk48"; phys = <&usb2_phy>; phy-names = "usb"; resets = <&powerdown STIH416_USB0_POWERDOWN>, <&softreset STIH416_USB0_SOFTRESET>; reset-names = "power", "softreset"; }; ohci0: usb@fe1ffc00 { compatible = "st,st-ohci-300x"; reg = <0xfe1ffc00 0x100>; interrupts = ; clocks = <&clk_s_a1_ls 0>, <&clockgen_b0 0>; clock-names = "ic", "clk48"; phys = <&usb2_phy>; phy-names = "usb"; status = "okay"; resets = <&powerdown STIH416_USB0_POWERDOWN>, <&softreset STIH416_USB0_SOFTRESET>; reset-names = "power", "softreset"; }; ehci1: usb@fe203e00 { compatible = "st,st-ehci-300x"; reg = <0xfe203e00 0x100>; interrupts = ; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usb1>; clocks = <&clk_s_a1_ls 0>, <&clockgen_b0 0>; clock-names = "ic", "clk48"; phys = <&usb2_phy>; phy-names = "usb"; resets = <&powerdown STIH416_USB1_POWERDOWN>, <&softreset STIH416_USB1_SOFTRESET>; reset-names = "power", "softreset"; }; ohci1: usb@fe203c00 { compatible = "st,st-ohci-300x"; reg = <0xfe203c00 0x100>; interrupts = ; clocks = <&clk_s_a1_ls 0>, <&clockgen_b0 0>; clock-names = "ic", "clk48"; phys = <&usb2_phy>; phy-names = "usb"; resets = <&powerdown STIH416_USB1_POWERDOWN>, <&softreset STIH416_USB1_SOFTRESET>; reset-names = "power", "softreset"; }; ehci2: usb@fe303e00 { compatible = "st,st-ehci-300x"; reg = <0xfe303e00 0x100>; interrupts = ; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usb2>; clocks = <&clk_s_a1_ls 0>, <&clockgen_b0 0>; clock-names = "ic", "clk48"; phys = <&usb2_phy>; phy-names = "usb"; resets = <&powerdown STIH416_USB2_POWERDOWN>, <&softreset STIH416_USB2_SOFTRESET>; reset-names = "power", "softreset"; }; ohci2: usb@fe303c00 { compatible = "st,st-ohci-300x"; reg = <0xfe303c00 0x100>; interrupts = ; clocks = <&clk_s_a1_ls 0>, <&clockgen_b0 0>; clock-names = "ic", "clk48"; phys = <&usb2_phy>; phy-names = "usb"; resets = <&powerdown STIH416_USB2_POWERDOWN>, <&softreset STIH416_USB2_SOFTRESET>; reset-names = "power", "softreset"; }; ehci3: usb@fe343e00 { compatible = "st,st-ehci-300x"; reg = <0xfe343e00 0x100>; interrupts = ; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usb3>; clocks = <&clk_s_a1_ls 0>, <&clockgen_b0 0>; clock-names = "ic", "clk48"; phys = <&usb2_phy>; phy-names = "usb"; resets = <&powerdown STIH416_USB3_POWERDOWN>, <&softreset STIH416_USB3_SOFTRESET>; reset-names = "power", "softreset"; }; ohci3: usb@fe343c00 { compatible = "st,st-ohci-300x"; reg = <0xfe343c00 0x100>; interrupts = ; clocks = <&clk_s_a1_ls 0>, <&clockgen_b0 0>; clock-names = "ic", "clk48"; phys = <&usb2_phy>; phy-names = "usb"; resets = <&powerdown STIH416_USB3_POWERDOWN>, <&softreset STIH416_USB3_SOFTRESET>; reset-names = "power", "softreset"; }; /* SAS PWM Module */ pwm0: pwm@fed10000 { compatible = "st,sti-pwm"; status = "disabled"; #pwm-cells = <2>; reg = <0xfed10000 0x68>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_pwm0_chan0_default &pinctrl_pwm0_chan1_default &pinctrl_pwm0_chan2_default &pinctrl_pwm0_chan3_default>; clock-names = "pwm"; clocks = <&clk_sysin>; st,pwm-num-chan = <4>; }; /* SBC PWM Module */ pwm1: pwm@fe510000 { compatible = "st,sti-pwm"; status = "disabled"; #pwm-cells = <2>; reg = <0xfe510000 0x68>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_pwm1_chan0_default /* * Shared with SBC_OBS_NOTRST. Don't * enable unless you really know what * you're doing. * * &pinctrl_pwm1_chan1_default */ &pinctrl_pwm1_chan2_default &pinctrl_pwm1_chan3_default>; clock-names = "pwm"; clocks = <&clk_sysin>; st,pwm-num-chan = <3>; }; }; };