ath79/nand: add support for Netgear WNDR4300TN

This patch adds support for the WNDR4300TN, marketed by Belgian ISP
Telenet. The hardware is the same as the WNDR4300 v1, without the
fifth ethernet port (WAN) and the USB port. The circuit board has
the traces, but the components are missing.

Specifications:
* SoC: Atheros AR9344
* RAM: 128 MB
* Flash: 128 MB NAND flash
* WiFi: Atheros AR9580 (5 GHz) and AR9344 (2.4 GHz)
* Ethernet: 4x 1000Base-T
* LED: Power, LAN, WiFi 2.4GHz, WiFi 5GHz, WPS
* UART: on board, to the right of the RF shield at the top of the board

Installation:

* Flashing through the OEM web interface:
  + Connect your computer to the router with an ethernet cable and browse
    to http://192.168.0.51/
  + Log in with the default credentials are admin:password
  + Browse to Advanced > Administration > Firmware Upgrade in the Telenet
    interface
  + Upload the Openwrt firmware: openwrt-ath79-nand-netgear_wndr4300tn-squashfs-factory.img
  + Proceed with the firmware installation and give the device a few
    minutes to finish and reboot.

* Flashing through TFTP:
  + Configure your wired client with a static IP in the 192.168.1.x range,
    e.g. 192.168.1.10 and netmask 255.255.255.0.
  + Power off the router.
  + Press and hold the RESET button (the factory reset button on the bottom
    of the device, with the gray circle around it, next to the Telenet logo)
    and turn the router on while keeping the button pressed.
  + The power LED will start flashing orange. You can release the button
    once it switches to flashing green.
  + Transfer the image over TFTP:
    $ tftp 192.168.1.1 -m binary -c put openwrt-ath79-nand-netgear_wndr4300tn-squashfs-factory.img

Signed-off-by: Davy Hollevoet <github@natox.be>
[use DT label reference for adding LEDs in DTSI files]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
This commit is contained in:
Davy Hollevoet 2020-06-22 14:45:14 +02:00 committed by Adrian Schmutzler
parent a673ac66fa
commit 394f54ee62
11 changed files with 80 additions and 40 deletions

View File

@ -64,6 +64,7 @@ netgear,wndrmac-v1)
;; ;;
netgear,wndr3700-v4|\ netgear,wndr3700-v4|\
netgear,wndr4300|\ netgear,wndr4300|\
netgear,wndr4300tn|\
netgear,wndr4300sw) netgear,wndr4300sw)
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x40000" "0x20000" ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x40000" "0x20000"
;; ;;

View File

@ -40,7 +40,7 @@
}; };
}; };
leds { leds: leds {
compatible = "gpio-leds"; compatible = "gpio-leds";
pinctrl-names = "default"; pinctrl-names = "default";
@ -57,16 +57,6 @@
default-state = "keep"; default-state = "keep";
}; };
wan_green {
label = "netgear:green:wan";
gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
};
wan_amber {
label = "netgear:amber:wan";
gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
};
wlan2g_green { wlan2g_green {
label = "netgear:green:wlan2g"; label = "netgear:green:wlan2g";
gpios = <&gpio 11 GPIO_ACTIVE_LOW>; gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
@ -88,13 +78,6 @@
label = "netgear:amber:wps"; label = "netgear:amber:wps";
gpios = <&gpio 17 GPIO_ACTIVE_LOW>; gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
}; };
usb_green {
label = "netgear:green:usb";
gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
trigger-sources = <&hub_port>;
linux,default-trigger = "usbport";
};
}; };
ubi-concat { ubi-concat {
@ -272,28 +255,6 @@
qca,no-eeprom; qca,no-eeprom;
#gpio-cells = <2>; #gpio-cells = <2>;
gpio-controller; gpio-controller;
usb_power {
gpio-hog;
line-name = "netgear:power:usb";
gpios = <0 GPIO_ACTIVE_HIGH>;
output-high;
};
};
};
&usb_phy {
status = "okay";
};
&usb {
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
hub_port: port@1 {
reg = <1>;
#trigger-source-cells = <0>;
}; };
}; };

View File

