[PATCH v14] arm64: dts: rockchip: Add AP6275P wireless support to Khadas Edge 2

From: Jacobe Zang
Date: Mon Sep 09 2024 - 23:08:12 EST


Khadas Edge2 uses the PCI-e Ampak AP6275P 2T2R Wi-Fi 6 module. The
pcie@0 node can be used as Bridge1, so the wifi@0 node is used as a
device under the Bridge1.

Co-developed-by: Muhammed Efe Cetin <efectn@xxxxxxxxxxxxxx>
Signed-off-by: Muhammed Efe Cetin <efectn@xxxxxxxxxxxxxx>
Reviewed-by: Arend van Spriel <arend.vanspriel@xxxxxxxxxxxx>
Signed-off-by: Jacobe Zang <jacobe.zang@xxxxxxxxxx>
---
Add basic Wi-Fi support on Khadas Edge2.
---
Changes in v14:
- Removed fallback compatible

- Link to bindings: https://lore.kernel.org/r/20240910-wireless-mainline-v14-0-9d80fea5326d@xxxxxxxxxx
- Link to v13: https://lore.kernel.org/r/20240828-dts-v13-0-6bff9896d649@xxxxxxxxxx

Changes in v13:
- Change patch 2/2 argument from driver to bindings.

- Link to v12: https://lore.kernel.org/all/20240828033953.967649-1-jacobe.zang@xxxxxxxxxx/

Changes in v12:
- Add fallback compatible for Apple's devices

- Link to v11: https://lore.kernel.org/all/20240816015214.1271162-1-jacobe.zang@xxxxxxxxxx/

Changes in v11:
- Split DTS and submit separately

- Link to v10: https://lore.kernel.org/all/20240813082007.2625841-1-jacobe.zang@xxxxxxxxxx/

Changes in v10:
- Use ret instead unused probe_attach_result in sdio.c

- Link to v9: https://lore.kernel.org/all/20240810035141.439024-1-jacobe.zang@xxxxxxxxxx/

Changes in v9:
- Add return -ENODEV error pointer from brcmf_sdio_probe as the default for the fail path
- Add if statement for brcmf_of_probe in common.c
- Retain modifications to of.c other than the return values

- Link to v8: https://lore.kernel.org/all/20240805073425.3492078-1-jacobe.zang@xxxxxxxxxx/

Changes in v8:
- Add appropriate errno's for return values that will be
send to bus when error occurred.

- Link to v7: https://lore.kernel.org/all/20240802025715.2360456-1-jacobe.zang@xxxxxxxxxx/

Changes in v7:
- Change brcmf_of_probe prototypes from void to int, add appropriate errno's for return
value, move clock check to the end of brcmf_of_probe
- Add "brcm,bcm4329-fmac" compatible for wifi node

- Link to v6: https://lore.kernel.org/all/20240731061132.703368-1-jacobe.zang@xxxxxxxxxx/

Changes in v6:
- Move "brcm,bcm4329-fmac" check to the top of brcmf_of_probe in of.c
- Add return if clk didn't set in DTS

-Link to v5: https://lore.kernel.org/all/20240730033053.4092132-1-jacobe.zang@xxxxxxxxxx/

Changes in v5:
- Add more commit message to the clock in bindings
- Use IS_ERR_OR_NULL as a judgment condition of clk

- Link to v4: https://lore.kernel.org/all/20240729070102.3770318-1-jacobe.zang@xxxxxxxxxx/

Changes in v4:
- Change clock description in dt-bindings
- Move enable clk from pcie.c to of.c
- Add compatible for wifi node in DTS
- Add random seed flag for firmware download

- Link to v3: https://lore.kernel.org/all/20240630073605.2164346-1-jacobe.zang@xxxxxxxxxx/

Changes in v3:
- Dropped redundant parts in dt-bindings.
- Change driver patch title prefix as 'wifi: brcmfmac:'.
- Change DTS Wi-Fi node clock-name as 'lpo'.

- Link to v2: https://lore.kernel.org/all/20240624081906.1399447-1-jacobe.zang@xxxxxxxxxx/

Changes in v2:
- Add SoB tags for original developer.
- Add dt-bindings for pci14e4,449d and clocks.
- Replace dev_info to brcmf_dbg in pcie.c

- Link to v1: https://lore.kernel.org/all/20240620020015.4021696-1-jacobe.zang@xxxxxxxxxx/
---
arch/arm64/boot/dts/rockchip/rk3588s-khadas-edge2.dts | 16 ++++++++++++++++
1 file changed, 16 insertions(+)

diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-khadas-edge2.dts b/arch/arm64/boot/dts/rockchip/rk3588s-khadas-edge2.dts
index dbddfc3bb4641..b80a552dad883 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588s-khadas-edge2.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3588s-khadas-edge2.dts
@@ -283,6 +283,22 @@ &pcie2x1l2 {
reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>;
vpcie3v3-supply = <&vcc3v3_pcie_wl>;
status = "okay";
+
+ pcie@0,0 {
+ reg = <0x400000 0 0 0 0>;
+ #address-cells = <3>;
+ #size-cells = <2>;
+ ranges;
+ device_type = "pci";
+ bus-range = <0x40 0x4f>;
+
+ wifi: wifi@0,0 {
+ compatible = "pci14e4,449d";
+ reg = <0x410000 0 0 0 0>;
+ clocks = <&hym8563>;
+ clock-names = "lpo";
+ };
+ };
};

&pwm11 {

---
base-commit: fe57beb026ef5f9614adfa23ee6f3c21faede2cf
change-id: 20240828-dts-1b163375c49c

Best regards,
--
Jacobe Zang <jacobe.zang@xxxxxxxxxx>