[openwrt/openwrt] ath79: add support for ALFA Network N5Q

LEDE Commits lede-commits at lists.infradead.org
Sun Sep 27 19:30:33 EDT 2020


pepe2k pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/70a57d48dbd2b6653d6bfd5d8c4827a706cf42b9

commit 70a57d48dbd2b6653d6bfd5d8c4827a706cf42b9
Author: Piotr Dymacz <pepe2k at gmail.com>
AuthorDate: Tue May 12 23:44:10 2020 +0200

    ath79: add support for ALFA Network N5Q
    
    ALFA Network N5Q is a successor of previous model, the N5 (outdoor
    CPE/AP, based on Atheros AR7240 + AR9280). New version is based on
    Atheros AR9344.
    
    Support for this device was first introduced in 4b0eebe9df (ar71xx
    target) but users are advised to migrate from ar71xx target without
    preserving settings as ath79 support includes some changes in network
    and LED default configuration. They were aligned with vendor firmware
    and recently added N2Q model (both Ethernet ports as LAN, labelled as
    LAN1 and LAN2).
    
    Specifications:
    
    - Atheros AR9344
    - 550/400/200 MHz (CPU/DDR/AHB)
    - 64 MB of RAM (DDR2)
    - 16 MB of flash (SPI NOR)
    - 2x 10/100 Mbps Ethernet, with passive PoE support (24 V)
    - 2T2R 5 GHz Wi-Fi, with ext. PA (RFPA5542) and LNA, up to 27 dBm
    - 2x IPEX/U.FL or MMCX antenna connectors (for PCBA version)
    - 8x LED (7 are driven by GPIO)
    - 1x button (reset)
    - external h/w watchdog (EM6324QYSP5B, enabled by default)
    - header for optional 802.3at/af PoE module
    - DC jack for main power input (optional, not installed by default)
    - UART (4-pin, 2.54 mm pitch) header on PCB
    - LEDs (2x 5-pin, 2.54 mm pitch) header on PCB
    
    Flash instruction:
    
    You can use sysupgrade image directly in vendor firmware which is based
    on OpenWrt/LEDE. Alternatively, you can use web recovery mode in U-Boot:
    
    1. Configure PC with static IP 192.168.1.2/24.
    2. Connect PC with one of RJ45 ports, press the reset button, power up
       device, wait for first blink of all LEDs (indicates network setup),
       then keep button for 3 following blinks and release it.
    3. Open 192.168.1.1 address in your browser and upload sysupgrade image.
    
    Signed-off-by: Piotr Dymacz <pepe2k at gmail.com>
---
 target/linux/ath79/dts/ar9344_alfa-network_n5q.dts | 157 +++++++++++++++++++++
 .../ath79/generic/base-files/etc/board.d/01_leds   |   9 ++
 .../generic/base-files/etc/board.d/02_network      |   1 +
 target/linux/ath79/image/generic.mk                |  10 ++
 4 files changed, 177 insertions(+)

