[openwrt/openwrt] ipq806x: add support for IgniteNet SunSpot AC Wave2
LEDE Commits
lede-commits at lists.infradead.org
Tue Jun 24 18:07:55 PDT 2025
dangole pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/3fb16059314533aec5db52c7b3ae742075446a65
commit 3fb16059314533aec5db52c7b3ae742075446a65
Author: Daniel Golle <daniel at makrotopia.org>
AuthorDate: Tue Jun 10 18:51:32 2025 +0200
ipq806x: add support for IgniteNet SunSpot AC Wave2
The IgniteNet SS-W2-AC2600 is an 802.11ac outdoor (IP-55) access point.
FCC ID: HEDSSW2AC2600
Specification:
- Qualcomm dual-core IPQ8068 @ 1.4 GHz
- 256 MB of DDR3L RAM (2x Winbond W631GU6KB-12)
- 16 MB of SPI NOR (Winbond W25Q128FW)
- 128 MB of NAND (Macronix MX30UF1G18AC)
- Qualcomm QCA9994 2.4GHz 802.11bgn
- Qualcomm QCA9994 5GHz 802.11ac
- 2 x 10/100/1000 Mbit/s Ethernet
- 115200, 8N1 RS-232 console (unpopulated RJ-45)
- Reset button
- Power and WLAN LEDs
- Powered via 802.3at PoE or 12V 2A barrel connector
Tested-by: Elektra Wagenrad <onelektra at gmx.net>
Signed-off-by: Daniel Golle <daniel at makrotopia.org>
---
.../linux/ipq806x/base-files/etc/board.d/01_leds | 4 +
.../ipq806x/base-files/etc/board.d/02_network | 1 +
.../linux/ipq806x/base-files/etc/init.d/bootcount | 3 +-
.../ipq806x/base-files/lib/upgrade/platform.sh | 3 +-
.../boot/dts/qcom/qcom-ipq8068-ss-w2-ac2600.dts | 309 +++++++++++++++++++++
target/linux/ipq806x/image/generic.mk | 15 +
6 files changed, 333 insertions(+), 2 deletions(-)
diff --git a/target/linux/ipq806x/base-files/etc/board.d/01_leds b/target/linux/ipq806x/base-files/etc/board.d/01_leds
index 60988dec6b..514778e214 100644
--- a/target/linux/ipq806x/base-files/etc/board.d/01_leds
+++ b/target/linux/ipq806x/base-files/etc/board.d/01_leds
@@ -46,6 +46,10 @@ fortinet,fap-421e)
ucidef_set_led_wlan "wlan5g" "5G" "yellow:5g" "phy0tpt"
ucidef_set_led_usbport "usb" "USB" "amber:power" "usb1-port1" "usb2-port1"
;;
+ignitenet,ss-w2-ac2600)
+ ucidef_set_led_wlan "wlan2g" "WLAN2G" "green:wlan2g" "phy1tpt"
+ ucidef_set_led_wlan "wlan5g" "WLAN5G" "green:wlan5g" "phy0tpt"
+ ;;
linksys,e8350-v1)
ucidef_set_led_wlan "wlan" "WLAN" "green:wifi" "phy0tpt"
;;
diff --git a/target/linux/ipq806x/base-files/etc/board.d/02_network b/target/linux/ipq806x/base-files/etc/board.d/02_network
index 78eee79936..10c6efbf41 100644
--- a/target/linux/ipq806x/base-files/etc/board.d/02_network
+++ b/target/linux/ipq806x/base-files/etc/board.d/02_network
@@ -58,6 +58,7 @@ ipq806x_setup_interfaces()
ucidef_set_interface_lan "eth1 eth2 eth3 lan1 lan2 lan3 lan4" "wan"
;;
fortinet,fap-421e |\
+ ignitenet,ss-w2-ac2600 |\
ubnt,unifi-ac-hd)
ucidef_set_interface_lan "eth0 eth1"
;;
diff --git a/target/linux/ipq806x/base-files/etc/init.d/bootcount b/target/linux/ipq806x/base-files/etc/init.d/bootcount
index ef3c6894e4..e17dbf4a77 100755
--- a/target/linux/ipq806x/base-files/etc/init.d/bootcount
+++ b/target/linux/ipq806x/base-files/etc/init.d/bootcount
@@ -9,7 +9,8 @@ boot() {
asrock,g10)
asrock_bootconfig_mangle "bootcheck" && reboot
;;
- edgecore,ecw5410)
+ edgecore,ecw5410 |\
+ ignitenet,ss-w2-ac2600)
fw_setenv bootcount 0
;;
extreme,ap3935)
diff --git a/target/linux/ipq806x/base-files/lib/upgrade/platform.sh b/target/linux/ipq806x/base-files/lib/upgrade/platform.sh
index f26f118d54..a6fe5c1055 100644
--- a/target/linux/ipq806x/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ipq806x/base-files/lib/upgrade/platform.sh
@@ -35,7 +35,8 @@ platform_do_upgrade() {
CI_ROOTPART="ubi_rootfs"
nand_do_upgrade "$1"
;;
- edgecore,ecw5410)
+ edgecore,ecw5410 |\
+ ignitenet,ss-w2-ac2600)
part="$(awk -F 'ubi.mtd=' '{printf $2}' /proc/cmdline | sed -e 's/ .*$//')"
if [ "$part" = "rootfs1" ]; then
fw_setenv active 2 || exit 1
diff --git a/target/linux/ipq806x/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq8068-ss-w2-ac2600.dts b/target/linux/ipq806x/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq8068-ss-w2-ac2600.dts
new file mode 100644
index 0000000000..5174927a0f
--- /dev/null
+++ b/target/linux/ipq806x/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq8068-ss-w2-ac2600.dts
@@ -0,0 +1,309 @@
+#include "qcom-ipq8064-v2.0-smb208.dtsi"
+
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/soc/qcom,tcsr.h>
+
+/ {
+ model = "IgniteNet SunSpot AC Wave2";
+ compatible = "ignitenet,ss-w2-ac2600", "qcom,ipq8068";
+
+ aliases {
+ ethernet0 = &gmac2;
+ ethernet1 = &gmac3;
+
+ led-boot = &led_power_red;
+ led-failsafe = &led_power_red;
+ led-running = &led_power_red;
+ led-upgrade = &led_power_red;
+ };
+
+ chosen {
+ bootargs-append = " console=ttyMSM0,115200n8 root=/dev/ubiblock0_1";
+ };
+
+ reserved-memory {
+ nss at 40000000 {
+ reg = <0x40000000 0x1000000>;
+ no-map;
+ };
+
+ smem: smem at 41000000 {
+ reg = <0x41000000 0x200000>;
+ no-map;
+ };
+
+ wifi_dump at 44000000 {
+ reg = <0x44000000 0x600000>;
+ no-map;
+ };
+ };
+
+ cpus {
+ idle-states {
+ CPU_SPC: spc {
+ status = "disabled";
+ };
+ };
+ };
+
+ keys {
+ compatible = "gpio-keys";
+ pinctrl-0 = <&button_pins>;
+ pinctrl-names = "default";
+
+ reset {
+ label = "reset";
+ gpios = <&qcom_pinmux 25 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ debounce-interval = <60>;
+ wakeup-source;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+ pinctrl-0 = <&led_pins>;
+ pinctrl-names = "default";
+
+ wlan2g_green {
+ label = "green:wlan2g";
+ gpios = <&qcom_pinmux 23 GPIO_ACTIVE_LOW>;
+ };
+
+ wlan2g_yellow {
+ label = "yellow:wlan2g";
+ gpios = <&qcom_pinmux 24 GPIO_ACTIVE_LOW>;
+ };
+
+ wlan5g_green {
+ label = "green:wlan5g";
+ gpios = <&qcom_pinmux 26 GPIO_ACTIVE_LOW>;
+ };
+
+ led_power_red: power_red {
+ function = LED_FUNCTION_POWER;
+ color = <LED_COLOR_ID_RED>;
+ gpios = <&qcom_pinmux 28 GPIO_ACTIVE_LOW>;
+ };
+
+ wlan5g_yellow {
+ label = "yellow:wlan5g";
+ gpios = <&qcom_pinmux 59 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&qcom_pinmux {
+ spi_pins: spi_pins {
+ mux {
+ pins = "gpio18", "gpio19";
+ function = "gsbi5";
+ drive-strength = <10>;
+ bias-pull-down;
+ };
+
+ clk {
+ pins = "gpio21";
+ function = "gsbi5";
+ drive-strength = <12>;
+ bias-pull-down;
+ };
+
+ cs {
+ pins = "gpio20";
+ function = "gpio";
+ drive-strength = <10>;
+ bias-pull-up;
+ };
+ };
+
+ led_pins: led_pins {
+ mux {
+ pins = "gpio16", "gpio23", "gpio24", "gpio26",
+ "gpio28", "gpio59";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
+
+ button_pins: button_pins {
+ mux {
+ pins = "gpio25";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
+};
+
+&gsbi5 {
+ qcom,mode = <GSBI_PROT_SPI>;
+ status = "okay";
+
+ spi4: spi at 1a280000 {
+ status = "okay";
+ spi-max-frequency = <50000000>;
+
+ pinctrl-0 = <&spi_pins>;
+ pinctrl-names = "default";
+
+ cs-gpios = <&qcom_pinmux 20 GPIO_ACTIVE_HIGH>;
+
+ w25q128 at 0 {
+ compatible = "jedec,spi-nor";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ spi-max-frequency = <50000000>;
+ reg = <0>;
+
+ partitions {
+ compatible = "qcom,smem-part";
+
+ art: partition-0-art {
+ label = "0:art";
+ };
+ };
+ };
+ };
+};
+
+&art {
+ nvmem-layout {
+ compatible = "fixed-layout";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ macaddr_art_0: macaddr at 0 {
+ reg = <0x0 0x6>;
+ };
+
+ macaddr_art_6: macaddr at 6 {
+ reg = <0x6 0x6>;
+ };
+
+ precal_art_1000: precal at 1000 {
+ reg = <0x1000 0x2f20>;
+ };
+
+ precal_art_5000: precal at 5000 {
+ reg = <0x5000 0x2f20>;
+ };
+ };
+};
+
+&pcie1 {
+ status = "okay";
+
+ bridge at 0,0 {
+ reg = <0x00000000 0 0 0 0>;
+ #address-cells = <3>;
+ #size-cells = <2>;
+ ranges;
+
+ wifi at 1,0 {
+ compatible = "qcom,ath10k";
+ status = "okay";
+ reg = <0x00010000 0 0 0 0>;
+ qcom,ath10k-calibration-variant = "IgniteNet-SS-W2-AC2600";
+ nvmem-cells = <&precal_art_1000>;
+ nvmem-cell-names = "pre-calibration";
+ };
+ };
+};
+
+&pcie2 {
+ status = "okay";
+
+ bridge at 0,0 {
+ reg = <0x00000000 0 0 0 0>;
+ #address-cells = <3>;
+ #size-cells = <2>;
+ ranges;
+
+ wifi at 1,0 {
+ compatible = "qcom,ath10k";
+ status = "okay";
+ reg = <0x00010000 0 0 0 0>;
+ qcom,ath10k-calibration-variant = "IgniteNet-SS-W2-AC2600";
+ nvmem-cells = <&precal_art_5000>;
+ nvmem-cell-names = "pre-calibration";
+ };
+ };
+};
+
+&nand {
+ status = "okay";
+
+ nand at 0 {
+ compatible = "qcom,nandcs";
+
+ reg = <0>;
+
+ nand-ecc-strength = <4>;
+ nand-bus-width = <8>;
+ nand-ecc-step-size = <512>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ rootfs1 at 0 {
+ label = "rootfs1";
+ reg = <0x0000000 0x4000000>;
+ };
+
+ rootfs2 at 4000000 {
+ label = "rootfs2";
+ reg = <0x4000000 0x4000000>;
+ };
+ };
+ };
+};
+
+&mdio0 {
+ status = "okay";
+
+ pinctrl-0 = <&mdio0_pins>;
+ pinctrl-names = "default";
+
+ phy0: ethernet-phy at 0 {
+ reg = <0>;
+ };
+
+ phy1: ethernet-phy at 1 {
+ reg = <1>;
+ };
+};
+
+&gmac2 {
+ status = "okay";
+
+ qcom,id = <2>;
+ mdiobus = <&mdio0>;
+
+ phy-mode = "sgmii";
+ phy-handle = <&phy1>;
+
+ nvmem-cells = <&macaddr_art_0>;
+ nvmem-cell-names = "mac-address";
+};
+
+&gmac3 {
+ status = "okay";
+
+ qcom,id = <3>;
+ mdiobus = <&mdio0>;
+
+ phy-mode = "sgmii";
+ phy-handle = <&phy0>;
+
+ nvmem-cells = <&macaddr_art_6>;
+ nvmem-cell-names = "mac-address";
+};
+
+&adm_dma {
+ status = "okay";
+};
diff --git a/target/linux/ipq806x/image/generic.mk b/target/linux/ipq806x/image/generic.mk
index 112793d5fd..b7608019f0 100644
--- a/target/linux/ipq806x/image/generic.mk
+++ b/target/linux/ipq806x/image/generic.mk
@@ -201,6 +201,21 @@ define Device/fortinet_fap-421e
endef
TARGET_DEVICES += fortinet_fap-421e
+define Device/ignitenet_ss-w2-ac2600
+ $(call Device/FitImage)
+ $(call Device/UbiFit)
+ DEVICE_VENDOR := IgniteNet
+ DEVICE_MODEL := SunSpot AC Wave2
+ DEVICE_ALT0_VENDOR := Accton Technology Corporation
+ DEVICE_ALT0_MODEL := EAP1024A
+ DEVICE_ALT0_VARIANT := V2
+ SOC := qcom-ipq8068
+ BLOCKSIZE := 128k
+ PAGESIZE := 2048
+ DEVICE_PACKAGES := ath10k-firmware-qca9984-ct ipq-wifi-ignitenet_ss-w2-ac2600
+endef
+TARGET_DEVICES += ignitenet_ss-w2-ac2600
+
define Device/linksys_e8350-v1
$(call Device/LegacyImage)
DEVICE_VENDOR := Linksys
More information about the lede-commits
mailing list