realtek: refactor the Netgear GS110TPP v1 device tree
authorMichael Mohr <akihana@gmail.com>
Sat, 9 Jan 2021 05:31:53 +0000 (21:31 -0800)
committerPetr Štetiar <ynezz@true.cz>
Fri, 12 Feb 2021 07:52:41 +0000 (08:52 +0100)
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@gmail.com>
target/linux/realtek/dts/rtl8380_netgear_gigabit.dtsi [new file with mode: 0644]
target/linux/realtek/dts/rtl8380_netgear_gs110tpp-v1.dts

diff --git a/target/linux/realtek/dts/rtl8380_netgear_gigabit.dtsi b/target/linux/realtek/dts/rtl8380_netgear_gigabit.dtsi
new file mode 100644 (file)
index 0000000..2cda3c1
--- /dev/null
@@ -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@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@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <50000000>;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       partition@0 {
+                               label = "loader";
+                               reg = <0x0000000 0x00e0000>;
+                               read-only;
+                       };
+
+                       partition@e0000 {
+                               label = "bdinfo";
+                               reg = <0x00e0000 0x0010000>;
+                               read-only;
+                       };
+
+                       partition@f0000 {
+                               label = "sysinfo";
+                               reg = <0x00f0000 0x0010000>;
+                               read-only;
+                       };
+
+                       partition@100000 {
+                               label = "jffs2_cfg";
+                               reg = <0x0100000 0x0100000>;
+                               read-only;
+                       };
+
+                       partition@200000 {
+                               label = "jffs2_log";
+                               reg = <0x0200000 0x0100000>;
+                               read-only;
+                       };
+
+                       partition@300000 {
+                               label = "firmware";
+                               compatible = "openwrt,uimage", "denx,uimage";
+                               openwrt,ih-magic = <0x4e474520>;
+                               reg = <0x0300000 0x0e80000>;
+                       };
+
+                       partition@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@28 {
+                       ethernet = <&ethernet0>;
+                       reg = <28>;
+                       phy-mode = "internal";
+                       fixed-link {
+                               speed = <1000>;
+                               full-duplex;
+                       };
+               };
+       };
+};
index cd9342f3f13bd890086c75f1af891dea655ec1e9..265cc51c305773b9b6ea13e4f218b2c632d708e9 100644 (file)
@@ -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@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@0 {
-               compatible = "jedec,spi-nor";
-               reg = <0>;
-               spi-max-frequency = <10000000>;
-
-               partitions {
-                       compatible = "fixed-partitions";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       partition@0 {
-                               label = "u-boot";
-                               reg = <0x0000000 0x0e0000>;
-                               read-only;
-                       };
-                       partition@e0000 {
-                               label = "u-boot-env";
-                               reg = <0x00e0000 0x010000>;
-                       };
-                       partition@f0000 {
-                               label = "sysinfo";
-                               reg = <0x00f0000 0x010000>;
-                               read-only;
-                       };
-                       partition@100000{
-                               label = "jffs2_cfg";
-                               reg = <0x0100000 0x100000>;
-                               read-only;
-                       };
-                       partition@200000{
-                               label = "jffs2_log";
-                               reg = <0x0200000 0x100000>;
-                       };
-                       partition@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@8 {
-                       compatible = "ethernet-phy-ieee802.3-c22";
-                       reg = <8>;
-               };
-               phy9: ethernet-phy@9 {
-                       compatible = "ethernet-phy-ieee802.3-c22";
-                       reg = <9>;
-               };
-               phy10: ethernet-phy@10 {
-                       compatible = "ethernet-phy-ieee802.3-c22";
-                       reg = <10>;
-               };
-               phy11: ethernet-phy@11 {
-                       compatible = "ethernet-phy-ieee802.3-c22";
-                       reg = <11>;
-               };
-               phy12: ethernet-phy@12 {
-                       compatible = "ethernet-phy-ieee802.3-c22";
-                       reg = <12>;
-               };
-               phy13: ethernet-phy@13 {
-                       compatible = "ethernet-phy-ieee802.3-c22";
-                       reg = <13>;
-               };
-               phy14: ethernet-phy@14 {
-                       compatible = "ethernet-phy-ieee802.3-c22";
-                       reg = <14>;
-               };
-               phy15: ethernet-phy@15 {
-                       compatible = "ethernet-phy-ieee802.3-c22";
-                       reg = <15>;
-               };
-/*             phy10: ethernet-phy@10 {
-                       compatible = "ethernet-phy-ieee802.3-c22";
-                       phy-is-integrated;
-                       reg = <10>;
-               };
-               phy11: ethernet-phy@11 {
-                       compatible = "ethernet-phy-ieee802.3-c22";
-                       phy-is-integrated;
-                       reg = <11>;
-               };
-               phy12: ethernet-phy@12 {
-                       compatible = "ethernet-phy-ieee802.3-c22";
-                       phy-is-integrated;
-                       reg = <12>;
-               };
-               phy13: ethernet-phy@13 {
-                       compatible = "ethernet-phy-ieee802.3-c22";
-                       phy-is-integrated;
-                       reg = <13>;
-               };*/
-       };
-};
-
-&switch0 {
-       ports {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               port@8 {
-                       reg = <8>;
-                       label = "lan1";
-                       phy-handle = <&phy8>;
-                       phy-mode = "internal";
-               };
-               port@9 {
-                       reg = <9>;
-                       label = "lan2";
-                       phy-handle = <&phy9>;
-                       phy-mode = "internal";
-               };
-               port@10 {
-                       reg = <10>;
-                       label = "lan3";
-                       phy-handle = <&phy10>;
-                       phy-mode = "internal";
-               };
-               port@11 {
-                       reg = <11>;
-                       label = "lan4";
-                       phy-handle = <&phy11>;
-                       phy-mode = "internal";
-               };
-               port@12 {
-                       reg = <12>;
-                       label = "lan5";
-                       phy-handle = <&phy12>;
-                       phy-mode = "internal";
-               };
-               port@13 {
-                       reg = <13>;
-                       label = "lan6";
-                       phy-handle = <&phy13>;
-                       phy-mode = "internal";
-               };
-               port@14 {
-                       reg = <14>;
-                       label = "lan7";
-                       phy-handle = <&phy14>;
-                       phy-mode = "internal";
-               };
-               port@15 {
-                       reg = <15>;
-                       label = "lan8";
-                       phy-handle = <&phy15>;
-                       phy-mode = "internal";
-               };
-/*             port@10 {
-                       reg = <10>;
-                       label = "lan9";
-                       phy-mode = "internal";
-                       phy-handle = <&phy10>;
-               };
-               port@11 {
-                       reg = <11>;
-                       label = "lan10";
-                       phy-mode = "internal";
-                       phy-handle = <&phy11>;
-               };
-               port@12 {
-                       reg = <12>;
-                       label = "lan11";
-                       phy-mode = "internal";
-                       phy-handle = <&phy12>;
-               };
-               port@13 {
-                       reg = <13>;
-                       label = "lan12";
-                       phy-mode = "internal";
-                       phy-handle = <&phy13>;
-               };*/
-               port@28 {
-                       ethernet = <&ethernet0>;
-                       reg = <28>;
-                       phy-mode = "internal";
-                       fixed-link {
-                               speed = <1000>;
-                               full-duplex;
-                       };
-               };
-       };
+       model = "Netgear GS110TPP v1";
 };