diff --git a/target/linux/ath79/dts/ar9344_alfa-network_n5q.dts b/target/linux/ath79/dts/ar9344_alfa-network_n5q.dts
new file mode 100644
index 0000000000..26d9a33a93
--- /dev/null
+++ b/target/linux/ath79/dts/ar9344_alfa-network_n5q.dts
@@ -0,0 +1,157 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "ar9344.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+	model = "ALFA Network N5Q";
+	compatible = "alfa-network,n5q", "qca,ar9344";
+
+	aliases {
+		label-mac-device = &wmac;
+		led-boot = &led_signal4;
+		led-failsafe = &led_signal4;
+		led-upgrade = &led_signal4;
+	};
+
+	gpio-export {
+		compatible = "gpio-export";
+		#size-cells = <0>;
+
+		watchdog-enable {
+			gpio-export,name = "watchdog-enable";
+			gpio-export,output = <1>;
+			gpios = <&gpio 16 GPIO_ACTIVE_HIGH>;
+		};
+	};
+
+	keys {
+		compatible = "gpio-keys";
+
+		reset {
+			label = "reset";
+			linux,code = <KEY_RESTART>;
+			gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
+			debounce-interval = <60>;
+		};
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		lan1 {
+			label = "n5q:green:lan1";
+			gpios = <&gpio 19 GPIO_ACTIVE_LOW>;
+		};
+
+		lan2 {
+			label = "n5q:green:lan2";
+			gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
+		};
+
+		led_signal4: signal4 {
+			label = "n5q:green:signal4";
+			gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
+		};
+
+		signal1 {
+			label = "n5q:red:signal1";
+			gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
+		};
+
+		signal2 {
+			label = "n5q:orange:signal2";
+			gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
+		};
+
+		signal3 {
+			label = "n5q:green:signal3";
+			gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+		};
+
+		wlan {
+			label = "n5q:green:wlan";
+			gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
+			linux,default-trigger = "phy0tpt";
+		};
+	};
+
+	watchdog {
+		compatible = "linux,wdt-gpio";
+		gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
+		hw_algo = "toggle";
+		hw_margin_ms = <25000>;
+		always-running;
+	};
+};
+
+&eth0 {
+	status = "okay";
+
+	mtd-mac-address = <&art 0x0>;
+	phy-handle = <&swphy4>;
+};
+
+&eth1 {
+	status = "okay";
+
+	mtd-mac-address = <&art 0x6>;
+};
+
+&ref {
+	clock-frequency = <40000000>;
+};
+
+&spi {
+	status = "okay";
+
+	num-cs = <1>;
+
+	flash at 0 {
+		compatible = "jedec,spi-nor";
+		reg = <0>;
+		spi-max-frequency = <50000000>;
+		m25p,fast-read;
+
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 0 {
+				label = "u-boot";
+				reg = <0x000000 0x060000>;
+				read-only;
+			};
+
+			partition at 60000 {
+				label = "u-boot-env";
+				reg = <0x060000 0x010000>;
+			};
+
+			art: partition at 70000 {
+				label = "art";
+				reg = <0x070000 0x010000>;
+				read-only;
+			};
+
+			partition at 80000 {
+				compatible = "denx,uimage";
+				label = "firmware";
+				reg = <0x080000 0xf80000>;
+			};
+		};
+	};
+};
+
+&uart {
+	status = "okay";
+};
+
+&wmac {
+	status = "okay";
+
+	mtd-cal-data = <&art 0x1000>;
+};
diff --git a/target/linux/ath79/generic/base-files/etc/board.d/01_leds b/target/linux/ath79/generic/base-files/etc/board.d/01_leds
index 0b522910ee..e208ac65f4 100755
--- a/target/linux/ath79/generic/base-files/etc/board.d/01_leds
+++ b/target/linux/ath79/generic/base-files/etc/board.d/01_leds
@@ -25,6 +25,15 @@ alfa-network,n2q)
 	ucidef_set_led_rssi "signal2" "SIGNAL2" "$boardname:orange:signal2" "wlan0" "33" "100"
 	ucidef_set_led_rssi "signal3" "SIGNAL3" "$boardname:green:signal3" "wlan0" "66" "100"
 	;;
+alfa-network,n5q)
+	ucidef_set_led_netdev "lan2" "LAN2" "$boardname:green:lan2" "eth1"
+	ucidef_set_led_switch "lan1" "LAN1" "$boardname:green:lan1" "switch0" "0x10"
+	ucidef_set_rssimon "wlan0" "200000" "1"
+	ucidef_set_led_rssi "signal1" "SIGNAL1" "$boardname:red:signal1" "wlan0" "1" "100"
+	ucidef_set_led_rssi "signal2" "SIGNAL2" "$boardname:orange:signal2" "wlan0" "25" "100"
+	ucidef_set_led_rssi "signal3" "SIGNAL3" "$boardname:green:signal3" "wlan0" "50" "100"
+	ucidef_set_led_rssi "signal4" "SIGNAL4" "$boardname:green:signal4" "wlan0" "75" "100"
+	;;
 alfa-network,r36a)
 	ucidef_set_led_netdev "lan" "LAN" "$boardname:blue:lan" "eth0"
 	ucidef_set_led_switch "wan" "WAN" "$boardname:blue:wan" "switch0" "0x10"
diff --git a/target/linux/ath79/generic/base-files/etc/board.d/02_network b/target/linux/ath79/generic/base-files/etc/board.d/02_network
index 160eea523c..c962170710 100755
--- a/target/linux/ath79/generic/base-files/etc/board.d/02_network
+++ b/target/linux/ath79/generic/base-files/etc/board.d/02_network
@@ -79,6 +79,7 @@ ath79_setup_interfaces()
 		ucidef_set_interface_lan "eth0 usb0"
 		;;
 	alfa-network,n2q|\
+	alfa-network,n5q|\
 	devolo,dvl1200e|\
 	devolo,dvl1750e|\
 	ocedo,ursus)
diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk
index 920e2e5cee..b5af99971d 100644
--- a/target/linux/ath79/image/generic.mk
+++ b/target/linux/ath79/image/generic.mk
@@ -247,6 +247,16 @@ define Device/alfa-network_n2q
 endef
 TARGET_DEVICES += alfa-network_n2q
 
+define Device/alfa-network_n5q
+  SOC := ar9344
+  DEVICE_VENDOR := ALFA Network
+  DEVICE_MODEL := N5Q
+  DEVICE_PACKAGES := rssileds
+  IMAGE_SIZE := 15872k
+  SUPPORTED_DEVICES += n5q
+endef
+TARGET_DEVICES += alfa-network_n5q
+
 define Device/alfa-network_r36a
   SOC := qca9531
   DEVICE_VENDOR := ALFA Network



More information about the lede-commits mailing list