From d8a7f7bd4e799b7ccce7efbb8286c40f1ff8949d Mon Sep 17 00:00:00 2001 From: pratibha Date: Tue, 30 Sep 2025 11:40:17 +0530 Subject: [PATCH] ipq50xx: Add support for Indio-525AXM outdoor AP Fixes: WIFI-14454 Signed-off-by: pratibha --- feeds/ipq807x_v5.4/ath11k-wifi/Makefile | 2 + .../board-indio-um-525axm.bin.IPQ5018 | Bin 0 -> 131072 bytes .../board-indio-um-525axm.bin.QCN6122 | Bin 0 -> 131072 bytes .../ipq50xx/base-files/etc/board.d/01_leds | 1 + .../ipq50xx/base-files/etc/board.d/02_network | 1 + .../etc/hotplug.d/firmware/10-ath11k-caldata | 3 + .../base-files/lib/upgrade/platform.sh | 2 + .../dts/qcom/qcom-ipq5018-indio-um-525axm.dts | 941 ++++++++++++++++++ feeds/ipq807x_v5.4/ipq50xx/image/ipq50xx.mk | 9 + profiles/indio_um-525axm.yml | 17 + 10 files changed, 976 insertions(+) create mode 100755 feeds/ipq807x_v5.4/ath11k-wifi/board-indio-um-525axm.bin.IPQ5018 create mode 100755 feeds/ipq807x_v5.4/ath11k-wifi/board-indio-um-525axm.bin.QCN6122 create mode 100644 feeds/ipq807x_v5.4/ipq50xx/files/arch/arm64/boot/dts/qcom/qcom-ipq5018-indio-um-525axm.dts create mode 100644 profiles/indio_um-525axm.yml diff --git a/feeds/ipq807x_v5.4/ath11k-wifi/Makefile b/feeds/ipq807x_v5.4/ath11k-wifi/Makefile index 439830621..532a14d9c 100755 --- a/feeds/ipq807x_v5.4/ath11k-wifi/Makefile +++ b/feeds/ipq807x_v5.4/ath11k-wifi/Makefile @@ -50,6 +50,7 @@ ALLWIFIBOARDS:= \ indio-um-325ax-v2 \ indio-um-335ax \ indio-um-525axp \ + indio-um-525axm \ muxi-ap3220l \ plasmacloud-pax1800 \ wallys-dr5018 \ @@ -447,6 +448,7 @@ $(eval $(call generate-ath11k-wifi-package,indio-um-510axm-v1,Indio UM-510AXM V1 $(eval $(call generate-ath11k-wifi-package,indio-um-325ax-v2,Indio UM-325AX V2)) $(eval $(call generate-ath11k-wifi-package,indio-um-335ax,Indio UM-335AX)) $(eval $(call generate-ath11k-wifi-package,indio-um-525axp,Indio UM-525AXP)) +$(eval $(call generate-ath11k-wifi-package,indio-um-525axm,Indio UM-525AXM)) $(eval $(call generate-ath11k-wifi-package,sonicfi-rap630c-311g,Sonicfi RAP630C 311G)) $(eval $(call generate-ath11k-wifi-package,sonicfi-rap630w-311g,Sonicfi RAP630W 311G)) $(eval $(call generate-ath11k-wifi-package,sonicfi-rap630w-312g,Sonicfi RAP630W 312G)) diff --git a/feeds/ipq807x_v5.4/ath11k-wifi/board-indio-um-525axm.bin.IPQ5018 b/feeds/ipq807x_v5.4/ath11k-wifi/board-indio-um-525axm.bin.IPQ5018 new file mode 100755 index 0000000000000000000000000000000000000000..dcbe27fe0dd225dbcaf2ff0a2df8ae97ae8853ad GIT binary patch literal 131072 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 ZC + +/ { + #address-cells = <0x2>; + #size-cells = <0x2>; + model = "Indio UM-525AXM"; + compatible = "indio,um-525axm", "qcom,ipq5018-mp03.5-c1", "qcom,ipq5018"; + interrupt-parent = <&intc>; + + aliases { + sdhc1 = &sdhc_1; /* SDC1 eMMC slot */ + serial0 = &blsp1_uart1; + serial1 = &blsp1_uart2; + ethernet0 = "/soc/dp1"; + ethernet1 = "/soc/dp2"; + //led-failsafe = &led_red; + //led-running = &led_green; + //led-upgrade = &led_green; + //led-gateway = &led_blue; + //led-factory = &led_blue; + }; + + chosen { + bootargs = "console=ttyMSM0,115200,n8 rw init=/init"; + #ifdef __IPQ_MEM_PROFILE_256_MB__ + bootargs-append = " swiotlb=1"; + #else + bootargs-append = " swiotlb=1 coherent_pool=2M"; + #endif + 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 | 15MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | M3 Dump | 0x4E200000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | QDSS | 0x4E300000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | data | 0x4E400000 | 15MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | M3 Dump | 0x4F300000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | QDSS | 0x4F400000 | 1MB | + * +----------+--------------+-------------------------+ + * | | + * | Rest of the memory for Linux | + * | | + * +===================================================+ + */ + q6_mem_regions: q6_mem_regions@4B000000 { + no-map; + reg = <0x0 0x4B000000 0x0 0x4500000>; + }; + + 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 0xF00000>; + }; + + 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_data2: q6_qcn6122_data2@4E400000 { + no-map; + reg = <0x0 0x4E400000 0x0 0xF00000>; + }; + + m3_dump_qcn6122_2: m3_dump_qcn6122_2@4F300000 { + no-map; + reg = <0x0 0x4F300000 0x0 0x100000>; + }; + + q6_qcn6122_etr_2: q6_qcn6122_etr_2@4F400000 { + no-map; + reg = <0x0 0x4F400000 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 | 14MB | + * +----------+--------------+-------------------------+ + * | IPQ5018 | | | + * | M3 Dump | 0x4D200000 | 1MB | + * +----------+--------------+-------------------------+ + * | IPQ5018 | | | + * | QDSS | 0x4D300000 | 1MB | + * +----------+--------------+-------------------------+ + * | IPQ5018 | | | + * | Caldb | 0x4D400000 | 2MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | data | 0x4D600000 | 16MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | M3 Dump | 0x4E600000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | QDSS | 0x4E700000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | Caldb | 0x4E800000 | 5MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | data | 0x4ED00000 | 16MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | M3 Dump | 0x4FD00000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | QDSS | 0x4FE00000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | Caldb | 0x4FF00000 | 5MB | + * +----------+--------------+-------------------------+ + * | | + * | Rest of the memory for Linux | + * | | + * +===================================================+ + */ + q6_mem_regions: q6_mem_regions@4B000000 { + no-map; + reg = <0x0 0x4B000000 0x0 0x5400000>; + }; + + 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 0xE00000>; + }; + + m3_dump: m3_dump@4D200000 { + no-map; + reg = <0x0 0x4D200000 0x0 0x100000>; + }; + + q6_etr_region: q6_etr_dump@4D300000 { + no-map; + reg = <0x0 0x4D300000 0x0 0x100000>; + }; + + q6_caldb_region: q6_caldb_region@4D400000 { + no-map; + reg = <0x0 0x4D400000 0x0 0x200000>; + }; + + q6_qcn6122_data1: q6_qcn6122_data1@4D600000 { + no-map; + reg = <0x0 0x4D600000 0x0 0x1000000>; + }; + + m3_dump_qcn6122_1: m3_dump_qcn6122_1@4E600000 { + no-map; + reg = <0x0 0x4E600000 0x0 0x100000>; + }; + + q6_qcn6122_etr_1: q6_qcn6122_etr_1@4E700000 { + no-map; + reg = <0x0 0x4E700000 0x0 0x100000>; + }; + + q6_qcn6122_caldb_1: q6_qcn6122_caldb_1@4E800000 { + no-map; + reg = <0x0 0x4E800000 0x0 0x500000>; + }; + + q6_qcn6122_data2: q6_qcn6122_data2@4E900000 { + no-map; + reg = <0x0 0x4ED00000 0x0 0x1000000>; + }; + + m3_dump_qcn6122_2: m3_dump_qcn6122_2@4FD00000 { + no-map; + reg = <0x0 0x4FD00000 0x0 0x100000>; + }; + + q6_qcn6122_etr_2: q6_qcn6122_etr_2@4FE00000 { + no-map; + reg = <0x0 0x4FE00000 0x0 0x100000>; + }; + + q6_qcn6122_caldb_2: q6_qcn6122_caldb_2@4FF00000 { + no-map; + reg = <0x0 0x4FF00000 0x0 0x500000>; + }; + + #endif + }; + + soc { + gpio-watchdog { + compatible = "linux,wdt-gpio"; + gpios = <&tlmm 27 GPIO_ACTIVE_LOW>; + hw_algo = "toggle"; + hw_margin_ms = <5000>; + always-running; + }; + + serial@78af000 { + status = "ok"; + }; + + blsp1_uart2: serial@78b0000 { + pinctrl-0 = <&blsp1_uart_pins>; + pinctrl-names = "default"; + }; + + 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 39 0>; + + ethernet-phy@0 { + reg = <28>; + }; + }; + + 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 = <0x1c>; + mdiobus = <&mdio1>; + port_mac_sel = "QGMAC_PORT"; + }; + }; + led_source@0 { + source = <0>; + mode = "normal"; + speed = "all"; + blink_en = "enable"; + active = "high"; + }; + }; + ess-switch1@1 { + compatible = "qcom,ess-switch-qca83xx"; + device_id = <1>; + switch_access_mode = "mdio"; + mdio-bus = <&mdio1>; + reset_gpio = <0x28>; + switch_cpu_bmp = <0x40>; /* cpu port bitmap */ + switch_lan_bmp = <0x1e>; /* lan port bitmap */ + switch_wan_bmp = <0x0>; /* wan port bitmap */ + qca,ar8327-initvals = < + 0x00004 0x7600000 /* PAD0_MODE */ + 0x00008 0x1000000 /* PAD5_MODE */ + 0x0000c 0x80 /* PAD6_MODE */ + 0x00010 0x2613a0 /* PORT6 FORCE MODE*/ + 0x000e4 0xaa545 /* MAC_POWER_SEL */ + 0x000e0 0xc74164de /* SGMII_CTRL */ + 0x0007c 0x4e /* PORT0_STATUS */ + 0x00094 0x4e /* PORT6_STATUS */ + >; + qcom,port_phyinfo { + port@0 { + port_id = <1>; + phy_address = <28>; + }; + }; + }; + }; + + 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"; + }; + + dp2 { + device_type = "network"; + compatible = "qcom,nss-dp"; + clocks = <&gcc GCC_SNOC_GMAC1_AXI_CLK>; + clock-names = "nss-snoc-gmac-axi-clk"; + qcom,id = <2>; + reg = <0x39D00000 0x10000>; + interrupts = ; + qcom,mactype = <2>; + qcom,link-poll = <1>; + qcom,phy-mdio-addr = <28>; + mdio-bus = <&mdio1>; + local-mac-address = [000000000000]; + phy-mode = "sgmii"; + }; + + qcom,test@0 { + status = "ok"; + }; + + nss-macsec1 { + compatible = "qcom,nss-macsec"; + phy_addr = <0x1c>; + mdiobus = <&mdio1>; + }; + + lpass: lpass@0xA000000{ + status = "disabled"; + }; + + pcm: pcm@0xA3C0000{ + pinctrl-0 = <&audio_pins>; + pinctrl-names = "default"; + status = "disabled"; + }; + + pcm_lb: pcm_lb@0 { + status = "disabled"; + }; + }; + + thermal-zones { + status = "ok"; + }; + +}; + +&tlmm { + pinctrl-0 = <&blsp0_uart_pins &phy_led_pins>; + pinctrl-names = "default"; + + blsp0_uart_pins: uart_pins { + blsp0_uart_rx_tx { + pins = "gpio20", "gpio21"; + function = "blsp0_uart0"; + bias-disable; + }; + }; + + blsp1_uart_pins: blsp1_uart_pins { + blsp1_uart_rx_tx { + pins = "gpio22", "gpio24", "gpio23", "gpio25"; + function = "blsp1_uart2"; + 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_0 { + pins = "gpio7"; + function = "qspi0"; + drive-strength = <8>; + bias-disable; + }; + qspi_data_1 { + pins = "gpio6"; + function = "qspi1"; + drive-strength = <8>; + bias-disable; + }; + qspi_data_2 { + pins = "gpio5"; + function = "qspi2"; + drive-strength = <8>; + bias-disable; + }; + qspi_data_3 { + pins = "gpio4"; + function = "qspi3"; + 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; + }; + }; + + phy_led_pins: phy_led_pins { + gephy_led_pin { + pins = "gpio46"; + function = "led0"; + drive-strength = <8>; + bias-pull-down; + }; + }; + + i2c_pins: i2c_pins { + i2c_scl { + pins = "gpio25"; + function = "blsp2_i2c1"; + drive-strength = <8>; + bias-disable; + }; + + i2c_sda { + pins = "gpio26"; + function = "blsp2_i2c1"; + drive-strength = <8>; + bias-disable; + }; + }; + + button_pins: button_pins { + reset_button { + pins = "gpio38"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; + }; + }; +audio_pins: audio_pinmux { +}; + leds_pins: leds_pins { + led_5g { + pins = "gpio34"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + led_2g { + pins = "gpio33"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + led_sys { + pins = "gpio26"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + led_onekey { + pins = "gpio28"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + }; +}; + +&soc { + gpio_keys { + compatible = "gpio-keys"; + pinctrl-0 = <&button_pins>; + pinctrl-names = "default"; + + button@1 { + label = "reset"; + linux,code = ; + gpios = <&tlmm 38 GPIO_ACTIVE_LOW>; + linux,input-type = <1>; + debounce-interval = <60>; + }; + }; + + leds { + compatible = "gpio-leds"; + pinctrl-0 = <&leds_pins>; + pinctrl-names = "default"; + + led_blue: led@34 { + label = "led_5g"; + gpios = <&tlmm 34 GPIO_ACTIVE_LOW>; + linux,default-trigger = "led_5g"; + default-state = "off"; + }; + led_green: led@33 { + label = "led_2g"; + gpios = <&tlmm 33 GPIO_ACTIVE_LOW>; + linux,default-trigger = "led_2g"; + default-state = "off"; + }; + led_red: led@26 { + label = "led_sys"; + gpios = <&tlmm 26 GPIO_ACTIVE_LOW>; + linux,default-trigger = "led_sys"; + default-state = "off"; + }; + led@28 { + label = "led_onekey"; + gpios = <&tlmm 28 GPIO_ACTIVE_LOW>; + linux,default-trigger = "led_onekey"; + default-state = "off"; + }; + }; +}; + +&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 + + }; + + q6_wcss_pd3: remoteproc_pd3 { + compatible = "qcom,ipq5018-wcss-pcie-mpd"; + firmware = "IPQ5018/q6_fw.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"; + #ifdef __IPQ_MEM_PROFILE_256_MB__ + memory-region = <&q6_qcn6122_data2>, <&m3_dump_qcn6122_2>, + <&q6_qcn6122_etr_2>; + #else + memory-region = <&q6_qcn6122_data2>, <&m3_dump_qcn6122_2>, + <&q6_qcn6122_etr_2>, <&q6_qcn6122_caldb_2>; + #endif + }; +}; + +&i2c_0 { + pinctrl-0 = <&i2c_pins>; + pinctrl-names = "default"; + status = "disabled"; +}; + +&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 = <0x4D400000 0x4D400000 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 = <0x50>; +#ifdef __CNSS2__ + qcom,bdf-addr = <0x4D600000 0x4D600000 0x4D300000 0x0 0x0>; + qcom,caldb-addr = <0x4E800000 0x4E800000 0 0 0>; + qcom,caldb-size = <0x500000>; + mem-region = <&q6_qcn6122_data1>; +#else + memory-region = <&q6_qcn6122_data1>; +#endif + status = "disabled"; +}; + +&wifi2 { + /* QCN6122 6G */ + qcom,multipd_arch; + qcom,userpd-subsys-name = "q6v5_wcss_userpd3"; + qcom,rproc = <&q6_wcss_pd3>; +#ifdef __IPQ_MEM_PROFILE_256_MB__ + qcom,tgt-mem-mode = <2>; +#else + qcom,tgt-mem-mode = <1>; +#endif + qcom,board_id = <0xb0>; +#ifdef __CNSS2__ + qcom,bdf-addr = <0x4ED00000 0x4ED00000 0x4E400000 0x0 0x0>; + qcom,caldb-addr = <0x4FF00000 0x4FF00000 0 0 0>; + qcom,caldb-size = <0x500000>; + mem-region = <&q6_qcn6122_data2>; +#else + memory-region = <&q6_qcn6122_data2>; +#endif + status = "ok"; +}; + + +&usb3 { + status = "ok"; + device-power-gpio = <&tlmm 24 1>; +}; + +&dwc_0 { + /delete-property/ #phy-cells; + /delete-property/ phys; + /delete-property/ phy-names; +}; +&hs_m31phy_0 { + status = "ok"; +}; + +&eud { + status = "ok"; +}; + +&pcie_x1 { + #status = "disabled"; + #perst-gpio = <&tlmm 18 1>; + perst-gpio = <&tlmm 18 GPIO_ACTIVE_LOW>; +}; + +&pcie_x2 { + #status = "disabled"; + #perst-gpio = <&tlmm 15 1>; + 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 >; + + }; +}; + diff --git a/feeds/ipq807x_v5.4/ipq50xx/image/ipq50xx.mk b/feeds/ipq807x_v5.4/ipq50xx/image/ipq50xx.mk index afbfe0b5b..ee1736d84 100755 --- a/feeds/ipq807x_v5.4/ipq50xx/image/ipq50xx.mk +++ b/feeds/ipq807x_v5.4/ipq50xx/image/ipq50xx.mk @@ -120,6 +120,15 @@ define Device/indio_um-525axp endef TARGET_DEVICES += indio_um-525axp +define Device/indio_um-525axm + DEVICE_TITLE := Indio UM-525axm + DEVICE_DTS := qcom-ipq5018-indio-um-525axm + SUPPORTED_DEVICES := indio,um-525axm + DEVICE_PACKAGES := ath11k-wifi-indio-um-525axm ath11k-firmware-ipq50xx-spruce ath11k-firmware-qcn6122 + DEVICE_DTS_CONFIG := config@mp03.5-c1 +endef +TARGET_DEVICES += indio_um-525axm + define Device/udaya_a6_id2 DEVICE_TITLE := Udaya A6 - ID2 DEVICE_DTS := qcom-ipq5018-udaya-a6-id2 diff --git a/profiles/indio_um-525axm.yml b/profiles/indio_um-525axm.yml new file mode 100644 index 000000000..b9d918ba4 --- /dev/null +++ b/profiles/indio_um-525axm.yml @@ -0,0 +1,17 @@ +--- +profile: indio_um-525axm +target: ipq50xx +subtarget: generic +description: Build image for the Indio um-525axm +image: bin/targets/ipq50xx/generic/openwrt-ipq50xx-indio_um-525axm-squashfs-sysupgrade.tar +feeds: + - name: ipq807x + path: ../../feeds/ipq807x_v5.4 +include: + - ucentral-ap +packages: + - ipq50xx +diffconfig: | + CONFIG_KERNEL_IPQ_MEM_PROFILE=512 + CONFIG_BUSYBOX_CUSTOM=y + CONFIG_BUSYBOX_CONFIG_STTY=y