aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ramips/dts
diff options
context:
space:
mode:
authorShiji Yang <yangshiji66@qq.com>2023-06-17 19:30:59 +0800
committerNick Hainke <vincent@systemli.org>2023-07-30 13:09:23 +0200
commit1f818b09f8ae1cbb4a2ae7ddaccaa9ce0c12ca93 (patch)
tree35d4de6bee938f6a0e090c13d249f3fda0a4f84b /target/linux/ramips/dts
parent8cacf2bda8009f07715a9617be6b26e53c5443bd (diff)
downloadupstream-1f818b09f8ae1cbb4a2ae7ddaccaa9ce0c12ca93.tar.gz
upstream-1f818b09f8ae1cbb4a2ae7ddaccaa9ce0c12ca93.tar.bz2
upstream-1f818b09f8ae1cbb4a2ae7ddaccaa9ce0c12ca93.zip
ramips: add proper system clock and reset driver support for legacy SoCs
This series of upstream patches properly implement a clock and reset driver for old ralink SoCs[1]. And it includes some related fixes[2] and improvements[3][4]. All patches have been merged into linux-next. They will be part of upcoming Linux 6.5. In order to switch to the new system controller driver, all clocks and resets properties in SoC dtsi have been updated, and kernel symbol "CONFIG_CLK_MTMIPS" have been added to the kernel config files. [1] https://lore.kernel.org/all/20230619040941.1340372-1-sergio.paracuellos@gmail.com [2] https://lore.kernel.org/all/20230622-mips-ralink-clk-wuninitialized-v1-1-ea9041240d10@kernel.org [3] https://lore.kernel.org/all/OSYP286MB03120BABB25900E113ED42B7BC5CA@OSYP286MB0312.JPNP286.PROD.OUTLOOK.COM [4] https://lore.kernel.org/all/TYAP286MB03151148AF8C054621DD55C3BC23A@TYAP286MB0315.JPNP286.PROD.OUTLOOK.COM Tested on Motorola MWR03 (MT7628) Tested on Haier HW-L1W (MT7620) Signed-off-by: Shiji Yang <yangshiji66@qq.com>
Diffstat (limited to 'target/linux/ramips/dts')
-rw-r--r--target/linux/ramips/dts/mt7620a.dtsi77
-rw-r--r--target/linux/ramips/dts/mt7620n.dtsi59
-rw-r--r--target/linux/ramips/dts/mt7628an.dtsi78
-rw-r--r--target/linux/ramips/dts/rt2880.dtsi34
-rw-r--r--target/linux/ramips/dts/rt3050.dtsi64
-rw-r--r--target/linux/ramips/dts/rt3352.dtsi64
-rw-r--r--target/linux/ramips/dts/rt3883.dtsi66
-rw-r--r--target/linux/ramips/dts/rt5350.dtsi70
8 files changed, 274 insertions, 238 deletions
diff --git a/target/linux/ramips/dts/mt7620a.dtsi b/target/linux/ramips/dts/mt7620a.dtsi
index 4b6fa60dc8b..87cd119792b 100644
--- a/target/linux/ramips/dts/mt7620a.dtsi
+++ b/target/linux/ramips/dts/mt7620a.dtsi
@@ -40,15 +40,19 @@
#address-cells = <1>;
#size-cells = <1>;
- sysc: sysc@0 {
- compatible = "ralink,mt7620a-sysc", "ralink,rt3050-sysc", "syscon";
+ sysc: syscon@0 {
+ compatible = "ralink,mt7620-sysc", "syscon";
reg = <0x0 0x100>;
+ #clock-cells = <1>;
+ #reset-cells = <1>;
};
timer: timer@100 {
compatible = "ralink,mt7620a-timer", "ralink,rt2880-timer";
reg = <0x100 0x20>;
+ clocks = <&sysc 5>;
+
interrupt-parent = <&intc>;
interrupts = <1>;
};
@@ -57,7 +61,9 @@
compatible = "ralink,mt7620a-wdt", "ralink,rt2880-wdt";
reg = <0x120 0x10>;
- resets = <&rstctrl 8>;
+ clocks = <&sysc 6>;
+
+ resets = <&sysc 8>;
reset-names = "wdt";
interrupt-parent = <&intc>;
@@ -68,7 +74,7 @@
compatible = "ralink,mt7620a-intc", "ralink,rt2880-intc";
reg = <0x200 0x100>;
- resets = <&rstctrl 19>;
+ resets = <&sysc 19>;
reset-names = "intc";
interrupt-controller;
@@ -82,7 +88,7 @@
compatible = "ralink,mt7620a-memc", "ralink,rt3050-memc";
reg = <0x300 0x100>;
- resets = <&rstctrl 20>;
+ resets = <&sysc 20>;
reset-names = "mc";
interrupt-parent = <&intc>;
@@ -93,8 +99,9 @@
compatible = "ralink,mt7620a-uart", "ralink,rt2880-uart", "ns16550a";
reg = <0x500 0x100>;
- resets = <&rstctrl 12>;
- reset-names = "uart";
+ clocks = <&sysc 7>;
+
+ resets = <&sysc 12>;
interrupt-parent = <&intc>;
interrupts = <5>;
@@ -108,7 +115,7 @@
compatible = "ralink,mt7620a-gpio", "ralink,rt2880-gpio";
reg = <0x600 0x34>;
- resets = <&rstctrl 13>;
+ resets = <&sysc 13>;
reset-names = "pio";
interrupt-parent = <&intc>;
@@ -185,7 +192,9 @@
compatible = "ralink,rt2880-i2c";
reg = <0x900 0x100>;
- resets = <&rstctrl 16>;
+ clocks = <&sysc 8>;
+
+ resets = <&sysc 16>;
reset-names = "i2c";
#address-cells = <1>;
@@ -201,7 +210,9 @@
compatible = "mediatek,mt7620-i2s";
reg = <0xa00 0x100>;
- resets = <&rstctrl 17>;
+ clocks = <&sysc 9>;
+
+ resets = <&sysc 17>;
reset-names = "i2s";
interrupt-parent = <&intc>;
@@ -221,7 +232,9 @@
compatible = "ralink,mt7620a-spi", "ralink,rt2880-spi";
reg = <0xb00 0x40>;
- resets = <&rstctrl 18>;
+ clocks = <&sysc 10>;
+
+ resets = <&sysc 18>;
reset-names = "spi";
#address-cells = <1>;
@@ -237,7 +250,9 @@
compatible = "ralink,rt2880-spi";
reg = <0xb40 0x60>;
- resets = <&rstctrl 18>;
+ clocks = <&sysc 11>;
+
+ resets = <&sysc 18>;
reset-names = "spi";
#address-cells = <1>;
@@ -253,8 +268,9 @@
compatible = "ralink,mt7620a-uart", "ralink,rt2880-uart", "ns16550a";
reg = <0xc00 0x100>;
- resets = <&rstctrl 19>;
- reset-names = "uartl";
+ clocks = <&sysc 12>;
+
+ resets = <&sysc 19>;
interrupt-parent = <&intc>;
interrupts = <12>;
@@ -269,7 +285,7 @@
compatible = "ralink,mt7620a-systick", "ralink,cevt-systick";
reg = <0xd00 0x10>;
- resets = <&rstctrl 28>;
+ resets = <&sysc 28>;
reset-names = "intc";
interrupt-parent = <&cpuintc>;
@@ -280,7 +296,7 @@
compatible = "ralink,mt7620a-pcm";
reg = <0x2000 0x800>;
- resets = <&rstctrl 11>;
+ resets = <&sysc 11>;
reset-names = "pcm";
interrupt-parent = <&intc>;
@@ -293,7 +309,7 @@
compatible = "ralink,mt7620a-gdma", "ralink,rt3883-gdma";
reg = <0x2800 0x800>;
- resets = <&rstctrl 14>;
+ resets = <&sysc 14>;
reset-names = "dma";
interrupt-parent = <&intc>;
@@ -435,26 +451,14 @@
};
};
- rstctrl: rstctrl {
- compatible = "ralink,mt7620a-reset", "ralink,rt2880-reset";
- #reset-cells = <1>;
- };
-
- clkctrl: clkctrl {
- compatible = "ralink,rt2880-clock";
- #clock-cells = <1>;
- };
-
usbphy: usbphy {
compatible = "mediatek,mt7620-usbphy";
#phy-cells = <0>;
ralink,sysctl = <&sysc>;
- resets = <&rstctrl 22 &rstctrl 25>;
+ /* usb phy reset is only controled by RSTCTRL bit 25 */
+ resets = <&sysc 25>, <&sysc 22>;
reset-names = "host", "device";
-
- clocks = <&clkctrl 22 &clkctrl 25>;
- clock-names = "host", "device";
};
ethernet: ethernet@10100000 {
@@ -467,7 +471,7 @@
interrupt-parent = <&cpuintc>;
interrupts = <5>;
- resets = <&rstctrl 21 &rstctrl 23>;
+ resets = <&sysc 21>, <&sysc 23>;
reset-names = "fe", "esw";
mediatek,switch = <&gsw>;
@@ -498,7 +502,7 @@
compatible = "mediatek,mt7620-gsw";
reg = <0x10110000 0x8000>;
- resets = <&rstctrl 23>;
+ resets = <&sysc 23>;
reset-names = "esw";
interrupt-parent = <&intc>;
@@ -566,12 +570,9 @@
#address-cells = <3>;
#size-cells = <2>;
- resets = <&rstctrl 26>;
+ resets = <&sysc 26>;
reset-names = "pcie0";
- clocks = <&clkctrl 26>;
- clock-names = "pcie0";
-
interrupt-parent = <&cpuintc>;
interrupts = <4>;
@@ -604,6 +605,8 @@
compatible = "ralink,rt7620-wmac", "ralink,rt2880-wmac";
reg = <0x10180000 0x40000>;
+ clocks = <&sysc 13>;
+
interrupt-parent = <&cpuintc>;
interrupts = <6>;
diff --git a/target/linux/ramips/dts/mt7620n.dtsi b/target/linux/ramips/dts/mt7620n.dtsi
index 276bc137333..3299dea0f0d 100644
--- a/target/linux/ramips/dts/mt7620n.dtsi
+++ b/target/linux/ramips/dts/mt7620n.dtsi
@@ -40,15 +40,19 @@
#address-cells = <1>;
#size-cells = <1>;
- sysc: sysc@0 {
- compatible = "ralink,mt7620a-sysc", "ralink,rt3050-sysc", "syscon";
+ sysc: syscon@0 {
+ compatible = "ralink,mt7620-sysc", "syscon";
reg = <0x0 0x100>;
+ #clock-cells = <1>;
+ #reset-cells = <1>;
};
timer: timer@100 {
compatible = "ralink,mt7620a-timer", "ralink,rt2880-timer";
reg = <0x100 0x20>;
+ clocks = <&sysc 5>;
+
interrupt-parent = <&intc>;
interrupts = <1>;
};
@@ -57,7 +61,9 @@
compatible = "ralink,mt7620a-wdt", "ralink,rt2880-wdt";
reg = <0x120 0x10>;
- resets = <&rstctrl 8>;
+ clocks = <&sysc 6>;
+
+ resets = <&sysc 8>;
reset-names = "wdt";
interrupt-parent = <&intc>;
@@ -68,7 +74,7 @@
compatible = "ralink,mt7620a-intc", "ralink,rt2880-intc";
reg = <0x200 0x100>;
- resets = <&rstctrl 19>;
+ resets = <&sysc 19>;
reset-names = "intc";
interrupt-controller;
@@ -82,7 +88,7 @@
compatible = "ralink,mt7620a-memc", "ralink,rt3050-memc";
reg = <0x300 0x100>;
- resets = <&rstctrl 20>;
+ resets = <&sysc 20>;
reset-names = "mc";
interrupt-parent = <&intc>;
@@ -93,7 +99,7 @@
compatible = "ralink,mt7620a-gpio", "ralink,rt2880-gpio";
reg = <0x600 0x34>;
- resets = <&rstctrl 13>;
+ resets = <&sysc 13>;
reset-names = "pio";
interrupt-parent = <&intc>;
@@ -170,7 +176,9 @@
compatible = "ralink,rt2880-i2c";
reg = <0x900 0x100>;
- resets = <&rstctrl 16>;
+ clocks = <&sysc 8>;
+
+ resets = <&sysc 16>;
reset-names = "i2c";
#address-cells = <1>;
@@ -186,7 +194,9 @@
compatible = "ralink,mt7620a-spi", "ralink,rt2880-spi";
reg = <0xb00 0x40>;
- resets = <&rstctrl 18>;
+ clocks = <&sysc 10>;
+
+ resets = <&sysc 18>;
reset-names = "spi";
#address-cells = <1>;
@@ -202,7 +212,9 @@
compatible = "ralink,rt2880-spi";
reg = <0xb40 0x60>;
- resets = <&rstctrl 18>;
+ clocks = <&sysc 11>;
+
+ resets = <&sysc 18>;
reset-names = "spi";
#address-cells = <1>;
@@ -218,8 +230,9 @@
compatible = "ralink,mt7620a-uart", "ralink,rt2880-uart", "ns16550a";
reg = <0xc00 0x100>;
- resets = <&rstctrl 19>;
- reset-names = "uartl";
+ clocks = <&sysc 12>;
+
+ resets = <&sysc 19>;
interrupt-parent = <&intc>;
interrupts = <12>;
@@ -234,7 +247,7 @@
compatible = "ralink,mt7620a-systick", "ralink,cevt-systick";
reg = <0xd00 0x10>;
- resets = <&rstctrl 28>;
+ resets = <&sysc 28>;
reset-names = "intc";
interrupt-parent = <&cpuintc>;
@@ -286,26 +299,14 @@
};
};
- rstctrl: rstctrl {
- compatible = "ralink,mt7620a-reset", "ralink,rt2880-reset";
- #reset-cells = <1>;
- };
-
- clkctrl: clkctrl {
- compatible = "ralink,rt2880-clock";
- #clock-cells = <1>;
- };
-
usbphy: usbphy {
compatible = "mediatek,mt7620-usbphy";
#phy-cells = <0>;
ralink,sysctl = <&sysc>;
- resets = <&rstctrl 22 &rstctrl 25>;
+ /* usb phy reset is only controled by RSTCTRL bit 25 */
+ resets = <&sysc 25>, <&sysc 22>;
reset-names = "host", "device";
-
- clocks = <&clkctrl 22 &clkctrl 25>;
- clock-names = "host", "device";
};
ethernet: ethernet@10100000 {
@@ -318,7 +319,7 @@
interrupt-parent = <&cpuintc>;
interrupts = <5>;
- resets = <&rstctrl 21 &rstctrl 23>;
+ resets = <&sysc 21>, <&sysc 23>;
reset-names = "fe", "esw";
mediatek,switch = <&gsw>;
@@ -328,7 +329,7 @@
compatible = "mediatek,mt7620-gsw";
reg = <0x10110000 0x8000>;
- resets = <&rstctrl 23>;
+ resets = <&sysc 23>;
reset-names = "esw";
interrupt-parent = <&intc>;
@@ -379,6 +380,8 @@
compatible = "ralink,rt7620-wmac", "ralink,rt2880-wmac";
reg = <0x10180000 0x40000>;
+ clocks = <&sysc 13>;
+
interrupt-parent = <&cpuintc>;
interrupts = <6>;
diff --git a/target/linux/ramips/dts/mt7628an.dtsi b/target/linux/ramips/dts/mt7628an.dtsi
index 8ef73dce80a..74d2c980b5c 100644
--- a/target/linux/ramips/dts/mt7628an.dtsi
+++ b/target/linux/ramips/dts/mt7628an.dtsi
@@ -38,16 +38,20 @@
#address-cells = <1>;
#size-cells = <1>;
- sysc: sysc@0 {
- compatible = "ralink,mt7620a-sysc", "syscon";
+ sysc: syscon@0 {
+ compatible = "ralink,mt7628-sysc", "syscon";
reg = <0x0 0x100>;
+ #clock-cells = <1>;
+ #reset-cells = <1>;
};
watchdog: watchdog@100 {
compatible = "ralink,mt7628an-wdt", "mediatek,mt7621-wdt";
reg = <0x100 0x30>;
- resets = <&rstctrl 8>;
+ clocks = <&sysc 6>;
+
+ resets = <&sysc 8>;
reset-names = "wdt";
interrupt-parent = <&intc>;
@@ -58,7 +62,7 @@
compatible = "ralink,mt7628an-intc", "ralink,rt2880-intc";
reg = <0x200 0x100>;
- resets = <&rstctrl 9>;
+ resets = <&sysc 9>;
reset-names = "intc";
interrupt-controller;
@@ -76,7 +80,7 @@
compatible = "ralink,mt7620a-memc", "ralink,rt3050-memc";
reg = <0x300 0x100>;
- resets = <&rstctrl 10>;
+ resets = <&sysc 10>;
reset-names = "mc";
interrupt-parent = <&intc>;
@@ -101,7 +105,10 @@
compatible = "mediatek,mt7621-i2c";
reg = <0x900 0x100>;
- resets = <&rstctrl 16>;
+ clocks = <&sysc 7>;
+ clock-names = "i2c";
+
+ resets = <&sysc 16>;
reset-names = "i2c";
#address-cells = <1>;
@@ -117,7 +124,9 @@
compatible = "mediatek,mt7628-i2s";
reg = <0xa00 0x100>;
- resets = <&rstctrl 17>;
+ clocks = <&sysc 8>;
+
+ resets = <&sysc 17>;
reset-names = "i2s";
interrupt-parent = <&intc>;
@@ -137,7 +146,10 @@
compatible = "ralink,mt7621-spi";
reg = <0xb00 0x100>;
- resets = <&rstctrl 18>;
+ clocks = <&sysc 9>;
+ clock-names = "spi";
+
+ resets = <&sysc 18>;
reset-names = "spi";
#address-cells = <1>;
@@ -149,7 +161,7 @@
status = "disabled";
};
- uartlite: uartlite@c00 {
+ uartlite: uart0@c00 {
compatible = "ns16550a";
reg = <0xc00 0x100>;
@@ -157,10 +169,9 @@
reg-io-width = <4>;
no-loopback-test;
- clock-frequency = <40000000>;
+ clocks = <&sysc 11>;
- resets = <&rstctrl 12>;
- reset-names = "uartl";
+ resets = <&sysc 12>;
interrupt-parent = <&intc>;
interrupts = <20>;
@@ -177,10 +188,9 @@
reg-io-width = <4>;
no-loopback-test;
- clock-frequency = <40000000>;
+ clocks = <&sysc 12>;
- resets = <&rstctrl 19>;
- reset-names = "uart1";
+ resets = <&sysc 19>;
interrupt-parent = <&intc>;
interrupts = <21>;
@@ -199,10 +209,9 @@
reg-io-width = <4>;
no-loopback-test;
- clock-frequency = <40000000>;
+ clocks = <&sysc 13>;
- resets = <&rstctrl 20>;
- reset-names = "uart2";
+ resets = <&sysc 20>;
interrupt-parent = <&intc>;
interrupts = <22>;
@@ -218,7 +227,7 @@
reg = <0x5000 0x1000>;
#pwm-cells = <2>;
- resets = <&rstctrl 31>;
+ resets = <&sysc 31>;
reset-names = "pwm";
pinctrl-names = "default";
@@ -231,7 +240,7 @@
compatible = "ralink,mt7620a-pcm";
reg = <0x2000 0x800>;
- resets = <&rstctrl 11>;
+ resets = <&sysc 11>;
reset-names = "pcm";
interrupt-parent = <&intc>;
@@ -244,7 +253,7 @@
compatible = "ralink,rt3883-gdma";
reg = <0x2800 0x800>;
- resets = <&rstctrl 14>;
+ resets = <&sysc 14>;
reset-names = "dma";
interrupt-parent = <&intc>;
@@ -351,26 +360,15 @@
};
};
- rstctrl: rstctrl {
- compatible = "ralink,mt7620a-reset", "ralink,rt2880-reset";
- #reset-cells = <1>;
- };
-
- clkctrl: clkctrl {
- compatible = "ralink,rt2880-clock";
- #clock-cells = <1>;
- };
-
usbphy: usbphy@10120000 {
compatible = "mediatek,mt7628-usbphy", "mediatek,mt7620-usbphy";
reg = <0x10120000 0x1000>;
#phy-cells = <0>;
ralink,sysctl = <&sysc>;
- resets = <&rstctrl 22 &rstctrl 25>;
+ /* usb phy reset is only controled by RSTCTRL bit 22 */
+ resets = <&sysc 22>, <&sysc 25>;
reset-names = "host", "device";
- clocks = <&clkctrl 22 &clkctrl 25>;
- clock-names = "host", "device";
};
sdhci: sdhci@10130000 {
@@ -429,7 +427,7 @@
interrupt-parent = <&cpuintc>;
interrupts = <5>;
- resets = <&rstctrl 21>;
+ resets = <&sysc 21>;
reset-names = "fe";
mediatek,switch = <&esw>;
@@ -439,7 +437,7 @@
compatible = "mediatek,mt7628-esw", "ralink,rt3050-esw";
reg = <0x10110000 0x8000>;
- resets = <&rstctrl 23 &rstctrl 24>;
+ resets = <&sysc 23>, <&sysc 24>;
reset-names = "esw", "ephy";
interrupt-parent = <&intc>;
@@ -457,10 +455,8 @@
interrupt-parent = <&cpuintc>;
interrupts = <4>;
- resets = <&rstctrl 26 &rstctrl 27>;
- reset-names = "pcie0", "pcie1";
- clocks = <&clkctrl 26 &clkctrl 27>;
- clock-names = "pcie0", "pcie1";
+ resets = <&sysc 26>;
+ reset-names = "pcie0";
status = "disabled";
@@ -488,6 +484,8 @@
compatible = "mediatek,mt7628-wmac";
reg = <0x10300000 0x100000>;
+ clocks = <&sysc 14>;
+
interrupt-parent = <&cpuintc>;
interrupts = <6>;
diff --git a/target/linux/ramips/dts/rt2880.dtsi b/target/linux/ramips/dts/rt2880.dtsi
index 9dd8f3c6e38..998b49a2770 100644
--- a/target/linux/ramips/dts/rt2880.dtsi
+++ b/target/linux/ramips/dts/rt2880.dtsi
@@ -38,15 +38,19 @@
#address-cells = <1>;
#size-cells = <1>;
- sysc: sysc@0 {
- compatible = "ralink,rt2880-sysc";
- reg = <0x000 0x100>;
+ sysc: syscon@0 {
+ compatible = "ralink,rt2880-sysc", "syscon";
+ reg = <0x0 0x100>;
+ #clock-cells = <1>;
+ #reset-cells = <1>;
};
timer: timer@100 {
compatible = "ralink,rt2880-timer";
reg = <0x100 0x20>;
+ clocks = <&sysc 3>;
+
interrupt-parent = <&intc>;
interrupts = <1>;
@@ -56,6 +60,8 @@
watchdog: watchdog@120 {
compatible = "ralink,rt2880-wdt";
reg = <0x120 0x10>;
+
+ clocks = <&sysc 4>;
};
intc: intc@200 {
@@ -124,7 +130,9 @@
compatible = "ralink,rt2880-i2c";
reg = <0x900 0x100>;
- resets = <&rstctrl 9>;
+ clocks = <&sysc 6>;
+
+ resets = <&sysc 9>;
reset-names = "i2c";
#address-cells = <1>;
@@ -140,6 +148,8 @@
compatible = "ralink,rt2880-uart", "ns16550a";
reg = <0xc00 0x100>;
+ clocks = <&sysc 7>;
+
interrupt-parent = <&intc>;
interrupts = <8>;
@@ -182,16 +192,6 @@
};
};
- rstctrl: rstctrl {
- compatible = "ralink,rt2880-reset";
- #reset-cells = <1>;
- };
-
- clkctrl: clkctrl {
- compatible = "ralink,rt2880-clock";
- #clock-cells = <1>;
- };
-
pci: pci@440000 {
compatible = "ralink,rt288x-pci";
reg = <0x00440000 0x20000>;
@@ -207,7 +207,9 @@
#address-cells = <1>;
#size-cells = <0>;
- resets = <&rstctrl 18>;
+ clocks = <&sysc 8>;
+
+ resets = <&sysc 18>;
reset-names = "fe";
interrupt-parent = <&cpuintc>;
@@ -232,6 +234,8 @@
compatible = "ralink,rt2880-wmac";
reg = <0x480000 0x40000>;
+ clocks = <&sysc 9>;
+
interrupt-parent = <&cpuintc>;
interrupts = <6>;
diff --git a/target/linux/ramips/dts/rt3050.dtsi b/target/linux/ramips/dts/rt3050.dtsi
index 492474fdc43..eb508ed9d34 100644
--- a/target/linux/ramips/dts/rt3050.dtsi
+++ b/target/linux/ramips/dts/rt3050.dtsi
@@ -39,15 +39,19 @@
#address-cells = <1>;
#size-cells = <1>;
- sysc: sysc@0 {
+ sysc: syscon@0 {
compatible = "ralink,rt3050-sysc", "syscon";
reg = <0x0 0x100>;
+ #clock-cells = <1>;
+ #reset-cells = <1>;
};
timer: timer@100 {
compatible = "ralink,rt3050-timer", "ralink,rt2880-timer";
reg = <0x100 0x20>;
+ clocks = <&sysc 3>;
+
interrupt-parent = <&intc>;
interrupts = <1>;
};
@@ -56,7 +60,9 @@
compatible = "ralink,rt3050-wdt", "ralink,rt2880-wdt";
reg = <0x120 0x10>;
- resets = <&rstctrl 8>;
+ clocks = <&sysc 4>;
+
+ resets = <&sysc 8>;
reset-names = "wdt";
interrupt-parent = <&intc>;
@@ -67,7 +73,7 @@
compatible = "ralink,rt3050-intc", "ralink,rt2880-intc";
reg = <0x200 0x100>;
- resets = <&rstctrl 19>;
+ resets = <&sysc 19>;
reset-names = "intc";
interrupt-controller;
@@ -81,7 +87,7 @@
compatible = "ralink,rt3050-memc";
reg = <0x300 0x100>;
- resets = <&rstctrl 20>;
+ resets = <&sysc 20>;
reset-names = "mc";
interrupt-parent = <&intc>;
@@ -92,8 +98,9 @@
compatible = "ralink,rt3050-uart", "ralink,rt2880-uart", "ns16550a";
reg = <0x500 0x100>;
- resets = <&rstctrl 12>;
- reset-names = "uart";
+ clocks = <&sysc 5>;
+
+ resets = <&sysc 12>;
interrupt-parent = <&intc>;
interrupts = <5>;
@@ -116,7 +123,7 @@
20 24 28 2c
30 34 ];
- resets = <&rstctrl 13>;
+ resets = <&sysc 13>;
reset-names = "pio";
interrupt-parent = <&intc>;
@@ -159,7 +166,7 @@
compatible = "ralink,rt305x-gdma";
reg = <0x700 0x100>;
- resets = <&rstctrl 14>;
+ resets = <&sysc 14>;
reset-names = "dma";
interrupt-parent = <&intc>;
@@ -176,7 +183,9 @@
compatible = "ralink,rt2880-i2c";
reg = <0x900 0x100>;
- resets = <&rstctrl 16>;
+ clocks = <&sysc 6>;
+
+ resets = <&sysc 16>;
reset-names = "i2c";
#address-cells = <1>;
@@ -192,7 +201,9 @@
compatible = "ralink,rt3050-i2s";
reg = <0xa00 0x100>;
- resets = <&rstctrl 17>;
+ clocks = <&sysc 7>;
+
+ resets = <&sysc 17>;
reset-names = "i2s";
interrupt-parent = <&intc>;
@@ -210,9 +221,11 @@
compatible = "ralink,rt3050-spi", "ralink,rt2880-spi";
reg = <0xb00 0x100>;
- resets = <&rstctrl 18>;
+ resets = <&sysc 18>;
reset-names = "spi";
+ clocks = <&sysc 8>;
+
#address-cells = <1>;
#size-cells = <0>;
@@ -226,8 +239,9 @@
compatible = "ralink,rt3050-uart", "ralink,rt2880-uart", "ns16550a";
reg = <0xc00 0x100>;
- resets = <&rstctrl 19>;
- reset-names = "uartl";
+ clocks = <&sysc 10>;
+
+ resets = <&sysc 19>;
interrupt-parent = <&intc>;
interrupts = <12>;
@@ -281,32 +295,22 @@
};
};
- rstctrl: rstctrl {
- compatible = "ralink,rt3050-reset", "ralink,rt2880-reset";
- #reset-cells = <1>;
- };
-
- clkctrl: clkctrl {
- compatible = "ralink,rt2880-clock";
- #clock-cells = <1>;
- };
-
usbphy: usbphy {
compatible = "ralink,rt3050-usbphy";
#phy-cells = <0>;
ralink,sysctl = <&sysc>;
- resets = <&rstctrl 22>;
+ resets = <&sysc 22>;
reset-names = "host";
- clocks = <&clkctrl 18>;
- clock-names = "host";
};
ethernet: ethernet@10100000 {
compatible = "ralink,rt3050-eth";
reg = <0x10100000 0x10000>;
- resets = <&rstctrl 21>;
+ clocks = <&sysc 11>;
+
+ resets = <&sysc 21>;
reset-names = "fe";
interrupt-parent = <&cpuintc>;
@@ -319,7 +323,7 @@
compatible = "ralink,rt3050-esw";
reg = <0x10110000 0x8000>;
- resets = <&rstctrl 23 &rstctrl 24>;
+ resets = <&sysc 23>, <&sysc 24>;
reset-names = "esw", "ephy";
interrupt-parent = <&intc>;
@@ -330,6 +334,8 @@
compatible = "ralink,rt3050-wmac", "ralink,rt2880-wmac";
reg = <0x10180000 0x40000>;
+ clocks = <&sysc 12>;
+
interrupt-parent = <&cpuintc>;
interrupts = <6>;
@@ -345,7 +351,7 @@
interrupt-parent = <&intc>;
interrupts = <18>;
- resets = <&rstctrl 22>;
+ resets = <&sysc 22>;
reset-names = "otg";
status = "disabled";
diff --git a/target/linux/ramips/dts/rt3352.dtsi b/target/linux/ramips/dts/rt3352.dtsi
index 608222cb5c9..df077767237 100644
--- a/target/linux/ramips/dts/rt3352.dtsi
+++ b/target/linux/ramips/dts/rt3352.dtsi
@@ -40,15 +40,19 @@
#address-cells = <1>;
#size-cells = <1>;
- sysc: sysc@0 {
- compatible = "ralink,rt3352-sysc", "ralink,rt3050-sysc", "syscon";
+ sysc: syscon@0 {
+ compatible = "ralink,rt3352-sysc", "syscon";
reg = <0x0 0x100>;
+ #clock-cells = <1>;
+ #reset-cells = <1>;
};
timer: timer@100 {
compatible = "ralink,rt3352-timer", "ralink,rt2880-timer";
reg = <0x100 0x20>;
+ clocks = <&sysc 4>;
+
interrupt-parent = <&intc>;
interrupts = <1>;
};
@@ -57,7 +61,9 @@
compatible = "ralink,rt3352-wdt", "ralink,rt2880-wdt";
reg = <0x120 0x10>;
- resets = <&rstctrl 8>;
+ clocks = <&sysc 5>;
+
+ resets = <&sysc 8>;
reset-names = "wdt";
interrupt-parent = <&intc>;
@@ -79,7 +85,7 @@
compatible = "ralink,rt3352-memc", "ralink,rt3050-memc";
reg = <0x300 0x100>;
- resets = <&rstctrl 20>;
+ resets = <&sysc 20>;
reset-names = "mc";
interrupt-parent = <&intc>;
@@ -90,8 +96,9 @@
compatible = "ralink,rt3352-uart", "ralink,rt2880-uart", "ns16550a";
reg = <0x500 0x100>;
- resets = <&rstctrl 12>;
- reset-names = "uart";
+ clocks = <&sysc 6>;
+
+ resets = <&sysc 12>;
interrupt-parent = <&intc>;
interrupts = <5>;
@@ -113,7 +120,7 @@
ralink,register-map = [ 00 04 08 0c
20 24 28 2c
30 34 ];
- resets = <&rstctrl 13>;
+ resets = <&sysc 13>;
reset-names = "pio";
interrupt-parent = <&intc>;
@@ -156,7 +163,9 @@
compatible = "ralink,rt2880-i2c";
reg = <0x900 0x100>;
- resets = <&rstctrl 16>;
+ clocks = <&sysc 7>;
+
+ resets = <&sysc 16>;
reset-names = "i2c";
#address-cells = <1>;
@@ -172,7 +181,9 @@
compatible = "ralink,rt3352-i2s";
reg = <0xa00 0x100>;
- resets = <&rstctrl 17>;
+ clocks = <&sysc 8>;
+
+ resets = <&sysc 17>;
reset-names = "i2s";
interrupt-parent = <&intc>;
@@ -194,7 +205,9 @@
#address-cells = <1>;
#size-cells = <0>;
- resets = <&rstctrl 18>;
+ clocks = <&sysc 9>;
+
+ resets = <&sysc 18>;
reset-names = "spi";
pinctrl-names = "default";
@@ -209,7 +222,7 @@
#address-cells = <1>;
#size-cells = <0>;
- resets = <&rstctrl 18>;
+ resets = <&sysc 18>;
reset-names = "spi";
pinctrl-names = "default";
@@ -222,8 +235,9 @@
compatible = "ralink,rt3352-uart", "ralink,rt2880-uart", "ns16550a";
reg = <0xc00 0x100>;
- resets = <&rstctrl 19>;
- reset-names = "uartl";
+ clocks = <&sysc 11>;
+
+ resets = <&sysc 19>;
interrupt-parent = <&intc>;
interrupts = <12>;
@@ -238,7 +252,7 @@
compatible = "ralink,rt3883-gdma";
reg = <0x2800 0x800>;
- resets = <&rstctrl 14>;
+ resets = <&sysc 14>;
reset-names = "dma";
interrupt-parent = <&intc>;
@@ -304,21 +318,13 @@
};
};
- rstctrl: rstctrl {
- compatible = "ralink,rt3352-reset", "ralink,rt2880-reset";
- #reset-cells = <1>;
- };
-
- clkctrl: clkctrl {
- compatible = "ralink,rt2880-clock";
- #clock-cells = <1>;
- };
-
ethernet: ethernet@10100000 {
compatible = "ralink,rt3352-eth", "ralink,rt3050-eth";
reg = <0x10100000 0x10000>;
- resets = <&rstctrl 21>;
+ clocks = <&sysc 12>;
+
+ resets = <&sysc 21>;
reset-names = "fe";
interrupt-parent = <&cpuintc>;
@@ -331,7 +337,7 @@
compatible = "ralink,rt3352-esw", "ralink,rt3050-esw";
reg = <0x10110000 0x8000>;
- resets = <&rstctrl 23 &rstctrl 24>;
+ resets = <&sysc 23>, <&sysc 24>;
reset-names = "esw", "ephy";
interrupt-parent = <&intc>;
@@ -343,16 +349,16 @@
#phy-cells = <0>;
ralink,sysctl = <&sysc>;
- resets = <&rstctrl 22 &rstctrl 25>;
+ resets = <&sysc 22>, <&sysc 25>;
reset-names = "host", "device";
- clocks = <&clkctrl 18 &clkctrl 20>;
- clock-names = "host", "device";
};
wmac: wmac@10180000 {
compatible = "ralink,rt3352-wmac", "ralink,rt2880-wmac";
reg = <0x10180000 0x40000>;
+ clocks = <&sysc 13>;
+
interrupt-parent = <&cpuintc>;
interrupts = <6>;
diff --git a/target/linux/ramips/dts/rt3883.dtsi b/target/linux/ramips/dts/rt3883.dtsi
index 158640bf925..d490d700d60 100644
--- a/target/linux/ramips/dts/rt3883.dtsi
+++ b/target/linux/ramips/dts/rt3883.dtsi
@@ -40,15 +40,19 @@
#address-cells = <1>;
#size-cells = <1>;
- sysc: sysc@0 {
- compatible = "ralink,rt3883-sysc", "ralink,rt3050-sysc", "syscon";
+ sysc: syscon@0 {
+ compatible = "ralink,rt3883-sysc", "syscon";
reg = <0x0 0x100>;
+ #clock-cells = <1>;
+ #reset-cells = <1>;
};
timer: timer@100 {
compatible = "ralink,rt3883-timer", "ralink,rt2880-timer";
reg = <0x100 0x20>;
+ clocks = <&sysc 3>;
+
interrupt-parent = <&intc>;
interrupts = <1>;
};
@@ -57,7 +61,9 @@
compatible = "ralink,rt3883-wdt", "ralink,rt2880-wdt";
reg = <0x120 0x10>;
- resets = <&rstctrl 8>;
+ clocks = <&sysc 4>;
+
+ resets = <&sysc 8>;
reset-names = "wdt";
interrupt-parent = <&intc>;
@@ -68,7 +74,7 @@
compatible = "ralink,rt3883-intc", "ralink,rt2880-intc";
reg = <0x200 0x100>;
- resets = <&rstctrl 19>;
+ resets = <&sysc 19>;
reset-names = "intc";
interrupt-controller;
@@ -82,7 +88,7 @@
compatible = "ralink,rt3883-memc", "ralink,rt3050-memc";
reg = <0x300 0x100>;
- resets = <&rstctrl 20>;
+ resets = <&sysc 20>;
reset-names = "mc";
interrupt-parent = <&intc>;
@@ -93,8 +99,9 @@
compatible = "ralink,rt3883-uart", "ralink,rt2880-uart", "ns16550a";
reg = <0x500 0x100>;
- resets = <&rstctrl 12>;
- reset-names = "uart";
+ clocks = <&sysc 5>;
+
+ resets = <&sysc 12>;
interrupt-parent = <&intc>;
interrupts = <5>;
@@ -108,7 +115,7 @@
compatible = "ralink,rt3883-gpio", "ralink,rt2880-gpio";
reg = <0x600 0x34>;
- resets = <&rstctrl 13>;
+ resets = <&sysc 13>;
reset-names = "pio";
interrupt-parent = <&intc>;
@@ -176,7 +183,9 @@
compatible = "ralink,rt2880-i2c";
reg = <0x900 0x100>;
- resets = <&rstctrl 16>;
+ clocks = <&sysc 6>;
+
+ resets = <&sysc 16>;
reset-names = "i2c";
#address-cells = <1>;
@@ -192,7 +201,9 @@
compatible = "ralink,rt3883-i2s";
reg = <0xa00 0x100>;
- resets = <&rstctrl 17>;
+ clocks = <&sysc 7>;
+
+ resets = <&sysc 17>;
reset-names = "i2s";
interrupt-parent = <&intc>;
@@ -214,7 +225,9 @@
#address-cells = <1>;
#size-cells = <0>;
- resets = <&rstctrl 18>;
+ clocks = <&sysc 8>;
+
+ resets = <&sysc 18>;
reset-names = "spi";
pinctrl-names = "default";
@@ -229,7 +242,9 @@
#address-cells = <1>;
#size-cells = <0>;
- resets = <&rstctrl 18>;
+ clocks = <&sysc 9>;
+
+ resets = <&sysc 18>;
reset-names = "spi";
pinctrl-names = "default";
@@ -242,8 +257,9 @@
compatible = "ralink,rt3883-uart", "ralink,rt2880-uart", "ns16550a";
reg = <0xc00 0x100>;
- resets = <&rstctrl 19>;
- reset-names = "uartl";
+ clocks = <&sysc 10>;
+
+ resets = <&sysc 19>;
interrupt-parent = <&intc>;
interrupts = <12>;
@@ -258,7 +274,7 @@
compatible = "ralink,rt3883-gdma";
reg = <0x2800 0x800>;
- resets = <&rstctrl 14>;
+ resets = <&sysc 14>;
reset-names = "dma";
interrupt-parent = <&intc>;
@@ -323,7 +339,9 @@
#size-cells = <0>;
reg = <0x10100000 0x10000>;
- resets = <&rstctrl 21>;
+ clocks = <&sysc 11>;
+
+ resets = <&sysc 21>;
reset-names = "fe";
interrupt-parent = <&cpuintc>;
@@ -342,16 +360,6 @@
};
};
- rstctrl: rstctrl {
- compatible = "ralink,rt3883-reset", "ralink,rt2880-reset";
- #reset-cells = <1>;
- };
-
- clkctrl: clkctrl {
- compatible = "ralink,rt2880-clock";
- #clock-cells = <1>;
- };
-
pci: pci@10140000 {
compatible = "ralink,rt3883-pci";
reg = <0x10140000 0x20000>;
@@ -441,16 +449,16 @@
#phy-cells = <0>;
ralink,sysctl = <&sysc>;
- resets = <&rstctrl 22 &rstctrl 25>;
+ resets = <&sysc 22>, <&sysc 25>;
reset-names = "host", "device";
- clocks = <&clkctrl 22 &clkctrl 25>;
- clock-names = "host", "device";
};
wmac: wmac@10180000 {
compatible = "ralink,rt3883-wmac", "ralink,rt2880-wmac";
reg = <0x10180000 0x40000>;
+ clocks = <&sysc 12>;
+
interrupt-parent = <&cpuintc>;
interrupts = <6>;
diff --git a/target/linux/ramips/dts/rt5350.dtsi b/target/linux/ramips/dts/rt5350.dtsi
index 090e755743b..1286dec9d88 100644
--- a/target/linux/ramips/dts/rt5350.dtsi
+++ b/target/linux/ramips/dts/rt5350.dtsi
@@ -40,15 +40,19 @@
#address-cells = <1>;
#size-cells = <1>;
- sysc: sysc@0 {
- compatible = "ralink,rt5350-sysc", "ralink,rt3050-sysc", "syscon";
+ sysc: syscon@0 {
+ compatible = "ralink,rt5350-sysc", "syscon";
reg = <0x0 0x100>;
+ #clock-cells = <1>;
+ #reset-cells = <1>;
};
timer: timer@100 {
compatible = "ralink,rt5350-timer", "ralink,rt2880-timer";
reg = <0x100 0x20>;
+ clocks = <&sysc 4>;
+
interrupt-parent = <&intc>;
interrupts = <1>;
};
@@ -57,7 +61,9 @@
compatible = "ralink,rt5350-wdt", "ralink,rt2880-wdt";
reg = <0x120 0x10>;
- resets = <&rstctrl 8>;
+ clocks = <&sysc 5>;
+
+ resets = <&sysc 8>;
reset-names = "wdt";
interrupt-parent = <&intc>;
@@ -68,7 +74,7 @@
compatible = "ralink,rt5350-intc", "ralink,rt2880-intc";
reg = <0x200 0x100>;
- resets = <&rstctrl 19>;
+ resets = <&sysc 19>;
reset-names = "intc";
interrupt-controller;
@@ -82,7 +88,7 @@
compatible = "ralink,rt5350-memc", "ralink,rt3050-memc";
reg = <0x300 0x100>;
- resets = <&rstctrl 20>;
+ resets = <&sysc 20>;
reset-names = "mc";
interrupt-parent = <&intc>;
@@ -93,8 +99,9 @@
compatible = "ralink,rt5350-uart", "ralink,rt2880-uart", "ns16550a";
reg = <0x500 0x100>;
- resets = <&rstctrl 12>;
- reset-names = "uart";
+ clocks = <&sysc 6>;
+
+ resets = <&sysc 12>;
interrupt-parent = <&intc>;
interrupts = <5>;
@@ -108,7 +115,7 @@
compatible = "ralink,rt5350-gpio", "ralink,rt2880-gpio";
reg = <0x600 0x34>;
- resets = <&rstctrl 13>;
+ resets = <&sysc 13>;
reset-names = "pio";
interrupt-parent = <&intc>;
@@ -147,7 +154,9 @@
compatible = "ralink,rt2880-i2c";
reg = <0x900 0x100>;
- resets = <&rstctrl 16>;
+ clocks = <&sysc 7>;
+
+ resets = <&sysc 16>;
reset-names = "i2c";
#address-cells = <1>;
@@ -163,7 +172,9 @@
compatible = "ralink,rt3352-i2s";
reg = <0xa00 0x100>;
- resets = <&rstctrl 17>;
+ clocks = <&sysc 8>;
+
+ resets = <&sysc 17>;
reset-names = "i2s";
interrupt-parent = <&intc>;
@@ -183,7 +194,9 @@
compatible = "ralink,rt5350-spi", "ralink,rt2880-spi";
reg = <0xb00 0x40>;
- resets = <&rstctrl 18>;
+ clocks = <&sysc 9>;
+
+ resets = <&sysc 18>;
reset-names = "spi";
#address-cells = <1>;
@@ -199,7 +212,9 @@
compatible = "ralink,rt5350-spi", "ralink,rt2880-spi";
reg = <0xb40 0x60>;
- resets = <&rstctrl 18>;
+ clocks = <&sysc 10>;
+
+ resets = <&sysc 18>;
reset-names = "spi";
#address-cells = <1>;
@@ -215,8 +230,9 @@
compatible = "ralink,rt5350-uart", "ralink,rt2880-uart", "ns16550a";
reg = <0xc00 0x100>;
- resets = <&rstctrl 19>;
- reset-names = "uartl";
+ clocks = <&sysc 11>;
+
+ resets = <&sysc 19>;
interrupt-parent = <&intc>;
interrupts = <12>;
@@ -239,7 +255,7 @@
compatible = "ralink,rt5350-pcm";
reg = <0x2000 0x800>;
- resets = <&rstctrl 11>;
+ resets = <&sysc 11>;
reset-names = "pcm";
interrupt-parent = <&intc>;
@@ -252,7 +268,7 @@
compatible = "ralink,rt3883-gdma";
reg = <0x2800 0x800>;
- resets = <&rstctrl 14>;
+ resets = <&sysc 14>;
reset-names = "dma";
interrupt-parent = <&intc>;
@@ -318,32 +334,22 @@
};
};
- rstctrl: rstctrl {
- compatible = "ralink,rt5350-reset", "ralink,rt2880-reset";
- #reset-cells = <1>;
- };
-
- clkctrl: clkctrl {
- compatible = "ralink,rt2880-clock";
- #clock-cells = <1>;
- };
-
usbphy: usbphy {
compatible = "ralink,rt3352-usbphy";
#phy-cells = <0>;
ralink,sysctl = <&sysc>;
- resets = <&rstctrl 22 &rstctrl 25>;
+ resets = <&sysc 22>, <&sysc 25>;
reset-names = "host", "device";
- clocks = <&clkctrl 18>;
- clock-names = "host";
};
ethernet: ethernet@10100000 {
compatible = "ralink,rt5350-eth";
reg = <0x10100000 0x10000>;
- resets = <&rstctrl 21>;
+ clocks = <&sysc 12>;
+
+ resets = <&sysc 21>;
reset-names = "fe";
interrupt-parent = <&cpuintc>;
@@ -356,7 +362,7 @@
compatible = "ralink,rt5350-esw", "ralink,rt3050-esw";
reg = <0x10110000 0x8000>;
- resets = <&rstctrl 23 &rstctrl 24>;
+ resets = <&sysc 23>, <&sysc 24>;
reset-names = "esw", "ephy";
interrupt-parent = <&intc>;
@@ -367,6 +373,8 @@
compatible = "ralink,rt5350-wmac", "ralink,rt2880-wmac";
reg = <0x10180000 0x40000>;
+ clocks = <&sysc 13>;
+
interrupt-parent = <&cpuintc>;
interrupts = <6>;