From d462211fda260ec011be35555b1851ad223c29c4 Mon Sep 17 00:00:00 2001 From: Jesse Wu Date: Tue, 8 Jul 2025 10:59:34 +0800 Subject: [PATCH] ipq807x: add EMPLUS WAP380C support Signed-off-by: Jesse Wu --- feeds/ipq807x_v5.4/ath11k-wifi/Makefile | 8 +- .../board-emplus-wap380c.bin.IPQ8074 | Bin 0 -> 131072 bytes .../ipq807x/base-files/etc/board.d/01_leds | 6 + .../ipq807x/base-files/etc/board.d/02_network | 1 + .../etc/hotplug.d/firmware/10-ath11k-caldata | 1 + .../base-files/lib/upgrade/platform.sh | 4 +- .../boot/dts/qcom/qcom-ipq807x-wap380c.dts | 648 ++++++++++++++++++ feeds/ipq807x_v5.4/ipq807x/image/ipq807x.mk | 9 + .../certificates/files/usr/bin/mount_certs | 3 +- profiles/emplus_wap380c.yml | 21 + 10 files changed, 696 insertions(+), 5 deletions(-) create mode 100644 feeds/ipq807x_v5.4/ath11k-wifi/board-emplus-wap380c.bin.IPQ8074 create mode 100644 feeds/ipq807x_v5.4/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq807x-wap380c.dts create mode 100644 profiles/emplus_wap380c.yml diff --git a/feeds/ipq807x_v5.4/ath11k-wifi/Makefile b/feeds/ipq807x_v5.4/ath11k-wifi/Makefile index 65a6ba0bc..d813e4be4 100755 --- a/feeds/ipq807x_v5.4/ath11k-wifi/Makefile +++ b/feeds/ipq807x_v5.4/ath11k-wifi/Makefile @@ -41,8 +41,10 @@ ALLWIFIBOARDS:= \ edgecore-oap102 \ edgecore-oap103 \ edgecore-eap104 \ + emplus-wap380c \ emplus-wap385c \ emplus-wap386v2 \ + emplus-wap581 \ liteon-wpx8324 \ indio-um-310ax-v1 \ indio-um-510axp-v1 \ @@ -64,8 +66,7 @@ ALLWIFIBOARDS:= \ yuncore-fap655 \ udaya-a6-id2 \ udaya-a6-od2 \ - meshpp-s618 \ - emplus-wap581 + meshpp-s618 ALLWIFIPACKAGES:=$(foreach BOARD,$(ALLWIFIBOARDS),ath11k-wifi-$(BOARD)) @@ -408,8 +409,10 @@ $(eval $(call generate-ath11k-wifi-package,edgecore-eap102,Edgecore EAP102)) $(eval $(call generate-ath11k-wifi-package,edgecore-oap102,Edgecore OAP102)) $(eval $(call generate-ath11k-wifi-package,edgecore-oap103,Edgecore OAP103)) $(eval $(call generate-ath11k-wifi-package,edgecore-eap104,Edgecore EAP104)) +$(eval $(call generate-ath11k-wifi-package,emplus-wap380c,Emplus WAP380C)) $(eval $(call generate-ath11k-wifi-package,emplus-wap385c,Emplus WAP385C)) $(eval $(call generate-ath11k-wifi-package,emplus-wap386v2,Emplus WAP386 V2)) +$(eval $(call generate-ath11k-wifi-package,emplus-wap581,Emplus WAP581)) $(eval $(call generate-ath11k-wifi-package,liteon-wpx8324,Liteon WPX8324)) $(eval $(call generate-ath11k-wifi-package,indio-um-310ax-v1,Indio UM-310AX V1)) $(eval $(call generate-ath11k-wifi-package,indio-um-510axp-v1,Indio UM-510AXP V1)) @@ -429,7 +432,6 @@ $(eval $(call generate-ath11k-wifi-package,yuncore-fap655,YunCore FAP655)) $(eval $(call generate-ath11k-wifi-package,udaya-a6-id2,Udaya A6-ID2)) $(eval $(call generate-ath11k-wifi-package,udaya-a6-od2,Udaya A6-OD2)) $(eval $(call generate-ath11k-wifi-package,wallys-dr5018,Wallys DR5018)) -$(eval $(call generate-ath11k-wifi-package,emplus-wap581,emplus-wap581)) $(foreach PACKAGE,$(ALLWIFIPACKAGES),$(eval $(call BuildPackage,$(PACKAGE)))) $(eval $(call BuildPackage,ath11k-wifi-qcom-ipq5018)) diff --git a/feeds/ipq807x_v5.4/ath11k-wifi/board-emplus-wap380c.bin.IPQ8074 b/feeds/ipq807x_v5.4/ath11k-wifi/board-emplus-wap380c.bin.IPQ8074 new file mode 100644 index 0000000000000000000000000000000000000000..624ca0b57f2bc5bb3853ffe73d71adf1d24db2c4 GIT binary patch literal 131072 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 m;k#IJihLaUpSSMfVW_Sv1QY@a0fm4; + #size-cells = <0x2>; + model = "Emplus WAP380C"; + compatible = "emplus,wap380c", "qcom,ipq8074-ap-hk07", "qcom,ipq8074"; + qcom,msm-id = <0x143 0x0>; + interrupt-parent = <&intc>; + + aliases { + serial0 = &blsp1_uart5; + /* Aliases as required by u-boot to patch MAC addresses */ + ethernet0 = "/soc/dp6"; + + led-boot = &led_power; + led-failsafe = &led_power; + led-running = &led_power; + led-upgrade = &led_power; + }; + + chosen { + stdout-path = "serial0"; + }; + + soc { + qti: ledc@191E000 { + compatible = "qti,ledc"; + reg = <0x191E000 0x20070>; + reg-names = "ledc_base_addr"; + qti,tcsr_ledc_values = <0x0320193 0x00000000 \ + 0x00000000 0x00000000 \ + 0x00000000 0xFFFFFFFF \ + 0xFFFF7FFF 0xFFFFFFFF \ + 0x007D0820 0x00000000 \ + 0x10482094 0x03FFFFE1>; + qti,ledc_blink_indices_cnt = <6>; + qti,ledc_blink_indices = <15 14 13 12 11 10>; + qti,ledc_blink_idx_src_pair = <5 20>; + status = "ok"; + }; + + pinctrl@1000000 { + button_pins: button_pins { + reset_button { + pins = "gpio52"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; + }; + }; + + mdio_pins: mdio_pinmux { + mux_0 { + pins = "gpio68"; + function = "mdc"; + drive-strength = <8>; + bias-pull-up; + }; + mux_1 { + pins = "gpio69"; + function = "mdio"; + drive-strength = <8>; + bias-pull-up; + }; + mux_2 { + pins = "gpio44"; + function = "gpio"; + bias-pull-up; + }; + }; + + ledc_pins: ledc_pinmux { + led_clk { + pins = "gpio18"; + function = "led0"; + drive-strength = <8>; + bias-pull-down; + }; + led_data { + pins = "gpio19"; + function = "led1"; + drive-strength = <8>; + bias-pull-down; + }; + led_clr { + pins = "gpio20"; + function = "led2"; + drive-strength = <8>; + bias-pull-up; + }; + }; + }; + + serial@78b3000 { + status = "ok"; + }; + + spi@78b5000 { + status = "ok"; + pinctrl-0 = <&spi_0_pins>; + pinctrl-names = "default"; + cs-select = <0>; + + m25p80@0 { + compatible = "n25q128a11"; + #address-cells = <1>; + #size-cells = <1>; + reg = <0>; + spi-max-frequency = <50000000>; + }; + }; + + dma@7984000 { + status = "ok"; + }; + + nand@79b0000 { + status = "ok"; + + nand@0 { + reg = <0>; + #address-cells = <1>; + #size-cells = <1>; + + nand-ecc-strength = <4>; + nand-ecc-step-size = <512>; + nand-bus-width = <8>; + }; + }; + + ssphy@78000 { + status = "ok"; + }; + + ssphy@58000 { + status = "ok"; + }; + + gpio_keys { + compatible = "gpio-keys"; + pinctrl-0 = <&button_pins>; + pinctrl-names = "default"; + status = "ok"; + + button@1 { + label = "reset"; + linux,code = ; + gpios = <&tlmm 52 GPIO_ACTIVE_LOW>; + linux,input-type = <1>; + debounce-interval = <60>; + }; + }; + + mdio: mdio@90000 { + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; + phy-reset-gpio = <&tlmm 43 1 &tlmm 44 1>; + phy0: ethernet-phy@0 { + reg = <0>; + }; + phy1: ethernet-phy@1 { + reg = <1>; + }; + phy2: ethernet-phy@2 { + reg = <2>; + }; + phy3: ethernet-phy@3 { + reg = <3>; + }; + phy4: ethernet-phy@4 { + reg = <4>; + }; + phy5: ethernet-phy@5 { + reg = <28>; + }; + }; + + ess-switch@3a000000 { + switch_cpu_bmp = <0x1>; /* cpu port bitmap */ + switch_lan_bmp = <0x3e>; /* lan port bitmap */ + switch_wan_bmp = <0x40>; /* wan port bitmap */ + switch_mac_mode = <0x0>; /* mac mode for uniphy instance0*/ + switch_mac_mode1 = <0xff>; /* mac mode for uniphy instance1*/ + switch_mac_mode2 = <0xf>; /* mac mode for uniphy instance2*/ + bm_tick_mode = <0>; /* bm tick mode */ + tm_tick_mode = <0>; /* tm tick mode */ + qcom,port_phyinfo { + port@0 { + port_id = <1>; + phy_address = <0>; + }; + port@1 { + port_id = <2>; + phy_address = <1>; + }; + port@2 { + port_id = <3>; + phy_address = <2>; + }; + port@3 { + port_id = <4>; + phy_address = <3>; + }; + port@4 { + port_id = <5>; + phy_address = <4>; + }; + port@5 { + port_id = <6>; + phy_address = <28>; + port_mac_sel = "QGMAC_PORT"; + }; + }; + port_scheduler_resource { + port@0 { + port_id = <0>; + ucast_queue = <0 143>; + mcast_queue = <256 271>; + l0sp = <0 35>; + l0cdrr = <0 47>; + l0edrr = <0 47>; + l1cdrr = <0 7>; + l1edrr = <0 7>; + }; + port@1 { + port_id = <1>; + ucast_queue = <144 159>; + mcast_queue = <272 275>; + l0sp = <36 39>; + l0cdrr = <48 63>; + l0edrr = <48 63>; + l1cdrr = <8 11>; + l1edrr = <8 11>; + }; + port@2 { + port_id = <2>; + ucast_queue = <160 175>; + mcast_queue = <276 279>; + l0sp = <40 43>; + l0cdrr = <64 79>; + l0edrr = <64 79>; + l1cdrr = <12 15>; + l1edrr = <12 15>; + }; + port@3 { + port_id = <3>; + ucast_queue = <176 191>; + mcast_queue = <280 283>; + l0sp = <44 47>; + l0cdrr = <80 95>; + l0edrr = <80 95>; + l1cdrr = <16 19>; + l1edrr = <16 19>; + }; + port@4 { + port_id = <4>; + ucast_queue = <192 207>; + mcast_queue = <284 287>; + l0sp = <48 51>; + l0cdrr = <96 111>; + l0edrr = <96 111>; + l1cdrr = <20 23>; + l1edrr = <20 23>; + }; + port@5 { + port_id = <5>; + ucast_queue = <208 223>; + mcast_queue = <288 291>; + l0sp = <52 55>; + l0cdrr = <112 127>; + l0edrr = <112 127>; + l1cdrr = <24 27>; + l1edrr = <24 27>; + }; + port@6 { + port_id = <6>; + ucast_queue = <224 239>; + mcast_queue = <292 295>; + l0sp = <56 59>; + l0cdrr = <128 143>; + l0edrr = <128 143>; + l1cdrr = <28 31>; + l1edrr = <28 31>; + }; + port@7 { + port_id = <7>; + ucast_queue = <240 255>; + mcast_queue = <296 299>; + l0sp = <60 63>; + l0cdrr = <144 159>; + l0edrr = <144 159>; + l1cdrr = <32 35>; + l1edrr = <32 35>; + }; + }; + port_scheduler_config { + port@0 { + port_id = <0>; + l1scheduler { + group@0 { + sp = <0 1>; /*L0 SPs*/ + /*cpri cdrr epri edrr*/ + cfg = <0 0 0 0>; + }; + }; + l0scheduler { + group@0 { + /*unicast queues*/ + ucast_queue = <0 4 8>; + /*multicast queues*/ + mcast_queue = <256 260>; + /*sp cpri cdrr epri edrr*/ + cfg = <0 0 0 0 0>; + }; + group@1 { + ucast_queue = <1 5 9>; + mcast_queue = <257 261>; + cfg = <0 1 1 1 1>; + }; + group@2 { + ucast_queue = <2 6 10>; + mcast_queue = <258 262>; + cfg = <0 2 2 2 2>; + }; + group@3 { + ucast_queue = <3 7 11>; + mcast_queue = <259 263>; + cfg = <0 3 3 3 3>; + }; + }; + }; + port@1 { + port_id = <1>; + l1scheduler { + group@0 { + sp = <36>; + cfg = <0 8 0 8>; + }; + group@1 { + sp = <37>; + cfg = <1 9 1 9>; + }; + }; + l0scheduler { + group@0 { + ucast_queue = <144>; + ucast_loop_pri = <16>; + mcast_queue = <272>; + mcast_loop_pri = <4>; + cfg = <36 0 48 0 48>; + }; + }; + }; + port@2 { + port_id = <2>; + l1scheduler { + group@0 { + sp = <40>; + cfg = <0 12 0 12>; + }; + group@1 { + sp = <41>; + cfg = <1 13 1 13>; + }; + }; + l0scheduler { + group@0 { + ucast_queue = <160>; + ucast_loop_pri = <16>; + mcast_queue = <276>; + mcast_loop_pri = <4>; + cfg = <40 0 64 0 64>; + }; + }; + }; + port@3 { + port_id = <3>; + l1scheduler { + group@0 { + sp = <44>; + cfg = <0 16 0 16>; + }; + group@1 { + sp = <45>; + cfg = <1 17 1 17>; + }; + }; + l0scheduler { + group@0 { + ucast_queue = <176>; + ucast_loop_pri = <16>; + mcast_queue = <280>; + mcast_loop_pri = <4>; + cfg = <44 0 80 0 80>; + }; + }; + }; + port@4 { + port_id = <4>; + l1scheduler { + group@0 { + sp = <48>; + cfg = <0 20 0 20>; + }; + group@1 { + sp = <49>; + cfg = <1 21 1 21>; + }; + }; + l0scheduler { + group@0 { + ucast_queue = <192>; + ucast_loop_pri = <16>; + mcast_queue = <284>; + mcast_loop_pri = <4>; + cfg = <48 0 96 0 96>; + }; + }; + }; + port@5 { + port_id = <5>; + l1scheduler { + group@0 { + sp = <52>; + cfg = <0 24 0 24>; + }; + group@1 { + sp = <53>; + cfg = <1 25 1 25>; + }; + }; + l0scheduler { + group@0 { + ucast_queue = <208>; + ucast_loop_pri = <16>; + mcast_queue = <288>; + mcast_loop_pri = <4>; + cfg = <52 0 112 0 112>; + }; + }; + }; + port@6 { + port_id = <6>; + l1scheduler { + group@0 { + sp = <56>; + cfg = <0 28 0 28>; + }; + group@1 { + sp = <57>; + cfg = <1 29 1 29>; + }; + }; + l0scheduler { + group@0 { + ucast_queue = <224>; + ucast_loop_pri = <16>; + mcast_queue = <292>; + mcast_loop_pri = <4>; + cfg = <56 0 128 0 128>; + }; + }; + }; + port@7 { + port_id = <7>; + l1scheduler { + group@0 { + sp = <60>; + cfg = <0 32 0 32>; + }; + group@1 { + sp = <61>; + cfg = <1 33 1 33>; + }; + }; + l0scheduler { + group@0 { + ucast_queue = <240>; + ucast_loop_pri = <16>; + mcast_queue = <296>; + cfg = <60 0 144 0 144>; + }; + }; + }; + }; + }; + + dp6 { + device_type = "network"; + compatible = "qcom,nss-dp"; + qcom,id = <6>; + reg = <0x3a001800 0x200>; + qcom,mactype = <0>; + local-mac-address = [000000000000]; + qcom,link-poll = <1>; + qcom,phy-mdio-addr = <28>; + phy-mode = "sgmii"; + }; + + nss-macsec1 { + compatible = "qcom,nss-macsec"; + phy_addr = <0x1c>; + mdiobus = <&mdio>; + }; + }; +}; + +&apc_cpr { + /* Same CPR configuration as OAK */ + compatible = "qcom,cpr4-ipq817x-apss-regulator"; + + thread@0 { + apc_vreg: regulator { + regulator-min-microvolt = <1>; + regulator-max-microvolt = <2>; + qcom,cpr-fuse-corners = <2>; + qcom,cpr-corners = <3>; + qcom,cpr-speed-bin-corners = <3>; + qcom,cpr-corner-fmax-map = <1 3>; + + qcom,cpr-voltage-ceiling = + <840000 904000 944000>; + qcom,cpr-voltage-floor = + <592000 648000 712000>; + qcom,corner-frequencies = + <1017600000 1382400000 1382400000>; + + qcom,cpr-open-loop-voltage-fuse-adjustment-0 = + /* Speed bin 0; CPR rev 0..7 */ + < 0 0>, + < 0 0>, + < 0 0>, + < 0 0>, + < 0 0>, + < 0 0>, + < 0 0>, + < 0 0>; + + qcom,cpr-open-loop-voltage-fuse-adjustment-1 = + /* Speed bin 0; CPR rev 0..7 */ + < 0 0>, + < 0 0>, + < 0 0>, + < 20000 26000>, + < 0 0>, + < 0 0>, + < 0 0>, + < 0 0>; + + qcom,cpr-open-loop-voltage-fuse-adjustment-v2-0 = + /* Speed bin 0; CPR rev 0..7 */ + < 0 0>, + < 0 0>, + < 0 0>, + < 0 0>, + < 0 0>, + < 0 0>, + < 0 0>, + < 0 0>; + + qcom,cpr-open-loop-voltage-fuse-adjustment-v2-1 = + /* Speed bin 0; CPR rev 0..7 */ + < 0 0>, + < 0 7000>, + < 0 0>, + < 0 0>, + < 0 0>, + < 0 0>, + < 0 0>, + < 0 0>; + + qcom,cpr-floor-to-ceiling-max-range = + < 40000 40000 40000>, + < 40000 40000 40000>, + < 40000 40000 40000>, + < 40000 40000 40000>, + < 40000 40000 40000>, + < 40000 40000 40000>, + < 40000 40000 40000>, + < 40000 40000 40000>; + }; + }; +}; + +&npu_cpr { + status = "disabled"; +}; + +&nss0 { + qcom,low-frequency = <187200000>; + qcom,mid-frequency = <748800000>; + qcom,max-frequency = <1497600000>; +}; + +&nss0 { + npu-supply = <&dummy_reg>; + mx-supply = <&dummy_reg>; +}; + +&wifi0 { + qcom,board_id = <0x92>; +}; + +&wifi1 { + qcom,board_id = <0x290>; +}; + +&ledc { + pinctrl-0 = <&ledc_pins>; + pinctrl-names = "default"; + status = "ok"; + + led_power: led0 { + label = "ipq::led0"; + linux,default-trigger = "default-on"; + }; + + wan: led1 { + label = "ipq::led1"; + linux,default-trigger = "netdev"; + }; + + wifi2g: led2 { + label = "ipq::led2"; + linux,default-trigger = "phy1tpt"; + }; + + wifi5g: led3 { + label = "ipq::led3"; + linux,default-trigger = "phy0tpt"; + }; + + led4 { + label = "ipq::led4"; + linux,default-trigger = "none"; + }; + + led5 { + label = "ipq::led5"; + linux,default-trigger = "none"; + }; +}; diff --git a/feeds/ipq807x_v5.4/ipq807x/image/ipq807x.mk b/feeds/ipq807x_v5.4/ipq807x/image/ipq807x.mk index 487f3c322..a219b856c 100644 --- a/feeds/ipq807x_v5.4/ipq807x/image/ipq807x.mk +++ b/feeds/ipq807x_v5.4/ipq807x/image/ipq807x.mk @@ -57,6 +57,15 @@ define Device/edgecore_eap106 endef #TARGET_DEVICES += edgecore_eap106 +define Device/emplus_wap380c + DEVICE_TITLE := Emplus WAP380C + DEVICE_DTS := qcom-ipq807x-wap380c + DEVICE_DTS_CONFIG=config@hk07 + SUPPORTED_DEVICES := emplus,wap380c + DEVICE_PACKAGES := ath11k-wifi-emplus-wap380c uboot-envtools +endef +TARGET_DEVICES += emplus_wap380c + define Device/sonicfi_rap650c DEVICE_TITLE := SonicFi RAP650C DEVICE_DTS := qcom-ipq807x-rap650c diff --git a/feeds/tip/certificates/files/usr/bin/mount_certs b/feeds/tip/certificates/files/usr/bin/mount_certs index 4a0124e5f..596df19ec 100755 --- a/feeds/tip/certificates/files/usr/bin/mount_certs +++ b/feeds/tip/certificates/files/usr/bin/mount_certs @@ -105,9 +105,10 @@ cig,wf189h|\ cig,wf186h|\ cig,wf196|\ cig,wf188n|\ +emplus,wap380c|\ emplus,wap385c|\ -emplus,wap581|\ emplus,wap386v2|\ +emplus,wap581|\ yuncore,ax840|\ yuncore,fap655) PART_NAME=rootfs_1 diff --git a/profiles/emplus_wap380c.yml b/profiles/emplus_wap380c.yml new file mode 100644 index 000000000..53e74486c --- /dev/null +++ b/profiles/emplus_wap380c.yml @@ -0,0 +1,21 @@ +--- +profile: emplus_wap380c +target: ipq807x +subtarget: generic +description: Build image for the Emplus WAP380C +image: bin/targets/ipq807x/generic/openwrt-ipq807x-emplus_wap380c-squashfs-sysupgrade.tar +feeds: + - name: ipq807x + path: ../../feeds/ipq807x_v5.4 +include: + - ucentral-ap +packages: + - ipq807x +diffconfig: | + CONFIG_KERNEL_IPQ_MEM_PROFILE=0 + CONFIG_BUSYBOX_CUSTOM=y + CONFIG_BUSYBOX_CONFIG_TFTP=y + CONFIG_BUSYBOX_CONFIG_FEATURE_TFTP_GET=y + CONFIG_BUSYBOX_CONFIG_FEATURE_TFTP_PUT=y + CONFIG_BUSYBOX_CONFIG_FEATURE_TFTP_BLOCKSIZE=y + CONFIG_BUSYBOX_CONFIG_FEATURE_TFTP_PROGRESS_BAR=y