ramips: add support for Netgear EX6120
authorAdrian Schmutzler <freifunk@adrianschmutzler.de>
Tue, 9 Jun 2020 10:31:57 +0000 (12:31 +0200)
committerAdrian Schmutzler <freifunk@adrianschmutzler.de>
Wed, 10 Jun 2020 23:41:43 +0000 (01:41 +0200)
Specifications:
* SoC: MT7620A
* CPU: 580 MHz
* RAM: 64 MB DDR
* Flash: 8MB NOR SPI flash
* WiFi: MT7612E (5GHz) and builtin MT7620A (2.4GHz)
* LAN: 1x100M

The device is identical to the EX6130 except
for the mains socket and the hardware ID.

Installation:
The -factory images can be flashed from the
device's web interface or via nmrpflash.

Notes:
MAC addresses were set up based on the EX6130 setup.

This is based on prior work of Adam Serbinski and Mathias Buchwald.

Tested by Mathias Buchwald.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
target/linux/ramips/dts/mt7620a_netgear_ex3700.dts
target/linux/ramips/dts/mt7620a_netgear_ex3700_ex6130.dtsi [deleted file]
target/linux/ramips/dts/mt7620a_netgear_ex3x00_ex61xx.dtsi [new file with mode: 0644]
target/linux/ramips/dts/mt7620a_netgear_ex6120.dts [new file with mode: 0644]
target/linux/ramips/dts/mt7620a_netgear_ex6130.dts
target/linux/ramips/image/mt7620.mk
target/linux/ramips/mt7620/base-files/etc/board.d/02_network

index f657e926cbff87fd4bc3da9626631ce1de078478..15b0f2764a4ff59e24ace6bbeaccdef74344ef37 100644 (file)
@@ -2,7 +2,7 @@
 
 /dts-v1/;
 
