diff --git a/package/boot/uboot-envtools/files/ath79 b/package/boot/uboot-envtools/files/ath79 index c69a7c292c3dc5..98aa426c6b9733 100644 --- a/package/boot/uboot-envtools/files/ath79 +++ b/package/boot/uboot-envtools/files/ath79 @@ -125,6 +125,12 @@ plasmacloud,pa300e) qihoo,c301) ubootenv_add_uci_config "/dev/mtd9" "0x0" "0x10000" "0x10000" ;; +sophos,ap55|\ +sophos,ap55c|\ +sophos,ap100|\ +sophos,ap100c) + ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x1000" "0x10000" + ;; wallys,dr531) ubootenv_add_uci_config "/dev/mtd1" "0x0" "0xf800" "0x10000" ;; diff --git a/target/linux/ath79/dts/qca9558_sophos_ap.dtsi b/target/linux/ath79/dts/qca9558_sophos_ap.dtsi new file mode 100644 index 00000000000000..5c79d19de0902c --- /dev/null +++ b/target/linux/ath79/dts/qca9558_sophos_ap.dtsi @@ -0,0 +1,179 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +/* + * The hardware of this board family is most likely shared with other devices + * from other manufacturers. Edimax appear to be the actual OEM. + * + * Sophos use the same exact board for the AP55C/AP100C, and AP55/AP100. + * Yes, this means your AP55C is a 3x3 AP with a software lock, and your + * AP55 is an AP100 with one missing antenna pigtail. + * + * AP55 and AP55C boards have different physical layouts, but are logically + * almost identical. AP55/100 have an empty micro-USB OTG port footprint, + * which may be possible to retrofit with some work. + */ + +#include "qca955x.dtsi" + +#include +#include + +/ { + aliases { + led-boot = &led_status_green; + led-failsafe = &led_status_red; + led-running = &led_status_green; + led-upgrade = &led_status_red; + label-mac-device = ð0; + }; + + chosen { + bootargs = "console=ttyS0,115200n8"; + }; + + keys { + compatible = "gpio-keys"; + + reset { + label = "reset"; + linux,code = ; + gpios = <&gpio 18 GPIO_ACTIVE_LOW>; + debounce-interval = <60>; + }; + }; + + leds { + compatible = "gpio-leds"; + + led_status_green: status_green { + label = "green:status"; + gpios = <&gpio 14 GPIO_ACTIVE_LOW>; + default-state = "on"; + }; + + led_status_red: status_red { + label = "red:status"; + gpios = <&gpio 15 GPIO_ACTIVE_LOW>; + }; + }; + + reg_usb_vbus: reg_usb_vbus { + compatible = "regulator-fixed"; + regulator-name = "usb_vbus"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + gpio = <&gpio 11 GPIO_ACTIVE_HIGH>; + enable-active-high; + regulator-boot-on; + status = "disabled"; + }; +}; + +&pcie0 { + status = "okay"; +}; + +&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>; + }; + + art: partition@50000 { + label = "art"; + reg = <0x050000 0x010000>; + read-only; + }; + + config: partition@60000 { + label = "config"; + reg = <0x060000 0x010000>; + read-only; + }; + + 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; + }; +}; + +ð0 { + 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"; + + mtd-cal-data = <&art 0x1000>; +}; + +&config { + compatible = "nvmem-cells"; + #address-cells = <1>; + #size-cells = <1>; + + macaddr_config_201a: macaddr@201a { + reg = <0x201a 0x6>; + }; +}; + +&usb0 { + vbus-supply = <®_usb_vbus>; + + hub_port0: port@1 { + reg = <1>; + #trigger-source-cells = <0>; + }; +}; diff --git a/target/linux/ath79/dts/qca9558_sophos_ap100.dts b/target/linux/ath79/dts/qca9558_sophos_ap100.dts new file mode 100644 index 00000000000000..50ed5fbfbadb53 --- /dev/null +++ b/target/linux/ath79/dts/qca9558_sophos_ap100.dts @@ -0,0 +1,21 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include "qca9558_sophos_ap.dtsi" + +/ { + compatible = "sophos,ap100", "qca,qca9558"; + model = "Sophos AP100"; +}; + +®_usb_vbus { + status = "okay"; +}; + +&usb_phy0 { + status = "okay"; +}; + +&usb0 { + status = "okay"; + dr_mode = "host"; +}; diff --git a/target/linux/ath79/dts/qca9558_sophos_ap100c.dts b/target/linux/ath79/dts/qca9558_sophos_ap100c.dts new file mode 100644 index 00000000000000..1811b9e0a47e5c --- /dev/null +++ b/target/linux/ath79/dts/qca9558_sophos_ap100c.dts @@ -0,0 +1,8 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include "qca9558_sophos_ap.dtsi" + +/ { + compatible = "sophos,ap100c", "qca,qca9558"; + model = "Sophos AP100C"; +}; diff --git a/target/linux/ath79/dts/qca9558_sophos_ap55.dts b/target/linux/ath79/dts/qca9558_sophos_ap55.dts new file mode 100644 index 00000000000000..9a3fd61c933c7e --- /dev/null +++ b/target/linux/ath79/dts/qca9558_sophos_ap55.dts @@ -0,0 +1,21 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include "qca9558_sophos_ap.dtsi" + +/ { + compatible = "sophos,ap55", "qca,qca9558"; + model = "Sophos AP55"; +}; + +®_usb_vbus { + status = "okay"; +}; + +&usb_phy0 { + status = "okay"; +}; + +&usb0 { + status = "okay"; + dr_mode = "host"; +}; diff --git a/target/linux/ath79/dts/qca9558_sophos_ap55c.dts b/target/linux/ath79/dts/qca9558_sophos_ap55c.dts new file mode 100644 index 00000000000000..bd88d8ac12ef21 --- /dev/null +++ b/target/linux/ath79/dts/qca9558_sophos_ap55c.dts @@ -0,0 +1,8 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include "qca9558_sophos_ap.dtsi" + +/ { + compatible = "sophos,ap55c", "qca,qca9558"; + model = "Sophos AP55C"; +}; 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 8f6063baef54d6..a6427efe2bfb0c 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 @@ -63,6 +63,10 @@ ath79_setup_interfaces() pisen,wmb001n|\ pisen,wmm003n|\ siemens,ws-ap3610|\ + sophos,ap55|\ + sophos,ap55c|\ + sophos,ap100|\ + sophos,ap100c|\ tplink,cpe210-v2|\ tplink,cpe210-v3|\ tplink,cpe510-v2|\ diff --git a/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata index 17121d961868f7..00aa34f0a888c4 100644 --- a/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata +++ b/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata @@ -29,6 +29,10 @@ case "$FIRMWARE" in qxwlan,e1700ac-v2-16m|\ qxwlan,e600gac-v2-8m|\ qxwlan,e600gac-v2-16m|\ + sophos,ap55|\ + sophos,ap55c|\ + sophos,ap100|\ + sophos,ap100c|\ ubnt,aircube-ac|\ ubnt,bullet-ac|\ ubnt,unifiac-lite|\ diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk index 80a581a72c7c8a..edf6b7ee5e4b9b 100644 --- a/target/linux/ath79/image/generic.mk +++ b/target/linux/ath79/image/generic.mk @@ -2366,6 +2366,42 @@ define Device/sitecom_wlr-8100 endef TARGET_DEVICES += sitecom_wlr-8100 +define Device/sophos_ap55 + SOC := qca9558 + DEVICE_VENDOR := Sophos + DEVICE_MODEL := AP55 + DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct kmod-usb2 + IMAGE_SIZE := 15936k +endef +TARGET_DEVICES += sophos_ap55 + +define Device/sophos_ap55c + SOC := qca9558 + DEVICE_VENDOR := Sophos + DEVICE_MODEL := AP55C + DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct + IMAGE_SIZE := 15936k +endef +TARGET_DEVICES += sophos_ap55c + +define Device/sophos_ap100 + SOC := qca9558 + DEVICE_VENDOR := Sophos + DEVICE_MODEL := AP100 + DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct kmod-usb2 + IMAGE_SIZE := 15936k +endef +TARGET_DEVICES += sophos_ap100 + +define Device/sophos_ap100c + SOC := qca9558 + DEVICE_VENDOR := Sophos + DEVICE_MODEL := AP100C + DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct + IMAGE_SIZE := 15936k +endef +TARGET_DEVICES += sophos_ap100c + define Device/telco_t1 SOC := qca9531 DEVICE_VENDOR := Telco