@ -2,6 +2,8 @@
/dts-v1/; /dts-v1/;
#include "ar9344_netgear_wndr.dtsi" #include "ar9344_netgear_wndr.dtsi"
#include "ar9344_netgear_wndr_wan.dtsi"
#include "ar9344_netgear_wndr_usb.dtsi"
/ { / {
compatible = "netgear,wndr3700-v4", "qca,ar9344"; compatible = "netgear,wndr3700-v4", "qca,ar9344";

View File

@ -2,6 +2,8 @@
/dts-v1/; /dts-v1/;
#include "ar9344_netgear_wndr.dtsi" #include "ar9344_netgear_wndr.dtsi"
#include "ar9344_netgear_wndr_wan.dtsi"
#include "ar9344_netgear_wndr_usb.dtsi"
/ { / {
compatible = "netgear,wndr4300", "qca,ar9344"; compatible = "netgear,wndr4300", "qca,ar9344";

View File

@ -2,6 +2,8 @@
/dts-v1/; /dts-v1/;
#include "ar9344_netgear_wndr.dtsi" #include "ar9344_netgear_wndr.dtsi"
#include "ar9344_netgear_wndr_wan.dtsi"
#include "ar9344_netgear_wndr_usb.dtsi"
/ { / {
compatible = "netgear,wndr4300sw", "qca,ar9344"; compatible = "netgear,wndr4300sw", "qca,ar9344";

View File

@ -0,0 +1,9 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "ar9344_netgear_wndr.dtsi"
/ {
compatible = "netgear,wndr4300tn", "qca,ar9344";
model = "Netgear WNDR4300TN";
};

View File

@ -0,0 +1,34 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
&leds {
usb_green {
label = "netgear:green:usb";
gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
trigger-sources = <&hub_port>;
linux,default-trigger = "usbport";
};
};
&ath9k {
usb_power {
gpio-hog;
line-name = "netgear:power:usb";
gpios = <0 GPIO_ACTIVE_HIGH>;
output-high;
};
};
&usb_phy {
status = "okay";
};
&usb {
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
hub_port: port@1 {
reg = <1>;
#trigger-source-cells = <0>;
};
};

View File

@ -0,0 +1,13 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
&leds {
wan_green {
label = "netgear:green:wan";
gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
};
wan_amber {
label = "netgear:amber:wan";
gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
};
};

View File

@ -206,6 +206,16 @@ define Device/netgear_wndr4300sw
endef endef
TARGET_DEVICES += netgear_wndr4300sw TARGET_DEVICES += netgear_wndr4300sw
define Device/netgear_wndr4300tn
SOC := ar9344
DEVICE_MODEL := WNDR4300TN
NETGEAR_KERNEL_MAGIC := 0x33373033
NETGEAR_BOARD_ID := WNDR4300TN
NETGEAR_HW_ID := 29763948+0+128+128+2x2+3x3
$(Device/netgear_ath79_nand)
endef
TARGET_DEVICES += netgear_wndr4300tn
define Device/netgear_wndr4300-v2 define Device/netgear_wndr4300-v2
SOC := qca9563 SOC := qca9563
DEVICE_MODEL := WNDR4300 DEVICE_MODEL := WNDR4300

View File

@ -29,6 +29,10 @@ ath79_setup_interfaces()
ucidef_add_switch "switch0" \ ucidef_add_switch "switch0" \
"0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "5:wan" "0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "5:wan"
;; ;;
netgear,wndr4300tn)
ucidef_add_switch "switch0" \
"0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1"
;;
zyxel,nbg6716) zyxel,nbg6716)
ucidef_add_switch "switch0" \ ucidef_add_switch "switch0" \
"0@eth0" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan" "6@eth1" "0@eth0" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan" "6@eth1"

View File

@ -15,6 +15,7 @@ case "$FIRMWARE" in
netgear,wndr3700-v4|\ netgear,wndr3700-v4|\
netgear,wndr4300|\ netgear,wndr4300|\
netgear,wndr4300sw|\ netgear,wndr4300sw|\
netgear,wndr4300tn|\
netgear,wndr4300-v2|\ netgear,wndr4300-v2|\
netgear,wndr4500-v3) netgear,wndr4500-v3)
caldata_extract "caldata" 0x1000 0x440 caldata_extract "caldata" 0x1000 0x440
@ -29,6 +30,7 @@ case "$FIRMWARE" in
netgear,wndr3700-v4|\ netgear,wndr3700-v4|\
netgear,wndr4300|\ netgear,wndr4300|\
netgear,wndr4300sw|\ netgear,wndr4300sw|\
netgear,wndr4300tn|\
netgear,wndr4300-v2|\ netgear,wndr4300-v2|\
netgear,wndr4500-v3) netgear,wndr4500-v3)
caldata_extract "caldata" 0x5000 0x440 caldata_extract "caldata" 0x5000 0x440