Skip to contentSkip to conversation

arm64: dts: qcom: ipq5018: add Ubiquiti UniFi U6 Enterprise

PATCH Applied Andrei-Alexandru Bleortu 4 participants 9 messages Oct 23 – Nov 8

Subsystems (5)
lore
Share & tools
lore
#0 lore raw

v3 cover arm64: dts: qcom: ipq5018: add Ubiquiti UniFi U6 Enterprise

Add the Ubiquiti UniFi U6 Enterprise, an IPQ5018 access point with two QCN9074 radios on PCIe (5 GHz and 6 GHz). The first patch documents the QCN9074's PCI ID in the ath11k PCI binding, so the radios' nodes can carry the calibration variants their board data is looked up by.

The Ethernet port (GMAC1 with a QCA8081 PHY) and the IPQ5018's own 2.4 GHz radio are left out until the GMAC and the WCSS remoteproc have bindings.

The vendor U-Boot only boots Ubiquiti-signed images, so the boards were booted by chainloading from it. Tested on two units with Linux 7.2 and the out-of-tree board description these nodes come from: both QCN9074 radios come up with ath11k and their board data selected by these variants, and the eMMC and the SPI NOR (including U-Boot environment writes) are in use. The reset button and the accelerometer are described as in the vendor device tree and were not exercised.

Patch 1 is for the ath11k binding; the rest go through the qcom tree.

The patches were written with an AI coding assistant (Claude Code), which also drafted the changelogs; the testing above was done on the devices.

Changes in v3:
- New patch 3: the PRNG is enabled in the SoC dtsi rather than by the board (Konrad).
- Board: the reset button's label is "Reset", and a blank line precedes every status property (Konrad).

Changes in v2:
- Collected Krzysztof's Acked-by on the two binding patches.
- Squashed "label the PCIe1 root port" into the board patch, its only user (Krzysztof).

v2: https://lore.kernel.org/all/[email protected]/
v1: https://lore.kernel.org/all/[email protected]/

Andrei-Alexandru Bleortu (4):
dt-bindings: net: wireless: qcom,ath11k-pci: add QCN9074
dt-bindings: arm: qcom: add Ubiquiti UniFi U6 Enterprise
arm64: dts: qcom: ipq5018: enable the PRNG by default
arm64: dts: qcom: ipq5018: add Ubiquiti UniFi U6 Enterprise

 .../devicetree/bindings/arm/qcom.yaml         |   1 +
 .../net/wireless/qcom,ath11k-pci.yaml         |   1 +
 arch/arm64/boot/dts/qcom/Makefile             |   1 +
 .../dts/qcom/ipq5018-ubnt-u6-enterprise.dts   | 235 ++++++++++++++++++
 arch/arm64/boot/dts/qcom/ipq5018.dtsi         |   3 +-
 5 files changed, 239 insertions(+), 2 deletions(-)
 create mode 100644 arch/arm64/boot/dts/qcom/ipq5018-ubnt-u6-enterprise.dts

base-commit: bd1ecbb61afefc6a8b876ccbc31e9228b44e9eab

Signature · 1 line
2.47.3
#1 lore raw

PATCH v3 1/4 dt-bindings: net: wireless: qcom,ath11k-pci: add QCN9074

QCN9074 is a PCIe 802.11ax radio that boards such as the IPQ5018-based Ubiquiti UniFi U6 Enterprise solder down, two of them on different bands. Like the other ath11k PCIe devices, each needs qcom,calibration-variant to select its board data. Document its PCI ID.

No supplies are added: on these boards the radio's rails are fixed and not under software control.

---
 .../devicetree/bindings/net/wireless/qcom,ath11k-pci.yaml        | 1 +
 1 file changed, 1 insertion(+)
Documentation/devicetree/bindings/net/wireless/qcom,ath11k-pci.yaml +1 -0
index 0162e36579..605ac5e01e 100644
@@ -18,6 +18,7 @@ properties:
     enum:
       - pci17cb,1101  # QCA6390
       - pci17cb,1103  # WCN6855
+      - pci17cb,1104  # QCN9074
 
   reg:
     maxItems: 1
Signature · 1 line
2.47.3
maintainer Acked-by on v3 1/4
#2 lore raw

