aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux
diff options
context:
space:
mode:
authorPiotr Dymacz <pepe2k@gmail.com>2020-05-12 23:44:10 +0200
committerPiotr Dymacz <pepe2k@gmail.com>2020-09-28 01:28:37 +0200
commit70a57d48dbd2b6653d6bfd5d8c4827a706cf42b9 (patch)
treeaef597626a94bc51b871a92be6324594c0c7a1d5 /target/linux
parent6ae0684297eb83cb3fa4a70af91a2433b60b981d (diff)
downloadupstream-70a57d48dbd2b6653d6bfd5d8c4827a706cf42b9.tar.gz
upstream-70a57d48dbd2b6653d6bfd5d8c4827a706cf42b9.tar.bz2
upstream-70a57d48dbd2b6653d6bfd5d8c4827a706cf42b9.zip
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@gmail.com>
Diffstat (limited to 'target/linux')
-rw-r--r--target/linux/ath79/dts/ar9344_alfa-network_n5q.dts157
-rwxr-xr-xtarget/linux/ath79/generic/base-files/etc/board.d/01_leds9
-rwxr-xr-xtarget/linux/ath79/generic/base-files/etc/board.d/02_network1
-rw-r--r--target/linux/ath79/image/generic.mk10
4 files changed, 177 insertions, 0 deletions
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@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@0 {
+ label = "u-boot";
+ reg = <0x000000 0x060000>;
+ read-only;
+ };
+
+ partition@60000 {
+ label = "u-boot-env";
+ reg = <0x060000 0x010000>;
+ };
+
+ art: partition@70000 {
+ label = "art";
+ reg = <0x070000 0x010000>;
+ read-only;
+ };
+
+ partition@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