From 6cea9688af4a05f407266ed1de5a739e5c984b8c Mon Sep 17 00:00:00 2001 From: Christoph Krapp Date: Thu, 29 Aug 2019 10:08:38 +0200 Subject: [PATCH] ramips: add support for Netgear R6260 and R6850 As Netgear uses the same image for R6260, R6350 & R6850 we can merge device tree files and generate separate images for each device. Signed-off-by: Christoph Krapp [add missing WiFi compatible string, fix network configuration] Signed-off-by: David Bauer --- .../ramips/base-files/etc/board.d/01_leds | 2 + .../ramips/base-files/etc/board.d/02_network | 6 +- .../ramips/base-files/lib/upgrade/platform.sh | 2 + .../linux/ramips/dts/mt7621_netgear_r6260.dts | 28 +++ .../dts/mt7621_netgear_r6260_r6350_r6850.dtsi | 159 ++++++++++++++++++ .../linux/ramips/dts/mt7621_netgear_r6350.dts | 152 +---------------- .../linux/ramips/dts/mt7621_netgear_r6850.dts | 28 +++ target/linux/ramips/image/mt7621.mk | 20 ++- 8 files changed, 251 insertions(+), 146 deletions(-) create mode 100644 target/linux/ramips/dts/mt7621_netgear_r6260.dts create mode 100644 target/linux/ramips/dts/mt7621_netgear_r6260_r6350_r6850.dtsi create mode 100644 target/linux/ramips/dts/mt7621_netgear_r6850.dts diff --git a/target/linux/ramips/base-files/etc/board.d/01_leds b/target/linux/ramips/base-files/etc/board.d/01_leds index 6735876651d3..fa36aee9e391 100755 --- a/target/linux/ramips/base-files/etc/board.d/01_leds +++ b/target/linux/ramips/base-files/etc/board.d/01_leds @@ -293,7 +293,9 @@ netgear,r6120) ucidef_set_led_wlan "wlan2g" "WiFi 2.4GHz" "$boardname:green:wlan2g" "phy0tpt" ;; netgear,r6220|\ +netgear,r6260|\ netgear,r6350|\ +netgear,r6850|\ netgear,wndr3700-v5) ucidef_set_led_switch "wan" "wan" "$boardname:green:wan" "switch0" "0x10" ;; diff --git a/target/linux/ramips/base-files/etc/board.d/02_network b/target/linux/ramips/base-files/etc/board.d/02_network index 2fd7b07bd72b..e19a618389c7 100755 --- a/target/linux/ramips/base-files/etc/board.d/02_network +++ b/target/linux/ramips/base-files/etc/board.d/02_network @@ -395,7 +395,9 @@ ramips_setup_interfaces() ;; netgear,r6120|\ netgear,r6220|\ + netgear,r6260|\ netgear,r6350|\ + netgear,r6850|\ netgear,wndr3700-v5) ucidef_add_switch "switch0" \ "0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "4:wan" "6@eth0" @@ -593,7 +595,9 @@ ramips_setup_macs() wan_mac=$(mtd_get_mac_binary devdata 0x7) ;; edimax,br-6478ac-v2|\ - netgear,r6350) + netgear,r6260|\ + netgear,r6350|\ + netgear,r6850) wan_mac=$(macaddr_add "$(cat /sys/class/net/eth0/address)" 2) ;; elecom,wrc-1167ghbk2-s|\ diff --git a/target/linux/ramips/base-files/lib/upgrade/platform.sh b/target/linux/ramips/base-files/lib/upgrade/platform.sh index a65492a30927..9889079db90c 100755 --- a/target/linux/ramips/base-files/lib/upgrade/platform.sh +++ b/target/linux/ramips/base-files/lib/upgrade/platform.sh @@ -23,7 +23,9 @@ platform_do_upgrade() { case "$board" in hiwifi,hc5962|\ netgear,r6220|\ + netgear,r6260|\ netgear,r6350|\ + netgear,r6850|\ xiaomi,mir3g|\ xiaomi,mir3p) nand_do_upgrade "$1" diff --git a/target/linux/ramips/dts/mt7621_netgear_r6260.dts b/target/linux/ramips/dts/mt7621_netgear_r6260.dts new file mode 100644 index 000000000000..9c6acadd67af --- /dev/null +++ b/target/linux/ramips/dts/mt7621_netgear_r6260.dts @@ -0,0 +1,28 @@ +// SPDX-License-Identifier: GPL-2.0 +/dts-v1/; + +#include "mt7621_netgear_r6260_r6350_r6850.dtsi" + +#include +#include + +/ { + compatible = "netgear,r6260", "mediatek,mt7621-soc"; + model = "Netgear R6260"; +}; + +&led_power { + label = "r6260:green:power"; +}; + +&led_usb { + label = "r6260:green:usb"; +}; + +&led_internet { + label = "r6260:green:wan"; +}; + +&led_wifi { + label = "r6260:green:wifi"; +}; diff --git a/target/linux/ramips/dts/mt7621_netgear_r6260_r6350_r6850.dtsi b/target/linux/ramips/dts/mt7621_netgear_r6260_r6350_r6850.dtsi new file mode 100644 index 000000000000..2fe4d241ccfc --- /dev/null +++ b/target/linux/ramips/dts/mt7621_netgear_r6260_r6350_r6850.dtsi @@ -0,0 +1,159 @@ +// SPDX-License-Identifier: GPL-2.0 +/dts-v1/; + +#include "mt7621.dtsi" + +#include +#include + +/ { + compatible = "mediatek,mt7621-soc"; + + aliases { + led-boot = &led_power; + led-failsafe = &led_power; + led-running = &led_power; + led-upgrade = &led_power; + }; + + chosen { + bootargs = "console=ttyS0,57600"; + }; + + leds { + compatible = "gpio-leds"; + + led_power: power { + gpios = <&gpio0 18 GPIO_ACTIVE_LOW>; + }; + + led_usb: usb { + gpios = <&gpio0 15 GPIO_ACTIVE_LOW>; + trigger-sources = <&xhci_ehci_port1>, <&ehci_port2>; + linux,default-trigger = "usbport"; + }; + + led_internet: internet { + gpios = <&gpio0 13 GPIO_ACTIVE_LOW>; + }; + + led_wifi: wifi { + gpios = <&gpio0 16 GPIO_ACTIVE_LOW>; + linux,default-trigger = "phy0tpt"; + }; + }; + + keys { + compatible = "gpio-keys"; + + wps { + label = "wps"; + gpios = <&gpio0 7 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + + reset { + label = "reset"; + gpios = <&gpio0 14 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + }; + + reg_usb_vbus: regulator { + compatible = "regulator-fixed"; + regulator-name = "usb_vbus"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + gpio = <&gpio0 10 GPIO_ACTIVE_HIGH>; + enable-active-high; + }; +}; + +&nand { + status = "okay"; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "u-boot"; + reg = <0x0 0x100000>; + read-only; + }; + + partition@100000 { + label = "SC PART_MAP"; + reg = <0x100000 0x100000>; + read-only; + }; + + partition@200000 { + label = "kernel"; + reg = <0x200000 0x400000>; + }; + + partition@600000 { + label = "ubi"; + reg = <0x600000 0x2800000>; + }; + + partition@2e00000 { + label = "reserved0"; + reg = <0x2e00000 0x1800000>; + read-only; + }; + + factory: partition@4600000 { + label = "factory"; + reg = <0x4600000 0x200000>; + read-only; + }; + + partition@4800000 { + label = "reserved1"; + reg = <0x4800000 0x3800000>; + read-only; + }; + }; +}; + +&xhci { + vbus-supply = <®_usb_vbus>; +}; + +&pcie { + status = "okay"; +}; + +&pcie0 { + wifi@0,0 { + compatible = "mediatek,mt76"; + reg = <0x0 0 0 0 0>; + mediatek,mtd-eeprom = <&factory 0x8000>; + ieee80211-freq-limit = <5000000 6000000>; + }; +}; + +&pcie1 { + wifi@0,0 { + compatible = "mediatek,mt76"; + reg = <0x0 0 0 0 0>; + mediatek,mtd-eeprom = <&factory 0x0>; + ieee80211-freq-limit = <2400000 2500000>; + }; +}; + +ðernet { + mtd-mac-address = <&factory 0x4>; +}; + +&pinctrl { + state_default: pinctrl0 { + gpio { + ralink,group = "uart3", "uart2", "jtag", "wdt"; + ralink,function = "gpio"; + }; + }; +}; diff --git a/target/linux/ramips/dts/mt7621_netgear_r6350.dts b/target/linux/ramips/dts/mt7621_netgear_r6350.dts index 54640244c52f..3b8d4de102fa 100644 --- a/target/linux/ramips/dts/mt7621_netgear_r6350.dts +++ b/target/linux/ramips/dts/mt7621_netgear_r6350.dts @@ -1,7 +1,7 @@ // SPDX-License-Identifier: GPL-2.0 /dts-v1/; -#include "mt7621.dtsi" +#include "mt7621_netgear_r6260_r6350_r6850.dtsi" #include #include @@ -9,154 +9,20 @@ / { compatible = "netgear,r6350", "mediatek,mt7621-soc"; model = "Netgear R6350"; - - aliases { - led-boot = &led_power; - led-failsafe = &led_power; - led-running = &led_power; - led-upgrade = &led_power; - }; - - chosen { - bootargs = "console=ttyS0,57600"; - }; - - leds { - compatible = "gpio-leds"; - - led_power: power { - label = "r6350:green:power"; - gpios = <&gpio0 18 GPIO_ACTIVE_LOW>; - }; - - usb { - label = "r6350:green:usb"; - gpios = <&gpio0 15 GPIO_ACTIVE_LOW>; - trigger-sources = <&xhci_ehci_port1>, <&ehci_port2>; - linux,default-trigger = "usbport"; - }; - - internet { - label = "r6350:green:wan"; - gpios = <&gpio0 13 GPIO_ACTIVE_LOW>; - }; - - wifi { - label = "r6350:green:wifi"; - gpios = <&gpio0 16 GPIO_ACTIVE_LOW>; - linux,default-trigger = "phy0tpt"; - }; - }; - - keys { - compatible = "gpio-keys-polled"; - poll-interval = <20>; - - wps { - label = "wps"; - gpios = <&gpio0 7 GPIO_ACTIVE_LOW>; - linux,code = ; - }; - - reset { - label = "reset"; - gpios = <&gpio0 14 GPIO_ACTIVE_LOW>; - linux,code = ; - }; - }; - - gpio_export { - compatible = "gpio-export"; - #size-cells = <0>; - - usbpower { - gpio-export,name = "usbpower"; - gpio-export,output = <1>; - gpios = <&gpio0 10 GPIO_ACTIVE_HIGH>; - }; - }; -}; - -&nand { - status = "okay"; - - partitions { - compatible = "fixed-partitions"; - #address-cells = <1>; - #size-cells = <1>; - - partition@0 { - label = "u-boot"; - reg = <0x0 0x100000>; - read-only; - }; - - partition@100000 { - label = "SC PART_MAP"; - reg = <0x100000 0x100000>; - read-only; - }; - - partition@200000 { - label = "kernel"; - reg = <0x200000 0x400000>; - }; - - partition@600000 { - label = "ubi"; - reg = <0x600000 0x2800000>; - }; - - partition@2e00000 { - label = "reserved0"; - reg = <0x2e00000 0x1800000>; - read-only; - }; - - factory: partition@4600000 { - label = "factory"; - reg = <0x4600000 0x200000>; - read-only; - }; - - partition@4800000 { - label = "reserved1"; - reg = <0x4800000 0x3800000>; - read-only; - }; - }; -}; - -&pcie { - status = "okay"; }; -&pcie0 { - wifi@0,0 { - compatible = "mediatek,mt76"; - reg = <0x0 0 0 0 0>; - mediatek,mtd-eeprom = <&factory 0x8000>; - ieee80211-freq-limit = <5000000 6000000>; - }; +&led_power { + label = "r6350:green:power"; }; -&pcie1 { - wifi@0,0 { - reg = <0x0 0 0 0 0>; - mediatek,mtd-eeprom = <&factory 0x0>; - ieee80211-freq-limit = <2400000 2500000>; - }; +&led_usb { + label = "r6350:green:usb"; }; -ðernet { - mtd-mac-address = <&factory 0x4>; +&led_internet { + label = "r6350:green:wan"; }; -&pinctrl { - state_default: pinctrl0 { - gpio { - ralink,group = "uart3", "uart2", "jtag", "wdt"; - ralink,function = "gpio"; - }; - }; +&led_wifi { + label = "r6350:green:wifi"; }; diff --git a/target/linux/ramips/dts/mt7621_netgear_r6850.dts b/target/linux/ramips/dts/mt7621_netgear_r6850.dts new file mode 100644 index 000000000000..6a24e9701719 --- /dev/null +++ b/target/linux/ramips/dts/mt7621_netgear_r6850.dts @@ -0,0 +1,28 @@ +// SPDX-License-Identifier: GPL-2.0 +/dts-v1/; + +#include "mt7621_netgear_r6260_r6350_r6850.dtsi" + +#include +#include + +/ { + compatible = "netgear,r6850", "mediatek,mt7621-soc"; + model = "Netgear R6850"; +}; + +&led_power { + label = "r6850:green:power"; +}; + +&led_usb { + label = "r6850:green:usb"; +}; + +&led_internet { + label = "r6850:green:wan"; +}; + +&led_wifi { + label = "r6850:green:wifi"; +}; diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk index 96dd74afcf73..986fe5e2f826 100644 --- a/target/linux/ramips/image/mt7621.mk +++ b/target/linux/ramips/image/mt7621.mk @@ -414,7 +414,7 @@ define Device/netgear_r6220 endef TARGET_DEVICES += netgear_r6220 -define Device/netgear_r6350 +define Device/netgear_r6260_r6350_r6850 MTK_SOC := mt7621 BLOCKSIZE := 128k PAGESIZE := 2048 @@ -431,12 +431,28 @@ define Device/netgear_r6350 IMAGE/kernel.bin := append-kernel IMAGE/rootfs.bin := append-ubi | check-size $$$$(IMAGE_SIZE) DEVICE_VENDOR := NETGEAR - DEVICE_MODEL := R6350 DEVICE_PACKAGES := \ kmod-mt7603 kmod-mt7615e kmod-usb3 kmod-usb-ledtrig-usbport wpad-basic endef + +define Device/netgear_r6260 + $(Device/netgear_r6260_r6350_r6850) + DEVICE_MODEL := R6260 +endef +TARGET_DEVICES += netgear_r6260 + +define Device/netgear_r6350 + $(Device/netgear_r6260_r6350_r6850) + DEVICE_MODEL := R6350 +endef TARGET_DEVICES += netgear_r6350 +define Device/netgear_r6850 + $(Device/netgear_r6260_r6350_r6850) + DEVICE_MODEL := R6850 +endef +TARGET_DEVICES += netgear_r6850 + define Device/netgear_wndr3700-v5 MTK_SOC := mt7621 BLOCKSIZE := 64k -- 2.30.2