[openwrt/openwrt] realtek: refactor the Netgear GS110TPP v1 device tree

LEDE Commits lede-commits at lists.infradead.org
Fri Feb 12 02:53:01 EST 2021


ynezz pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/9fe90e4e5aefb1f23d2f23b1e6bcd20f3b548c09

commit 9fe90e4e5aefb1f23d2f23b1e6bcd20f3b548c09
Author: Michael Mohr <akihana at gmail.com>
AuthorDate: Fri Jan 8 21:31:53 2021 -0800

    realtek: refactor the Netgear GS110TPP v1 device tree
    
    Move most of the GS110TPP v1 device tree into a dtsi so that it can be
    shared with the GS108T v3.  Additionally:
    
      * Use macros to simplify the ethernet and switch definitions
      * Zero-pad the offsets and sizes in the partition map to 8 digits each
    
    The spi-max-frequency value has been changed from 10MHz to 50MHz based
    on an analysis of the relevant datasheets.  The current driver doesn't
    use this property, as the clock speed is fixed. However, it's required
    for this type of DT node, so that's why it's present here.
    
    The firmware partition has been split in half, since this is how the
    stock firmware uses it.  This can be used to easily revert to a stock
    firmware if one is written to the second image area.
    
    Signed-off-by: Michael Mohr <akihana at gmail.com>
---
 .../linux/realtek/dts/rtl8380_netgear_gigabit.dtsi | 137 +++++++++++++
 .../realtek/dts/rtl8380_netgear_gs110tpp-v1.dts    | 227 +--------------------
 2 files changed, 139 insertions(+), 225 deletions(-)

diff --git a/target/linux/realtek/dts/rtl8380_netgear_gigabit.dtsi b/target/linux/realtek/dts/rtl8380_netgear_gigabit.dtsi
new file mode 100644
index 0000000000..2cda3c15a3
--- /dev/null
+++ b/target/linux/realtek/dts/rtl8380_netgear_gigabit.dtsi
@@ -0,0 +1,137 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "rtl838x.dtsi"
+
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+	compatible = "realtek,rtl838x-soc";
+
+	chosen {
+		bootargs = "console=ttyS0,115200";
+	};
+
+	memory at 0 {
+		device_type = "memory";
+		reg = <0x0 0x8000000>;
+	};
+
+	keys {
+		compatible = "gpio-keys-polled";
+		poll-interval = <20>;
+
+		mode {
+			label = "reset";
+			gpios = <&gpio0 24 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_RESTART>;
+		};
+	};
+};
+
+&gpio0 {
+	indirect-access-bus-id = <0>;
+};
+
+&spi0 {
+	status = "okay";
+
+	flash at 0 {
+		compatible = "jedec,spi-nor";
+		reg = <0>;
+		spi-max-frequency = <50000000>;
+
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 0 {
+				label = "loader";
+				reg = <0x0000000 0x00e0000>;
+				read-only;
+			};
+
+			partition at e0000 {
+				label = "bdinfo";
+				reg = <0x00e0000 0x0010000>;
+				read-only;
+			};
+
+			partition at f0000 {
+				label = "sysinfo";
+				reg = <0x00f0000 0x0010000>;
+				read-only;
+			};
+
+			partition at 100000 {
+				label = "jffs2_cfg";
+				reg = <0x0100000 0x0100000>;
+				read-only;
+			};
+
+			partition at 200000 {
+				label = "jffs2_log";
+				reg = <0x0200000 0x0100000>;
+				read-only;
+			};
+
+			partition at 300000 {
+				label = "firmware";
+				compatible = "openwrt,uimage", "denx,uimage";
+				openwrt,ih-magic = <0x4e474520>;
+				reg = <0x0300000 0x0e80000>;
+			};
+
+			partition at 1180000 {
+				label = "runtime2";
+				reg = <0x1180000 0x0e80000>;
+				read-only;
+			};
+		};
+	};
+};
+
+&ethernet0 {
+	mdio: mdio-bus {
+		compatible = "realtek,rtl838x-mdio";
+		regmap = <&ethernet0>;
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		INTERNAL_PHY(8)
+		INTERNAL_PHY(9)
+		INTERNAL_PHY(10)
+		INTERNAL_PHY(11)
+		INTERNAL_PHY(12)
+		INTERNAL_PHY(13)
+		INTERNAL_PHY(14)
+		INTERNAL_PHY(15)
+	};
+};
+
+&switch0 {
+	ports {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		SWITCH_PORT(8, 1, internal)
+		SWITCH_PORT(9, 2, internal)
+		SWITCH_PORT(10, 3, internal)
+		SWITCH_PORT(11, 4, internal)
+		SWITCH_PORT(12, 5, internal)
+		SWITCH_PORT(13, 6, internal)
+		SWITCH_PORT(14, 7, internal)
+		SWITCH_PORT(15, 8, internal)
+
+		port at 28 {
+			ethernet = <&ethernet0>;
+			reg = <28>;
+			phy-mode = "internal";
+			fixed-link {
+				speed = <1000>;
+				full-duplex;
+			};
+		};
+	};
+};
diff --git a/target/linux/realtek/dts/rtl8380_netgear_gs110tpp-v1.dts b/target/linux/realtek/dts/rtl8380_netgear_gs110tpp-v1.dts
index cd9342f3f1..265cc51c30 100644
--- a/target/linux/realtek/dts/rtl8380_netgear_gs110tpp-v1.dts
+++ b/target/linux/realtek/dts/rtl8380_netgear_gs110tpp-v1.dts
@@ -1,231 +1,8 @@
 // SPDX-License-Identifier: GPL-2.0-or-later
 
