From 1f7d8a7bb7e1ca829dcd49f94177b96d6fe74693 Mon Sep 17 00:00:00 2001 From: Jesse Wu Date: Fri, 13 Jun 2025 14:16:51 +0800 Subject: [PATCH] ipq50xx: add EMPLUS WAP385C support Signed-off-by: Jesse Wu --- feeds/ipq807x_v5.4/ath11k-wifi/Makefile | 2 + .../board-emplus-wap385c.bin.IPQ5018 | Bin 0 -> 131072 bytes .../board-emplus-wap385c.bin.QCN6122 | Bin 0 -> 131072 bytes .../ipq50xx/base-files/etc/board.d/01_leds | 5 + .../ipq50xx/base-files/etc/board.d/02_network | 1 + .../etc/hotplug.d/firmware/10-ath11k-caldata | 2 + .../base-files/lib/upgrade/platform.sh | 2 + .../dts/qcom/qcom-ipq5018-emplus-wap385c.dts | 760 ++++++++++++++++++ feeds/ipq807x_v5.4/ipq50xx/image/ipq50xx.mk | 9 + .../certificates/files/usr/bin/mount_certs | 1 + profiles/emplus_wap385c.yml | 26 + 11 files changed, 808 insertions(+) create mode 100644 feeds/ipq807x_v5.4/ath11k-wifi/board-emplus-wap385c.bin.IPQ5018 create mode 100644 feeds/ipq807x_v5.4/ath11k-wifi/board-emplus-wap385c.bin.QCN6122 create mode 100644 feeds/ipq807x_v5.4/ipq50xx/files/arch/arm64/boot/dts/qcom/qcom-ipq5018-emplus-wap385c.dts create mode 100644 profiles/emplus_wap385c.yml diff --git a/feeds/ipq807x_v5.4/ath11k-wifi/Makefile b/feeds/ipq807x_v5.4/ath11k-wifi/Makefile index 47f16c126..aefa31ef6 100755 --- a/feeds/ipq807x_v5.4/ath11k-wifi/Makefile +++ b/feeds/ipq807x_v5.4/ath11k-wifi/Makefile @@ -41,6 +41,7 @@ ALLWIFIBOARDS:= \ edgecore-oap102 \ edgecore-oap103 \ edgecore-eap104 \ + emplus-wap385c \ emplus-wap386v2 \ liteon-wpx8324 \ indio-um-310ax-v1 \ @@ -405,6 +406,7 @@ $(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-wap385c,Emplus WAP385C)) $(eval $(call generate-ath11k-wifi-package,emplus-wap386v2,Emplus WAP386 V2)) $(eval $(call generate-ath11k-wifi-package,liteon-wpx8324,Liteon WPX8324)) $(eval $(call generate-ath11k-wifi-package,indio-um-310ax-v1,Indio UM-310AX V1)) diff --git a/feeds/ipq807x_v5.4/ath11k-wifi/board-emplus-wap385c.bin.IPQ5018 b/feeds/ipq807x_v5.4/ath11k-wifi/board-emplus-wap385c.bin.IPQ5018 new file mode 100644 index 0000000000000000000000000000000000000000..ac1606b0bc4184b3b70aa121e20f294f8f3f15c2 GIT binary patch literal 131072 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 afFhs>C<2OrBA^H;0*Zhlpa?7(f&T~7q>pz1 literal 0 HcmV?d00001 diff --git a/feeds/ipq807x_v5.4/ath11k-wifi/board-emplus-wap385c.bin.QCN6122 b/feeds/ipq807x_v5.4/ath11k-wifi/board-emplus-wap385c.bin.QCN6122 new file mode 100644 index 0000000000000000000000000000000000000000..fef34a906cea39c34dbc7000ebf1f0e11b9f9052 GIT binary patch literal 131072 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 + +/ { + #address-cells = <0x2>; + #size-cells = <0x2>; + model = "Emplus WAP385C"; + compatible = "emplus,wap385c", "qcom,ipq5018-mp03.3", "qcom,ipq5018"; + interrupt-parent = <&intc>; + + aliases { + sdhc1 = &sdhc_1; /* SDC1 eMMC slot */ + serial0 = &blsp1_uart1; + serial1 = &blsp1_uart2; + ethernet1 = "/soc/dp1"; + + led-boot = &led_power; + led-failsafe = &led_power; + led-running = &led_power; + led-upgrade = &led_power; + }; + + chosen { + bootargs = "console=ttyMSM0,115200,n8 rw init=/init"; + bootargs-append = " swiotlb=1 coherent_pool=2M"; + stdout-path = "serial0"; + }; + + reserved-memory { + #ifdef __IPQ_MEM_PROFILE_256_MB__ + /* 256 MB Profile + * +==========+==============+=========================+ + * | | | | + * | Region | Start Offset | Size | + * | | | | + * +----------+--------------+-------------------------+ + * | NSS | 0x40000000 | 8MB | + * +----------+--------------+-------------------------+ + * | Linux | 0x40800000 | Depends on total memory | + * +----------+--------------+-------------------------+ + * | uboot | 0x4A600000 | 4MB | + * +----------+--------------+-------------------------+ + * | SBL | 0x4AA00000 | 1MB | + * +----------+--------------+-------------------------+ + * | smem | 0x4AB00000 | 1MB | + * +----------+--------------+-------------------------+ + * | TZ | 0x4AC00000 | 4MB | + * +----------+--------------+-------------------------+ + * | Q6 | | | + * | code/ | 0x4B000000 | 20MB | + * | data | | | + * +----------+--------------+-------------------------+ + * | IPQ5018 | | | + * | data | 0x4C400000 | 13MB | + * +----------+--------------+-------------------------+ + * | IPQ5018 | | | + * | M3 Dump | 0x4D100000 | 1MB | + * +----------+--------------+-------------------------+ + * | IPQ5018 | | | + * | QDSS | 0x4D200000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | data | 0x4D300000 | 13MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | M3 Dump | 0x4E000000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | QDSS | 0x4E100000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | data | 0x4E200000 | 13MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | M3 Dump | 0x4EF00000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | QDSS | 0x4F000000 | 1MB | + * +----------+--------------+-------------------------+ + * | | + * | Rest of the memory for Linux | + * | | + * +===================================================+ + */ + q6_mem_regions: q6_mem_regions@4B000000 { + no-map; + reg = <0x0 0x4B000000 0x0 0x4100000>; + }; + + q6_code_data: q6_code_data@4B000000 { + no-map; + reg = <0x0 0x4B000000 0x0 0x1400000>; + }; + + q6_ipq5018_data: q6_ipq5018_data@4C400000 { + no-map; + reg = <0x0 0x4C400000 0x0 0xD00000>; + }; + + m3_dump: m3_dump@4D100000 { + no-map; + reg = <0x0 0x4D100000 0x0 0x100000>; + }; + + q6_etr_region: q6_etr_dump@4D200000 { + no-map; + reg = <0x0 0x4D200000 0x0 0x100000>; + }; + + q6_qcn6122_data1: q6_qcn6122_data1@4D300000 { + no-map; + reg = <0x0 0x4D300000 0x0 0xD00000>; + }; + + m3_dump_qcn6122_1: m3_dump_qcn6122_1@4E000000 { + no-map; + reg = <0x0 0x4E000000 0x0 0x100000>; + }; + + q6_qcn6122_etr_1: q6_qcn6122_etr_1@4E100000 { + no-map; + reg = <0x0 0x4E100000 0x0 0x100000>; + }; + + q6_qcn6122_data2: q6_qcn6122_data2@4E200000 { + no-map; + reg = <0x0 0x4E200000 0x0 0xD00000>; + }; + + m3_dump_qcn6122_2: m3_dump_qcn6122_2@4EF00000 { + no-map; + reg = <0x0 0x4EF00000 0x0 0x100000>; + }; + + q6_qcn6122_etr_2: q6_qcn6122_etr_2@4F000000 { + no-map; + reg = <0x0 0x4F000000 0x0 0x100000>; + }; + #else + /* 512MB/1GB Profiles + * +==========+==============+=========================+ + * | | | | + * | Region | Start Offset | Size | + * | | | | + * +----------+--------------+-------------------------+ + * | NSS | 0x40000000 | 16MB | + * +----------+--------------+-------------------------+ + * | Linux | 0x41000000 | Depends on total memory | + * +----------+--------------+-------------------------+ + * | uboot | 0x4A600000 | 4MB | + * +----------+--------------+-------------------------+ + * | SBL | 0x4AA00000 | 1MB | + * +----------+--------------+-------------------------+ + * | smem | 0x4AB00000 | 1MB | + * +----------+--------------+-------------------------+ + * | TZ | 0x4AC00000 | 4MB | + * +----------+--------------+-------------------------+ + * | Q6 | | | + * | code/ | 0x4B000000 | 20MB | + * | data | | | + * +----------+--------------+-------------------------+ + * | IPQ5018 | | | + * | data | 0x4C400000 | 13MB | + * +----------+--------------+-------------------------+ + * | IPQ5018 | | | + * | M3 Dump | 0x4D100000 | 1MB | + * +----------+--------------+-------------------------+ + * | IPQ5018 | | | + * | QDSS | 0x4D200000 | 1MB | + * +----------+--------------+-------------------------+ + * | IPQ5018 | | | + * | Caldb | 0x4D300000 | 2MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | data | 0x4D500000 | 13MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | M3 Dump | 0x4E200000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | QDSS | 0x4E300000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | Caldb | 0x4E400000 | 5MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | data | 0x4E900000 | 13MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | M3 Dump | 0x4F600000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | QDSS | 0x4F700000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | Caldb | 0x4F800000 | 5MB | + * +----------+--------------+-------------------------+ + * | | + * | Rest of the memory for Linux | + * | | + * +===================================================+ + */ + q6_mem_regions: q6_mem_regions@4B000000 { + no-map; + reg = <0x0 0x4B000000 0x0 0x4D00000>; + }; + + q6_code_data: q6_code_data@4B000000 { + no-map; + reg = <0x0 0x4B000000 0x0 01400000>; + }; + + q6_ipq5018_data: q6_ipq5018_data@4C400000 { + no-map; + reg = <0x0 0x4C400000 0x0 0xD00000>; + }; + + m3_dump: m3_dump@4D100000 { + no-map; + reg = <0x0 0x4D100000 0x0 0x100000>; + }; + + q6_etr_region: q6_etr_dump@4D200000 { + no-map; + reg = <0x0 0x4D200000 0x0 0x100000>; + }; + + q6_caldb_region: q6_caldb_region@4D300000 { + no-map; + reg = <0x0 0x4D300000 0x0 0x200000>; + }; + + q6_qcn6122_data1: q6_qcn6122_data1@4D500000 { + no-map; + reg = <0x0 0x4D500000 0x0 0xD00000>; + }; + + m3_dump_qcn6122_1: m3_dump_qcn6122_1@4E200000 { + no-map; + reg = <0x0 0x4E200000 0x0 0x100000>; + }; + + q6_qcn6122_etr_1: q6_qcn6122_etr_1@4E300000 { + no-map; + reg = <0x0 0x4E300000 0x0 0x100000>; + }; + + q6_qcn6122_caldb_1: q6_qcn6122_caldb_1@4E400000 { + no-map; + reg = <0x0 0x4E400000 0x0 0x500000>; + }; + #endif + }; + + soc { + serial@78af000 { + status = "ok"; + }; + + qpic_bam: dma@7984000{ + status = "ok"; + }; + + nand: qpic-nand@79b0000 { + pinctrl-0 = <&qspi_nand_pins>; + pinctrl-names = "default"; + status = "ok"; + }; + + spi_0: spi@78b5000 { /* BLSP1 QUP0 */ + pinctrl-0 = <&blsp0_spi_pins>; + pinctrl-names = "default"; + cs-select = <0>; + status = "ok"; + + m25p80@0 { + #address-cells = <1>; + #size-cells = <1>; + reg = <0>; + compatible = "n25q128a11"; + linux,modalias = "m25p80", "n25q128a11"; + spi-max-frequency = <50000000>; + use-default-sizes; + }; + }; + + mdio0: mdio@88000 { + status = "ok"; + + ethernet-phy@0 { + reg = <7>; + }; + }; + + mdio1: mdio@90000 { + status = "ok"; + pinctrl-0 = <&mdio1_pins>; + pinctrl-names = "default"; + phy-reset-gpio = <&tlmm 23 0>; + + ethernet-phy@0 { + reg = <24>; + }; + }; + + ess-instance { + num_devices = <0x1>; + ess-switch@0x39c00000 { + switch_mac_mode = <0xf>; /* mac mode for uniphy instance*/ + cmnblk_clk = "internal_96MHz"; /* cmnblk clk*/ + qcom,port_phyinfo { + port@0 { + port_id = <1>; + phy_address = <7>; + mdiobus = <&mdio0>; + }; + port@1 { + port_id = <2>; + phy_address = <0x18>; + mdiobus = <&mdio1>; + port_mac_sel = "QGMAC_PORT"; + }; + }; + led_source@0 { + source = <0>; + mode = "normal"; + speed = "all"; + blink_en = "enable"; + active = "high"; + }; + }; + }; + + wifi0: wifi@c000000 { + status = "ok"; + }; + + dp1 { + device_type = "network"; + compatible = "qcom,nss-dp"; + clocks = <&gcc GCC_SNOC_GMAC0_AXI_CLK>; + clock-names = "nss-snoc-gmac-axi-clk"; + qcom,id = <1>; + reg = <0x39C00000 0x10000>; + interrupts = ; + qcom,mactype = <2>; + qcom,link-poll = <1>; + qcom,phy-mdio-addr = <7>; + mdio-bus = <&mdio0>; + local-mac-address = [000000000000]; + phy-mode = "sgmii"; + }; + + nss-macsec1 { + compatible = "qcom,nss-macsec"; + phy_addr = <0x18>; + mdiobus = <&mdio1>; + }; + + lpass: lpass@0xA000000{ + status = "disabled"; + }; + + pcm_lb: pcm_lb@0 { + status = "disabled"; + }; + }; + + qcom,test@0 { + status = "ok"; + }; + + thermal-zones { + status = "ok"; + }; +}; + +&tlmm { + pinctrl-0 = <&blsp0_uart_pins>; + pinctrl-names = "default"; + + blsp0_uart_pins: uart_pins { + blsp0_uart_rx_tx { + pins = "gpio20", "gpio21"; + function = "blsp0_uart0"; + bias-disable; + }; + }; + + blsp0_spi_pins: blsp0_spi_pins { + mux { + pins = "gpio10", "gpio11", "gpio12", "gpio13"; + function = "blsp0_spi"; + drive-strength = <2>; + bias-disable; + }; + }; + + qspi_nand_pins: qspi_nand_pins { + qspi_clock { + pins = "gpio9"; + function = "qspi_clk"; + drive-strength = <8>; + bias-disable; + }; + + qspi_cs { + pins = "gpio8"; + function = "qspi_cs"; + drive-strength = <8>; + bias-disable; + }; + + qspi_data { + pins = "gpio4", "gpio5", "gpio6", "gpio7"; + function = "qspi_data"; + drive-strength = <8>; + bias-disable; + }; + }; + + mdio1_pins: mdio_pinmux { + mux_0 { + pins = "gpio36"; + function = "mdc"; + drive-strength = <8>; + bias-pull-up; + }; + + mux_1 { + pins = "gpio37"; + function = "mdio"; + drive-strength = <8>; + bias-pull-up; + }; + }; + + poe_dc_pins: poe_dc_pins { + T2P_DET { + pins = "gpio31"; + function = "gpio"; + drive-strength = <8>; + bias-disable; + }; + + 12V_DET { + pins = "gpio32"; + function = "gpio"; + drive-strength = <8>; + bias-disable; + }; + }; + + button_pins: button_pins { + reset_button { + pins = "gpio27"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; + }; + }; + + leds_pins: leds_pinmux { + linux,phandle = <0x4d>; + phandle = <0x4d>; + + led_G { + pins = "gpio24"; + function = "gpio"; + bias-pull-down; + drive-strength = <0x08>; + }; + + led_B { + pins = "gpio28"; + function = "gpio"; + bias-pull-down; + drive-strength = <0x08>; + }; + + led_R { + pins = "gpio38"; + function = "gpio"; + bias-pull-down; + drive-strength = <0x08>; + }; + }; +}; + +&soc { + gpio_keys { + compatible = "gpio-keys"; + pinctrl-0 = <&button_pins>; + pinctrl-names = "default"; + + button@1 { + label = "reset"; + linux,code = ; + gpios = <&tlmm 27 GPIO_ACTIVE_LOW>; + linux,input-type = <1>; + debounce-interval = <60>; + }; + }; + + leds { + compatible = "gpio-leds"; + pinctrl-0 = <&leds_pins>; + pinctrl-names = "default"; + + led@24 { + label = "sys:green"; + gpios = <&tlmm 24 GPIO_ACTIVE_HIGH>; + default-state = "on"; + }; + + led@28 { + label = "sys:blue"; + gpios = <&tlmm 28 GPIO_ACTIVE_HIGH>; + default-state = "on"; + }; + + led_power: led@38 { + label = "sys:red"; + gpios = <&tlmm 38 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "wap385c:sys:red"; + default-state = "on"; + }; + }; + +}; + +&q6v5_wcss { + compatible = "qcom,ipq5018-q6-mpd"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + firmware = "IPQ5018/q6_fw.mdt"; + reg = <0x0cd00000 0x4040>, + <0x1938000 0x8>, + <0x193d204 0x4>; + reg-names = "qdsp6", + "tcsr-msip", + "tcsr-q6"; + resets = <&gcc GCC_WCSSAON_RESET>, + <&gcc GCC_WCSS_Q6_BCR>; + + reset-names = "wcss_aon_reset", + "wcss_q6_reset"; + + clocks = <&gcc GCC_Q6_AXIS_CLK>, + <&gcc GCC_WCSS_ECAHB_CLK>, + <&gcc GCC_Q6_AXIM_CLK>, + <&gcc GCC_Q6_AXIM2_CLK>, + <&gcc GCC_Q6_AHB_CLK>, + <&gcc GCC_Q6_AHB_S_CLK>, + <&gcc GCC_WCSS_AXI_S_CLK>; + clock-names = "gcc_q6_axis_clk", + "gcc_wcss_ecahb_clk", + "gcc_q6_axim_clk", + "gcc_q6_axim2_clk", + "gcc_q6_ahb_clk", + "gcc_q6_ahb_s_clk", + "gcc_wcss_axi_s_clk"; + + #ifdef __IPQ_MEM_PROFILE_256_MB__ + memory-region = <&q6_mem_regions>, <&q6_etr_region>; + #else + memory-region = <&q6_mem_regions>, <&q6_etr_region>, + <&q6_caldb_region>; + #endif + + qcom,rproc = <&q6v5_wcss>; + qcom,bootargs_smem = <507>; + boot-args = <0x1 0x4 0x3 0x0F 0x0 0x0>, + <0x2 0x4 0x2 0x12 0x0 0x0>; + status = "ok"; + + q6_wcss_pd1: remoteproc_pd1@4ab000 { + compatible = "qcom,ipq5018-wcss-ahb-mpd"; + reg = <0x4ab000 0x20>; + reg-names = "rmb"; + firmware = "IPQ5018/q6_fw.mdt"; + m3_firmware = "IPQ5018/m3_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"; + + resets = <&gcc GCC_WCSSAON_RESET>, + <&gcc GCC_WCSS_BCR>, + <&gcc GCC_CE_BCR>; + reset-names = "wcss_aon_reset", + "wcss_reset", + "ce_reset"; + + clocks = <&gcc GCC_WCSS_AHB_S_CLK>, + <&gcc GCC_WCSS_ACMT_CLK>, + <&gcc GCC_WCSS_AXI_M_CLK>; + clock-names = "gcc_wcss_ahb_s_clk", + "gcc_wcss_acmt_clk", + "gcc_wcss_axi_m_clk"; + + qcom,halt-regs = <&tcsr_q6_block 0xa000 0xd000 0x0>; + + qcom,smem-states = <&wcss_smp2p_out 8>, + <&wcss_smp2p_out 9>, + <&wcss_smp2p_out 10>; + qcom,smem-state-names = "shutdown", + "stop", + "spawn"; + + #ifdef __IPQ_MEM_PROFILE_256_MB__ + memory-region = <&q6_ipq5018_data>, <&m3_dump>, + <&q6_etr_region>; + #else + memory-region = <&q6_ipq5018_data>, <&m3_dump>, + <&q6_etr_region>, <&q6_caldb_region>; + #endif + }; + + q6_wcss_pd2: remoteproc_pd2 { + compatible = "qcom,ipq5018-wcss-pcie-mpd"; + firmware = "IPQ5018/q6_fw.mdt"; + m3_firmware = "qcn6122/m3_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"; + #ifdef __IPQ_MEM_PROFILE_256_MB__ + memory-region = <&q6_qcn6122_data1>, <&m3_dump_qcn6122_1>, + <&q6_qcn6122_etr_1>; + #else + memory-region = <&q6_qcn6122_data1>, <&m3_dump_qcn6122_1>, + <&q6_qcn6122_etr_1>, <&q6_qcn6122_caldb_1>; + #endif + + }; +}; + +&wifi0 { + /* IPQ5018 */ + qcom,multipd_arch; + qcom,rproc = <&q6_wcss_pd1>; + qcom,userpd-subsys-name = "q6v5_wcss_userpd1"; +#ifdef __IPQ_MEM_PROFILE_256_MB__ + qcom,tgt-mem-mode = <2>; +#else + qcom,tgt-mem-mode = <1>; +#endif + qcom,board_id = <0x24>; +#ifdef __CNSS2__ + qcom,bdf-addr = <0x4C400000 0x4C400000 0x4C400000 0x0 0x0>; + qcom,caldb-addr = <0x4D300000 0x4D300000 0 0 0>; + qcom,caldb-size = <0x200000>; + mem-region = <&q6_ipq5018_data>; +#else + memory-region = <&q6_ipq5018_data>; +#endif + status = "ok"; +}; + +&wifi1 { + /* QCN6122 5G */ + qcom,multipd_arch; + qcom,userpd-subsys-name = "q6v5_wcss_userpd2"; + qcom,rproc = <&q6_wcss_pd2>; +#ifdef __IPQ_MEM_PROFILE_256_MB__ + qcom,tgt-mem-mode = <2>; +#else + qcom,tgt-mem-mode = <1>; +#endif + qcom,board_id = <0x60>; +#ifdef __CNSS2__ + qcom,bdf-addr = <0x4D500000 0x4D500000 0x4D300000 0x0 0x0>; + qcom,caldb-addr = <0x4E400000 0x4E400000 0 0 0>; + qcom,caldb-size = <0x500000>; + mem-region = <&q6_qcn6122_data1>; +#else + memory-region = <&q6_qcn6122_data1>; +#endif + status = "ok"; +}; + +&dwc_0 { + /delete-property/ #phy-cells; + /delete-property/ phys; + /delete-property/ phy-names; +}; + +&hs_m31phy_0 { + status = "ok"; +}; + +&eud { + status = "ok"; +}; + +&pcie_x1 { + perst-gpio = <&tlmm 18 GPIO_ACTIVE_LOW>; +}; + +&pcie_x2 { + perst-gpio = <&tlmm 15 GPIO_ACTIVE_LOW>; +}; + +&pcie_x1_rp { + status = "disabled"; + + mhi_0: qcom,mhi@0 { + reg = <0 0 0 0 0 >; + }; +}; + +&pcie_x2_rp { + status = "disabled"; + + mhi_1: qcom,mhi@1 { + reg = <0 0 0 0 0 >; + }; +}; + +&qfprom { + status = "ok"; +}; + +&tsens { + status = "ok"; +}; diff --git a/feeds/ipq807x_v5.4/ipq50xx/image/ipq50xx.mk b/feeds/ipq807x_v5.4/ipq50xx/image/ipq50xx.mk index c668848f1..1fa14624d 100755 --- a/feeds/ipq807x_v5.4/ipq50xx/image/ipq50xx.mk +++ b/feeds/ipq807x_v5.4/ipq50xx/image/ipq50xx.mk @@ -154,6 +154,15 @@ define Device/edgecore_oap101e_6e endef TARGET_DEVICES += edgecore_oap101e_6e +define Device/emplus_wap385c + DEVICE_TITLE := Emplus WAP385C + DEVICE_DTS := qcom-ipq5018-emplus-wap385c + SUPPORTED_DEVICES := emplus,wap385c + DEVICE_PACKAGES := ath11k-wifi-emplus-wap385c ath11k-firmware-ipq50xx-map-spruce + DEVICE_DTS_CONFIG := config@mp03.3 +endef +TARGET_DEVICES += emplus_wap385c + define Device/hfcl_ion4x_w DEVICE_TITLE := HFCL ION4x_w DEVICE_DTS := qcom-ipq5018-hfcl-ion4x_w diff --git a/feeds/tip/certificates/files/usr/bin/mount_certs b/feeds/tip/certificates/files/usr/bin/mount_certs index f3a1f19d5..24d7b61e3 100755 --- a/feeds/tip/certificates/files/usr/bin/mount_certs +++ b/feeds/tip/certificates/files/usr/bin/mount_certs @@ -88,6 +88,7 @@ cig,wf189h|\ cig,wf186h|\ cig,wf196|\ cig,wf188n|\ +emplus,wap385c|\ emplus,wap386v2|\ yuncore,ax840|\ yuncore,fap655) diff --git a/profiles/emplus_wap385c.yml b/profiles/emplus_wap385c.yml new file mode 100644 index 000000000..d81a9b15e --- /dev/null +++ b/profiles/emplus_wap385c.yml @@ -0,0 +1,26 @@ +--- +profile: emplus_wap385c +target: ipq50xx +subtarget: generic +description: Build image for Emplus WAP385C +image: bin/targets/ipq50xx/generic/openwrt-ipq50xx-emplus_wap385c-squashfs-sysupgrade.tar +feeds: + - name: ipq807x + path: ../../feeds/ipq807x_v5.4 +include: + - ucentral-ap +packages: + - ipq50xx + - iperf3 + - lscpu + - tree +diffconfig: | + CONFIG_KERNEL_IPQ_MEM_PROFILE=512 + 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 + CONFIG_BUSYBOX_CONFIG_MPSTAT=y + CONFIG_BUSYBOX_CONFIG_PSTREE=y