[PATCH v2 1/2] ath79: add support for AirTight C-75

Adrian Schmutzler mail at adrianschmutzler.de
Wed Dec 16 11:14:04 EST 2020


Hi,

a few last-minute remarks. I plan to merge this afterwards.

> -----Original Message-----
> From: openwrt-devel [mailto:openwrt-devel-bounces at lists.openwrt.org]
> On Behalf Of Tomasz Maciej Nowak
> Sent: Dienstag, 15. Dezember 2020 18:17
> To: openwrt-devel at lists.openwrt.org
> Cc: Vladimir Georgievsky <vladimir.georgievsky at yahoo.com>
> Subject: [PATCH v2 1/2] ath79: add support for AirTight C-75
> 
> AirTight Networks (later renamed to Mojo Networks) C-75 is a dual-band
> access point, also sold by WatchGuard under name AP320.
> 
> Specification
> SoC: Qualcomm Atheros QCA9550
> RAM: 128 MiB DDR2
> Flash: 2x 16 MiB SPI NOR
> WIFI: 2.4 GHz 3T3R integrated
>       5 GHz 3T3R QCA9890 oversized Mini PCIe card
> Ethernet: 2x 10/100/1000 Mbps QCA8334
>           port labeled LAN1 is PoE capable (802.3at)
> USB: 1x 2.0
> LEDs: 7x which two are GPIO controlled, four switch controlled, one
>       controlled by wireless driver
> Buttons: 1x GPIO controlled
> Serial: RJ-45 port, Cisco pinout
>         baud: 115200, parity: none, flow control: none
> JTAG: Yes, pins marked J1 on PCB
> 
> Installation
> 1. Prepare TFTP server with OpenWrt initramfs-kernel image.
> 2. Connect to one of LAN ports.
> 3. Connect to serial port.
> 4. Power on the device and when prompted to stop autoboot, hit any key.
> 5. Adjust "ipaddr" and "serverip" addresses in U-Boot environment, use
>    'setenv' to do that, then run following commands:
>     tftpboot 0x81000000 <openwrt_initramfs-kernel_image_name>
>     bootm 0x81000000
> 6. Wait about 1 minute for OpenWrt to boot.
> 7. Transfer OpenWrt sysupgrade image to /tmp directory and flash it
>    with:
>     sysupgrade -n /tmp/<openwrt_sysupgrade_image_name>
> 8. After flashing, the access point will reboot to OpenWrt. Wait few
>    minutes, until the Power LED stops blinking, then it's ready for
>    configuration.
> 
> Known issues
> Green power LED does not work.
> 
> Additional information
> The U-Boot fails to initialise ethernet ports correctly when a UART adapter is
> attached to UART pins (marked J3 on PCB).
> 
> Cc: Vladimir Georgievsky <vladimir.georgievsky at yahoo.com>
> Signed-of-by: Tomasz Maciej Nowak <tmn505 at gmail.com>
> ---
> v1 -> v2
> 
> - rename primary device vendor (Mojo -> AirTight)
> - remove U-Boot environment definition
> - minor dts adjustments (no functional changes)
> - add additional DEVICE_ALTn variable
> 
>  .../linux/ath79/dts/qca9550_airtight_c-75.dts | 171 ++++++++++++++++++
>  .../generic/base-files/etc/board.d/02_network |   4 +
>  target/linux/ath79/image/generic.mk           |  13 ++
>  3 files changed, 188 insertions(+)
>  create mode 100644 target/linux/ath79/dts/qca9550_airtight_c-75.dts
> 
> diff --git a/target/linux/ath79/dts/qca9550_airtight_c-75.dts
> b/target/linux/ath79/dts/qca9550_airtight_c-75.dts
> new file mode 100644
> index 000000000000..34d4c32b3562
> --- /dev/null
> +++ b/target/linux/ath79/dts/qca9550_airtight_c-75.dts
> @@ -0,0 +1,171 @@
> +// 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>
> +
> +/ {
> +	model = "AirTight Networks C-75";
> +	compatible = "airtight,c-75", "qca,qca9550", "qca,qca9558";
> +
> +	aliases {
> +		label-mac-device = &eth0;
> +		led-boot = &led_power;
> +		led-failsafe = &led_power;
> +		led-upgrade = &led_power;
> +	};
> +
> +	keys {
> +		compatible = "gpio-keys";
> +
> +		reset {
> +			label = "reset";
> +			linux,code = <KEY_RESTART>;
> +			gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
> +		};
> +	};
> +
> +	leds {
> +		compatible = "gpio-leds";
> +
> +		led_power: power {
> +			label = "amber:power";
> +			gpios = <&gpio 14 GPIO_ACTIVE_HIGH>;
> +			default-state = "on";
> +		};
> +
> +		wlan2g {
> +			label = "green:wlan2g";
> +			gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
> +			linux,default-trigger = "phy1tpt";
> +		};
> +	};
> +};
> +
> +&eth0 {
> +	status = "okay";
> +
> +	mtd-mac-address = <&art 0x0>;
> +	phy-handle = <&phy0>;
> +	phy-mode = "rgmii";

phy-mode is already set in qca955x.dtsi and can be removed here.

> +	pll-data = <0xa6000000 0x00000101 0x00001616>; };
> +
> +&mdio0 {
> +	status = "okay";
> +
> +	phy0: ethernet-phy at 0 {
> +		reg = <0>;
> +		qca,ar8327-initvals = <
> +			0x0c 0x00080080
> +			0x04 0x07600000
> +			0x58 0xc935c935
> +			0x5c 0x03ffff00
> +			0x7c 0x0000007e
> +			0x94 0x0000007e
> +		>;

Please add comments here to help the reader, like other devices do, e.g.:

		qca,ar8327-initvals = <
			0x04 0x87600000 /* PORT0 PAD MODE CTRL */
			0x0c 0x00080080 /* PORT6 PAD MODE CTRL */
			0x7c 0x0000007e /* PORT0_STATUS */
			0x94 0x0000007e /* PORT6 STATUS */
			>;

I have not reviewed the values, so hopefully they are correct.

> +	};
> +};
> +
> +&eth1 {
> +	status = "okay";
> +
> +	mtd-mac-address = <&art 0x6>;
> +	phy-mode = "sgmii";

phy-mode is already set in qca955x.dtsi and can be removed here.

> +	pll-data = <0x03000101 0x00000101 0x00001616>;
> +
> +	fixed-link {
> +		speed = <1000>;
> +		full-duplex;
> +	};
> +};
> +
> +&pcie0 {
> +	status = "okay";
> +
> +	wifi at 0,0 {
> +		compatible = "qcom,ath10k";
> +		reg = <0x0000 0 0 0 0>;
> +	};
> +};
> +
> +&spi {
> +	status = "okay";
> +
> +	flash at 0 {
> +		compatible = "jedec,spi-nor";
> +		reg = <0>;
> +		spi-max-frequency = <25000000>;
> +
> +		partitions {
> +			compatible = "fixed-partitions";
> +			#address-cells = <1>;
> +			#size-cells = <1>;
> +
> +			partition at 0 {
> +				label = "u-boot";
> +				reg = <0x000000 0x040000>;
> +				read-only;
> +			};
> +
> +			partition at 40000 {
> +				label = "u-boot-env";
> +				reg = <0x040000 0x010000>;
> +			};
> +
> +			partition at 50000 {
> +				label = "wlandrv";
> +				reg = <0x050000 0x010000>;
> +				read-only;
> +			};
> +
> +			partition at 60000 {
> +				label = "firmware";
> +				reg = <0x060000 0xf90000>;
> +				compatible = "denx,uimage";
> +			};
> +
> +			art: partition at ff0000 {
> +				label = "art";
> +				reg = <0xff0000 0x010000>;
> +				read-only;
> +			};
> +		};
> +	};
> +
> +	flash at 1 {
> +		compatible = "jedec,spi-nor";
> +		reg = <1>;
> +		spi-max-frequency = <25000000>;
> +
> +		partitions {
> +			compatible = "fixed-partitions";
> +			#address-cells = <1>;
> +			#size-cells = <1>;
> +
> +			partition at 0 {
> +				label = "opt";
> +				reg = <0x0 0x1000000>;
> +			};
> +		};
> +	};
> +};
> +
> +&uart {
> +	status = "okay";
> +};
> +
> +&usb_phy0 {
> +	status = "okay";
> +};
> +
> +&usb0 {
> +	status = "okay";
> +};
> +
> +&wmac {
> +	status = "okay";
> +
> +	mtd-cal-data = <&art 0x1000>;
> +};
> 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 905848a2badc..866d74fae435 100755
> --- a/target/linux/ath79/generic/base-files/etc/board.d/02_network
> +++ b/target/linux/ath79/generic/base-files/etc/board.d/02_network
> @@ -81,6 +81,10 @@ ath79_setup_interfaces()
>  	winchannel,wb2000)
>  		ucidef_set_interface_lan "eth0"
>  		;;
> +	airtight,c-75)
> +		ucidef_add_switch "switch0" \
> +			"0 at eth0" "2:wan" "3:lan" "6 at eth1"
> +		;;
>  	alfa-network,ap121fe)
>  		ucidef_set_interface_lan "eth0 usb0"
>  		;;
> diff --git a/target/linux/ath79/image/generic.mk
> b/target/linux/ath79/image/generic.mk
> index b3fca9eb8f7f..177caafa2253 100644
> --- a/target/linux/ath79/image/generic.mk
> +++ b/target/linux/ath79/image/generic.mk
> @@ -237,6 +237,19 @@ define Device/adtran_bsap1840  endef
> TARGET_DEVICES += adtran_bsap1840
> 
> +define Device/airtight_c-75
> +  SOC := qca9550
> +  DEVICE_VENDOR := AirTight Networks
> +  DEVICE_MODEL := C-75
> +  DEVICE_ALT0_VENDOR := Mojo Networks
> +  DEVICE_ALT0_MODEL := C-75
> +  DEVICE_ALT1_VENDOR := WatchGuard
> +  DEVICE_ALT1_MODEL := AP320
> +  DEVICE_PACKAGES := ath10k-firmware-qca988x kmod-ath10k-ct kmod-
> usb2

-ct missing for firmware.

Best

Adrian

> +  IMAGE_SIZE := 15936k
> +endef
> +TARGET_DEVICES += airtight_c-75
> +
>  define Device/alfa-network_ap121f
>    SOC := ar9331
>    DEVICE_VENDOR := ALFA Network
> --
> 2.29.2
> 
> 
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel at lists.openwrt.org
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: openpgp-digital-signature.asc
Type: application/pgp-signature
Size: 834 bytes
Desc: not available
URL: <http://lists.openwrt.org/pipermail/openwrt-devel/attachments/20201216/d8139fad/attachment.sig>


More information about the openwrt-devel mailing list