]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
ipq806x: add support for IgniteNet SunSpot AC Wave2 19094/head
authorDaniel Golle <daniel@makrotopia.org>
Tue, 10 Jun 2025 16:51:32 +0000 (18:51 +0200)
committerDaniel Golle <daniel@makrotopia.org>
Wed, 25 Jun 2025 01:07:02 +0000 (02:07 +0100)
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>
target/linux/ipq806x/base-files/etc/board.d/01_leds
target/linux/ipq806x/base-files/etc/board.d/02_network
target/linux/ipq806x/base-files/etc/init.d/bootcount
target/linux/ipq806x/base-files/lib/upgrade/platform.sh
target/linux/ipq806x/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq8068-ss-w2-ac2600.dts [new file with mode: 0644]
target/linux/ipq806x/image/generic.mk

index 60988dec6b5d829c38173309e1fac4f52c5ec0b2..514778e214b122140c6fdd7e23bbbf24d54d4105 100644 (file)
@@ -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"
        ;;
index 78eee799367102b39a2eb5560efa38ea01b6d804..10c6efbf41d7deff65bc2f810e09c6f0f6da173e 100644 (file)
@@ -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"
                ;;
index ef3c6894e44adbaf293e42f8abf57693678a2013..e17dbf4a77fa376bc0982453b06042d5e7b1b8d0 100755 (executable)
@@ -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)
index f26f118d548077c7d2192fee29f1b8ebd453b854..a6fe5c10557ba9c3332dd234318977a91a890153 100644 (file)
@@ -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 (file)
index 0000000..5174927
--- /dev/null
@@ -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";
+};
index 112793d5fdeff3b08c1357c0806f113ac57d3594..b7608019f068305cd2efc198c7bb65c66e036bd8 100644 (file)
@@ -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