From patchwork Wed Mar 15 15:08:05 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Daniel_Gonz=C3=A1lez_Cabanelas?= X-Patchwork-Id: 1757433 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.openwrt.org (client-ip=2607:7c80:54:3::133; helo=bombadil.infradead.org; envelope-from=openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=bombadil.20210309 header.b=LtriNsu0; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=cIfbK0XZ; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:3::133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4PcDQp3Vdwz1yWp for ; Thu, 16 Mar 2023 02:12:34 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-ID:Date:Subject:To :From:Reply-To:Cc:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=FBDh8/ObwIPsG35D6dfduFlCDsXUIpEx5Der+T1AO+A=; b=LtriNsu0BP+vc7 x7r1EuhzF7PhKKIwaX0z9GtCpJrAkxp17CZZgQvhO/8v2ynlqerF0YFq/nwJGh229Xd6gOiaatENz uFS177XO1xZw+TX4soSrPeLQk6gNT2I7E63kutvWihdS0zA7ohXtX/d0nFmvFpzkqITcv51Pxcb3f GUnbwBod81CRFnPLr73vUODD9fo1dNoa98D2lRVBrvgDyRt0eR0JccJaAQ16bBBg8BN8T+ldS7fap gC8658cUvcY0sSHqggSjApLHYDaR9AjiitzCe93I9UU+nt7hAdf0cNzDxJiXHgYuDBQ4t9DO7p33f wo4Q7Lmd9HvkWuF1QGZw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1pcSkR-00DkDi-0t; Wed, 15 Mar 2023 15:09:03 +0000 Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1pcSjo-00DjoT-0G for openwrt-devel@lists.openwrt.org; Wed, 15 Mar 2023 15:08:27 +0000 Received: by mail-wm1-x331.google.com with SMTP id m18-20020a05600c3b1200b003ed2a3d635eso1462855wms.4 for ; Wed, 15 Mar 2023 08:08:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1678892901; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=FxgdVjsArvcacJx+k2gxZ/nUNmL+V/B0dcn7hB36H7U=; b=cIfbK0XZN+VQmiK8iSM79XZvN+L5XEAlUJ9LkP6Lx2jjybIn13GRzsLDvayIDqlFZi MJjS4SK+kqKquG3nbiQYLmFXOBqPXYfPoQSRl/RDn6jU24GkwC+7NhPWqRlGY59Cm53H 1vxd9W4PK11Ro3DTNj6YCRxgIkey8oH0XK4GU4lNtcRqCKpVLcZGXR3nk+L9gqwvqeEQ Jo6qbEnflNFuRi9048lCAMYpyk7yUpNEIUYFEakN4n/1uyw9KVH/LPEQ08t64aPV28vS qPtvSyI6aKjUXqsODDvPFxZaCdHwhPbeaSmIVD+RC87Eda8cdSbSn8taZ7myImgBhSJu aTlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678892901; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=FxgdVjsArvcacJx+k2gxZ/nUNmL+V/B0dcn7hB36H7U=; b=LSC1xRVS3WDSjruFOtUScvFK7ojnntQ1Uvpx7/3mmBN0HMxT0thUNZjEaM7zqFM5If ppvZ7QODrG/F17LiGMUfuW2HRjB9NQ8N22ZK53Qyf34Qnjppqe3drLBb+M9+u0aQSwBA ZMuUpwOLKQmqfaD9sy4Ljsl5Smr6EHkUQe1wThY0jJpvYH1qT9iMUBcMtwVha+DZDAW7 kTiUD+LX3st12/Y5HISiVqRi+9l7Z8rhwFrVrZCrn4Nmzp9Qfx2h8mgFGoGPlG4NNpLb mkkoleL9LJ/in/ckLv+SRhWqbQ5TpPGttbHzHwaKejAJKB+9hREcqauK8OdS1JlTWzgY 6ufw== X-Gm-Message-State: AO0yUKUEkwodcJXRCoJld8qgHdPbbdQasjXP7HrPZqoBXnCeTAW30P+D 0/jcDR4iy7d5TdDt2vSLU44sjKC2T1g= X-Google-Smtp-Source: AK7set/SpzaU1PcxObyTdeqYW4U0frEIBhlRKIXww8zpkTzJ2i3XkBBdSvZTlTRZuIFJeEqpjKVjFg== X-Received: by 2002:a05:600c:a04:b0:3eb:2b69:c3c4 with SMTP id z4-20020a05600c0a0400b003eb2b69c3c4mr20113038wmp.36.1678892901135; Wed, 15 Mar 2023 08:08:21 -0700 (PDT) Received: from tool.localnet ([94.73.57.213]) by smtp.gmail.com with ESMTPSA id k22-20020a05600c0b5600b003eae73f0fc1sm2211775wmr.18.2023.03.15.08.08.20 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Mar 2023 08:08:20 -0700 (PDT) From: Daniel =?iso-8859-1?q?Gonz=E1lez?= Cabanelas To: openwrt-devel@lists.openwrt.org Subject: [PATCH] ath79: Add support for Ubiquiti NanoBeam AC Gen2 XC Date: Wed, 15 Mar 2023 16:08:05 +0100 Message-ID: <12217190.O9o76ZdvQC@tool> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230315_080824_142592_1F7DCCFC X-CRM114-Status: GOOD ( 12.62 ) X-Spam-Score: -0.2 (/) X-Spam-Report: Spam detection software, running on the system "bombadil.infradead.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: The Ubiquiti NanoBeam AC Gen2 XC (NBE-5AC-Gen2) is an outdoor 802.11ac CPE with a waterproof casing (ultrasonically welded) and bulb shaped. It's the same board as Gen1 but with a small antenna routed out of the SoC and calibration data for this management radio in the "art" partition. Content analysis details: (-0.2 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2a00:1450:4864:20:0:0:0:331 listed in] [list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider [dgcbueu[at]gmail.com] -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain X-BeenThere: openwrt-devel@lists.openwrt.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: OpenWrt Development List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "openwrt-devel" Errors-To: openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org The Ubiquiti NanoBeam AC Gen2 XC (NBE-5AC-Gen2) is an outdoor 802.11ac CPE with a waterproof casing (ultrasonically welded) and bulb shaped. It's the same board as Gen1 but with a small antenna routed out of the SoC and calibration data for this management radio in the "art" partition. Hardware: SoC: Qualcomm Atheros QCA9558 CPU: MIPS 74Kc V5.0 720 MHz, 1 core RAM: 128 MB DDR2 Flash: 16 MB SPI-NOR, MX25L12805D Ethernet: 1x GbE WiFi 5 GHz: Qualcomm Atheros QCA988X WiFi 2.4 GHz: SoC (management radio) Internal antenna 1: 19 dBi planar (5 GHz) Internal antenna 2: 2 dBi PCB, connected via UFL (SoC) Buttons: 1x reset LEDs: 1x power, 1x Ethernet, 4x RSSI, all blue PSU: 24 Vdc passive PoE Installation from stock airOS firmware: - Follow instructions for XC-type Ubiquiti devices on OpenWrt wiki at https://openwrt.org/toh/ubiquiti/common Back to stock firmware: - Follow instructions for Ubiquiti recovery via TFTP at OpenWrt wiki. Signed-off-by: Daniel González Cabanelas --- .../dts/qca9558_ubnt_nanobeam-ac-gen2-xc.dts | 17 +++ .../ath79/dts/qca9558_ubnt_nanobeam-ac-xc.dts | 105 +---------------- .../dts/qca9558_ubnt_nanobeam-ac-xc.dtsi | 107 ++++++++++++++++++ .../generic/base-files/etc/board.d/01_leds | 1 + .../generic/base-files/etc/board.d/02_network | 2 + .../etc/hotplug.d/firmware/11-ath10k-caldata | 1 + target/linux/ath79/image/generic-ubnt.mk | 10 ++ 7 files changed, 141 insertions(+), 102 deletions(-) create mode 100644 target/linux/ath79/dts/qca9558_ubnt_nanobeam-ac-gen2-xc.dts create mode 100644 target/linux/ath79/dts/qca9558_ubnt_nanobeam-ac-xc.dtsi diff --git a/target/linux/ath79/dts/qca9558_ubnt_nanobeam-ac-gen2-xc.dts b/target/linux/ath79/dts/qca9558_ubnt_nanobeam-ac-gen2-xc.dts new file mode 100644 index 0000000000..629b5bfe0a --- /dev/null +++ b/target/linux/ath79/dts/qca9558_ubnt_nanobeam-ac-gen2-xc.dts @@ -0,0 +1,17 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* + * Device Tree file for Ubiquiti Nanobeam NBE-5AC-Gen2 (XC) + */ + +#include "qca9558_ubnt_nanobeam-ac-xc.dtsi" + +/ { + compatible = "ubnt,nanobeam-ac-gen2-xc", "ubnt,xc", "qca,qca9558"; + model = "Ubiquiti NanoBeam AC Gen2 (XC)"; +}; + +&wmac { + status = "okay"; + + mtd-cal-data = <&art 0x1000>; +}; diff --git a/target/linux/ath79/dts/qca9558_ubnt_nanobeam-ac-xc.dts b/target/linux/ath79/dts/qca9558_ubnt_nanobeam-ac-xc.dts index 91675ff615..898c249154 100644 --- a/target/linux/ath79/dts/qca9558_ubnt_nanobeam-ac-xc.dts +++ b/target/linux/ath79/dts/qca9558_ubnt_nanobeam-ac-xc.dts @@ -1,110 +1,11 @@ -// SPDX-License-Identifier: GPL-2.0-only +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT /* * Device Tree file for Ubiquiti Nanobeam NBE-5AC-19 (XC) - * - * Copyright (C) 2022 Daniel González Cabanelas - * based on device tree from qca9558_ubnt_powerbeam-5ac-500.dts */ - -#include "qca955x_ubnt_xc.dtsi" + +#include "qca9558_ubnt_nanobeam-ac-xc.dtsi" / { compatible = "ubnt,nanobeam-ac-xc", "ubnt,xc", "qca,qca9558"; model = "Ubiquiti NanoBeam AC Gen1 (XC)"; - - aliases { - led-boot = &led_power; - led-failsafe = &led_power; - led-running = &led_power; - led-upgrade = &led_power; - }; - - keys { - compatible = "gpio-keys"; - - reset { - label = "Reset button"; - linux,code = ; - gpios = <&gpio 19 GPIO_ACTIVE_LOW>; - debounce-interval = <60>; - }; - }; - - led_spi { - compatible = "spi-gpio"; - #address-cells = <1>; - #size-cells = <0>; - - sck-gpios = <&gpio 0 GPIO_ACTIVE_HIGH>; - mosi-gpios = <&gpio 1 GPIO_ACTIVE_HIGH>; - cs-gpios = <&gpio 3 GPIO_ACTIVE_HIGH>; - num-chipselects = <1>; - - led_gpio: led_gpio@0 { - compatible = "fairchild,74hc595"; - reg = <0>; - gpio-controller; - #gpio-cells = <2>; - registers-number = <1>; - spi-max-frequency = <10000000>; - enable-gpios = <&gpio 18 GPIO_ACTIVE_LOW>; - }; - }; - - leds { - compatible = "gpio-leds"; - - rssi0 { - label = "blue:rssi0"; - gpios = <&led_gpio 0 GPIO_ACTIVE_LOW>; - }; - rssi1 { - label = "blue:rssi1"; - gpios = <&led_gpio 1 GPIO_ACTIVE_LOW>; - }; - rssi2 { - label = "blue:rssi2"; - gpios = <&led_gpio 2 GPIO_ACTIVE_LOW>; - }; - rssi3 { - label = "blue:rssi3"; - gpios = <&led_gpio 3 GPIO_ACTIVE_LOW>; - }; - led_power: power { - label = "blue:power"; - gpios = <&led_gpio 4 GPIO_ACTIVE_LOW>; - default-state = "on"; - }; - }; -}; - -&mdio0 { - status = "okay"; - - phy4: ethernet-phy@4 { - phy-mode = "sgmii"; - reg = <4>; - at803x-override-sgmii-link-check; - }; -}; - -ð0 { - status = "okay"; - - pll-reg = <0 0x48 0>; - pll-data = <0x03000000 0x00000101 0x00001313>; - nvmem-cells = <&macaddr_art_0>; - nvmem-cell-names = "mac-address"; - phy-mode = "sgmii"; - phy-handle = <&phy4>; -}; - -&art { - compatible = "nvmem-cells"; - #address-cells = <1>; - #size-cells = <1>; - - macaddr_art_0: macaddr@0 { - reg = <0x0 0x6>; - }; }; diff --git a/target/linux/ath79/dts/qca9558_ubnt_nanobeam-ac-xc.dtsi b/target/linux/ath79/dts/qca9558_ubnt_nanobeam-ac-xc.dtsi new file mode 100644 index 0000000000..e68ceb7f5c --- /dev/null +++ b/target/linux/ath79/dts/qca9558_ubnt_nanobeam-ac-xc.dtsi @@ -0,0 +1,107 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* + * Device Tree file for Ubiquiti Nanobeam XC + * + * Copyright (C) 2022 Daniel González Cabanelas + * based on device tree from qca9558_ubnt_powerbeam-5ac-500.dts + */ + +#include "qca955x_ubnt_xc.dtsi" + +/ { + aliases { + led-boot = &led_power; + led-failsafe = &led_power; + led-running = &led_power; + led-upgrade = &led_power; + }; + + keys { + compatible = "gpio-keys"; + + reset { + label = "Reset button"; + linux,code = ; + gpios = <&gpio 19 GPIO_ACTIVE_LOW>; + debounce-interval = <60>; + }; + }; + + led_spi { + compatible = "spi-gpio"; + #address-cells = <1>; + #size-cells = <0>; + + sck-gpios = <&gpio 0 GPIO_ACTIVE_HIGH>; + mosi-gpios = <&gpio 1 GPIO_ACTIVE_HIGH>; + cs-gpios = <&gpio 3 GPIO_ACTIVE_LOW>; + num-chipselects = <1>; + + led_gpio: led_gpio@0 { + compatible = "fairchild,74hc595"; + reg = <0>; + gpio-controller; + #gpio-cells = <2>; + registers-number = <1>; + spi-max-frequency = <10000000>; + enable-gpios = <&gpio 18 GPIO_ACTIVE_LOW>; + }; + }; + + leds { + compatible = "gpio-leds"; + + rssi0 { + label = "blue:rssi0"; + gpios = <&led_gpio 0 GPIO_ACTIVE_LOW>; + }; + rssi1 { + label = "blue:rssi1"; + gpios = <&led_gpio 1 GPIO_ACTIVE_LOW>; + }; + rssi2 { + label = "blue:rssi2"; + gpios = <&led_gpio 2 GPIO_ACTIVE_LOW>; + }; + rssi3 { + label = "blue:rssi3"; + gpios = <&led_gpio 3 GPIO_ACTIVE_LOW>; + }; + led_power: power { + label = "blue:power"; + gpios = <&led_gpio 4 GPIO_ACTIVE_LOW>; + default-state = "on"; + }; + }; +}; + +&mdio0 { + status = "okay"; + + phy4: ethernet-phy@4 { + phy-mode = "sgmii"; + reg = <4>; + at803x-override-sgmii-link-check; + }; +}; + +ð0 { + status = "okay"; + + pll-reg = <0 0x48 0>; + pll-data = <0x03000000 0x00000101 0x00001313>; + nvmem-cells = <&macaddr_art_0>; + nvmem-cell-names = "mac-address"; + phy-mode = "sgmii"; + phy-handle = <&phy4>; +}; + +&art { + compatible = "nvmem-cells"; + #address-cells = <1>; + #size-cells = <1>; + + macaddr_art_0: macaddr@0 { + reg = <0x0 0x6>; + }; +}; diff --git a/target/linux/ath79/generic/base-files/etc/board.d/01_leds b/target/linux/ath79/generic/base-files/etc/board.d/01_leds index 5855d2a928..a91e82f5e6 100644 --- a/target/linux/ath79/generic/base-files/etc/board.d/01_leds +++ b/target/linux/ath79/generic/base-files/etc/board.d/01_leds @@ -464,6 +464,7 @@ ubnt,bullet-ac|\ ubnt,nanobeam-ac|\ ubnt,nanobeam-ac-gen2|\ ubnt,nanobeam-ac-xc|\ +ubnt,nanobeam-ac-gen2-xc|\ ubnt,nanostation-ac|\ ubnt,powerbeam-5ac-gen2) ucidef_set_rssimon "wlan0" "200000" "1" 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 b20a3c13f8..f5137385c2 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 @@ -101,6 +101,7 @@ ath79_setup_interfaces() ubnt,litebeam-ac-gen2|\ ubnt,nanobeam-ac|\ ubnt,nanobeam-ac-xc|\ + ubnt,nanobeam-ac-gen2-xc|\ ubnt,nanostation-ac-loco|\ ubnt,nanostation-loco-m-xw|\ ubnt,powerbeam-5ac-500|\ @@ -774,6 +775,7 @@ ath79_setup_macs() ubnt,litebeam-ac-gen2|\ ubnt,nanobeam-ac-gen2|\ ubnt,nanobeam-ac-xc|\ + ubnt,nanobeam-ac-gen2-xc|\ ubnt,powerbeam-5ac-500|\ ubnt,powerbeam-5ac-gen2) label_mac=$(mtd_get_mac_binary art 0x5006) 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 4db311fde0..a79781237b 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 @@ -45,6 +45,7 @@ case "$FIRMWARE" in ubnt,nanobeam-ac|\ ubnt,nanobeam-ac-gen2|\ ubnt,nanobeam-ac-xc|\ + ubnt,nanobeam-ac-gen2-xc|\ ubnt,nanostation-ac|\ ubnt,nanostation-ac-loco|\ ubnt,powerbeam-5ac-500|\ diff --git a/target/linux/ath79/image/generic-ubnt.mk b/target/linux/ath79/image/generic-ubnt.mk index 0f70649d03..a78ccaef82 100644 --- a/target/linux/ath79/image/generic-ubnt.mk +++ b/target/linux/ath79/image/generic-ubnt.mk @@ -87,6 +87,16 @@ define Device/ubnt_nanobeam-ac-xc endef TARGET_DEVICES += ubnt_nanobeam-ac-xc +define Device/ubnt_nanobeam-ac-gen2-xc + $(Device/ubnt-xc) + SOC := qca9558 + DEVICE_MODEL := NanoBeam AC + DEVICE_VARIANT := Gen2 (XC) + SUPPORTED_DEVICES += ubnt,nanobeam-ac-xc + DEVICE_PACKAGES += kmod-ath10k-ct ath10k-firmware-qca988x-ct rssileds +endef +TARGET_DEVICES += ubnt_nanobeam-ac-gen2-xc + define Device/ubnt_nanobeam-m5-xw $(Device/ubnt-xw) DEVICE_MODEL := NanoBeam M5