From b58df9919ef827e4d591e8b1990f0d306f7bdb5f Mon Sep 17 00:00:00 2001 From: Hannu Nyman Date: Sat, 11 Aug 2018 14:47:21 +0300 Subject: [PATCH] ath79: create WNDR3700 series .dtsi and adjust WNDR3800 Prepare for addition of WNDR3700 and WNDR3700v2 by separating the common parts into wndr3700.dtsi and leaving just the device-specific things into wndr3800.dts The three routers are identical except * device IDs * WNDR3700 (v1) has only 8 MB flash, while others have 16 MB. Partition structure needs to be defined for each device. * (WNDR3800 has 128 MB RAM, but RAM size is not in DTS) Also separate the common parts of the image recipe. (Drop also the initramfs recipe.) Signed-off-by: Hannu Nyman --- .../ath79/dts/ar7161_netgear_wndr3700.dtsi | 185 +++++++++++++++ .../ath79/dts/ar7161_netgear_wndr3800.dts | 210 ++---------------- target/linux/ath79/image/generic.mk | 17 +- 3 files changed, 212 insertions(+), 200 deletions(-) create mode 100644 target/linux/ath79/dts/ar7161_netgear_wndr3700.dtsi diff --git a/target/linux/ath79/dts/ar7161_netgear_wndr3700.dtsi b/target/linux/ath79/dts/ar7161_netgear_wndr3700.dtsi new file mode 100644 index 0000000000..f3751d588d --- /dev/null +++ b/target/linux/ath79/dts/ar7161_netgear_wndr3700.dtsi @@ -0,0 +1,185 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include +#include + +#include "ar7100.dtsi" + +/ { + aliases { + led-status = &power_green; + }; + + chosen { + bootargs = "console=ttyS0,115200"; + }; + + extosc: ref { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-output-names = "ref"; + clock-frequency = <40000000>; + }; + + reset-leds { + compatible = "reset-leds"; + + usb_led { + label = "netgear:green:usb"; + resets = <&rst 12>; + trigger-sources = <&usb_ochi_port>, <&usb_echi_port>; + linux,default-trigger = "usbport"; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + wps { + label = "netgear:orange:wps"; + gpios = <&gpio 0 GPIO_ACTIVE_LOW>; + default-state = "off"; + }; + + power_green: power_green { + label = "netgear:green:power"; + gpios = <&gpio 2 GPIO_ACTIVE_LOW>; + default-state = "off"; + }; + + power_orange { + label = "netgear:orange:power"; + gpios = <&gpio 1 GPIO_ACTIVE_LOW>; + default-state = "off"; + }; + + wps_green { + label = "netgear:green:wps"; + gpios = <&gpio 4 GPIO_ACTIVE_LOW>; + default-state = "off"; + }; + + wan_green { + label = "netgear:green:wan"; + gpios = <&gpio 6 GPIO_ACTIVE_LOW>; + default-state = "off"; + }; + }; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + poll-interval = <100>; + + wps { + label = "wps"; + linux,code = ; + gpios = <&gpio 3 GPIO_ACTIVE_LOW>; + }; + + reset { + label = "reset"; + linux,code = ; + gpios = <&gpio 8 GPIO_ACTIVE_LOW>; + }; + + rfkill { + label = "rfkill"; + linux,code = ; + gpios = <&gpio 11 GPIO_ACTIVE_LOW>; + }; + }; + + rtl8366s { + compatible = "realtek,rtl8366s"; + gpio-sda = <&gpio 5 GPIO_ACTIVE_HIGH>; + gpio-sck = <&gpio 7 GPIO_ACTIVE_HIGH>; + + mdio-bus { + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + phy-mask = <0x10>; + + phy4: ethernet-phy@4 { + reg = <4>; + phy-mode = "rgmii"; + }; + }; + }; +}; + +&usb_phy { + status = "okay"; +}; + +&usb1 { + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + usb_ochi_port: port@1 { + reg = <1>; + #trigger-source-cells = <0>; + }; +}; + +&usb2 { + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + usb_echi_port: port@1 { + reg = <1>; + #trigger-source-cells = <0>; + }; +}; + +&pcie0 { + status = "okay"; +}; + +&uart { + status = "okay"; +}; + +&spi { + status = "okay"; + num-cs = <1>; + + flash@0 { + compatible = "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <25000000>; + + partitions: partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + }; + }; +}; + +ð0 { + status = "okay"; + + pll-data = <0x11110000 0x00001099 0x00991099>; + + mtd-mac-address = <&art 0x00>; + + fixed-link { + speed = <1000>; + full-duplex; + }; +}; + +ð1 { + status = "okay"; + + pll-data = <0x11110000 0x00001099 0x00991099>; + + mtd-mac-address = <&art 0x06>; + + phy-handle = <&phy4>; +}; diff --git a/target/linux/ath79/dts/ar7161_netgear_wndr3800.dts b/target/linux/ath79/dts/ar7161_netgear_wndr3800.dts index 725583c491..83d3be0125 100644 --- a/target/linux/ath79/dts/ar7161_netgear_wndr3800.dts +++ b/target/linux/ath79/dts/ar7161_netgear_wndr3800.dts @@ -1,211 +1,35 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT /dts-v1/; -#include -#include - -#include "ar7100.dtsi" +#include "ar7161_netgear_wndr3700.dtsi" / { compatible = "netgear,wndr3800", "qca,ar7161"; model = "Netgear WNDR3800"; - - aliases { - led-status = &power_green; - }; - - chosen { - bootargs = "console=ttyS0,115200"; - }; - - extosc: ref { - compatible = "fixed-clock"; - #clock-cells = <0>; - clock-output-names = "ref"; - clock-frequency = <40000000>; - }; - - reset-leds { - compatible = "reset-leds"; - - usb_led { - label = "netgear:green:usb"; - resets = <&rst 12>; - trigger-sources = <&usb_ochi_port>, <&usb_echi_port>; - linux,default-trigger = "usbport"; - }; - }; - - gpio-leds { - compatible = "gpio-leds"; - - wps { - label = "netgear:orange:wps"; - gpios = <&gpio 0 GPIO_ACTIVE_LOW>; - default-state = "off"; - }; - - power_green: power_green { - label = "netgear:green:power"; - gpios = <&gpio 2 GPIO_ACTIVE_LOW>; - default-state = "off"; - }; - - power_orange { - label = "netgear:orange:power"; - gpios = <&gpio 1 GPIO_ACTIVE_LOW>; - default-state = "off"; - }; - - wps_green { - label = "netgear:green:wps"; - gpios = <&gpio 4 GPIO_ACTIVE_LOW>; - default-state = "off"; - }; - - wan_green { - label = "netgear:green:wan"; - gpios = <&gpio 6 GPIO_ACTIVE_LOW>; - default-state = "off"; - }; - }; - - gpio-keys-polled { - compatible = "gpio-keys-polled"; - poll-interval = <100>; - - wps { - label = "wps"; - linux,code = ; - gpios = <&gpio 3 GPIO_ACTIVE_LOW>; - }; - - reset { - label = "reset"; - linux,code = ; - gpios = <&gpio 8 GPIO_ACTIVE_LOW>; - }; - - rfkill { - label = "rfkill"; - linux,code = ; - gpios = <&gpio 11 GPIO_ACTIVE_LOW>; - }; - }; - - rtl8366s { - compatible = "realtek,rtl8366s"; - gpio-sda = <&gpio 5 GPIO_ACTIVE_HIGH>; - gpio-sck = <&gpio 7 GPIO_ACTIVE_HIGH>; - - mdio-bus { - #address-cells = <1>; - #size-cells = <0>; - status = "okay"; - - phy-mask = <0x10>; - - phy4: ethernet-phy@4 { - reg = <4>; - phy-mode = "rgmii"; - }; - }; - }; -}; - -&usb_phy { - status = "okay"; }; -&usb1 { - #address-cells = <1>; - #size-cells = <0>; - status = "okay"; - - usb_ochi_port: port@1 { - reg = <1>; - #trigger-source-cells = <0>; +&partitions { + partition@0 { + label = "u-boot"; + reg = <0x000000 0x050000>; + read-only; }; -}; - -&usb2 { - #address-cells = <1>; - #size-cells = <0>; - status = "okay"; - usb_echi_port: port@1 { - reg = <1>; - #trigger-source-cells = <0>; + partition@50000 { + label = "u-boot-env"; + reg = <0x050000 0x020000>; + read-only; }; -}; - -&pcie0 { - status = "okay"; -}; - -&uart { - status = "okay"; -}; - -&spi { - status = "okay"; - num-cs = <1>; - - flash@0 { - compatible = "jedec,spi-nor"; - reg = <0>; - spi-max-frequency = <25000000>; - partitions { - compatible = "fixed-partitions"; - #address-cells = <1>; - #size-cells = <1>; - - partition@0 { - label = "u-boot"; - reg = <0x000000 0x050000>; - read-only; - }; - - partition@1 { - label = "u-boot-env"; - reg = <0x050000 0x020000>; - read-only; - }; - - partition@2 { - label = "firmware"; - reg = <0x070000 0xf80000>; - }; - - art: partition@3 { - label = "art"; - reg = <0xff0000 0x010000>; - read-only; - }; - }; + partition@70000 { + label = "firmware"; + reg = <0x070000 0xf80000>; }; -}; - -ð0 { - status = "okay"; - pll-data = <0x11110000 0x00001099 0x00991099>; - - mtd-mac-address = <&art 0x00>; - - fixed-link { - speed = <1000>; - full-duplex; + art: partition@ff0000 { + label = "art"; + reg = <0xff0000 0x010000>; + read-only; }; }; -ð1 { - status = "okay"; - - pll-data = <0x11110000 0x00001099 0x00991099>; - - mtd-mac-address = <&art 0x06>; - - phy-handle = <&phy4>; -}; diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk index a32136a40b..6aaee7015a 100644 --- a/target/linux/ath79/image/generic.mk +++ b/target/linux/ath79/image/generic.mk @@ -134,20 +134,23 @@ define Device/pcs_cr5000 endef TARGET_DEVICES += pcs_cr5000 -define Device/netgear_wndr3800 +define Device/netgear_wndr3x00 ATH_SOC := ar7161 - DEVICE_TITLE := NETGEAR WNDR3800 - NETGEAR_KERNEL_MAGIC := 0x33373031 KERNEL := kernel-bin | append-dtb | lzma -d20 | netgear-uImage lzma - KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma -d20 | netgear-uImage lzma - NETGEAR_BOARD_ID := WNDR3800 - NETGEAR_HW_ID := 29763654+16+128 - IMAGE_SIZE := 15872k IMAGES := sysupgrade.bin factory.img IMAGE/default := append-kernel | pad-to $$$$(BLOCKSIZE) | netgear-squashfs | append-rootfs | pad-rootfs IMAGE/sysupgrade.bin := $$(IMAGE/default) | append-metadata | check-size $$$$(IMAGE_SIZE) IMAGE/factory.img := $$(IMAGE/default) | netgear-dni | check-size $$$$(IMAGE_SIZE) DEVICE_PACKAGES := kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-usb-ledtrig-usbport kmod-leds-reset +endef + +define Device/netgear_wndr3800 + $(Device/netgear_wndr3x00) + DEVICE_TITLE := NETGEAR WNDR3800 + NETGEAR_KERNEL_MAGIC := 0x33373031 + NETGEAR_BOARD_ID := WNDR3800 + NETGEAR_HW_ID := 29763654+16+128 + IMAGE_SIZE := 15872k SUPPORTED_DEVICES += wndr3800 endef TARGET_DEVICES += netgear_wndr3800