aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHannu Nyman <hannu.nyman@iki.fi>2018-08-11 14:47:21 +0300
committerMathias Kresin <dev@kresin.me>2018-08-13 08:37:19 +0200
commitb58df9919ef827e4d591e8b1990f0d306f7bdb5f (patch)
treedbb07b38e540c95a01e5087502239aab6463dd89
parent1d3ea7874df420ab8d3acbddf5ec9251bf79ed9b (diff)
downloadupstream-b58df9919ef827e4d591e8b1990f0d306f7bdb5f.tar.gz
upstream-b58df9919ef827e4d591e8b1990f0d306f7bdb5f.tar.bz2
upstream-b58df9919ef827e4d591e8b1990f0d306f7bdb5f.zip
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 <hannu.nyman@iki.fi>
-rw-r--r--target/linux/ath79/dts/ar7161_netgear_wndr3700.dtsi185
-rw-r--r--target/linux/ath79/dts/ar7161_netgear_wndr3800.dts210
-rw-r--r--target/linux/ath79/image/generic.mk17
3 files changed, 212 insertions, 200 deletions
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 <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+#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 = <KEY_WPS_BUTTON>;
+ gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
+ };
+
+ reset {
+ label = "reset";
+ linux,code = <KEY_RESTART>;
+ gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
+ };
+
+ rfkill {
+ label = "rfkill";
+ linux,code = <KEY_RFKILL>;
+ 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>;
+ };
+ };
+};
+
+&eth0 {
+ status = "okay";
+
+ pll-data = <0x11110000 0x00001099 0x00991099>;
+
+ mtd-mac-address = <&art 0x00>;
+
+ fixed-link {
+ speed = <1000>;
+ full-duplex;
+ };
+};
+
+&eth1 {
+ 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 <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/input/input.h>
-
-#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 = <KEY_WPS_BUTTON>;
- gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
- };
-
- reset {
- label = "reset";
- linux,code = <KEY_RESTART>;
- gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
- };
-
- rfkill {
- label = "rfkill";
- linux,code = <KEY_RFKILL>;
- 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>;
};
-};
-
-&eth0 {
- 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;
};
};
-&eth1 {
- 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