Re: [PATCH v3 1/4] dt-bindings: net: wireless: qcom,ath11k-pci: add QCN9074

Quoted 5 lines · Andrei-Alexandru Bleortu

QCN9074 is a PCIe 802.11ax radio that boards such as the IPQ5018-based Ubiquiti UniFi U6 Enterprise solder down, two of them on different bands. Like the other ath11k PCIe devices, each needs qcom,calibration-variant to select its board data. Document its PCI ID.

Quoted 7 lines

No supplies are added: on these boards the radio's rails are fixed and not under software control.

---

Bjorn, please take with 2/4 through your tree.

Quoted 15 lines
 .../devicetree/bindings/net/wireless/qcom,ath11k-pci.yaml        | 1 +
 1 file changed, 1 insertion(+)
Documentation/devicetree/bindings/net/wireless/qcom,ath11k-pci.yaml +1 -0
index 0162e36579..605ac5e01e 100644
@@ -18,6 +18,7 @@ properties:
     enum:
       - pci17cb,1101  # QCA6390
       - pci17cb,1103  # WCN6855
+      - pci17cb,1104  # QCN9074
 
   reg:
     maxItems: 1
#3 lore raw

PATCH v3 2/4 dt-bindings: arm: qcom: add Ubiquiti UniFi U6 Enterprise

In reply to Andrei-Alexandru Bleortu

Document the Ubiquiti UniFi U6 Enterprise, an IPQ5018 based access point.

---
 Documentation/devicetree/bindings/arm/qcom.yaml | 1 +
 1 file changed, 1 insertion(+)
Documentation/devicetree/bindings/arm/qcom.yaml +1 -0
index 121ca557ce..4524f76b4b 100644
@@ -113,6 +113,7 @@ properties:
           - enum:
               - qcom,ipq5018-rdp432-c2
               - tplink,archer-ax55-v1
+              - ubnt,u6-enterprise
           - const: qcom,ipq5018
 
       - items:
Signature · 1 line
2.47.3
#4 lore raw

PATCH v3 3/4 arm64: dts: qcom: ipq5018: enable the PRNG by default

In reply to Andrei-Alexandru Bleortu

The PRNG needs nothing from the board: its only resource is a GCC clock, and no IPQ5018 board has a reason to switch it off. Enable it in the SoC dtsi, as ipq5332 and ipq9574 do, rather than in every board file.

---
 arch/arm64/boot/dts/qcom/ipq5018.dtsi | 1 -
 1 file changed, 1 deletion(-)
