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@gmx.net>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
This commit is contained in:
Daniel Golle 2025-06-10 18:51:32 +02:00
parent 72b895b631
commit 3fb1605931
6 changed files with 333 additions and 2 deletions

View file

@ -46,6 +46,10 @@ fortinet,fap-421e)
ucidef_set_led_wlan "wlan5g" "5G" "yellow:5g" "phy0tpt" ucidef_set_led_wlan "wlan5g" "5G" "yellow:5g" "phy0tpt"
ucidef_set_led_usbport "usb" "USB" "amber:power" "usb1-port1" "usb2-port1" 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) linksys,e8350-v1)
ucidef_set_led_wlan "wlan" "WLAN" "green:wifi" "phy0tpt" ucidef_set_led_wlan "wlan" "WLAN" "green:wifi" "phy0tpt"
;; ;;

View file

@ -58,6 +58,7 @@ ipq806x_setup_interfaces()
ucidef_set_interface_lan "eth1 eth2 eth3 lan1 lan2 lan3 lan4" "wan" ucidef_set_interface_lan "eth1 eth2 eth3 lan1 lan2 lan3 lan4" "wan"
;; ;;
fortinet,fap-421e |\ fortinet,fap-421e |\
ignitenet,ss-w2-ac2600 |\
ubnt,unifi-ac-hd) ubnt,unifi-ac-hd)
ucidef_set_interface_lan "eth0 eth1" ucidef_set_interface_lan "eth0 eth1"
;; ;;

View file

@ -9,7 +9,8 @@ boot() {
asrock,g10) asrock,g10)
asrock_bootconfig_mangle "bootcheck" && reboot asrock_bootconfig_mangle "bootcheck" && reboot
;; ;;
edgecore,ecw5410) edgecore,ecw5410 |\
ignitenet,ss-w2-ac2600)
fw_setenv bootcount 0 fw_setenv bootcount 0
;; ;;
extreme,ap3935) extreme,ap3935)

View file

@ -35,7 +35,8 @@ platform_do_upgrade() {
CI_ROOTPART="ubi_rootfs" CI_ROOTPART="ubi_rootfs"
nand_do_upgrade "$1" nand_do_upgrade "$1"
;; ;;
edgecore,ecw5410) edgecore,ecw5410 |\
ignitenet,ss-w2-ac2600)
part="$(awk -F 'ubi.mtd=' '{printf $2}' /proc/cmdline | sed -e 's/ .*$//')" part="$(awk -F 'ubi.mtd=' '{printf $2}' /proc/cmdline | sed -e 's/ .*$//')"
if [ "$part" = "rootfs1" ]; then if [ "$part" = "rootfs1" ]; then
fw_setenv active 2 || exit 1 fw_setenv active 2 || exit 1

View file

@ -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@40000000 {
reg = <0x40000000 0x1000000>;
no-map;
};
smem: smem@41000000 {
reg = <0x41000000 0x200000>;
no-map;
};
wifi_dump@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@1a280000 {
status = "okay";
spi-max-frequency = <50000000>;
pinctrl-0 = <&spi_pins>;
pinctrl-names = "default";
cs-gpios = <&qcom_pinmux 20 GPIO_ACTIVE_HIGH>;
w25q128@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@0 {
reg = <0x0 0x6>;
};
macaddr_art_6: macaddr@6 {
reg = <0x6 0x6>;
};
precal_art_1000: precal@1000 {
reg = <0x1000 0x2f20>;
};
precal_art_5000: precal@5000 {
reg = <0x5000 0x2f20>;
};
};
};
&pcie1 {
status = "okay";
bridge@0,0 {
reg = <0x00000000 0 0 0 0>;
#address-cells = <3>;
#size-cells = <2>;
ranges;
wifi@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@0,0 {
reg = <0x00000000 0 0 0 0>;
#address-cells = <3>;
#size-cells = <2>;
ranges;
wifi@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@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@0 {
label = "rootfs1";
reg = <0x0000000 0x4000000>;
};
rootfs2@4000000 {
label = "rootfs2";
reg = <0x4000000 0x4000000>;
};
};
};
};
&mdio0 {
status = "okay";
pinctrl-0 = <&mdio0_pins>;
pinctrl-names = "default";
phy0: ethernet-phy@0 {
reg = <0>;
};
phy1: ethernet-phy@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";
};

View file

@ -201,6 +201,21 @@ define Device/fortinet_fap-421e
endef endef
TARGET_DEVICES += fortinet_fap-421e 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 define Device/linksys_e8350-v1
$(call Device/LegacyImage) $(call Device/LegacyImage)
DEVICE_VENDOR := Linksys DEVICE_VENDOR := Linksys