diff --git a/feeds/qca-wifi-7/ath12k-wifi/Makefile b/feeds/qca-wifi-7/ath12k-wifi/Makefile index dcf1e3df9..e71062508 100755 --- a/feeds/qca-wifi-7/ath12k-wifi/Makefile +++ b/feeds/qca-wifi-7/ath12k-wifi/Makefile @@ -53,6 +53,11 @@ $(call Package/ath12k-wifi-default) TITLE:=board-2.bin for RAP750W_311a endef +define Package/ath12k-wifi-cig-wf189h +$(call Package/ath12k-wifi-default) + TITLE:=board-2.bin for WF189H +endef + define Package/ath12k-wifi-cig-wf189w $(call Package/ath12k-wifi-default) TITLE:=board-2.bin for WF189W @@ -96,8 +101,18 @@ define Package/ath12k-wifi-cig-wf189w/install $(INSTALL_DATA) ./ipq5332_qcn6432.regdb $(1)/lib/firmware/ath12k/QCN6432/hw1.0/regdb.bin endef + +define Package/ath12k-wifi-cig-wf189h/install + $(INSTALL_DIR) $(1)/lib/firmware/ath12k/IPQ5332/hw1.0/ + $(INSTALL_DIR) $(1)/lib/firmware/ath12k/QCN6432/hw1.0/ + $(INSTALL_DATA) ./board-2.bin.189h.IPQ5332 $(1)/lib/firmware/ath12k/IPQ5332/hw1.0/board-2.bin + $(INSTALL_DATA) ./board-2.bin.189h.QCN6432 $(1)/lib/firmware/ath12k/QCN6432/hw1.0/board-2.bin + $(INSTALL_DATA) ./ipq5332_qcn6432.regdb $(1)/lib/firmware/ath12k/QCN6432/hw1.0/regdb.bin +endef + $(eval $(call BuildPackage,ath12k-wifi-cig-wf189)) $(eval $(call BuildPackage,ath12k-wifi-edgecore-eap105)) $(eval $(call BuildPackage,ath12k-wifi-sonicfi-rap7110c-341x)) $(eval $(call BuildPackage,ath12k-wifi-sonicfi-rap750w-311a)) $(eval $(call BuildPackage,ath12k-wifi-cig-wf189w)) +$(eval $(call BuildPackage,ath12k-wifi-cig-wf189h)) diff --git a/feeds/qca-wifi-7/ath12k-wifi/board-2.bin.189h.IPQ5332 b/feeds/qca-wifi-7/ath12k-wifi/board-2.bin.189h.IPQ5332 new file mode 100644 index 000000000..ccfab569c Binary files /dev/null and b/feeds/qca-wifi-7/ath12k-wifi/board-2.bin.189h.IPQ5332 differ diff --git a/feeds/qca-wifi-7/ath12k-wifi/board-2.bin.189h.QCN6432 b/feeds/qca-wifi-7/ath12k-wifi/board-2.bin.189h.QCN6432 new file mode 100644 index 000000000..8c99c91be Binary files /dev/null and b/feeds/qca-wifi-7/ath12k-wifi/board-2.bin.189h.QCN6432 differ 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 e877479cf..7434964c0 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 @@ -14,9 +14,6 @@ sercomm,ap72tip) sonicfi,rap7110c-341x) ucidef_set_led_default "power" "POWER" "pwm:blue" "on" ;; -cig,wf189w) - ucidef_set_led_default "power" "POWER" "pwm:blue" "on" - ;; 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 b0495b4e1..9b44e5b14 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 @@ -22,7 +22,12 @@ ipq53xx_setup_interfaces() ucidef_set_interfaces_lan_wan "" "eth0" ;; cig,wf189w) - ucidef_add_switch "switch1" "5u@eth0" "3:lan" "2:lan" "1:lan" "0u@eth1" "4:wan" + ucidef_set_interfaces_lan_wan "eth1" "eth0" + ucidef_add_switch "switch1" "0u@eth1" "3:lan" "2:lan" "1:lan" + ;; + cig,wf189h) + ucidef_set_interfaces_lan_wan "eth1" "eth0" + ucidef_add_switch "switch1" "0u@eth1" "3:lan" "2:lan" ;; esac } @@ -32,6 +37,7 @@ qcom_setup_macs() local board="$1" case $board in cig,wf189w|\ + cig,wf189h|\ cig,wf189) mtd=$(find_mtd_chardev "0:APPSBLENV") [ -z "$mtd" ] && return; 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 da0be5001..0dd990a4a 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 @@ -28,6 +28,7 @@ case "$FIRMWARE" in ath12k/IPQ5332/hw1.0/caldata.bin) case "$board" in cig,wf189w|\ + cig,wf189h|\ cig,wf189|\ edgecore,eap105|\ sercomm,ap72tip) @@ -62,6 +63,7 @@ ath12k/QCN6432/hw1.0/caldata_1.bin) ;; ath12k/QCN6432/hw1.0/cal-ahb-soc@0:wifi1@c0000000.bin) case "$board" in + cig,wf189h|\ cig,wf189w) caldata_extract "0:ART" 0x26800 0x20000 ;; @@ -69,6 +71,7 @@ ath12k/QCN6432/hw1.0/cal-ahb-soc@0:wifi1@c0000000.bin) ;; ath12k/QCN6432/hw1.0/cal-ahb-soc@0:wifi2@c0000000.bin) case "$board" in + cig,wf189h|\ cig,wf189w) caldata_extract "0:ART" 0x58800 0x20000 ;; 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 ade52dfcc..cf6b8c726 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 @@ -87,6 +87,7 @@ platform_do_upgrade() { board=$(board_name) case $board in cig,wf189w|\ + cig,wf189h|\ cig,wf189) if [ -f /proc/boot_info/bootconfig0/rootfs/upgradepartition ]; then CI_UBIPART="$(cat /proc/boot_info/bootconfig0/rootfs/upgradepartition)" diff --git a/feeds/qca-wifi-7/ipq53xx/dts/ipq5332-cig-wf189.dts b/feeds/qca-wifi-7/ipq53xx/dts/ipq5332-cig-wf189.dts index d95ed9d18..e6f82b99a 100644 --- a/feeds/qca-wifi-7/ipq53xx/dts/ipq5332-cig-wf189.dts +++ b/feeds/qca-wifi-7/ipq53xx/dts/ipq5332-cig-wf189.dts @@ -23,6 +23,10 @@ serial1 = &blsp1_uart1; ethernet0 = "/soc/dp1"; ethernet1 = "/soc/dp2"; + led-boot = &led_power_green; + led-failsafe = &led_power_red; + led-running = &led_power_green; + led-upgrade = &led_power_green; }; chosen { @@ -178,13 +182,26 @@ pinctrl-0 = <&gpio_leds_default>; pinctrl-names = "default"; - led-0 { - color = ; - function = LED_FUNCTION_WLAN; - gpios = <&tlmm 36 GPIO_ACTIVE_HIGH>; - linux,default-trigger = "phy0tx"; - default-state = "off"; - }; + led_power_blue: led@26 { + label = "status:blue"; + gpios = <&tlmm 45 GPIO_ACTIVE_HIGH>; + max-brightness = <160>; + linux,default-trigger = "none"; + }; + + led_power_green:led@30 { + label = "status:green"; + gpios = <&tlmm 26 GPIO_ACTIVE_HIGH>; + max-brightness = <160>; + linux,default-trigger = "none"; + }; + + led_power_red:led@45 { + label = "status:red"; + gpios = <&tlmm 30 GPIO_ACTIVE_HIGH>; + max-brightness = <160>; + linux,default-trigger = "none"; + }; }; gpio_keys { @@ -481,6 +498,24 @@ bias-pull-up; output-low; }; + + led_pins: led_pins { + mux_1 { + pins = "gpio26"; + function = "gpio"; + drive-strength = <8>; + }; + mux_2 { + pins = "gpio30"; + function = "gpio"; + drive-strength = <8>; + }; + mux_3 { + pins = "gpio45"; + function = "gpio"; + drive-strength = <8>; + }; + }; }; &license_manager { diff --git a/feeds/qca-wifi-7/ipq53xx/dts/ipq5332-cig-wf189h.dts b/feeds/qca-wifi-7/ipq53xx/dts/ipq5332-cig-wf189h.dts new file mode 100644 index 000000000..ce673d787 --- /dev/null +++ b/feeds/qca-wifi-7/ipq53xx/dts/ipq5332-cig-wf189h.dts @@ -0,0 +1,777 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) +/* + * IPQ5332 RDP446 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 "ipq5332.dtsi" +#include +#include +#include +#include "ipq5332-default-memory.dtsi" + +/ { + model = "CIG WF189H"; + compatible = "cig,wf189h", "qcom,ipq5332-ap-mi04.1", "qcom,ipq5332-rdp446", "qcom,ipq5332"; + + /* 1G Layout for IPQ5332 + QCN6432 + QCN6432 + * +==========+==============+========================+ + * | | | | + * | Region | Start Offset | Size | + * | | | | + * +---------+--------------+-------------------------+ + * | Q6 | | | + * | code/ | 0x4A900000 | 25MB | + * | data | | | + * +---------+--------------+-------------------------+ + * | IPQ5332 | | | + * | data | 0x4C200000 | 21MB | + * +---------+--------------+-------------------------+ + * | IPQ5332 | | | + * | M3 Dump | 0x4D700000 | 1MB | + * +---------+--------------+-------------------------+ + * | IPQ5332 | | | + * | QDSS | 0x4D800000 | 1MB | + * +---------+--------------+-------------------------+ + * | IPQ5332 | | | + * | CALDB | 0x4D900000 | 5MB | + * +---------+--------------+-------------------------+ + * |QCN6432_1| | | + * | data | 0x4DE00000 | 21MB | + * +---------+--------------+-------------------------+ + * |QCN6432_1| | | + * | M3 Dump | 0x4F300000 | 1MB | + * +---------+--------------+-------------------------+ + * |QCN6432_1| | | + * | QDSS | 0x4E400000 | 1MB | + * +---------+--------------+-------------------------+ + * |QCN6432_1| | | + * | CALDB | 0x4F500000 | 5MB | + * +---------+--------------+-------------------------+ + * |QCN6432_2| | | + * | data | 0x4FA00000 | 21MB | + * +---------+--------------+-------------------------+ + * |QCN6432_2| | | + * | M3 Dump | 0x50F00000 | 1MB | + * +---------+--------------+-------------------------+ + * |QCN6432_2| | | + * | QDSS | 0x51000000 | 1MB | + * +---------+--------------+-------------------------+ + * |QCN6432_2| | | + * | CALDB | 0x51100000 | 5MB | + * +---------+--------------+-------------------------+ + * | | | | + * | MLO | 0x51600000 | 12MB | + * +==================================================+ + * | | + * | | + * | | + * | Rest of memory for Linux | + * | | + * | | + * | | + * +==================================================+ + */ + + reserved-memory { + + /delete-node/ m3_dump@4cc00000; + /delete-node/ q6_etr_dump@1; + /delete-node/ mlo_global_mem_0@0x4db00000; + /delete-node/ wcnss@4a900000; + /delete-node/ q6_caldb_region@4ce00000; + + q6_mem_regions: q6_mem_regions@4A900000 { + reg = <0x0 0x4a900000 0x0 0x6D00000>; + no-map; + }; + + q6_code_data: q6_code_data@4A900000 { + reg = <0x0 0x4a900000 0x0 0x1900000>; + no-map; + }; + + q6_ipq5332_data: q6_ipq5332_data@4C200000 { + reg = <0x0 0x4C200000 0x0 0x1500000>; + no-map; + }; + + m3_dump: m3_dump@4D700000 { + reg = <0x0 0x4D700000 0x0 0x100000>; + no-map; + }; + + q6_etr_region: q6_etr_dump@4D800000 { + reg = <0x0 0x4D800000 0x0 0x100000>; + no-map; + }; + + q6_ipq5332_caldb: q6_ipq5332_caldb@4D900000 { + reg = <0x0 0x4D900000 0x0 0x500000>; + no-map; + }; + + q6_qcn6432_data_1: q6_qcn6432_data_1@4DE00000 { + reg = <0x0 0x4DE00000 0x0 0x1500000>; + no-map; + }; + + m3_dump_qcn6432_1: m3_dump_qcn6432_1@4F300000 { + reg = <0x0 0x4F300000 0x0 0x100000>; + no-map; + }; + + q6_qcn6432_etr_1: q6_qcn6432_etr_1@4F400000 { + reg = <0x0 0x4F400000 0x0 0x100000>; + no-map; + }; + + q6_qcn6432_caldb_1: q6_qcn6432_caldb_1@4F500000 { + reg = <0x0 0x4F500000 0x0 0x500000>; + no-map; + }; + + q6_qcn6432_data_2: q6_qcn6432_data_2@4FA00000 { + reg = <0x0 0x4FA00000 0x0 0x1500000>; + no-map; + }; + + m3_dump_qcn6432_2: m3_dump_qcn6432_2@50F00000 { + reg = <0x0 0x50F00000 0x0 0x100000>; + no-map; + }; + + q6_qcn6432_etr_2: q6_qcn6432_etr_2@51000000 { + reg = <0x0 0x51000000 0x0 0x100000>; + no-map; + }; + + q6_qcn6432_caldb_2: q6_qcn6432_caldb_2@51100000 { + reg = <0x0 0x51100000 0x0 0x500000>; + no-map; + }; + + mlo_global_mem0: mlo_global_mem_0@51600000 { + reg = <0x0 0x51600000 0x0 0xC00000>; + no-map; + }; + }; + + aliases { + serial0 = &blsp1_uart0; + serial1 = &blsp1_uart1; + ethernet0 = "/soc/dp1"; + ethernet1 = "/soc/dp2"; + led-boot = &led_power_green; + led-failsafe = &led_power_red; + led-running = &led_power_green; + led-upgrade = &led_power_green; + }; + + 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 22 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"; + }; + + port@4 { + reg = <4>; + label = "lan4"; + phy-handle = <&phy3>; + phy-mode = "usxgmii"; + }; + + port@5 { + reg = <5>; + forced-speed = <2500>; + forced-duplex = <1>; + }; + }; + }; + }; + + pwmleds { + compatible = "pwm-leds"; + + led_power_red: red { + label = "pwm:red"; + pwms = <&pwm 3 1250000>; + max-brightness = <160>; + linux,default-trigger = "none"; + }; + + led_power_green: green { + label = "pwm:green"; + pwms = <&pwm 2 1250000>; + max-brightness = <160>; + linux,default-trigger = "none"; + }; + + led_power_blue: blue { + label = "pwm:blue"; + pwms = <&pwm 1 1250000>; + max-brightness = <160>; + linux,default-trigger = "none"; + }; + }; + + gpio_keys { + compatible = "gpio-keys"; + pinctrl-0 = <&button_pins>; + pinctrl-names = "default"; + status = "okay"; + + button@1 { + label = "rst"; + linux,code = ; + gpios = <&tlmm 21 GPIO_ACTIVE_LOW>; + linux,input-type = <1>; + debounce-interval = <60>; + }; + }; + + ess-instance { + num_devices = <0x2>; + + ess-switch@3a000000 { + pinctrl-names = "default"; + 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>; + }; + }; + }; + + 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 = <0xc>; /* mac mode1 for uniphy instance1 */ + switch_cpu_bmp = <0x1>; /* cpu port bitmap */ + switch_lan_bmp = <0x0e>; /* lan port bitmap */ + switch_wan_bmp = <0x0>; /* wan port bitmap */ +// link-polling-required = <0>; + fdb_sync = "interrupt"; + link-intr-gpio = <&tlmm 24 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"; + }; + led_source@11 { + source = <11>; + 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]; + qcom,mht-dev = <1>; + qcom,is_switch_connected = <1>; + qcom,ppe-offload-disabled = <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 */ + }; + + wsi: wsi { + id = <0>; + num_chip = <3>; + status = "okay"; + chip_info = <0 2 1 2>, + <1 2 2 0>, + <2 2 0 1>; + }; + + q6v5_wcss: remoteproc@d100000 { + boot-args = <0x1 0x4 0x3 0x1 0x2f 0x2>, + <0x1 0x4 0x4 0x2 0x2c 0x2>; + memory-region = <&q6_mem_regions>, + <&mlo_global_mem0>; + + /delete-node/ remoteproc_pd1; + /delete-node/ remoteproc_pd2; + /delete-node/ remoteproc_pd3; + + q6_wcss_pd4: remoteproc_pd4 { + compatible = "qcom,ipq5332-mpd-upd-text"; + firmware = "IPQ5332/q6_fw4.mdt"; + + q6_wcss_pd1: remoteproc_pd1 { + compatible = "qcom,ipq5332-wcss-ahb-mpd"; + firmware = "IPQ5332/q6_fw1.mdt"; + m3_firmware = "IPQ5332/iu_fw.mdt"; + interrupts-extended = <&wcss_smp2p_in 8 0>, + <&wcss_smp2p_in 9 0>, + <&wcss_smp2p_in 12 0>, + <&wcss_smp2p_in 11 0>; + interrupt-names = "fatal", + "ready", + "spawn-ack", + "stop-ack"; + + qcom,smem-states = <&wcss_smp2p_out 8>, + <&wcss_smp2p_out 9>, + <&wcss_smp2p_out 10>; + qcom,smem-state-names = "shutdown", + "stop", + "spawn"; + }; + + q6_wcss_pd2: remoteproc_pd2 { + compatible = "qcom,ipq5332-wcss-pcie-mpd"; + firmware = "IPQ5332/q6_fw2.mdt"; + m3_firmware = "qcn6432/iu_fw.mdt"; + interrupts-extended = <&wcss_smp2p_in 16 0>, + <&wcss_smp2p_in 17 0>, + <&wcss_smp2p_in 20 0>, + <&wcss_smp2p_in 19 0>; + interrupt-names = "fatal", + "ready", + "spawn-ack", + "stop-ack"; + + qcom,smem-states = <&wcss_smp2p_out 16>, + <&wcss_smp2p_out 17>, + <&wcss_smp2p_out 18>; + qcom,smem-state-names = "shutdown", + "stop", + "spawn"; + status = "ok"; + }; + + q6_wcss_pd3: remoteproc_pd3 { + compatible = "qcom,ipq5332-wcss-pcie-mpd"; + firmware = "IPQ5332/q6_fw3.mdt"; + interrupts-extended = <&wcss_smp2p_in 24 0>, + <&wcss_smp2p_in 25 0>, + <&wcss_smp2p_in 28 0>, + <&wcss_smp2p_in 27 0>; + interrupt-names = "fatal", + "ready", + "spawn-ack", + "stop-ack"; + + qcom,smem-states = <&wcss_smp2p_out 24>, + <&wcss_smp2p_out 25>, + <&wcss_smp2p_out 26>; + qcom,smem-state-names = "shutdown", + "stop", + "spawn"; + status = "ok"; + }; + }; + }; + }; +}; + +&blsp1_uart0 { + pinctrl-0 = <&serial_0_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +&blsp1_uart1 { + pinctrl-0 = <&serial_1_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +&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>; + }; +}; + +&tlmm { + 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; + }; + }; + + pwm_pins: pwm_pinmux { + /* PWM LED GREEN */ + mux_1 { + pins = "gpio30"; + function = "pwm1"; + drive-strength = <8>; + }; + /* PWM LED BLUE */ + mux_2 { + pins = "gpio31"; + function = "pwm1"; + drive-strength = <8>; + }; + /* PWM LED RED */ + mux_3 { + pins = "gpio29"; + function = "pwm1"; + drive-strength = <8>; + }; + }; + + serial_1_pins: serial1-pinmux { + pins = "gpio33", "gpio34", "gpio35", "gpio36"; + function = "blsp1_uart2"; + drive-strength = <8>; + bias-pull-up; + }; + + + button_pins: button-state { + pins = "gpio21"; + function = "gpio"; + 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; + }; + + mdio1_pins: mdio1-state { + mux_0 { + pins = "gpio27"; + function = "mdc1"; + drive-strength = <2>; + bias-pull-up; + }; + mux_1 { + pins = "gpio28"; + function = "mdio1"; + drive-strength = <2>; + bias-pull-up; + }; + }; +}; + +&license_manager { + status = "okay"; +}; + +&pwm { + pinctrl-0 = <&pwm_pins>; + used-pwm-indices = <1>, <1>, <0>, <1>; + pinctrl-names = "default"; + status = "okay"; +}; + +&hs_m31phy_0 { + status = "okay"; +}; + +&wifi0 { + qcom,multipd_arch; + qcom,rproc = <&q6_wcss_pd1>; + qcom,rproc_rpd = <&q6v5_wcss>; + qcom,userpd-subsys-name = "q6v5_wcss_userpd1"; + qcom,tgt-mem-mode = <0>; + qcom,bdf-addr = <0x4C200000 0x4C200000 0x4C200000 0x0 0x0 0x0>; + qcom,caldb-addr = <0x4D900000 0x4D900000 0x4D900000 0x0 0x0 0x0>; + qcom,caldb-size = <0x500000>; + qcom,board_id = <0x41>; + mem-region = <&q6_ipq5332_data>; + memory-region = <&q6_ipq5332_data>; + qcom,wsi = <&wsi>; + qcom,wsi_index = <0>; + status = "okay"; +}; + +&wifi1 { + qcom,multipd_arch; + qcom,rproc = <&q6_wcss_pd2>; + qcom,rproc_rpd = <&q6v5_wcss>; + qcom,userpd-subsys-name = "q6v5_wcss_userpd2"; + qcom,tgt-mem-mode = <0>; + qcom,bdf-addr = <0x4DE00000 0x4DE00000 0x4DE00000 0x0 0x0 0x0>; + qcom,caldb-addr = <0x4F500000 0x4F500000 0x4F500000 0x0 0x0 0x0>; + qcom,umac-irq-reset-addr = <0x20000884>; + qcom,caldb-size = <0x500000>; + qcom,board_id = <0x061>; + mem-region = <&q6_qcn6432_data_1>; + memory-region = <&q6_qcn6432_data_1>; + qcom,wsi = <&wsi>; + qcom,wsi_index = <1>; + status = "okay"; + interrupts = ; + interrupt-names = "umac_reset"; +}; + +&wifi2 { + qcom,multipd_arch; + qcom,rproc = <&q6_wcss_pd3>; + qcom,rproc_rpd = <&q6v5_wcss>; + qcom,userpd-subsys-name = "q6v5_wcss_userpd3"; + qcom,tgt-mem-mode = <0>; + qcom,bdf-addr = <0x4FA00000 0x4FA00000 0x4FA00000 0x0 0x0 0x0>; + qcom,caldb-addr = <0x51100000 0x51100000 0x51100000 0x0 0x0 0x0>; + qcom,umac-irq-reset-addr = <0x18000884>; + qcom,caldb-size = <0x500000>; + qcom,board_id = <0x0b1>; + mem-region = <&q6_qcn6432_data_2>; + memory-region = <&q6_qcn6432_data_2>; + qcom,wsi = <&wsi>; + qcom,wsi_index = <2>; + status = "okay"; + interrupts = ; + interrupt-names = "umac_reset"; +}; diff --git a/feeds/qca-wifi-7/ipq53xx/dts/ipq5332-cig-wf189w.dts b/feeds/qca-wifi-7/ipq53xx/dts/ipq5332-cig-wf189w.dts index 33bf479df..f49528a1b 100644 --- a/feeds/qca-wifi-7/ipq53xx/dts/ipq5332-cig-wf189w.dts +++ b/feeds/qca-wifi-7/ipq53xx/dts/ipq5332-cig-wf189w.dts @@ -166,10 +166,10 @@ serial1 = &blsp1_uart1; ethernet0 = "/soc/dp1"; ethernet1 = "/soc/dp2"; - led-boot = &led_power; - led-failsafe = &led_power; - led-running = &led_power; - led-upgrade = &led_power; + led-boot = &led_power_green; + led-failsafe = &led_power_red; + led-running = &led_power_green; + led-upgrade = &led_power_green; }; chosen { @@ -261,21 +261,21 @@ pwmleds { compatible = "pwm-leds"; - red { + led_power_red: red { label = "pwm:red"; pwms = <&pwm 3 1250000>; max-brightness = <160>; linux,default-trigger = "none"; }; - green { + led_power_green: green { label = "pwm:green"; pwms = <&pwm 2 1250000>; max-brightness = <160>; linux,default-trigger = "none"; }; - led_power: blue { + led_power_blue: blue { label = "pwm:blue"; pwms = <&pwm 1 1250000>; max-brightness = <160>; @@ -307,7 +307,7 @@ 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 = <0xc>; /* mac mode for uniphy instance1*/ + switch_mac_mode1 = <0xf>; /* mac mode for uniphy instance1*/ switch_mac_mode2 = <0xff>; /* mac mode for uniphy instance2*/ qcom,port_phyinfo { @@ -318,8 +318,7 @@ }; port@1 { port_id = <2>; - forced-speed = <2500>; - forced-duplex = <1>; + phy_address = <4>; }; }; }; @@ -331,9 +330,9 @@ mdio-bus = <&mdio>; switch_mac_mode = <0xc>; /* mac mode for uniphy instance0 */ switch_mac_mode1 = <0xc>; /* mac mode1 for uniphy instance1 */ - switch_cpu_bmp = <0x21>; /* cpu port bitmap */ + switch_cpu_bmp = <0x1>; /* cpu port bitmap */ switch_lan_bmp = <0x0e>; /* lan port bitmap */ - switch_wan_bmp = <0x10>; /* wan port bitmap */ + switch_wan_bmp = <0x0>; /* wan port bitmap */ // link-polling-required = <0>; fdb_sync = "interrupt"; link-intr-gpio = <&tlmm 24 GPIO_ACTIVE_HIGH>; @@ -356,15 +355,6 @@ port_id = <3>; phy_address = <3>; }; - port@4 { - port_id = <4>; - phy_address = <4>; - }; - port@5 { - port_id = <5>; - forced-speed = <2500>; - forced-duplex = <1>; - }; }; led_source@2 { diff --git a/feeds/qca-wifi-7/ipq53xx/image/ipq53xx.mk b/feeds/qca-wifi-7/ipq53xx/image/ipq53xx.mk index a288760a0..fe903a608 100755 --- a/feeds/qca-wifi-7/ipq53xx/image/ipq53xx.mk +++ b/feeds/qca-wifi-7/ipq53xx/image/ipq53xx.mk @@ -77,3 +77,17 @@ define Device/cig_wf189w DEVICE_PACKAGES := ath12k-wifi-cig-wf189w ath12k-firmware-ipq5332-peb-peb endef TARGET_DEVICES += cig_wf189w + + +define Device/cig_wf189h + DEVICE_TITLE := CIG WF189H + DEVICE_DTS := ipq5332-cig-wf189h + DEVICE_DTS_DIR := ../dts + DEVICE_DTS_CONFIG := config@mi04.1 + IMAGES := sysupgrade.tar nand-factory.bin nand-factory.ubi + 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-cig-wf189h ath12k-firmware-ipq5332-peb-peb +endef +TARGET_DEVICES += cig_wf189h diff --git a/feeds/tip/certificates/files/usr/bin/mount_certs b/feeds/tip/certificates/files/usr/bin/mount_certs index 4161c1121..3c001a1dd 100755 --- a/feeds/tip/certificates/files/usr/bin/mount_certs +++ b/feeds/tip/certificates/files/usr/bin/mount_certs @@ -79,6 +79,8 @@ hfcl,ion4xe) ;; cig,wf186w|\ cig,wf189|\ +cig,wf189w|\ +cig,wf189h|\ cig,wf186h|\ yuncore,ax840|\ yuncore,fap655) diff --git a/profiles/cig_wf189.yml b/profiles/cig_wf189.yml index 00042ac76..4418ce151 100644 --- a/profiles/cig_wf189.yml +++ b/profiles/cig_wf189.yml @@ -12,3 +12,4 @@ include: packages: - ipq53xx - ftm + - qca-ssdk-shell diff --git a/profiles/cig_wf189h.yml b/profiles/cig_wf189h.yml new file mode 100644 index 000000000..61d9eaa36 --- /dev/null +++ b/profiles/cig_wf189h.yml @@ -0,0 +1,14 @@ +--- +profile: cig_wf189h +target: ipq53xx +subtarget: generic +description: Build image for the CIG WF189h +image: bin/targets/ipq53xx/generic/openwrt-ipq53xx-cig_wf189h-squashfs-sysupgrade.tar +feeds: + - name: qca + path: ../../feeds/qca-wifi-7 +include: + - ucentral-ap +packages: + - ipq53xx + - qca-ssdk-shell