Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Backport v2023.2.x] ath79: Add support for Sophos AP15C (#3385) #3402

Open
wants to merge 1 commit into
base: v2023.2.x
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/user/supported_devices.rst
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@ ath79-generic

* Sophos

- AP15C
- AP100
- AP100c
- AP55
Expand Down
212 changes: 212 additions & 0 deletions patches/openwrt/0008-ath79-Add-support-for-Sophos-AP15C.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,212 @@
From: David Lutz <[email protected]>
Date: Tue, 5 Nov 2024 10:55:43 +0100
Subject: ath79: Add support for Sophos AP15C

diff --git a/package/boot/uboot-envtools/files/ath79 b/package/boot/uboot-envtools/files/ath79
index cdaa575fbe3d6ceac135a0ed4158642b9c738fc4..d4dcc86f5b438fc4d33b729afa87648133c7c71c 100644
--- a/package/boot/uboot-envtools/files/ath79
+++ b/package/boot/uboot-envtools/files/ath79
@@ -161,6 +161,7 @@ ruckus,zf7372)
ubootenv_add_uci_config "/dev/mtd2" "0x0" "0x40000" "0x10000"
;;
sophos,ap15|\
+sophos,ap15c|\
sophos,ap55|\
sophos,ap55c|\
sophos,ap100|\
diff --git a/target/linux/ath79/dts/qca9557_sophos_ap15c.dts b/target/linux/ath79/dts/qca9557_sophos_ap15c.dts
new file mode 100644
index 0000000000000000000000000000000000000000..68d02e97a54a1454f6bc7097072ba7913bc963da
--- /dev/null
+++ b/target/linux/ath79/dts/qca9557_sophos_ap15c.dts
@@ -0,0 +1,159 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "qca955x.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+
+/ {
+ compatible = "sophos,ap15c", "qca,qca9557";
+ model = "Sophos AP15C";
+
+ aliases {
+ led-boot = &led_status_green;
+ led-failsafe = &led_status_yellow;
+ led-running = &led_status_green;
+ led-upgrade = &led_status_yellow;
+ label-mac-device = &eth0;
+ };
+
+ chosen {
+ bootargs = "console=ttyS0,115200n8";
+ };
+
+ keys {
+ compatible = "gpio-keys";
+
+ reset {
+ label = "reset";
+ linux,code = <KEY_RESTART>;
+ gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
+ debounce-interval = <60>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ led_status_green: status_green {
+ function = LED_FUNCTION_STATUS;
+ color = <LED_COLOR_ID_GREEN>;
+ gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
+ default-state = "on";
+ };
+
+ led_status_yellow: status_yellow {
+ function = LED_FUNCTION_STATUS;
+ color = <LED_COLOR_ID_YELLOW>;
+ gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&spi {
+ status = "okay";
+
+ flash@0 {
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ spi-max-frequency = <25000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x000000 0x040000>;
+ read-only;
+ };
+
+ partition@40000 {
+ label = "u-boot-env";
+ reg = <0x040000 0x010000>;
+ };
+
+ partition@50000 {
+ label = "art";
+ reg = <0x050000 0x010000>;
+ read-only;
+
+ nvmem-layout {
+ compatible = "fixed-layout";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ cal_art_1000: calibration@1000 {
+ reg = <0x1000 0x440>;
+ };
+ };
+ };
+
+ partition@60000 {
+ label = "config";
+ reg = <0x060000 0x010000>;
+ read-only;
+
+ nvmem-layout {
+ compatible = "fixed-layout";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ macaddr_config_201a: macaddr@201a {
+ reg = <0x201a 0x6>;
+ };
+ };
+ };
+
+ partition@70000 {
+ compatible = "denx,uimage";
+ label = "firmware";
+ reg = <0x070000 0xf90000>;
+ };
+ };
+ };
+};
+
+&mdio0 {
+ status = "okay";
+
+ phy-mask = <0x10>;
+
+ phy4: ethernet-phy@4 {
+ reg = <4>;
+ eee-broken-100tx;
+ eee-broken-1000t;
+ };
+};
+
+&eth0 {
+ status = "okay";
+
+ pll-data = <0xa6000000 0xa0000101 0xa0001313>;
+
+ nvmem-cells = <&macaddr_config_201a>;
+ nvmem-cell-names = "mac-address";
+
+ phy-mode = "rgmii-id";
+ phy-handle = <&phy4>;
+
+ gmac_config: gmac-config {
+ device = <&gmac>;
+
+ rgmii-enabled = <1>;
+
+ rxdv-delay = <3>;
+ rxd-delay = <3>;
+ txen-delay = <3>;
+ txd-delay = <3>;
+ };
+};
+
+&wmac {
+ status = "okay";
+
+ nvmem-cells = <&cal_art_1000>;
+ nvmem-cell-names = "calibration";
+};
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 0907b630d2a5b50e06cc3e543f288dc12e29db17..0225d960aba66ec3b743bf6ede66db10cf531563 100644
--- a/target/linux/ath79/generic/base-files/etc/board.d/02_network
+++ b/target/linux/ath79/generic/base-files/etc/board.d/02_network
@@ -73,6 +73,7 @@ ath79_setup_interfaces()
ruckus,zf7351|\
siemens,ws-ap3610|\
sophos,ap15|\
+ sophos,ap15c|\
sophos,ap55|\
sophos,ap55c|\
sophos,ap100|\
diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk
index b35ad772f7747fb7fe26f67112e27f93d7c57525..c7db66e47ae574e1f357d46a19063568428b5318 100644
--- a/target/linux/ath79/image/generic.mk
+++ b/target/linux/ath79/image/generic.mk
@@ -2741,6 +2741,14 @@ define Device/sophos_ap15
endef
TARGET_DEVICES += sophos_ap15

+define Device/sophos_ap15c
+ SOC := qca9557
+ DEVICE_VENDOR := Sophos
+ DEVICE_MODEL := AP15C
+ IMAGE_SIZE := 15936k
+endef
+TARGET_DEVICES += sophos_ap15c
+
define Device/sophos_ap55
SOC := qca9558
DEVICE_VENDOR := Sophos
5 changes: 5 additions & 0 deletions targets/ath79-generic
Original file line number Diff line number Diff line change
Expand Up @@ -389,6 +389,11 @@ device('sophos-ap15', 'sophos_ap15', {
broken = true, -- no button and no external console port
})

device('sophos-ap15c', 'sophos_ap15c', {
packages = ATH10K_PACKAGES_QCA9880,
factory = false,
})

device('sophos-ap100', 'sophos_ap100', {
packages = ATH10K_PACKAGES_QCA9880,
factory = false,
Expand Down