-#include "rtl838x.dtsi"
-
-#include <dt-bindings/input/input.h>
-#include <dt-bindings/gpio/gpio.h>
+#include "rtl8380_netgear_gigabit.dtsi"
 
 / {
 	compatible = "netgear,gs110tpp-v1", "realtek,rtl838x-soc";
-	model = "Netgear GS110TPP";
-
-	chosen {
-		bootargs = "console=ttyS0,115200";
-	};
-
-	memory at 0 {
-		device_type = "memory";
-		reg = <0x0 0x8000000>;
-	};
-
-	keys {
-		compatible = "gpio-keys-polled";
-		poll-interval = <20>;
-
-		mode {
-			label = "reset";
-			gpios = <&gpio0 24 GPIO_ACTIVE_LOW>;
-			linux,code = <KEY_RESTART>;
-		};
-	};
-};
-
-&gpio0 {
-	indirect-access-bus-id = <0>;
-};
-
-&spi0 {
-	status = "okay";
-	flash at 0 {
-		compatible = "jedec,spi-nor";
-		reg = <0>;
-		spi-max-frequency = <10000000>;
-
-		partitions {
-			compatible = "fixed-partitions";
-			#address-cells = <1>;
-			#size-cells = <1>;
-			partition at 0 {
-				label = "u-boot";
-				reg = <0x0000000 0x0e0000>;
-				read-only;
-			};
-			partition at e0000 {
-				label = "u-boot-env";
-				reg = <0x00e0000 0x010000>;
-			};
-			partition at f0000 {
-				label = "sysinfo";
-				reg = <0x00f0000 0x010000>;
-				read-only;
-			};
-			partition at 100000{
-				label = "jffs2_cfg";
-				reg = <0x0100000 0x100000>;
-				read-only;
-			};
-			partition at 200000{
-				label = "jffs2_log";
-				reg = <0x0200000 0x100000>;
-			};
-			partition at 300000{
-				label = "firmware";
-				compatible = "openwrt,uimage", "denx,uimage";
-				openwrt,ih-magic = <0x4e474520>;
-				reg = <0x0300000 0x1d00000>;
-			};
-		};
-	};
-};
-
-&ethernet0 {
-	mdio: mdio-bus {
-		compatible = "realtek,rtl838x-mdio";
-		regmap = <&ethernet0>;
-		#address-cells = <1>;
-		#size-cells = <0>;
-
-		/* Internal phy */
-		phy8: ethernet-phy at 8 {
-			compatible = "ethernet-phy-ieee802.3-c22";
-			reg = <8>;
-		};
-		phy9: ethernet-phy at 9 {
-			compatible = "ethernet-phy-ieee802.3-c22";
-			reg = <9>;
-		};
-		phy10: ethernet-phy at 10 {
-			compatible = "ethernet-phy-ieee802.3-c22";
-			reg = <10>;
-		};
-		phy11: ethernet-phy at 11 {
-			compatible = "ethernet-phy-ieee802.3-c22";
-			reg = <11>;
-		};
-		phy12: ethernet-phy at 12 {
-			compatible = "ethernet-phy-ieee802.3-c22";
-			reg = <12>;
-		};
-		phy13: ethernet-phy at 13 {
-			compatible = "ethernet-phy-ieee802.3-c22";
-			reg = <13>;
-		};
-		phy14: ethernet-phy at 14 {
-			compatible = "ethernet-phy-ieee802.3-c22";
-			reg = <14>;
-		};
-		phy15: ethernet-phy at 15 {
-			compatible = "ethernet-phy-ieee802.3-c22";
-			reg = <15>;
-		};
-/*		phy10: ethernet-phy at 10 {
-			compatible = "ethernet-phy-ieee802.3-c22";
-			phy-is-integrated;
-			reg = <10>;
-		};
-		phy11: ethernet-phy at 11 {
-			compatible = "ethernet-phy-ieee802.3-c22";
-			phy-is-integrated;
-			reg = <11>;
-		};
-		phy12: ethernet-phy at 12 {
-			compatible = "ethernet-phy-ieee802.3-c22";
-			phy-is-integrated;
-			reg = <12>;
-		};
-		phy13: ethernet-phy at 13 {
-			compatible = "ethernet-phy-ieee802.3-c22";
-			phy-is-integrated;
-			reg = <13>;
-		};*/
-	};
-};
-
-&switch0 {
-	ports {
-		#address-cells = <1>;
-		#size-cells = <0>;
-
-		port at 8 {
-			reg = <8>;
-			label = "lan1";
-			phy-handle = <&phy8>;
-			phy-mode = "internal";
-		};
-		port at 9 {
-			reg = <9>;
-			label = "lan2";
-			phy-handle = <&phy9>;
-			phy-mode = "internal";
-		};
-		port at 10 {
-			reg = <10>;
-			label = "lan3";
-			phy-handle = <&phy10>;
-			phy-mode = "internal";
-		};
-		port at 11 {
-			reg = <11>;
-			label = "lan4";
-			phy-handle = <&phy11>;
-			phy-mode = "internal";
-		};
-		port at 12 {
-			reg = <12>;
-			label = "lan5";
-			phy-handle = <&phy12>;
-			phy-mode = "internal";
-		};
-		port at 13 {
-			reg = <13>;
-			label = "lan6";
-			phy-handle = <&phy13>;
-			phy-mode = "internal";
-		};
-		port at 14 {
-			reg = <14>;
-			label = "lan7";
-			phy-handle = <&phy14>;
-			phy-mode = "internal";
-		};
-		port at 15 {
-			reg = <15>;
-			label = "lan8";
-			phy-handle = <&phy15>;
-			phy-mode = "internal";
-		};
-/*		port at 10 {
-			reg = <10>;
-			label = "lan9";
-			phy-mode = "internal";
-			phy-handle = <&phy10>;
-		};
-		port at 11 {
-			reg = <11>;
-			label = "lan10";
-			phy-mode = "internal";
-			phy-handle = <&phy11>;
-		};
-		port at 12 {
-			reg = <12>;
-			label = "lan11";
-			phy-mode = "internal";
-			phy-handle = <&phy12>;
-		};
-		port at 13 {
-			reg = <13>;
-			label = "lan12";
-			phy-mode = "internal";
-			phy-handle = <&phy13>;
-		};*/
-		port at 28 {
-			ethernet = <&ethernet0>;
-			reg = <28>;
-			phy-mode = "internal";
-			fixed-link {
-				speed = <1000>;
-				full-duplex;
-			};
-		};
-	};
+	model = "Netgear GS110TPP v1";
 };



More information about the lede-commits mailing list