From 911f8eaa4cc508a3a6e2c4ef547051a0e8eb1f47 Mon Sep 17 00:00:00 2001 From: polun Date: Mon, 17 Mar 2025 09:26:53 +0800 Subject: [PATCH] qca-wifi-7: Add Zyxel NWA130BE model Signed-off-by: YenLin Pan --- .github/workflows/build-dev.yml | 2 +- feeds/qca-wifi-7/ath12k-wifi/Makefile | 12 + .../ath12k-wifi/board-2.bin.nwa130be.IPQ5332 | Bin 0 -> 89292 bytes .../ath12k-wifi/board-2.bin.nwa130be.QCN92XX | Bin 0 -> 187596 bytes .../ipq53xx/base-files/etc/board.d/01_leds | 9 + .../ipq53xx/base-files/etc/board.d/02_network | 16 + .../etc/hotplug.d/firmware/10-ath12k-caldata | 6 +- .../base-files/lib/upgrade/platform.sh | 3 + .../ipq53xx/dts/ipq5332-zyxel-nwa130be.dts | 592 ++++++++++++++++++ feeds/qca-wifi-7/ipq53xx/image/ipq53xx.mk | 15 + feeds/qca-wifi-7/mac80211/Makefile | 6 + .../0001-thermal-thermal-setting.patch | 59 ++ feeds/qca-wifi-7/qca-ssdk-qca/Makefile | 10 + ...01-pinctrl-make-the-switch-LED-works.patch | 47 ++ .../files/usr/share/rrmd/policy_chanutil.uc | 1 + profiles/zyxel_nwa130be.yml | 16 + 16 files changed, 791 insertions(+), 3 deletions(-) create mode 100644 feeds/qca-wifi-7/ath12k-wifi/board-2.bin.nwa130be.IPQ5332 create mode 100644 feeds/qca-wifi-7/ath12k-wifi/board-2.bin.nwa130be.QCN92XX create mode 100755 feeds/qca-wifi-7/ipq53xx/dts/ipq5332-zyxel-nwa130be.dts create mode 100644 feeds/qca-wifi-7/mac80211/patches-zyxel_nwa130be/0001-thermal-thermal-setting.patch create mode 100644 feeds/qca-wifi-7/qca-ssdk-qca/patches-zyxel_nwa130be/0001-pinctrl-make-the-switch-LED-works.patch create mode 100644 profiles/zyxel_nwa130be.yml diff --git a/.github/workflows/build-dev.yml b/.github/workflows/build-dev.yml index f7549d09d..cc2cc2495 100755 --- a/.github/workflows/build-dev.yml +++ b/.github/workflows/build-dev.yml @@ -21,7 +21,7 @@ jobs: strategy: fail-fast: false matrix: - target: [ 'cig_wf186h', 'cig_wf186w', 'cig_wf188n', 'cig_wf189', 'cig_wf196', 'cig_wf196', 'cybertan_eww631-a1', 'cybertan_eww631-b1', 'sonicfi_rap630w-312g', 'sonicfi_rap63xc-211g', 'sonicfi_rap630c-311g', 'sonicfi_rap630w-311g', 'sonicfi_rap630w-211g', 'sonicfi_rap650c', 'sonicfi_rap7110c-341x', 'sonicfi_rap750e-h', 'sonicfi_rap750w-311a', 'edgecore_eap101', 'edgecore_eap102', 'edgecore_eap104', 'edgecore_eap105', 'edgecore_eap111', 'edgecore_eap112', 'edgecore_oap101', 'edgecore_oap101-6e', 'edgecore_oap101e', 'edgecore_oap101e-6e', 'edgecore_oap103', 'hfcl_ion4xe', 'hfcl_ion4xi', 'hfcl_ion4x', 'hfcl_ion4x_2', 'hfcl_ion4x_3', 'hfcl_ion4xi_w', 'hfcl_ion4x_w', 'indio_um-305ax', 'senao_iap4300m', 'senao_iap2300m', 'senao_jeap6500', 'udaya_a6-id2', 'udaya_a6-od2', 'yuncore_ax820', 'yuncore_ax840', 'yuncore_fap640', 'yuncore_fap650', 'yuncore_fap655', 'emplus_wap588m' ] + target: [ 'cig_wf186h', 'cig_wf186w', 'cig_wf188n', 'cig_wf189', 'cig_wf196', 'cig_wf196', 'cybertan_eww631-a1', 'cybertan_eww631-b1', 'sonicfi_rap630w-312g', 'sonicfi_rap63xc-211g', 'sonicfi_rap630c-311g', 'sonicfi_rap630w-311g', 'sonicfi_rap630w-211g', 'sonicfi_rap650c', 'sonicfi_rap7110c-341x', 'sonicfi_rap750e-h', 'sonicfi_rap750w-311a', 'edgecore_eap101', 'edgecore_eap102', 'edgecore_eap104', 'edgecore_eap105', 'edgecore_eap111', 'edgecore_eap112', 'edgecore_oap101', 'edgecore_oap101-6e', 'edgecore_oap101e', 'edgecore_oap101e-6e', 'edgecore_oap103', 'hfcl_ion4xe', 'hfcl_ion4xi', 'hfcl_ion4x', 'hfcl_ion4x_2', 'hfcl_ion4x_3', 'hfcl_ion4xi_w', 'hfcl_ion4x_w', 'indio_um-305ax', 'senao_iap4300m', 'senao_iap2300m', 'senao_jeap6500', 'udaya_a6-id2', 'udaya_a6-od2', 'yuncore_ax820', 'yuncore_ax840', 'yuncore_fap640', 'yuncore_fap650', 'yuncore_fap655', 'emplus_wap588m', 'zyxel_nwa130be' ] steps: - uses: actions/checkout@v3 diff --git a/feeds/qca-wifi-7/ath12k-wifi/Makefile b/feeds/qca-wifi-7/ath12k-wifi/Makefile index e5c861595..236efb52d 100755 --- a/feeds/qca-wifi-7/ath12k-wifi/Makefile +++ b/feeds/qca-wifi-7/ath12k-wifi/Makefile @@ -78,6 +78,10 @@ $(call Package/ath12k-wifi-default) TITLE:=board-2.bin for AP72TIP-v4 endef +define Package/ath12k-wifi-zyxel-nwa130be +$(call Package/ath12k-wifi-default) + TITLE:=board-2.bin for NWA130BE +endef define Package/ath12k-wifi-cig-wf189/install $(INSTALL_DIR) $(1)/lib/firmware/ath12k/QCN92XX/hw1.0/ @@ -149,6 +153,13 @@ define Package/ath12k-wifi-sercomm-ap72tip-v4/install $(INSTALL_DATA) ./board-2.bin.ap72tip-v4.IPQ5332 $(1)/lib/firmware/ath12k/IPQ5332/hw1.0/board-2.bin endef +define Package/ath12k-wifi-zyxel-nwa130be/install + $(INSTALL_DIR) $(1)/lib/firmware/ath12k/QCN92XX/hw1.0/ + $(INSTALL_DIR) $(1)/lib/firmware/ath12k/IPQ5332/hw1.0/ + $(INSTALL_DATA) ./board-2.bin.nwa130be.QCN92XX $(1)/lib/firmware/ath12k/QCN92XX/hw1.0/board-2.bin + $(INSTALL_DATA) ./board-2.bin.nwa130be.IPQ5332 $(1)/lib/firmware/ath12k/IPQ5332/hw1.0/board-2.bin +endef + $(eval $(call BuildPackage,ath12k-wifi-cig-wf189)) $(eval $(call BuildPackage,ath12k-wifi-edgecore-eap105)) $(eval $(call BuildPackage,ath12k-wifi-sonicfi-rap7110c-341x)) @@ -158,3 +169,4 @@ $(eval $(call BuildPackage,ath12k-wifi-cig-wf189w)) $(eval $(call BuildPackage,ath12k-wifi-cig-wf189h)) $(eval $(call BuildPackage,ath12k-wifi-sercomm-ap72tip)) $(eval $(call BuildPackage,ath12k-wifi-sercomm-ap72tip-v4)) +$(eval $(call BuildPackage,ath12k-wifi-zyxel-nwa130be)) diff --git a/feeds/qca-wifi-7/ath12k-wifi/board-2.bin.nwa130be.IPQ5332 b/feeds/qca-wifi-7/ath12k-wifi/board-2.bin.nwa130be.IPQ5332 new file mode 100644 index 0000000000000000000000000000000000000000..fd8f775667a290504f6b881eb1f78634771a650c GIT binary patch literal 89292 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 I-M8}p0r73pcK`qY literal 0 HcmV?d00001 diff --git a/feeds/qca-wifi-7/ath12k-wifi/board-2.bin.nwa130be.QCN92XX b/feeds/qca-wifi-7/ath12k-wifi/board-2.bin.nwa130be.QCN92XX new file mode 100644 index 0000000000000000000000000000000000000000..051c6a289e2f39b3663f2e74bc6d4560e2b282c7 GIT binary patch literal 187596 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 literal 0 HcmV?d00001 diff --git a/feeds/qca-wifi-7/ipq53xx/base-files/etc/board.d/01_leds b/feeds/qca-wifi-7/ipq53xx/base-files/etc/board.d/01_leds index 30049cebd..3736ff40d 100755 --- a/feeds/qca-wifi-7/ipq53xx/base-files/etc/board.d/01_leds +++ b/feeds/qca-wifi-7/ipq53xx/base-files/etc/board.d/01_leds @@ -18,6 +18,15 @@ sonicfi,rap750e-h|\ sonicfi,rap750w-311a) ucidef_set_led_default "power" "POWER" "pwm:blue" "on" ;; +zyxel,nwa130be) + #eth0: APPE: phyaddr 4 green:2.5G orange:others + ssdk_sh debug phy set 4 0x40078074 0x670 + ssdk_sh debug phy set 4 0x40078078 0x8600 + + #eth1: MHT: phyaddr 3 green:2.5G orange:others + ssdk_sh debug phy set 3 0x40078074 0x670 + ssdk_sh debug phy set 3 0x40078078 0x8600 + ;; esac board_config_flush diff --git a/feeds/qca-wifi-7/ipq53xx/base-files/etc/board.d/02_network b/feeds/qca-wifi-7/ipq53xx/base-files/etc/board.d/02_network index 6f6bc89b3..b2238fdcf 100755 --- a/feeds/qca-wifi-7/ipq53xx/base-files/etc/board.d/02_network +++ b/feeds/qca-wifi-7/ipq53xx/base-files/etc/board.d/02_network @@ -33,6 +33,9 @@ ipq53xx_setup_interfaces() sercomm,ap72tip-v4) ucidef_set_interface_wan "eth0" ;; + zyxel,nwa130be) + ucidef_set_interfaces_lan_wan "eth1" "eth0" + ;; esac } @@ -87,6 +90,19 @@ qcom_setup_macs() ucidef_set_wireless_macaddr_base 5g $(macaddr_add "$wan_mac" 2) ucidef_set_wireless_macaddr_base 6g $(macaddr_add "$wan_mac" 3) ;; + zyxel,nwa130be) + wan_mac=$(cat /proc/cmdline) + wan_mac="${wan_mac##*hwaddr=}" + wan_mac="${wan_mac%% *}" + wan_mac="$(echo ${wan_mac} | sed 's/\(..\)/\1:/g;s/:$//')" + lan_mac=$(macaddr_add "$wan_mac" 1) + ucidef_set_network_device_mac eth0 $wan_mac + ucidef_set_network_device_mac eth1 $lan_mac + ucidef_set_label_macaddr $wan_mac + ucidef_set_wireless_macaddr_base 2g $(macaddr_add "$wan_mac" 2) + ucidef_set_wireless_macaddr_base 5g $(macaddr_add "$wan_mac" 3) + ucidef_set_wireless_macaddr_base 6g $(macaddr_add "$wan_mac" 4) + ;; *) wan_mac=$(cat /sys/class/net/eth1/address) lan_mac=$(macaddr_add "$wan_mac" 1) diff --git a/feeds/qca-wifi-7/ipq53xx/base-files/etc/hotplug.d/firmware/10-ath12k-caldata b/feeds/qca-wifi-7/ipq53xx/base-files/etc/hotplug.d/firmware/10-ath12k-caldata index b76b333a3..71e79930b 100755 --- a/feeds/qca-wifi-7/ipq53xx/base-files/etc/hotplug.d/firmware/10-ath12k-caldata +++ b/feeds/qca-wifi-7/ipq53xx/base-files/etc/hotplug.d/firmware/10-ath12k-caldata @@ -32,7 +32,8 @@ ath12k/IPQ5332/hw1.0/caldata.bin) cig,wf189|\ edgecore,eap105|\ sercomm,ap72tip-v4|\ - sercomm,ap72tip) + sercomm,ap72tip|\ + zyxel,nwa130be) caldata_extract "0:ART" 0x1000 0x20000 ;; sonicfi,rap7110c-341x) @@ -49,7 +50,8 @@ ath12k/QCN92XX/hw1.0/cal-pci-0001:01:00.0.bin) cig,wf189|\ edgecore,eap105|\ sercomm,ap72tip-v4|\ - sercomm,ap72tip) + sercomm,ap72tip|\ + zyxel,nwa130be) caldata_extract "0:ART" 0x58800 0x2d000 ;; sonicfi,rap7110c-341x) diff --git a/feeds/qca-wifi-7/ipq53xx/base-files/lib/upgrade/platform.sh b/feeds/qca-wifi-7/ipq53xx/base-files/lib/upgrade/platform.sh index 9d72e909a..f7271cb4b 100755 --- a/feeds/qca-wifi-7/ipq53xx/base-files/lib/upgrade/platform.sh +++ b/feeds/qca-wifi-7/ipq53xx/base-files/lib/upgrade/platform.sh @@ -125,5 +125,8 @@ platform_do_upgrade() { sercomm,ap72tip) nand_upgrade_tar "$1" ;; + zyxel,nwa130be) + nand_upgrade_tar "$1" + ;; esac } diff --git a/feeds/qca-wifi-7/ipq53xx/dts/ipq5332-zyxel-nwa130be.dts b/feeds/qca-wifi-7/ipq53xx/dts/ipq5332-zyxel-nwa130be.dts new file mode 100755 index 000000000..6adb86d64 --- /dev/null +++ b/feeds/qca-wifi-7/ipq53xx/dts/ipq5332-zyxel-nwa130be.dts @@ -0,0 +1,592 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) +/* + * IPQ5332 RDP468 board device tree source + * + * Copyright (c) 2020-2021 The Linux Foundation. All rights reserved. + * Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +/dts-v1/; + +#include +#include +#include +#include "ipq5332.dtsi" +#include "ipq5332-default-memory.dtsi" + +/ { + model = "Zyxel NWA130BE"; + compatible = "zyxel,nwa130be", "qcom,ipq5332-ap-mi01.6", "qcom,ipq5332-rdp468", "qcom,ipq5332"; + + aliases { + serial0 = &blsp1_uart0; + serial1 = &blsp1_uart1; + ethernet0 = "/soc/dp1"; + ethernet1 = "/soc/dp2"; + }; + + chosen { + stdout-path = "serial0"; + }; + + soc@0 { + mdio:mdio@90000 { + pinctrl-0 = <&mdio1_pins &mdio0_pins>; + pinctrl-names = "default"; + /*gpio51 for manhattan reset*/ + phy-reset-gpio = <&tlmm 51 GPIO_ACTIVE_LOW>; + phyaddr_fixup = <0xC90F018>; + uniphyaddr_fixup = <0xC90F014>; + mdio_clk_fixup; /* MDIO clock sequence fix up flag */ + status = "okay"; + + phy0: ethernet-phy@0 { + reg = <1>; + fixup; + }; + phy1: ethernet-phy@1 { + reg = <2>; + fixup; + }; + phy2: ethernet-phy@2 { + reg = <3>; + fixup; + }; + phy3: ethernet-phy@3 { + reg = <4>; + fixup; + }; + + switch0@10 { + compatible = "qca,qca8386"; + #address-cells = <1>; + #size-cells = <0>; + reg = <0x10>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + label = "cpu"; + ethernet = <&gmac2>; + dsa-tag-protocol = "qca_4b"; + }; + + port@1 { + reg = <1>; + label = "lan1"; + phy-handle = <&phy0>; + phy-mode = "usxgmii"; + }; + + port@2 { + reg = <2>; + label = "lan2"; + phy-handle = <&phy1>; + phy-mode = "usxgmii"; + }; + + port@3 { + reg = <3>; + label = "lan3"; + phy-handle = <&phy2>; + phy-mode = "usxgmii"; + }; + }; + }; + }; + + ess-instance { + num_devices = <0x2>; + + ess-switch@3a000000 { + switch_cpu_bmp = <0x1>; /* cpu port bitmap */ + switch_lan_bmp = <0x2>; /* lan port bitmap */ + switch_wan_bmp = <0x4>; /* wan port bitmap */ + switch_mac_mode = <0xc>; /* mac mode for uniphy instance0*/ + switch_mac_mode1 = <0xf>; /* mac mode for uniphy instance1*/ + switch_mac_mode2 = <0xff>; /* mac mode for uniphy instance2*/ + + qcom,port_phyinfo { + port@0 { + port_id = <1>; + forced-speed = <2500>; + forced-duplex = <1>; + }; + port@1 { + port_id = <2>; + phy_address = <4>; + }; + }; + + led_source@5 { + source = <5>; + mode = "normal"; + speed = "all"; + blink_en = "enable"; + active = "high"; + }; + }; + + ess-switch1@1 { + compatible = "qcom,ess-switch-qca8386"; + device_id = <1>; + switch_access_mode = "mdio"; + mdio-bus = <&mdio>; + switch_mac_mode = <0xc>; /* mac mode for uniphy instance0 */ + switch_mac_mode1 = <0xff>; /* mac mode1 for uniphy instance1 */ + switch_cpu_bmp = <0x1>; /* cpu port bitmap */ + switch_lan_bmp = <0xe>; /* lan port bitmap */ + switch_wan_bmp = <0x0>; /* wan port bitmap */ + link-polling-required = <0>; + fdb_sync = "interrupt"; + link-intr-gpio = <&tlmm 23 GPIO_ACTIVE_HIGH>; + + qcom,port_phyinfo { + port@0 { + port_id = <0>; + forced-speed = <2500>; + forced-duplex = <1>; + }; + port@1 { + port_id = <1>; + phy_address = <1>; + }; + port@2 { + port_id = <2>; + phy_address = <2>; + }; + port@3 { + port_id = <3>; + phy_address = <3>; + }; + }; + + led_source@2 { + source = <2>; + mode = "normal"; + speed = "all"; + blink_en = "enable"; + active = "high"; + }; + led_source@5 { + source = <5>; + mode = "normal"; + speed = "all"; + blink_en = "enable"; + active = "high"; + }; + led_source@8 { + source = <8>; + mode = "normal"; + speed = "all"; + blink_en = "enable"; + active = "high"; + }; + }; + }; + + dp1 { + device_type = "network"; + compatible = "qcom,nss-dp"; + qcom,id = <2>; + reg = <0x3a504000 0x4000>; + qcom,mactype = <1>; + local-mac-address = [000000000000]; + mdio-bus = <&mdio>; + qcom,phy-mdio-addr = <4>; + qcom,link-poll = <1>; + phy-mode = "sgmii"; + }; + + gmac2:dp2 { + device_type = "network"; + compatible = "qcom,nss-dp"; + qcom,id = <1>; + reg = <0x3a500000 0x4000>; + qcom,mactype = <1>; + local-mac-address = [000000000000]; + phy-mode = "sgmii"; + qcom,mht-dev = <1>; + qcom,is_switch_connected = <1>; + qcom,ppe-offload-disabled = <1>; + }; + + /* EDMA host driver configuration for the board */ + edma@3ab00000 { + qcom,txdesc-ring-start = <4>; /* Tx desc ring start ID */ + qcom,txdesc-rings = <12>; /* Total number of Tx desc rings to be provisioned */ + qcom,mht-txdesc-rings = <8>; /* Extra Tx desc rings to be provisioned for MHT SW ports */ + qcom,txcmpl-ring-start = <4>; /* Tx complete ring start ID */ + qcom,txcmpl-rings = <12>; /* Total number of Tx complete rings to be provisioned */ + qcom,mht-txcmpl-rings = <8>; /* Extra Tx complete rings to be provisioned for mht sw ports. */ + qcom,rxfill-ring-start = <4>; /* Rx fill ring start ID */ + qcom,rxfill-rings = <4>; /* Total number of Rx fill rings to be provisioned */ + qcom,rxdesc-ring-start = <12>; /* Rx desc ring start ID */ + qcom,rxdesc-rings = <4>; /* Total number of Rx desc rings to be provisioned */ + qcom,rx-page-mode = <0>; /* Rx fill ring page mode */ + qcom,tx-map-priority-level = <1>; /* Tx priority level per port */ + qcom,rx-map-priority-level = <1>; /* Rx priority level per core */ + qcom,ppeds-num = <2>; /* Number of PPEDS nodes */ + /* PPE-DS node format: */ + qcom,ppeds-map = <1 1 1 1 32 8>, /* PPEDS Node#0 ring and queue map */ + <2 2 2 2 40 8>; /* PPEDS Node#1 ring and queue map */ + qcom,txdesc-map = <8 9 10 11>, /* Port0 per-core Tx ring map */ + <12 13 14 15>, /* MHT-Port1 per-core Tx ring map */ + <4 5 6 7>, /* MHT-Port2 per-core Tx ring map/packets from vp*/ + <16 17 18 19>, /* MHT-Port3 per-core Tx ring map */ + <20 21 22 23>; /* MHT-Port4 per-core Tx ring map */ + qcom,txdesc-fc-grp-map = <1 2 3 4 5>; /* Per GMAC flow control group map */ + qcom,rxfill-map = <4 5 6 7>; /* Per-core Rx fill ring map */ + qcom,rxdesc-map = <12 13 14 15>; /* Per-core Rx desc ring map */ + qcom,rx-queue-start = <0>; /* Rx queue start */ + qcom,rx-ring-queue-map = <0 8 16 24>, /* Priority 0 queues per-core Rx ring map */ + <1 9 17 25>, /* Priority 1 queues per-core Rx ring map */ + <2 10 18 26>, /* Priority 2 queues per-core Rx ring map */ + <3 11 19 27>, /* Priority 3 queues per-core Rx ring map */ + <4 12 20 28>, /* Priority 4 queues per-core Rx ring map */ + <5 13 21 29>, /* Priority 5 queues per-core Rx ring map */ + <6 14 22 30>, /* Priority 6 queues per-core Rx ring map */ + <7 15 23 31>; /* Priority 7 queues per-core Rx ring map */ + interrupts = <0 163 4>, /* Tx complete ring id #4 IRQ info */ + <0 164 4>, /* Tx complete ring id #5 IRQ info */ + <0 165 4>, /* Tx complete ring id #6 IRQ info */ + <0 166 4>, /* Tx complete ring id #7 IRQ info */ + <0 167 4>, /* Tx complete ring id #8 IRQ info */ + <0 168 4>, /* Tx complete ring id #9 IRQ info */ + <0 169 4>, /* Tx complete ring id #10 IRQ info */ + <0 170 4>, /* Tx complete ring id #11 IRQ info */ + <0 171 4>, /* Tx complete ring id #12 IRQ info */ + <0 172 4>, /* Tx complete ring id #13 IRQ info */ + <0 173 4>, /* Tx complete ring id #14 IRQ info */ + <0 174 4>, /* Tx complete ring id #15 IRQ info */ + <0 139 4>, /* Rx desc ring id #12 IRQ info */ + <0 140 4>, /* Rx desc ring id #13 IRQ info */ + <0 141 4>, /* Rx desc ring id #14 IRQ info */ + <0 142 4>, /* Rx desc ring id #15 IRQ info */ + <0 191 4>, /* Misc error IRQ info */ + <0 160 4>, /* PPEDS Node #1(TxComp ring id #1) TxComplete IRQ info */ + <0 128 4>, /* PPEDS Node #1(Rx Desc ring id #1) Rx Desc IRQ info */ + <0 152 4>, /* PPEDS Node #1(RxFill Desc ring id #1) Rx Fill IRQ info */ + <0 161 4>, /* PPEDS Node #2(TxComp ring id #2) TxComplete IRQ info */ + <0 129 4>, /* PPEDS Node #2(Rx Desc ring id #2) Rx Desc IRQ info */ + <0 153 4>, /* PPEDS Node #2(RxFill Desc ring id #2) Rx Fill IRQ info */ + <0 175 4>, /* MHT port Tx complete ring id #16 IRQ info */ + <0 176 4>, /* MHT port Tx complete ring id #17 IRQ info */ + <0 177 4>, /* MHT port Tx complete ring id #18 IRQ info */ + <0 178 4>, /* MHT port Tx complete ring id #19 IRQ info */ + <0 179 4>, /* MHT port Tx complete ring id #20 IRQ info */ + <0 180 4>, /* MHT port Tx complete ring id #21 IRQ info */ + <0 181 4>, /* MHT port Tx complete ring id #22 IRQ info */ + <0 182 4>; /* MHT port Tx complete ring id #23 IRQ info */ + }; + + leds { + compatible = "gpio-leds"; + pinctrl-0 = <&led_pins>; + pinctrl-names = "default"; + led_blue{ + label = "led_blue"; + gpio = <&tlmm 22 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "led_blue"; + default-state = "off"; + }; + led_green { + label = "led_green"; + gpio = <&tlmm 31 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "led_green"; + default-state = "on"; + }; + led_white { + label = "led_white"; + gpio = <&tlmm 32 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "led_white"; + default-state = "off"; + }; + led_red { + label = "led_red"; + gpio = <&tlmm 44 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "led_red"; + default-state = "off"; + }; + }; + + gpio_keys { + compatible = "gpio-keys"; + pinctrl-0 = <&button_pins>; + pinctrl-names = "default"; + button@1 { + label = "reset"; + linux,code = ; + gpios = <&tlmm 30 GPIO_ACTIVE_LOW>; + linux,input-type = <1>; + debounce-interval = <60>; + }; + }; + + wsi: wsi { + id = <0>; + num_chip = <2>; + status = "okay"; + chip_info = <0 1 1>, + <1 1 0>; + }; + }; +}; + +&wifi0 { + led-gpio = <&tlmm 36 GPIO_ACTIVE_HIGH>; + qcom,rproc = <&q6_wcss_pd1>; + qcom,rproc_rpd = <&q6v5_wcss>; + qcom,multipd_arch; + qcom,userpd-subsys-name = "q6v5_wcss_userpd1"; + memory-region = <&q6_region>; + qcom,wsi = <&wsi>; + qcom,wsi_index = <0>; + qcom,board_id = <0x12>; + status = "okay"; +}; + +&qcn9224_pcie1 { + status = "okay"; +}; + +&blsp1_uart0 { + pinctrl-0 = <&serial_0_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +&blsp1_uart1 { + pinctrl-0 = <&serial_1_pins>; + pinctrl-names = "default"; + status = "disabled"; +}; + +&blsp1_spi0 { + pinctrl-0 = <&spi_0_data_clk_pins &spi_0_cs_pins>; + pinctrl-names = "default"; + status = "okay"; + + flash@0 { + compatible = "n25q128a11", "micron,n25q128a11", "jedec,spi-nor"; + reg = <0>; + #address-cells = <1>; + #size-cells = <1>; + spi-max-frequency = <50000000>; + }; +}; + +&sdhc { + bus-width = <4>; + max-frequency = <192000000>; + mmc-ddr-1_8v; + mmc-hs200-1_8v; + non-removable; + pinctrl-0 = <&sdc_default_state>; + pinctrl-names = "default"; + status = "disabled"; +}; + +&sleep_clk { + clock-frequency = <32000>; +}; + +&xo { + clock-frequency = <24000000>; +}; + +&qpic_bam { + status = "okay"; +}; + +&qpic_nand { + pinctrl-0 = <&qspi_default_state>; + pinctrl-names = "default"; + status = "okay"; + + nandcs@0 { + reg = <0>; + #address-cells = <1>; + #size-cells = <1>; + + nand-ecc-strength = <8>; + nand-ecc-step-size = <512>; + nand-bus-width = <8>; + }; +}; + +&pcie1_phy_x2 { + status = "okay"; +}; + +&pcie1 { + pinctrl-0 = <&pcie1_default_state>; + pinctrl-names = "default"; + perst-gpios = <&tlmm 47 GPIO_ACTIVE_LOW>; + status = "okay"; + + pcie1_rp { + reg = <0 0 0 0 0>; + + qcom,mhi@1 { + reg = <0 0 0 0 0>; + boot-args = <0x2 0x4 0x34 0x3 0x0 0x0 /* MX Rail, GPIO52, Drive strength 0x3 */ + 0x4 0x4 0x18 0x3 0x0 0x0 /* RFA1p2 Rail, GPIO24, Drive strength 0x3 */ + 0x0 0x4 0x0 0x0 0x0 0x0>; /* End of arguments */ + memory-region = <&qcn9224_pcie1>; + qcom,wsi = <&wsi>; + qcom,wsi_index = <1>; + qcom,board_id = <0x1019>; + }; + }; +}; + +/* PINCTRL */ + +&tlmm { + + led_pins: led_pins { + led_blue { + pins = "gpio22"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + + led_green { + pins = "gpio31"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + + led_white { + pins = "gpio32"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + + led_red { + pins = "gpio44"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + }; + + + sdc_default_state: sdc-default-state { + clk-pins { + pins = "gpio13"; + function = "sdc_clk"; + drive-strength = <8>; + bias-disable; + }; + + cmd-pins { + pins = "gpio12"; + function = "sdc_cmd"; + drive-strength = <8>; + bias-pull-up; + }; + + data-pins { + pins = "gpio8", "gpio9", "gpio10", "gpio11"; + function = "sdc_data"; + drive-strength = <8>; + bias-pull-up; + }; + }; + + spi_0_data_clk_pins: spi-0-data-clk-state { + pins = "gpio14", "gpio15", "gpio16"; + function = "blsp0_spi"; + drive-strength = <2>; + bias-pull-down; + }; + + spi_0_cs_pins: spi-0-cs-state { + pins = "gpio17"; + function = "blsp0_spi"; + drive-strength = <2>; + bias-pull-up; + }; + + qspi_default_state: qspi-default-state { + qspi_clock { + pins = "gpio13"; + function = "qspi_clk"; + drive-strength = <8>; + bias-pull-down; + }; + + qspi_cs { + pins = "gpio12"; + function = "qspi_cs"; + drive-strength = <8>; + bias-pull-up; + }; + + qspi_data { + pins = "gpio8", "gpio9", "gpio10", "gpio11"; + function = "qspi_data"; + drive-strength = <8>; + bias-pull-down; + }; + }; + + serial_1_pins: serial1-pinmux { + pins = "gpio33", "gpio34", "gpio35", "gpio36"; + function = "blsp1_uart2"; + drive-strength = <8>; + bias-pull-up; + }; + + button_pins: button-state { + pins = "gpio30"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; + }; + + pwm_pins: pwm-state { + pins = "gpio46"; + function = "pwm0"; + drive-strength = <8>; + }; + + pcie1_default_state: pcie1-default-state { + pins = "gpio47"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; + output-low; + }; +}; + +&license_manager { + status = "okay"; +}; + +&usb3 { + qcom,multiplexed-phy; + status = "okay"; +}; + +&pwm { + pinctrl-0 = <&pwm_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +&hs_m31phy_0 { + status = "okay"; +}; + +&ssuniphy_0 { + status = "okay"; +}; diff --git a/feeds/qca-wifi-7/ipq53xx/image/ipq53xx.mk b/feeds/qca-wifi-7/ipq53xx/image/ipq53xx.mk index 7590bdc70..aa0bfb83a 100755 --- a/feeds/qca-wifi-7/ipq53xx/image/ipq53xx.mk +++ b/feeds/qca-wifi-7/ipq53xx/image/ipq53xx.mk @@ -119,3 +119,18 @@ define Device/cig_wf189h DEVICE_PACKAGES := ath12k-wifi-cig-wf189h ath12k-firmware-ipq5332-peb-peb endef TARGET_DEVICES += cig_wf189h + +define Device/zyxel_nwa130be + DEVICE_TITLE := Zyxel NWA130BE + DEVICE_DTS := ipq5332-zyxel-nwa130be + DEVICE_DTS_DIR := ../dts + DEVICE_DTS_CONFIG := config@mi01.6 + IMAGES := sysupgrade.tar nand-factory.bin nand-factory.ubi + BLOCKSIZE := 256k + PAGESIZE := 4096 + IMAGE/sysupgrade.tar := sysupgrade-tar | append-metadata + IMAGE/nand-factory.bin := append-ubi | qsdk-ipq-factory-nand + IMAGE/nand-factory.ubi := append-ubi + DEVICE_PACKAGES := ath12k-wifi-zyxel-nwa130be ath12k-firmware-qcn92xx ath12k-firmware-ipq5332 +endef +TARGET_DEVICES += zyxel_nwa130be diff --git a/feeds/qca-wifi-7/mac80211/Makefile b/feeds/qca-wifi-7/mac80211/Makefile index 2b61aeb22..78261face 100644 --- a/feeds/qca-wifi-7/mac80211/Makefile +++ b/feeds/qca-wifi-7/mac80211/Makefile @@ -262,6 +262,11 @@ define KernelPackage/mt7601u AUTOLOAD:=$(call AutoProbe,mt7601u) endef +ifdef CONFIG_TARGET_PROFILE +TARGET_PROFILE=$(subst ",,$(CONFIG_TARGET_PROFILE)) +PATCH_PROFILE_NAME=patches-$(subst DEVICE_,,$(TARGET_PROFILE)) +endif + ifdef CONFIG_PACKAGE_MAC80211_DEBUGFS config-y += \ CFG80211_DEBUGFS \ @@ -362,6 +367,7 @@ define Build/Patch $(call PatchDir,$(PKG_BUILD_DIR),$(EXTERNAL_PATCH_DIR)/ath12k,ath12k/) $(call PatchDir,$(PKG_BUILD_DIR),$(EXTERNAL_PATCH_DIR)/pending,pending/) $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_TIP_DIR)/pending,pending/) + $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_PROFILE_NAME)/ath12k,ath12k/) $(if $(QUILT),touch $(PKG_BUILD_DIR)/.quilt_used) endef diff --git a/feeds/qca-wifi-7/mac80211/patches-zyxel_nwa130be/0001-thermal-thermal-setting.patch b/feeds/qca-wifi-7/mac80211/patches-zyxel_nwa130be/0001-thermal-thermal-setting.patch new file mode 100644 index 000000000..1e6d53afd --- /dev/null +++ b/feeds/qca-wifi-7/mac80211/patches-zyxel_nwa130be/0001-thermal-thermal-setting.patch @@ -0,0 +1,59 @@ +From 1a46aa106a50a06bfa4b669d87a8143c3d59f2f4 Mon Sep 17 00:00:00 2001 +From: YenLin Pan +Date: Wed, 14 May 2025 14:14:22 +0800 +Subject: [PATCH] thermal: thermal setting + +lv0 -100 -hi0 105 -off0 0 +lv1 95 -hi1 110 -off1 75 +lv2 100 -hi2 115 -off2 98 +lv3 105 -hi3 120 -off3 100 + +Signed-off-by: YenLin Pan +--- + drivers/net/wireless/ath/ath12k/thermal.h | 16 ++++++++-------- + 1 file changed, 8 insertions(+), 8 deletions(-) + +diff --git a/drivers/net/wireless/ath/ath12k/thermal.h b/drivers/net/wireless/ath/ath12k/thermal.h +index 5c91906..a493cd5 100644 +--- a/drivers/net/wireless/ath/ath12k/thermal.h ++++ b/drivers/net/wireless/ath/ath12k/thermal.h +@@ -13,28 +13,28 @@ + + /* Below temperatures are in celsius */ + #define ATH12K_THERMAL_LVL0_TEMP_LOW_MARK -100 +-#define ATH12K_THERMAL_LVL0_TEMP_HIGH_MARK 100 ++#define ATH12K_THERMAL_LVL0_TEMP_HIGH_MARK 105 + #define ATH12K_THERMAL_LVL1_TEMP_LOW_MARK 95 +-#define ATH12K_THERMAL_LVL1_TEMP_HIGH_MARK 105 ++#define ATH12K_THERMAL_LVL1_TEMP_HIGH_MARK 110 + #define ATH12K_THERMAL_LVL2_TEMP_LOW_MARK 100 +-#define ATH12K_THERMAL_LVL2_TEMP_HIGH_MARK 110 ++#define ATH12K_THERMAL_LVL2_TEMP_HIGH_MARK 115 + #define ATH12K_THERMAL_LVL3_TEMP_LOW_MARK 105 + #define ATH12K_THERMAL_LVL3_TEMP_HIGH_MARK 120 + + #define ATH12K_THERMAL_LVL0_V2_TEMP_LOW_MARK -100 +-#define ATH12K_THERMAL_LVL0_V2_TEMP_HIGH_MARK 95 ++#define ATH12K_THERMAL_LVL0_V2_TEMP_HIGH_MARK 105 + #define ATH12K_THERMAL_LVL1_V2_TEMP_LOW_MARK 90 +-#define ATH12K_THERMAL_LVL1_V2_TEMP_HIGH_MARK 100 ++#define ATH12K_THERMAL_LVL1_V2_TEMP_HIGH_MARK 110 + #define ATH12K_THERMAL_LVL2_V2_TEMP_LOW_MARK 95 + #define ATH12K_THERMAL_LVL2_V2_TEMP_HIGH_MARK 105 + #define ATH12K_THERMAL_LVL3_V2_TEMP_LOW_MARK 100 +-#define ATH12K_THERMAL_LVL3_V2_TEMP_HIGH_MARK 110 ++#define ATH12K_THERMAL_LVL3_V2_TEMP_HIGH_MARK 115 + #define ATH12K_THERMAL_LVL4_V2_TEMP_LOW_MARK 105 + #define ATH12K_THERMAL_LVL4_V2_TEMP_HIGH_MARK 120 + + #define ATH12K_THERMAL_LVL0_DUTY_CYCLE 0 +-#define ATH12K_THERMAL_LVL1_DUTY_CYCLE 50 +-#define ATH12K_THERMAL_LVL2_DUTY_CYCLE 90 ++#define ATH12K_THERMAL_LVL1_DUTY_CYCLE 75 ++#define ATH12K_THERMAL_LVL2_DUTY_CYCLE 98 + #define ATH12K_THERMAL_LVL3_DUTY_CYCLE 100 + + #define ATH12K_THERMAL_LVL0_V2_DUTY_CYCLE ATH12K_THERMAL_LVL0_DUTY_CYCLE +-- +2.34.1 + diff --git a/feeds/qca-wifi-7/qca-ssdk-qca/Makefile b/feeds/qca-wifi-7/qca-ssdk-qca/Makefile index 35b4a3d5b..a285e9ccf 100644 --- a/feeds/qca-wifi-7/qca-ssdk-qca/Makefile +++ b/feeds/qca-wifi-7/qca-ssdk-qca/Makefile @@ -97,6 +97,11 @@ else ifneq ($(CONFIG_ARCH),) TARGET_NAME=$(subst ",,$(CONFIG_ARCH))-openwrt-linux$(if $(CONFIG_TARGET_SUFFIX),-$(subst ",,$(CONFIG_TARGET_SUFFIX))) endif +ifdef CONFIG_TARGET_PROFILE +TARGET_PROFILE=$(subst ",,$(CONFIG_TARGET_PROFILE)) +PATCH_PROFILE_NAME=patches-$(subst DEVICE_,,$(TARGET_PROFILE)) +endif + QCASSDK_CONFIG_OPTS+= TOOL_PATH=$(TOOLCHAIN_BIN_PATH) \ SYS_PATH=$(LINUX_DIR) \ TOOLPREFIX=$(TARGET_CROSS) \ @@ -193,5 +198,10 @@ define KernelPackage/qca-ssdk-qca-hnat/install $(INSTALL_BIN) ./files/qca-ssdk $(1)/etc/init.d/qca-ssdk endef +define patch_profile + $(call PatchDir/Default,$(PKG_BUILD_DIR),./$(PATCH_PROFILE_NAME)) +endef + +Hooks/Prepare/Post += patch_profile $(eval $(call KernelPackage,qca-ssdk-qca-nohnat)) $(eval $(call KernelPackage,qca-ssdk-qca-hnat)) diff --git a/feeds/qca-wifi-7/qca-ssdk-qca/patches-zyxel_nwa130be/0001-pinctrl-make-the-switch-LED-works.patch b/feeds/qca-wifi-7/qca-ssdk-qca/patches-zyxel_nwa130be/0001-pinctrl-make-the-switch-LED-works.patch new file mode 100644 index 000000000..0fd4afc5b --- /dev/null +++ b/feeds/qca-wifi-7/qca-ssdk-qca/patches-zyxel_nwa130be/0001-pinctrl-make-the-switch-LED-works.patch @@ -0,0 +1,47 @@ +From 7fa9e9b683f1c573c58a14755347988919bc7d06 Mon Sep 17 00:00:00 2001 +From: YenLin Pan +Date: Wed, 14 May 2025 13:47:06 +0800 +Subject: [PATCH] pinctrl: make the switch LED works + +Enable switch LED pin definition for LED0/LED1/LED2 control + +Signed-off-by: YenLin Pan +--- + src/init/ssdk_mht_pinctrl.c | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +diff --git a/src/init/ssdk_mht_pinctrl.c b/src/init/ssdk_mht_pinctrl.c +index 2debe59..1ae0002 100755 +--- a/src/init/ssdk_mht_pinctrl.c ++++ b/src/init/ssdk_mht_pinctrl.c +@@ -33,11 +33,17 @@ static struct mht_pinctrl_setting mht_pin_settings[] = { + /*PINs default MUX Setting*/ + MHT_PIN_SETTING_MUX(0, MHT_PIN_FUNC_INTN_WOL), + MHT_PIN_SETTING_MUX(1, MHT_PIN_FUNC_INTN), +-#if 0 ++#if 1 + MHT_PIN_SETTING_MUX(2, MHT_PIN_FUNC_P0_LED_0), + MHT_PIN_SETTING_MUX(3, MHT_PIN_FUNC_P1_LED_0), + MHT_PIN_SETTING_MUX(4, MHT_PIN_FUNC_P2_LED_0), + MHT_PIN_SETTING_MUX(5, MHT_PIN_FUNC_P3_LED_0), ++ MHT_PIN_SETTING_MUX(6, MHT_PIN_FUNC_P0_LED_2), ++ MHT_PIN_SETTING_MUX(7, MHT_PIN_FUNC_P1_LED_2), ++ MHT_PIN_SETTING_MUX(8, MHT_PIN_FUNC_P2_LED_2), ++ MHT_PIN_SETTING_MUX(9, MHT_PIN_FUNC_P3_LED_2), ++#endif ++#if 0 + MHT_PIN_SETTING_MUX(6, MHT_PIN_FUNC_PPS_IN), + MHT_PIN_SETTING_MUX(7, MHT_PIN_FUNC_TOD_IN), + MHT_PIN_SETTING_MUX(8, MHT_PIN_FUNC_RTC_REFCLK_IN), +@@ -49,7 +55,7 @@ static struct mht_pinctrl_setting mht_pin_settings[] = { + MHT_PIN_SETTING_MUX(13, MHT_PIN_FUNC_P0_TOD_OUT), + MHT_PIN_SETTING_MUX(14, MHT_PIN_FUNC_P0_CLK125_TDI), + MHT_PIN_SETTING_MUX(15, MHT_PIN_FUNC_P0_SYNC_CLKO_PTP), +-#if 0 ++#if 1 + MHT_PIN_SETTING_MUX(16, MHT_PIN_FUNC_P0_LED_1), + MHT_PIN_SETTING_MUX(17, MHT_PIN_FUNC_P1_LED_1), + MHT_PIN_SETTING_MUX(18, MHT_PIN_FUNC_P2_LED_1), +-- +2.34.1 + diff --git a/feeds/ucentral/rrmd/files/usr/share/rrmd/policy_chanutil.uc b/feeds/ucentral/rrmd/files/usr/share/rrmd/policy_chanutil.uc index 5ce20fee7..0afbe0519 100644 --- a/feeds/ucentral/rrmd/files/usr/share/rrmd/policy_chanutil.uc +++ b/feeds/ucentral/rrmd/files/usr/share/rrmd/policy_chanutil.uc @@ -19,6 +19,7 @@ switch(board_name) { case 'edgecore,eap105': case 'edgecore,oap101-6e': case 'edgecore,oap101e-6e': +case 'zyxel,nwa130be': num_radios = 3; break; } diff --git a/profiles/zyxel_nwa130be.yml b/profiles/zyxel_nwa130be.yml new file mode 100644 index 000000000..a29b2d2a1 --- /dev/null +++ b/profiles/zyxel_nwa130be.yml @@ -0,0 +1,16 @@ +--- +profile: zyxel_nwa130be +target: ipq53xx +subtarget: generic +description: Build image for the zyxel nwa130be +image: bin/targets/ipq53xx/generic/openwrt-ipq53xx-zyxel_nwa130be-squashfs-sysupgrade.tar +feeds: + - name: qca + path: ../../feeds/qca-wifi-7 +packages: + - ipq53xx + - qca-ssdk-shell +include: + - ucentral-ap +diffconfig: | + CONFIG_KERNEL_IPQ_MEM_PROFILE=0