From fbb46b7bcc24e5ef2581930e2a9b3996e4381f97 Mon Sep 17 00:00:00 2001 From: Adrian Schmutzler Date: Tue, 9 Jun 2020 12:31:57 +0200 Subject: ramips: add support for Netgear EX6120 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 --- target/linux/ramips/dts/mt7620a_netgear_ex3700.dts | 2 +- .../ramips/dts/mt7620a_netgear_ex3700_ex6130.dtsi | 113 --------------------- .../ramips/dts/mt7620a_netgear_ex3x00_ex61xx.dtsi | 113 +++++++++++++++++++++ target/linux/ramips/dts/mt7620a_netgear_ex6120.dts | 56 ++++++++++ target/linux/ramips/dts/mt7620a_netgear_ex6130.dts | 2 +- target/linux/ramips/image/mt7620.mk | 13 +++ .../mt7620/base-files/etc/board.d/02_network | 1 + 7 files changed, 185 insertions(+), 115 deletions(-) delete mode 100644 target/linux/ramips/dts/mt7620a_netgear_ex3700_ex6130.dtsi create mode 100644 target/linux/ramips/dts/mt7620a_netgear_ex3x00_ex61xx.dtsi create mode 100644 target/linux/ramips/dts/mt7620a_netgear_ex6120.dts diff --git a/target/linux/ramips/dts/mt7620a_netgear_ex3700.dts b/target/linux/ramips/dts/mt7620a_netgear_ex3700.dts index f657e926cb..15b0f2764a 100644 --- a/target/linux/ramips/dts/mt7620a_netgear_ex3700.dts +++ b/target/linux/ramips/dts/mt7620a_netgear_ex3700.dts @@ -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 index 1f255c76b2..0000000000 --- a/target/linux/ramips/dts/mt7620a_netgear_ex3700_ex6130.dtsi +++ /dev/null @@ -1,113 +0,0 @@ -#include -#include - -#include "mt7620a.dtsi" - -/ { - chosen { - bootargs = "console=ttyS0,57600"; - }; - - keys { - compatible = "gpio-keys"; - - reset { - label = "reset"; - gpios = <&gpio2 26 GPIO_ACTIVE_LOW>; - linux,code = ; - }; - - wps { - label = "wps"; - gpios = <&gpio0 2 GPIO_ACTIVE_LOW>; - linux,code = ; - }; - }; -}; - -&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>; - }; -}; - -ðernet { - 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 index 0000000000..1f255c76b2 --- /dev/null +++ b/target/linux/ramips/dts/mt7620a_netgear_ex3x00_ex61xx.dtsi @@ -0,0 +1,113 @@ +#include +#include + +#include "mt7620a.dtsi" + +/ { + chosen { + bootargs = "console=ttyS0,57600"; + }; + + keys { + compatible = "gpio-keys"; + + reset { + label = "reset"; + gpios = <&gpio2 26 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + + wps { + label = "wps"; + gpios = <&gpio0 2 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + }; +}; + +&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>; + }; +}; + +ðernet { + 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 index 0000000000..1f8cc1ae47 --- /dev/null +++ b/target/linux/ramips/dts/mt7620a_netgear_ex6120.dts @@ -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>; + }; + }; +}; diff --git a/target/linux/ramips/dts/mt7620a_netgear_ex6130.dts b/target/linux/ramips/dts/mt7620a_netgear_ex6130.dts index f0e0861f31..47dceea809 100644 --- a/target/linux/ramips/dts/mt7620a_netgear_ex6130.dts +++ b/target/linux/ramips/dts/mt7620a_netgear_ex6130.dts @@ -2,7 +2,7 @@ /dts-v1/; -#include "mt7620a_netgear_ex3700_ex6130.dtsi" +#include "mt7620a_netgear_ex3x00_ex61xx.dtsi" / { compatible = "netgear,ex6130", "ralink,mt7620a-soc"; diff --git a/target/linux/ramips/image/mt7620.mk b/target/linux/ramips/image/mt7620.mk index 386809e40f..df3f050048 100644 --- a/target/linux/ramips/image/mt7620.mk +++ b/target/linux/ramips/image/mt7620.mk @@ -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 diff --git a/target/linux/ramips/mt7620/base-files/etc/board.d/02_network b/target/linux/ramips/mt7620/base-files/etc/board.d/02_network index 2a54fa12e9..46ed857cdc 100755 --- a/target/linux/ramips/mt7620/base-files/etc/board.d/02_network +++ b/target/linux/ramips/mt7620/base-files/etc/board.d/02_network @@ -55,6 +55,7 @@ ramips_setup_interfaces() microduino,microwrt|\ netgear,ex2700|\ netgear,ex3700|\ + netgear,ex6120|\ netgear,ex6130|\ netgear,wn3000rp-v3|\ planex,cs-qr10|\ -- cgit v1.2.3