arch/arm64/boot/dts/qcom/ipq5018.dtsi +0 -1
index fe1ed240de..dde5435f69 100644
@@ -340,7 +340,6 @@ prng: rng@e3000 {
 			reg = <0x000e3000 0x1000>;
 			clocks = <&gcc GCC_PRNG_AHB_CLK>;
 			clock-names = "core";
-			status = "disabled";
 		};
 
 		tsens: thermal-sensor@4a9000 {
Signature · 1 line
2.47.3
Reviewed-by on v3 3/4
#5 lore raw

Re: [PATCH v3 3/4] arm64: dts: qcom: ipq5018: enable the PRNG by default

Quoted 7 lines · Andrei-Alexandru Bleortu

The PRNG needs nothing from the board: its only resource is a GCC clock, and no IPQ5018 board has a reason to switch it off. Enable it in the SoC dtsi, as ipq5332 and ipq9574 do, rather than in every board file.

---

Konrad

#6 lore raw

PATCH v3 4/4 arm64: dts: qcom: ipq5018: add Ubiquiti UniFi U6 Enterprise

In reply to Andrei-Alexandru Bleortu

The Ubiquiti UniFi U6 Enterprise is a ceiling-mount Wi-Fi 6E access point:

- SoC: Qualcomm IPQ5018
- RAM: 1 GiB
- Flash: SPI NOR (boot chain) and eMMC
- 5 GHz: QCN9074 on PCIe0
- 6 GHz: QCN9074 on PCIe1
- Ethernet: one 2.5GbE PoE port, a QCA8081 PHY behind GMAC1
- Accelerometer: ST LIS2DH12
- Button: reset

Describe what mainline supports today. The Ethernet port and the IPQ5018's own 2.4 GHz radio are left out until the GMAC and the WCSS remoteproc have bindings; the LED controller and the board MCU on the I2C bus have none. The QCN9074s carry the calibration variants their board data is looked up by. The SoC dtsi gains the pcie1_port0 label, as pcie0 has, for the 6 GHz radio below that root port. The vendor QSEE reserves 4 MiB, twice the SoC default.

---
 arch/arm64/boot/dts/qcom/Makefile             |   1 +
 .../dts/qcom/ipq5018-ubnt-u6-enterprise.dts   | 235 ++++++++++++++++++
 arch/arm64/boot/dts/qcom/ipq5018.dtsi         |   2 +-
 3 files changed, 237 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm64/boot/dts/qcom/ipq5018-ubnt-u6-enterprise.dts
arch/arm64/boot/dts/qcom/Makefile +1 -0
index 88230c4e00..aca7d8e415 100644
@@ -32,6 +32,7 @@ dtb-$(CONFIG_ARCH_QCOM)	+= hamoa-lenovo-ideacentre-mini-01q8x10.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= hawi-mtp.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= ipq5018-rdp432-c2.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= ipq5018-tplink-archer-ax55-v1.dtb
+dtb-$(CONFIG_ARCH_QCOM)	+= ipq5018-ubnt-u6-enterprise.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= ipq5210-rdp504.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= ipq5332-rdp441.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= ipq5332-rdp442.dtb
arch/arm64/boot/dts/qcom/ipq5018-ubnt-u6-enterprise.dts new file +235 -0

235 lines not on this page · raw message

arch/arm64/boot/dts/qcom/ipq5018.dtsi +1 -1
index dde5435f69..ee8c0fc03f 100644
@@ -837,7 +837,7 @@ pcie1: pcie@80000000 {
 
 			status = "disabled";
 
-			pcie@0 {
+			pcie1_port0: pcie@0 {
 				device_type = "pci";
 				reg = <0x0 0x0 0x0 0x0 0x0>;
 				bus-range = <0x01 0xff>;
Signature · 1 line
2.47.3
Reviewed-by on v3 4/4
#7 lore raw
Quoted 19 lines · Andrei-Alexandru Bleortu

The Ubiquiti UniFi U6 Enterprise is a ceiling-mount Wi-Fi 6E access point:

- SoC: Qualcomm IPQ5018
- RAM: 1 GiB
- Flash: SPI NOR (boot chain) and eMMC
- 5 GHz: QCN9074 on PCIe0
- 6 GHz: QCN9074 on PCIe1
- Ethernet: one 2.5GbE PoE port, a QCA8081 PHY behind GMAC1
- Accelerometer: ST LIS2DH12
- Button: reset

Describe what mainline supports today. The Ethernet port and the IPQ5018's own 2.4 GHz radio are left out until the GMAC and the WCSS remoteproc have bindings; the LED controller and the board MCU on the I2C bus have none. The QCN9074s carry the calibration variants their board data is looked up by. The SoC dtsi gains the pcie1_port0 label, as pcie0 has, for the 6 GHz radio below that root port. The vendor QSEE reserves 4 MiB, twice the SoC default.

Quoted 3 lines

---

Konrad

maintainer Applied
#8 lore raw

Re: (subset) [PATCH v3 0/4] arm64: dts: qcom: ipq5018: add Ubiquiti UniFi U6 Enterprise

In reply to Andrei-Alexandru Bleortu
Quoted 10 lines · Andrei-Alexandru Bleortu

Add the Ubiquiti UniFi U6 Enterprise, an IPQ5018 access point with two QCN9074 radios on PCIe (5 GHz and 6 GHz). The first patch documents the QCN9074's PCI ID in the ath11k PCI binding, so the radios' nodes can carry the calibration variants their board data is looked up by.

The Ethernet port (GMAC1 with a QCA8081 PHY) and the IPQ5018's own 2.4 GHz radio are left out until the GMAC and the WCSS remoteproc have bindings.

[...]

Applied, thanks!

[2/4] dt-bindings: arm: qcom: add Ubiquiti UniFi U6 Enterprise

      commit: c8ad14fa57232bf4a167b0fe2bd1e856e587cf48

Best regards,

Signature · 1 line
Bjorn Andersson <[email protected]>