-#include "mt7620a_netgear_ex3700_ex6130.dtsi"
+#include "mt7620a_netgear_ex3x00_ex61xx.dtsi"
 
 / {
        compatible = "netgear,ex3700", "ralink,mt7620a-soc";
diff --git a/target/linux/ramips/dts/mt7620a_netgear_ex3700_ex6130.dtsi b/target/linux/ramips/dts/mt7620a_netgear_ex3700_ex6130.dtsi
deleted file mode 100644 (file)
index 1f255c7..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/input/input.h>
-
-#include "mt7620a.dtsi"
-
-/ {
-       chosen {
-               bootargs = "console=ttyS0,57600";
-       };
-
-       keys {
-               compatible = "gpio-keys";
-
-               reset {
-                       label = "reset";
-                       gpios = <&gpio2 26 GPIO_ACTIVE_LOW>;
-                       linux,code = <KEY_RESTART>;
-               };
-
-               wps {
-                       label = "wps";
-                       gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
-                       linux,code = <KEY_WPS_BUTTON>;
-               };
-       };
-};
-
-&gpio0 {
-       status = "okay";
-};
-
-&gpio2 {
-       status = "okay";
-};
-
-&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 = "u-boot";
-                               reg = <0x0 0x30000>;
-                               read-only;
-                       };
-
-                       partition@30000 {
-                               label = "config";
-                               reg = <0x30000 0x10000>;
-                               read-only;
-                       };
-
-                       factory: partition@40000 {
-                               label = "factory";
-                               reg = <0x40000 0x10000>;
-                               read-only;
-                       };
-
-                       partition@50000 {
-                               compatible = "denx,uimage";
-                               label = "firmware";
-                               reg = <0x50000 0x790000>;
-                       };
-
-                       partition@7e0000 {
-                               label = "board_data";
-                               reg = <0x7e0000 0x10000>;
-                               read-only;
-                       };
-
-                       partition@7f0000 {
-                               label = "nvram";
-                               reg = <0x7f0000 0x10000>;
-                               read-only;
-                       };
-               };
-       };
-};
-
-&pcie {
-       status = "okay";
-};
-
-&pcie0 {
-       mt76@0,0 {
-               reg = <0x0000 0 0 0 0>;
-               mediatek,mtd-eeprom = <&factory 0x8000>;
-               ieee80211-freq-limit = <5000000 6000000>;
-       };
-};
-
-&ethernet {
-       mtd-mac-address = <&factory 0x28>;
-};
-
-&wmac {
-       ralink,mtd-eeprom = <&factory 0x0>;
-};
-
-&state_default {
-       default {
-               groups = "i2c", "rgmii2", "spi refclk";
-               function = "gpio";
-       };
-};
diff --git a/target/linux/ramips/dts/mt7620a_netgear_ex3x00_ex61xx.dtsi b/target/linux/ramips/dts/mt7620a_netgear_ex3x00_ex61xx.dtsi
new file mode 100644 (file)
index 0000000..1f255c7
--- /dev/null
@@ -0,0 +1,113 @@
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+#include "mt7620a.dtsi"
+
+/ {
+       chosen {
+               bootargs = "console=ttyS0,57600";
+       };
+
+       keys {
+               compatible = "gpio-keys";
+
+               reset {
+                       label = "reset";
+                       gpios = <&gpio2 26 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_RESTART>;
+               };
+
+               wps {
+                       label = "wps";
+                       gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_WPS_BUTTON>;
+               };
+       };
+};
+
+&gpio0 {
+       status = "okay";
+};
+
+&gpio2 {
+       status = "okay";
+};
+
+&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 = "u-boot";
+                               reg = <0x0 0x30000>;
+                               read-only;
+                       };
+
+                       partition@30000 {
+                               label = "config";
+                               reg = <0x30000 0x10000>;
+                               read-only;
+                       };
+
+                       factory: partition@40000 {
+                               label = "factory";
+                               reg = <0x40000 0x10000>;
+                               read-only;
+                       };
+
+                       partition@50000 {
+                               compatible = "denx,uimage";
+                               label = "firmware";
+                               reg = <0x50000 0x790000>;
+                       };
+
+                       partition@7e0000 {
+                               label = "board_data";
+                               reg = <0x7e0000 0x10000>;
+                               read-only;
+                       };
+
+                       partition@7f0000 {
+                               label = "nvram";
+                               reg = <0x7f0000 0x10000>;
+                               read-only;
+                       };
+               };
+       };
+};
+
+&pcie {
+       status = "okay";
+};
+
+&pcie0 {
+       mt76@0,0 {
+               reg = <0x0000 0 0 0 0>;
+               mediatek,mtd-eeprom = <&factory 0x8000>;
+               ieee80211-freq-limit = <5000000 6000000>;
+       };
+};
+
+&ethernet {
+       mtd-mac-address = <&factory 0x28>;
+};
+
+&wmac {
+       ralink,mtd-eeprom = <&factory 0x0>;
+};
+
+&state_default {
+       default {
+               groups = "i2c", "rgmii2", "spi refclk";
+               function = "gpio";
+       };
+};
diff --git a/target/linux/ramips/dts/mt7620a_netgear_ex6120.dts b/target/linux/ramips/dts/mt7620a_netgear_ex6120.dts
new file mode 100644 (file)
index 0000000..1f8cc1a
--- /dev/null
@@ -0,0 +1,56 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/dts-v1/;
+
+#include "mt7620a_netgear_ex3x00_ex61xx.dtsi"
+
+/ {
+       compatible = "netgear,ex6120", "ralink,mt7620a-soc";
+       model = "Netgear EX6120";
+
+       aliases {
+               led-boot = &led_power_amber;
+               led-failsafe = &led_power_amber;
+               led-running = &led_power_green;
+               led-upgrade = &led_power_green;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led_power_green: power_green {
+                       label = "ex6120:green:power";
+                       gpios = <&gpio2 23 GPIO_ACTIVE_LOW>;
+                       default-state = "on";
+               };
+
+               led_power_amber: power_amber {
+                       label = "ex6120:amber:power";
+                       gpios = <&gpio2 28 GPIO_ACTIVE_LOW>;
+               };
+
+               router_green {
+                       label = "ex6120:green:router";
+                       gpios = <&gpio2 25 GPIO_ACTIVE_LOW>;
+               };
+
+               router_red {
+                       label = "ex6120:red:router";
+                       gpios = <&gpio2 24 GPIO_ACTIVE_LOW>;
+               };
+
+               device_green {
+                       label = "ex6120:green:device";
+                       gpios = <&gpio2 20 GPIO_ACTIVE_LOW>;
+               };
+
+               device_red {
+                       label = "ex6120:red:device";
+                       gpios = <&gpio2 21 GPIO_ACTIVE_LOW>;
+               };
+
+               wps {
+                       label = "ex6120:green:wps";
+                       gpios = <&gpio2 27 GPIO_ACTIVE_LOW>;
+               };
+       };
+};
index f0e0861f31b8cd65083180789d18ceafa2dd76c7..47dceea809546ccdd7cca48f16bff088f470c556 100644 (file)
@@ -2,7 +2,7 @@
 
 /dts-v1/;
 
-#include "mt7620a_netgear_ex3700_ex6130.dtsi"
+#include "mt7620a_netgear_ex3x00_ex61xx.dtsi"
 
 / {
        compatible = "netgear,ex6130", "ralink,mt7620a-soc";
index 386809e40f07482536900005a27411c9e2f865c1..df3f0500485117c7989ea42b4a53513099b8ed98 100644 (file)
@@ -670,6 +670,19 @@ define Device/netgear_ex3700
 endef
 TARGET_DEVICES += netgear_ex3700
 
+define Device/netgear_ex6120
+  SOC := mt7620a
+  NETGEAR_BOARD_ID := U12H319T30_NETGEAR
+  BLOCKSIZE := 4k
+  IMAGE_SIZE := 7744k
+  IMAGES += factory.chk
+  IMAGE/factory.chk := $$(sysupgrade_bin) | check-size | netgear-chk
+  DEVICE_PACKAGES := kmod-mt76x2
+  DEVICE_VENDOR := NETGEAR
+  DEVICE_MODEL := EX6120
+endef
+TARGET_DEVICES += netgear_ex6120
+
 define Device/netgear_ex6130
   SOC := mt7620a
   NETGEAR_BOARD_ID := U12H319T50_NETGEAR
index 2a54fa12e983ec48f06f6f6ae7c1026d04fd8809..46ed857cdc05516bc046f75d1c08993d282504cd 100755 (executable)
@@ -55,6 +55,7 @@ ramips_setup_interfaces()
        microduino,microwrt|\
        netgear,ex2700|\
        netgear,ex3700|\
+       netgear,ex6120|\
        netgear,ex6130|\
        netgear,wn3000rp-v3|\
        planex,cs-qr10|\