diff --git a/feeds/ipq807x_v5.4/ath11k-firmware/Makefile b/feeds/ipq807x_v5.4/ath11k-firmware/Makefile index a04d6b365..2b2be0bc9 100644 --- a/feeds/ipq807x_v5.4/ath11k-firmware/Makefile +++ b/feeds/ipq807x_v5.4/ath11k-firmware/Makefile @@ -53,7 +53,7 @@ endef define Package/ath11k-firmware-qcn9000 $(Package/ath11k-firmware-default) TITLE:=ath11k firmware for QCN9000 devices - DEPENDS:=@TARGET_ipq807x||TARGET_ipq60xx + DEPENDS:=@TARGET_ipq807x||TARGET_ipq60xx||TARGET_ipq50xx endef define Package/ath11k-firmware-ipq50xx/description diff --git a/feeds/ipq807x_v5.4/ath11k-wifi/Makefile b/feeds/ipq807x_v5.4/ath11k-wifi/Makefile index af65f37d0..62e4e8b22 100644 --- a/feeds/ipq807x_v5.4/ath11k-wifi/Makefile +++ b/feeds/ipq807x_v5.4/ath11k-wifi/Makefile @@ -114,6 +114,16 @@ $(call Package/ath11k-wifi-default) TITLE:=motorola q14 bdf endef +define Package/ath11k-wifi-optimcloud-d50 +$(call Package/ath11k-wifi-default) + TITLE:=optimcloud d50 bdf +endef + +define Package/ath11k-wifi-optimcloud-d60 +$(call Package/ath11k-wifi-default) + TITLE:=optimcloud d60 bdf +endef + define Package/ath11k-wifi-plasmacloud-pax1800 $(call Package/ath11k-wifi-default) TITLE:=plasmacloud-pax1800(-v2) bdf @@ -259,6 +269,20 @@ define Package/ath11k-wifi-cig-wf196_6g-us/install echo -n 'US' > $(1)/lib/firmware/country endef +define Package/ath11k-wifi-optimcloud-d50/install + $(INSTALL_DIR) $(1)/lib/firmware/ath11k/IPQ5018/hw1.0/ + $(INSTALL_DIR) $(1)/lib/firmware/ath11k/QCN9074/hw1.0/ + $(INSTALL_DATA) ./board-optimcloud-d50.bin.IPQ5018 $(1)/lib/firmware/ath11k/IPQ5018/hw1.0/board.bin + $(INSTALL_DATA) ./board-optimcloud-d50.bin.QCN9074 $(1)/lib/firmware/ath11k/QCN9074/hw1.0/board.bin +endef + +define Package/ath11k-wifi-optimcloud-d60/install + $(INSTALL_DIR) $(1)/lib/firmware/ath11k/IPQ5018/hw1.0/ + $(INSTALL_DIR) $(1)/lib/firmware/ath11k/QCN9074/hw1.0/ + $(INSTALL_DATA) ./board-optimcloud-d60.bin.QCN9074 $(1)/lib/firmware/ath11k/QCN9074/hw1.0/board.bin + $(INSTALL_DATA) ./board-optimcloud-d60.bin.QCN9074 $(1)/lib/firmware/ath11k/QCN9074/hw1.0/board.bin +endef + define Package/ath11k-wifi-gl-ax1800/install $(INSTALL_DIR) $(1)/lib/firmware/ath11k/IPQ6018/hw1.0/ $(INSTALL_DATA) ./board-gl-ax1800.bin.IPQ6018 $(1)/lib/firmware/ath11k/IPQ6018/hw1.0/board-2.bin @@ -379,6 +403,8 @@ $(eval $(call BuildPackage,ath11k-wifi-qcom-qcn9000)) $(eval $(call BuildPackage,ath11k-wifi-cig-wf196_6g-ca)) $(eval $(call BuildPackage,ath11k-wifi-cig-wf196_6g-us)) $(eval $(call BuildPackage,ath11k-wifi-motorola-q14)) +$(eval $(call BuildPackage,ath11k-wifi-optimcloud-d50)) +$(eval $(call BuildPackage,ath11k-wifi-optimcloud-d60)) $(eval $(call BuildPackage,ath11k-wifi-hfcl-ion4xi)) $(eval $(call BuildPackage,ath11k-wifi-hfcl-ion4xi_wp)) $(eval $(call BuildPackage,ath11k-wifi-hfcl-ion4xi_w)) diff --git a/feeds/ipq807x_v5.4/ath11k-wifi/board-optimcloud-d50.bin.IPQ5018 b/feeds/ipq807x_v5.4/ath11k-wifi/board-optimcloud-d50.bin.IPQ5018 new file mode 100644 index 000000000..b65d6bc71 Binary files /dev/null and b/feeds/ipq807x_v5.4/ath11k-wifi/board-optimcloud-d50.bin.IPQ5018 differ diff --git a/feeds/ipq807x_v5.4/ath11k-wifi/board-optimcloud-d50.bin.QCN9074 b/feeds/ipq807x_v5.4/ath11k-wifi/board-optimcloud-d50.bin.QCN9074 new file mode 100644 index 000000000..86c84f2e2 Binary files /dev/null and b/feeds/ipq807x_v5.4/ath11k-wifi/board-optimcloud-d50.bin.QCN9074 differ diff --git a/feeds/ipq807x_v5.4/ath11k-wifi/board-optimcloud-d60.bin.IPQ5018 b/feeds/ipq807x_v5.4/ath11k-wifi/board-optimcloud-d60.bin.IPQ5018 new file mode 100644 index 000000000..b65d6bc71 Binary files /dev/null and b/feeds/ipq807x_v5.4/ath11k-wifi/board-optimcloud-d60.bin.IPQ5018 differ diff --git a/feeds/ipq807x_v5.4/ath11k-wifi/board-optimcloud-d60.bin.QCN9074 b/feeds/ipq807x_v5.4/ath11k-wifi/board-optimcloud-d60.bin.QCN9074 new file mode 100644 index 000000000..86c84f2e2 Binary files /dev/null and b/feeds/ipq807x_v5.4/ath11k-wifi/board-optimcloud-d60.bin.QCN9074 differ diff --git a/feeds/ipq807x_v5.4/ipq50xx/base-files/etc/board.d/02_network b/feeds/ipq807x_v5.4/ipq50xx/base-files/etc/board.d/02_network index ece73dd18..7f6caf05c 100755 --- a/feeds/ipq807x_v5.4/ipq50xx/base-files/etc/board.d/02_network +++ b/feeds/ipq807x_v5.4/ipq50xx/base-files/etc/board.d/02_network @@ -33,6 +33,13 @@ qcom_setup_interfaces() hfcl,ion4xi_w) ucidef_set_interface_wan "eth0" ;; + optimcloud,d60|\ + optimcloud,d60-5g|\ + optimcloud,d50|\ + optimcloud,d50-5g) + ucidef_set_interface_wan "eth0" + ucidef_set_interface_lan "eth1" + ;; yuncore,fap655) ucidef_add_switch "switch1" \ "6@eth0" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan" diff --git a/feeds/ipq807x_v5.4/ipq50xx/base-files/etc/hotplug.d/firmware/10-ath11k-caldata b/feeds/ipq807x_v5.4/ipq50xx/base-files/etc/hotplug.d/firmware/10-ath11k-caldata index f843a5d2c..17f83b1e2 100755 --- a/feeds/ipq807x_v5.4/ipq50xx/base-files/etc/hotplug.d/firmware/10-ath11k-caldata +++ b/feeds/ipq807x_v5.4/ipq50xx/base-files/etc/hotplug.d/firmware/10-ath11k-caldata @@ -70,6 +70,10 @@ ath11k/IPQ5018/hw1.0/caldata.bin) edgecore,oap101e|\ edgecore,oap101e-6e|\ hfcl,ion4xi_w|\ + optimcloud,d60|\ + optimcloud,d60-5g|\ + optimcloud,d50|\ + optimcloud,d50-5g|\ yuncore,fap655) caldata_extract "0:ART" 0x1000 0x20000 ;; @@ -98,6 +102,16 @@ ath11k/qcn6122/hw1.0/caldata_2.bin) ;; esac ;; +ath11k/QCN9074/hw1.0/caldata_1.bin) + case "$board" in + optimcloud,d60|\ + optimcloud,d60-5g|\ + optimcloud,d50|\ + optimcloud,d50-5g) + caldata_extract "0:ART" 0x26800 0x20000 + ;; + esac + ;; ath11k-macs) case "$board" in cig,wf186w|\ @@ -105,6 +119,10 @@ ath11k-macs) ath11k_generate_macs_wf186w ;; edgecore,eap104|\ + optimcloud,d60|\ + optimcloud,d60-5g|\ + optimcloud,d50|\ + optimcloud,d50-5g|\ yuncore,fap655) ath11k_generate_macs ;; diff --git a/feeds/ipq807x_v5.4/ipq50xx/base-files/lib/upgrade/platform.sh b/feeds/ipq807x_v5.4/ipq50xx/base-files/lib/upgrade/platform.sh index b70b77433..c91385c11 100755 --- a/feeds/ipq807x_v5.4/ipq50xx/base-files/lib/upgrade/platform.sh +++ b/feeds/ipq807x_v5.4/ipq50xx/base-files/lib/upgrade/platform.sh @@ -72,6 +72,10 @@ platform_check_image() { cig,wf186h|\ edgecore,eap104|\ hfcl,ion4xi_w|\ + optimcloud,d60|\ + optimcloud,d60-5g|\ + optimcloud,d50|\ + optimcloud,d50-5g|\ yuncore,fap655|\ edgecore,oap101|\ edgecore,oap101-6e|\ @@ -113,6 +117,10 @@ platform_do_upgrade() { ;; cig,wf186w|\ cig,wf186h|\ + optimcloud,d60|\ + optimcloud,d60-5g|\ + optimcloud,d50|\ + optimcloud,d50-5g|\ yuncore,fap655) [ -f /proc/boot_info/rootfs/upgradepartition ] && { CI_UBIPART="$(cat /proc/boot_info/rootfs/upgradepartition)" diff --git a/feeds/ipq807x_v5.4/ipq50xx/files/arch/arm64/boot/dts/qcom/qcom-ipq5018-optimcloud-d50-5g.dts b/feeds/ipq807x_v5.4/ipq50xx/files/arch/arm64/boot/dts/qcom/qcom-ipq5018-optimcloud-d50-5g.dts new file mode 100644 index 000000000..e492d42fe --- /dev/null +++ b/feeds/ipq807x_v5.4/ipq50xx/files/arch/arm64/boot/dts/qcom/qcom-ipq5018-optimcloud-d50-5g.dts @@ -0,0 +1,911 @@ +/dts-v1/; +/* Copyright (c) 2018-2021, The Linux Foundation. All rights reserved. + * + * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include "ipq5018.dtsi" + +/ { + #address-cells = <0x2>; + #size-cells = <0x2>; + model = "OptimCloud D50-5G"; + compatible = "optimcloud,d50-5g", "qcom,ipq5018-ap-mp03.1", "qcom,ipq5018-mp03.1", "qcom,ipq5018"; + interrupt-parent = <&intc>; + + aliases { + sdhc1 = &sdhc_1; /* SDC1 eMMC slot */ + serial0 = &blsp1_uart1; + serial1 = &blsp1_uart2; + ethernet0 = "/soc/dp1"; + ethernet1 = "/soc/dp2"; + }; + + 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 | 0x4B000000 | 23MB | + * | | | | + * | | | | + * | | | | + * +--------+--------------+-------------------------+ + * | M3 Dump| 0x4C700000 | 1MB | + * +--------+--------------+-------------------------+ + * | QDSS | 0x4C800000 | 1MB | + * +--------+--------------+-------------------------+ + * | | | | + * |QCN9000 | 0x4C900000 | 17MB | + * | | | | + * +--------+--------------+-------------------------+ + * | | | | + * | MHI1 | 0x4DA00000 | 5MB | + * | | | | + * +--------+--------------+-------------------------+ + * | | + * | Rest of the memory for Linux | + * | | + * +=================================================+ + */ + q6_region: memory@4b000000 { + no-map; + reg = <0x0 0x4b000000 0x0 0x01700000>; + }; + + m3_dump@4c700000 { + no-map; + reg = <0x0 0x4C700000 0x0 0x100000>; + }; + + q6_etr_region:q6_etr_dump@4c800000 { + no-map; + reg = <0x0 0x4c800000 0x0 0x100000>; + }; + + qcn9000_pcie0: qcn9000_pcie0@4c900000 { + no-map; + reg = <0x0 0x4C900000 0x0 0x01100000>; + }; + + #if defined(__CNSS2__) + mhi_region1: dma_pool1@4da00000 { + compatible = "shared-dma-pool"; + no-map; + reg = <0x0 0x4DA00000 0x0 0x00500000>; + }; + #endif + #elif __IPQ_MEM_PROFILE_512_MB__ + /* 512 MB Profile + * +=========+==============+========================+ + * | | | | + * | 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 | 0x4B000000 | 23MB | + * | | | | + * | | | | + * +--------+--------------+-------------------------+ + * | M3 Dump| 0x4C700000 | 1MB | + * +--------+--------------+-------------------------+ + * | QDSS | 0x4C800000 | 1MB | + * +--------+--------------+-------------------------+ + * | caldb | 0x4C900000 | 2MB | + * +--------+--------------+-------------------------+ + * | | | | + * |QCN9000 | 0x4CB00000 | 26MB | + * | | | | + * +--------+--------------+-------------------------+ + * | | | | + * | MHI1 | 0x4E500000 | 5MB | + * | | | | + * +--------+--------------+-------------------------+ + * | | + * | Rest of the memory for Linux | + * | | + * +=================================================+ + */ + q6_region: memory@4b000000 { + no-map; + reg = <0x0 0x4b000000 0x0 0x01700000>; + }; + + m3_dump@4c700000 { + no-map; + reg = <0x0 0x4c700000 0x0 0x100000>; + }; + + q6_etr_region:q6_etr_dump@4c800000 { + no-map; + reg = <0x0 0x4c800000 0x0 0x100000>; + }; + + q6_caldb_region:q6_caldb_region@4c900000 { + no-map; + reg = <0x0 0x4c900000 0x0 0x200000>; + }; + + qcn9000_pcie0: qcn9000_pcie0@4cb00000 { + no-map; + reg = <0x0 0x4CB00000 0x0 0x1A00000>; + }; + + #if defined(__CNSS2__) + mhi_region1: dma_pool1@4E500000 { + compatible = "shared-dma-pool"; + no-map; + reg = <0x0 0x4E500000 0x0 0x00500000>; + }; + #endif + #else + /* 1G Profile + * +=========+==============+========================+ + * | | | | + * | 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 | 0x4B000000 | 23MB | + * | | | | + * | | | | + * +--------+--------------+-------------------------+ + * | M3 Dump| 0x4C700000 | 1MB | + * +--------+--------------+-------------------------+ + * | QDSS | 0x4C800000 | 1MB | + * +--------+--------------+-------------------------+ + * | caldb | 0x4C900000 | 2MB | + * +--------+--------------+-------------------------+ + * | | | | + * |QCN9000 | 0x4CB00000 | 53MB | + * | | | | + * +--------+--------------+-------------------------+ + * | | | | + * | MHI1 | 0x50000000 | 5MB | + * | | | | + * +--------+--------------+-------------------------+ + * | | + * | Rest of the memory for Linux | + * | | + * +=================================================+ + */ + q6_region: memory@4b000000 { + no-map; + reg = <0x0 0x4b000000 0x0 0x01700000>; + }; + + m3_dump@4c700000 { + no-map; + reg = <0x0 0x4c700000 0x0 0x100000>; + }; + + q6_etr_region:q6_etr_dump@4c800000 { + no-map; + reg = <0x0 0x4c800000 0x0 0x100000>; + }; + + q6_caldb_region:q6_caldb_region@4c900000 { + no-map; + reg = <0x0 0x4c900000 0x0 0x200000>; + }; + + qcn9000_pcie0: qcn9000_pcie0@4cb00000 { + no-map; + reg = <0x0 0x4CB00000 0x0 0x03500000>; + }; + + #if defined(__CNSS2__) + mhi_region1: dma_pool1@50000000 { + compatible = "shared-dma-pool"; + no-map; + reg = <0x0 0x50000000 0x0 0x00500000>; + }; + #endif + #endif + }; + + soc { + 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"; + qcom,io_macro_max_clk = <320000000>; + qcom,io_macro_clk_rates = <24000000 100000000 200000000 \ + 320000000>; + 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 = <0>; + }; + + ethernet-phy@1 { + reg = <1>; + }; + + ethernet-phy@2 { + reg = <2>; + }; + + ethernet-phy@3 { + reg = <3>; + }; + }; + + ess-instance { + num_devices = <0x2>; + ess-switch@0x39c00000 { + compatible = "qcom,ess-switch-ipq50xx"; + device_id = <0>; + 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>; + }; + port@1 { + port_id = <2>; + forced-speed = <1000>; + forced-duplex = <1>; + }; + }; + 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 = <&tlmm 0x27 0>; + 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 = <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>; + }; + }; + }; + }; + wifi0: wifi@c000000 { + qcom,bdf-addr = <0x4BA00000 0x4BA00000 0x4BA00000 + 0x0 0x0>; + qcom,caldb-addr = <0x4CA00000 0x4CA00000 0x4CA00000 + 0x0 0x0>; + qcom,caldb-size = <0x200000>; + status = "ok"; + }; + ess-uniphy@98000 { + status = "disabled"; + }; + + qcom,sps { + status = "ok"; + }; + + qcom,diag@0 { + 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"; + qcom,rx-page-mode = <0>; + }; + + 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>; + local-mac-address = [000000000000]; + phy-mode = "sgmii"; + qcom,rx-page-mode = <0>; + }; + + rpm_etm0 { + status = "disabled"; + }; + + pcm: pcm@0xA3C0000{ + pinctrl-0 = <&audio_pins>; + pinctrl-names = "default"; + }; + }; + + qcom,test@0 { + status = "ok"; + }; + + thermal-zones { + status = "ok"; + }; +}; + +&tlmm { + pinctrl-0 = <&blsp0_uart_pins &phy_led_pins>; + pinctrl-names = "default"; + + blsp0_uart_pins: blsp0_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 = "gpio23", "gpio25", "gpio24", "gpio26"; + 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 { + 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; + }; + }; + + 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 { + wps_button { + pins = "gpio38"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; + }; + }; + + leds_pins: leds_pins { + led_5g_wifi { + pins = "gpio35"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + led_2g_wifi { + pins = "gpio30"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + led_lte_g { + pins = "gpio33"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + led_lte_r { + pins = "gpio34"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + led_nr_g { + pins = "gpio27"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + led_nr_r { + pins = "gpio28"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + led_voice { + pins = "gpio1"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + }; + + audio_pins: audio_pinmux { + mux_1 { + pins = "gpio24"; + function = "audio_rxbclk"; + drive-strength = <8>; + bias-pull-down; + }; + + mux_2 { + pins = "gpio25"; + function = "audio_rxfsync"; + drive-strength = <8>; + bias-pull-down; + }; + + mux_3 { + pins = "gpio26"; + function = "audio_rxd"; + drive-strength = <8>; + bias-pull-down; + }; + + mux_4 { + pins = "gpio27"; + function = "audio_txmclk"; + drive-strength = <8>; + bias-pull-down; + }; + + mux_5 { + pins = "gpio28"; + function = "audio_txbclk"; + drive-strength = <8>; + bias-pull-down; + }; + + mux_6 { + pins = "gpio29"; + function = "audio_txfsync"; + drive-strength = <8>; + bias-pull-down; + }; + + mux_7 { + pins = "gpio30"; + function = "audio_txd"; + drive-strength = <8>; + bias-pull-down; + }; + }; +}; + +&soc { + gpio_keys { + compatible = "gpio-keys"; + pinctrl-0 = <&button_pins>; + pinctrl-names = "default"; + + button@1 { + label = "wps"; + linux,code = ; + gpios = <&tlmm 38 GPIO_ACTIVE_LOW>; + linux,input-type = <1>; + debounce-interval = <60>; + }; + }; +}; + +&usb3 { + qcom,multiplexed-phy; + qcom,phy-mux-regs = <&tcsr_q6_block 0x2540>; + device-power-gpio = <&tlmm 24 1>; + status = "ok"; +}; + +&eud { + status = "ok"; +}; + +&pcie_x1 { + perst-gpio = <&tlmm 18 GPIO_ACTIVE_LOW>; +}; + +&pcie_x2 { + status = "ok"; + perst-gpio = <&tlmm 15 GPIO_ACTIVE_LOW>; +}; + +&wcss { + status = "ok"; +}; + +&q6v5_wcss { + #ifdef __IPQ_MEM_PROFILE_256_MB__ + memory-region = <&q6_region>, <&q6_etr_region>; + #else + memory-region = <&q6_region>, <&q6_etr_region>, + <&q6_caldb_region>; + #endif +}; + +&i2c_0 { + pinctrl-0 = <&i2c_pins>; + pinctrl-names = "default"; +}; + +&blsp1_uart1 { + status = "ok"; +}; + +&ssuniphy_0 { + status = "ok"; +}; + +&hs_m31phy_0 { + status = "ok"; +}; + +&pcie_x2phy { + status = "ok"; +}; + +&pcie_x1_rp { + status = "disabled"; + + mhi_0: qcom,mhi@0 { + reg = <0 0 0 0 0 >; + }; +}; + +&pcie_x2_rp { + status = "ok"; + + mhi_1: qcom,mhi@1 { + reg = <0 0 0 0 0 >; + qrtr_instance_id = <0x20>; + qti,disable-rddm-prealloc; + qti,rddm-seg-len = <0x1000>; + #address-cells = <0x2>; + #size-cells = <0x2>; +#if defined(__CNSS2__) + memory-region = <0>,<&mhi_region1>; +#else + base-addr = <0x4CB00000>; + m3-dump-addr = <0x4DF00000>; + etr-addr = <0x4E000000>; + qcom,caldb-addr = <0x4E100000>; + pageable-addr = <0x4E900000>; + qcom,tgt-mem-mode = <0x1>; +#endif + }; +}; + +&wifi0 { + /* IPQ5018 */ + mem-region = <&q6_region>; + qcom,board_id = <0x24>; + + qcom,bdf-addr = <0x4BA00000 0x4BA00000 0x4BA00000 + 0x0 0x0>; + qcom,caldb-addr = <0x4C900000 0x4C900000 0x0 0x0 0x0>; + qcom,caldb-size = <0x200000>; + status = "ok"; +}; + +&wifi3 { + /* QCN9000 5G */ + board_id = <0xa0>; + hremote_node = <&qcn9000_pcie0>; +#ifdef __IPQ_MEM_PROFILE_256_MB__ + /* QCN9000 tgt-mem-mode=2 layout - 17MB + * +=========+==============+=========+ + * | Region | Start Offset | Size | + * +---------+--------------+---------+ + * | HREMOTE | 0x4C900000 | 11MB | + * +---------+--------------+---------+ + * | M3 Dump | 0x4D400000 | 1MB | + * +---------+--------------+---------+ + * | ETR | 0x4D500000 | 1MB | + * +---------+--------------+---------+ + * | Pageable| 0x4D600000 | 4MB | + * +==================================+ + */ + base-addr = <0x4C900000>; + m3-dump-addr = <0x4D400000>; + etr-addr = <0x4D500000>; + caldb-addr = <0>; + pageable-addr = <0x4D600000>; + caldb-size = <0>; + hremote-size = <0xB00000>; + tgt-mem-mode = <0x2>; + pageable-size = <0x400000>; +#elif __IPQ_MEM_PROFILE_512_MB__ + /* QCN9000 tgt-mem-mode=1 layout - 26MB + * +=========+==============+=========+ + * | Region | Start Offset | Size | + * +---------+--------------+---------+ + * | HREMOTE | 0x4CB00000 | 12MB | + * +---------+--------------+---------+ + * | M3 Dump | 0x4D700000 | 1MB | + * +---------+--------------+---------+ + * | ETR | 0x4D800000 | 1MB | + * +---------+--------------+---------+ + * | Caldb | 0x4D900000 | 8MB | + * +---------+--------------+---------+ + * | Pageable| 0x4E100000 | 4MB | + * +==================================+ + */ + base-addr = <0x4CB00000>; + m3-dump-addr = <0x4D700000>; + etr-addr = <0x4D800000>; + caldb-addr = <0x4D900000>; + pageable-addr = <0x4E100000>; + caldb-size = <0x800000>; + hremote-size = <0xC00000>; + tgt-mem-mode = <0x1>; + pageable-size = <0x400000>; +#else + /* QCN9000 tgt-mem-mode=0 layout - 53MB + * +=========+==============+=========+ + * | Region | Start Offset | Size | + * +---------+--------------+---------+ + * | HREMOTE | 0x4CB00000 | 35MB | + * +---------+--------------+---------+ + * | M3 Dump | 0x4EE00000 | 1MB | + * +---------+--------------+---------+ + * | ETR | 0x4EF00000 | 1MB | + * +---------+--------------+---------+ + * | Caldb | 0x4F000000 | 8MB | + * +---------+--------------+---------+ + * | Pageable| 0x4F800000 | 8MB | + * +==================================+ + */ + base-addr = <0x4CB00000>; + m3-dump-addr = <0x4EE00000>; + etr-addr = <0x4EF00000>; + caldb-addr = <0x4F000000>; + pageable-addr = <0x4F800000>; + hremote-size = <0x2300000>; + caldb-size = <0x800000>; + tgt-mem-mode = <0x0>; + pageable-size = <0x800000>; +#endif + status = "ok"; +}; diff --git a/feeds/ipq807x_v5.4/ipq50xx/files/arch/arm64/boot/dts/qcom/qcom-ipq5018-optimcloud-d50.dts b/feeds/ipq807x_v5.4/ipq50xx/files/arch/arm64/boot/dts/qcom/qcom-ipq5018-optimcloud-d50.dts new file mode 100644 index 000000000..4fc9a7465 --- /dev/null +++ b/feeds/ipq807x_v5.4/ipq50xx/files/arch/arm64/boot/dts/qcom/qcom-ipq5018-optimcloud-d50.dts @@ -0,0 +1,859 @@ +/dts-v1/; +/* Copyright (c) 2018-2021, The Linux Foundation. All rights reserved. + * + * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include "ipq5018.dtsi" + +/ { + #address-cells = <0x2>; + #size-cells = <0x2>; + model = "OptimCloud D50"; + compatible = "optimcloud,d50", "qcom,ipq5018-ap-mp03.1", "qcom,ipq5018-mp03.1", "qcom,ipq5018"; + interrupt-parent = <&intc>; + + aliases { + sdhc1 = &sdhc_1; /* SDC1 eMMC slot */ + serial0 = &blsp1_uart1; + serial1 = &blsp1_uart2; + ethernet0 = "/soc/dp1"; + ethernet1 = "/soc/dp2"; + }; + + 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 | 0x4B000000 | 23MB | + * | | | | + * | | | | + * | | | | + * +--------+--------------+-------------------------+ + * | M3 Dump| 0x4C700000 | 1MB | + * +--------+--------------+-------------------------+ + * | QDSS | 0x4C800000 | 1MB | + * +--------+--------------+-------------------------+ + * | | | | + * |QCN9000 | 0x4C900000 | 17MB | + * | | | | + * +--------+--------------+-------------------------+ + * | | | | + * | MHI1 | 0x4DA00000 | 5MB | + * | | | | + * +--------+--------------+-------------------------+ + * | | + * | Rest of the memory for Linux | + * | | + * +=================================================+ + */ + q6_region: memory@4b000000 { + no-map; + reg = <0x0 0x4b000000 0x0 0x01700000>; + }; + + m3_dump@4c700000 { + no-map; + reg = <0x0 0x4C700000 0x0 0x100000>; + }; + + q6_etr_region:q6_etr_dump@4c800000 { + no-map; + reg = <0x0 0x4c800000 0x0 0x100000>; + }; + + qcn9000_pcie0: qcn9000_pcie0@4c900000 { + no-map; + reg = <0x0 0x4C900000 0x0 0x01100000>; + }; + + #if defined(__CNSS2__) + mhi_region1: dma_pool1@4da00000 { + compatible = "shared-dma-pool"; + no-map; + reg = <0x0 0x4DA00000 0x0 0x00500000>; + }; + #endif + #elif __IPQ_MEM_PROFILE_512_MB__ + /* 512 MB Profile + * +=========+==============+========================+ + * | | | | + * | 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 | 0x4B000000 | 23MB | + * | | | | + * | | | | + * +--------+--------------+-------------------------+ + * | M3 Dump| 0x4C700000 | 1MB | + * +--------+--------------+-------------------------+ + * | QDSS | 0x4C800000 | 1MB | + * +--------+--------------+-------------------------+ + * | caldb | 0x4C900000 | 2MB | + * +--------+--------------+-------------------------+ + * | | | | + * |QCN9000 | 0x4CB00000 | 26MB | + * | | | | + * +--------+--------------+-------------------------+ + * | | | | + * | MHI1 | 0x4E500000 | 5MB | + * | | | | + * +--------+--------------+-------------------------+ + * | | + * | Rest of the memory for Linux | + * | | + * +=================================================+ + */ + q6_region: memory@4b000000 { + no-map; + reg = <0x0 0x4b000000 0x0 0x01700000>; + }; + + m3_dump@4c700000 { + no-map; + reg = <0x0 0x4c700000 0x0 0x100000>; + }; + + q6_etr_region:q6_etr_dump@4c800000 { + no-map; + reg = <0x0 0x4c800000 0x0 0x100000>; + }; + + q6_caldb_region:q6_caldb_region@4c900000 { + no-map; + reg = <0x0 0x4c900000 0x0 0x200000>; + }; + + qcn9000_pcie0: qcn9000_pcie0@4cb00000 { + no-map; + reg = <0x0 0x4CB00000 0x0 0x1A00000>; + }; + + #if defined(__CNSS2__) + mhi_region1: dma_pool1@4E500000 { + compatible = "shared-dma-pool"; + no-map; + reg = <0x0 0x4E500000 0x0 0x00500000>; + }; + #endif + #else + /* 1G Profile + * +=========+==============+========================+ + * | | | | + * | 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 | 0x4B000000 | 23MB | + * | | | | + * | | | | + * +--------+--------------+-------------------------+ + * | M3 Dump| 0x4C700000 | 1MB | + * +--------+--------------+-------------------------+ + * | QDSS | 0x4C800000 | 1MB | + * +--------+--------------+-------------------------+ + * | caldb | 0x4C900000 | 2MB | + * +--------+--------------+-------------------------+ + * | | | | + * |QCN9000 | 0x4CB00000 | 53MB | + * | | | | + * +--------+--------------+-------------------------+ + * | | | | + * | MHI1 | 0x50000000 | 5MB | + * | | | | + * +--------+--------------+-------------------------+ + * | | + * | Rest of the memory for Linux | + * | | + * +=================================================+ + */ + q6_region: memory@4b000000 { + no-map; + reg = <0x0 0x4b000000 0x0 0x01700000>; + }; + + m3_dump@4c700000 { + no-map; + reg = <0x0 0x4c700000 0x0 0x100000>; + }; + + q6_etr_region:q6_etr_dump@4c800000 { + no-map; + reg = <0x0 0x4c800000 0x0 0x100000>; + }; + + q6_caldb_region:q6_caldb_region@4c900000 { + no-map; + reg = <0x0 0x4c900000 0x0 0x200000>; + }; + + qcn9000_pcie0: qcn9000_pcie0@4cb00000 { + no-map; + reg = <0x0 0x4CB00000 0x0 0x03500000>; + }; + + #if defined(__CNSS2__) + mhi_region1: dma_pool1@50000000 { + compatible = "shared-dma-pool"; + no-map; + reg = <0x0 0x50000000 0x0 0x00500000>; + }; + #endif + #endif + }; + + soc { + 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"; + qcom,io_macro_max_clk = <320000000>; + qcom,io_macro_clk_rates = <24000000 100000000 200000000 \ + 320000000>; + 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 = <0>; + }; + + ethernet-phy@1 { + reg = <1>; + }; + + ethernet-phy@2 { + reg = <2>; + }; + + ethernet-phy@3 { + reg = <3>; + }; + }; + + ess-instance { + num_devices = <0x2>; + ess-switch@0x39c00000 { + compatible = "qcom,ess-switch-ipq50xx"; + device_id = <0>; + 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>; + }; + port@1 { + port_id = <2>; + forced-speed = <1000>; + forced-duplex = <1>; + }; + }; + 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 = <&tlmm 0x27 0>; + 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 = <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>; + }; + }; + }; + }; + + ess-uniphy@98000 { + status = "disabled"; + }; + + qcom,sps { + status = "ok"; + }; + + qcom,diag@0 { + 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"; + qcom,rx-page-mode = <0>; + }; + + 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>; + local-mac-address = [000000000000]; + phy-mode = "sgmii"; + qcom,rx-page-mode = <0>; + }; + + rpm_etm0 { + status = "disabled"; + }; + + pcm: pcm@0xA3C0000{ + pinctrl-0 = <&audio_pins>; + pinctrl-names = "default"; + }; + }; + + qcom,test@0 { + status = "ok"; + }; + + thermal-zones { + status = "ok"; + }; +}; + +&tlmm { + pinctrl-0 = <&blsp0_uart_pins &phy_led_pins>; + pinctrl-names = "default"; + + blsp0_uart_pins: blsp0_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 = "gpio23", "gpio25", "gpio24", "gpio26"; + 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 { + 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; + }; + }; + + 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 { + wps_button { + pins = "gpio38"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; + }; + }; + + audio_pins: audio_pinmux { + mux_1 { + pins = "gpio24"; + function = "audio_rxbclk"; + drive-strength = <8>; + bias-pull-down; + }; + + mux_2 { + pins = "gpio25"; + function = "audio_rxfsync"; + drive-strength = <8>; + bias-pull-down; + }; + + mux_3 { + pins = "gpio26"; + function = "audio_rxd"; + drive-strength = <8>; + bias-pull-down; + }; + + mux_4 { + pins = "gpio27"; + function = "audio_txmclk"; + drive-strength = <8>; + bias-pull-down; + }; + + mux_5 { + pins = "gpio28"; + function = "audio_txbclk"; + drive-strength = <8>; + bias-pull-down; + }; + + mux_6 { + pins = "gpio29"; + function = "audio_txfsync"; + drive-strength = <8>; + bias-pull-down; + }; + + mux_7 { + pins = "gpio30"; + function = "audio_txd"; + drive-strength = <8>; + bias-pull-down; + }; + }; +}; + +&soc { + gpio_keys { + compatible = "gpio-keys"; + pinctrl-0 = <&button_pins>; + pinctrl-names = "default"; + + button@1 { + label = "wps"; + linux,code = ; + gpios = <&tlmm 38 GPIO_ACTIVE_LOW>; + linux,input-type = <1>; + debounce-interval = <60>; + }; + }; +}; + +&usb3 { + qcom,multiplexed-phy; + qcom,phy-mux-regs = <&tcsr_q6_block 0x2540>; + device-power-gpio = <&tlmm 24 1>; + status = "ok"; +}; + +&eud { + status = "ok"; +}; + +&pcie_x1 { + perst-gpio = <&tlmm 18 GPIO_ACTIVE_LOW>; +}; + +&pcie_x2 { + status = "ok"; + perst-gpio = <&tlmm 15 GPIO_ACTIVE_LOW>; +}; + +&wcss { + status = "ok"; +}; + +&q6v5_wcss { + #ifdef __IPQ_MEM_PROFILE_256_MB__ + memory-region = <&q6_region>, <&q6_etr_region>; + #else + memory-region = <&q6_region>, <&q6_etr_region>, + <&q6_caldb_region>; + #endif +}; + +&i2c_0 { + pinctrl-0 = <&i2c_pins>; + pinctrl-names = "default"; +}; + +&blsp1_uart1 { + status = "ok"; +}; + +&ssuniphy_0 { + status = "ok"; +}; + +&hs_m31phy_0 { + status = "ok"; +}; + +&pcie_x2phy { + status = "ok"; +}; + +&pcie_x1_rp { + status = "disabled"; + + mhi_0: qcom,mhi@0 { + reg = <0 0 0 0 0 >; + }; +}; + +&pcie_x2_rp { + status = "ok"; + + mhi_1: qcom,mhi@1 { + reg = <0 0 0 0 0 >; + qrtr_instance_id = <0x20>; + qti,disable-rddm-prealloc; + qti,rddm-seg-len = <0x1000>; + #address-cells = <0x2>; + #size-cells = <0x2>; +#if defined(__CNSS2__) + memory-region = <0>,<&mhi_region1>; +#else + base-addr = <0x4CB00000>; + m3-dump-addr = <0x4DF00000>; + etr-addr = <0x4E000000>; + qcom,caldb-addr = <0x4E100000>; + pageable-addr = <0x4E900000>; + qcom,tgt-mem-mode = <0x1>; +#endif + }; +}; + +&wifi0 { + /* IPQ5018 */ + mem-region = <&q6_region>; + qcom,board_id = <0x24>; + + qcom,bdf-addr = <0x4BA00000 0x4BA00000 0x4BA00000 + 0x0 0x0>; + qcom,caldb-addr = <0x4C900000 0x4C900000 0x0 0x0 0x0>; + qcom,caldb-size = <0x200000>; + status = "ok"; +}; + +&wifi3 { + /* QCN9000 5G */ + board_id = <0xa0>; + hremote_node = <&qcn9000_pcie0>; +#ifdef __IPQ_MEM_PROFILE_256_MB__ + /* QCN9000 tgt-mem-mode=2 layout - 17MB + * +=========+==============+=========+ + * | Region | Start Offset | Size | + * +---------+--------------+---------+ + * | HREMOTE | 0x4C900000 | 11MB | + * +---------+--------------+---------+ + * | M3 Dump | 0x4D400000 | 1MB | + * +---------+--------------+---------+ + * | ETR | 0x4D500000 | 1MB | + * +---------+--------------+---------+ + * | Pageable| 0x4D600000 | 4MB | + * +==================================+ + */ + base-addr = <0x4C900000>; + m3-dump-addr = <0x4D400000>; + etr-addr = <0x4D500000>; + caldb-addr = <0>; + pageable-addr = <0x4D600000>; + caldb-size = <0>; + hremote-size = <0xB00000>; + tgt-mem-mode = <0x2>; + pageable-size = <0x400000>; +#elif __IPQ_MEM_PROFILE_512_MB__ + /* QCN9000 tgt-mem-mode=1 layout - 26MB + * +=========+==============+=========+ + * | Region | Start Offset | Size | + * +---------+--------------+---------+ + * | HREMOTE | 0x4CB00000 | 12MB | + * +---------+--------------+---------+ + * | M3 Dump | 0x4D700000 | 1MB | + * +---------+--------------+---------+ + * | ETR | 0x4D800000 | 1MB | + * +---------+--------------+---------+ + * | Caldb | 0x4D900000 | 8MB | + * +---------+--------------+---------+ + * | Pageable| 0x4E100000 | 4MB | + * +==================================+ + */ + base-addr = <0x4CB00000>; + m3-dump-addr = <0x4D700000>; + etr-addr = <0x4D800000>; + caldb-addr = <0x4D900000>; + pageable-addr = <0x4E100000>; + caldb-size = <0x800000>; + hremote-size = <0xC00000>; + tgt-mem-mode = <0x1>; + pageable-size = <0x400000>; +#else + /* QCN9000 tgt-mem-mode=0 layout - 53MB + * +=========+==============+=========+ + * | Region | Start Offset | Size | + * +---------+--------------+---------+ + * | HREMOTE | 0x4CB00000 | 35MB | + * +---------+--------------+---------+ + * | M3 Dump | 0x4EE00000 | 1MB | + * +---------+--------------+---------+ + * | ETR | 0x4EF00000 | 1MB | + * +---------+--------------+---------+ + * | Caldb | 0x4F000000 | 8MB | + * +---------+--------------+---------+ + * | Pageable| 0x4F800000 | 8MB | + * +==================================+ + */ + base-addr = <0x4CB00000>; + m3-dump-addr = <0x4EE00000>; + etr-addr = <0x4EF00000>; + caldb-addr = <0x4F000000>; + pageable-addr = <0x4F800000>; + hremote-size = <0x2300000>; + caldb-size = <0x800000>; + tgt-mem-mode = <0x0>; + pageable-size = <0x800000>; +#endif + status = "ok"; +}; diff --git a/feeds/ipq807x_v5.4/ipq50xx/files/arch/arm64/boot/dts/qcom/qcom-ipq5018-optimcloud-d60-5g.dts b/feeds/ipq807x_v5.4/ipq50xx/files/arch/arm64/boot/dts/qcom/qcom-ipq5018-optimcloud-d60-5g.dts new file mode 100755 index 000000000..6d34f302c --- /dev/null +++ b/feeds/ipq807x_v5.4/ipq50xx/files/arch/arm64/boot/dts/qcom/qcom-ipq5018-optimcloud-d60-5g.dts @@ -0,0 +1,859 @@ +/dts-v1/; +/* Copyright (c) 2018-2021, The Linux Foundation. All rights reserved. + * + * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include "ipq5018.dtsi" + +/ { + #address-cells = <0x2>; + #size-cells = <0x2>; + model = "OptimCloud D60-5G"; + compatible = "optimcloud,d60-5g", "qcom,ipq5018-ap-mp03.1", "qcom,ipq5018-mp03.1", "qcom,ipq5018"; + interrupt-parent = <&intc>; + + aliases { + sdhc1 = &sdhc_1; /* SDC1 eMMC slot */ + serial0 = &blsp1_uart1; + serial1 = &blsp1_uart2; + ethernet0 = "/soc/dp1"; + ethernet1 = "/soc/dp2"; + }; + + 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 | 0x4B000000 | 23MB | + * | | | | + * | | | | + * | | | | + * +--------+--------------+-------------------------+ + * | M3 Dump| 0x4C700000 | 1MB | + * +--------+--------------+-------------------------+ + * | QDSS | 0x4C800000 | 1MB | + * +--------+--------------+-------------------------+ + * | | | | + * |QCN9000 | 0x4C900000 | 17MB | + * | | | | + * +--------+--------------+-------------------------+ + * | | | | + * | MHI1 | 0x4DA00000 | 5MB | + * | | | | + * +--------+--------------+-------------------------+ + * | | + * | Rest of the memory for Linux | + * | | + * +=================================================+ + */ + q6_region: memory@4b000000 { + no-map; + reg = <0x0 0x4b000000 0x0 0x01700000>; + }; + + m3_dump@4c700000 { + no-map; + reg = <0x0 0x4C700000 0x0 0x100000>; + }; + + q6_etr_region:q6_etr_dump@4c800000 { + no-map; + reg = <0x0 0x4c800000 0x0 0x100000>; + }; + + qcn9000_pcie0: qcn9000_pcie0@4c900000 { + no-map; + reg = <0x0 0x4C900000 0x0 0x01100000>; + }; + + #if defined(__CNSS2__) + mhi_region1: dma_pool1@4da00000 { + compatible = "shared-dma-pool"; + no-map; + reg = <0x0 0x4DA00000 0x0 0x00500000>; + }; + #endif + #elif __IPQ_MEM_PROFILE_512_MB__ + /* 512 MB Profile + * +=========+==============+========================+ + * | | | | + * | 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 | 0x4B000000 | 23MB | + * | | | | + * | | | | + * +--------+--------------+-------------------------+ + * | M3 Dump| 0x4C700000 | 1MB | + * +--------+--------------+-------------------------+ + * | QDSS | 0x4C800000 | 1MB | + * +--------+--------------+-------------------------+ + * | caldb | 0x4C900000 | 2MB | + * +--------+--------------+-------------------------+ + * | | | | + * |QCN9000 | 0x4CB00000 | 26MB | + * | | | | + * +--------+--------------+-------------------------+ + * | | | | + * | MHI1 | 0x4E500000 | 5MB | + * | | | | + * +--------+--------------+-------------------------+ + * | | + * | Rest of the memory for Linux | + * | | + * +=================================================+ + */ + q6_region: memory@4b000000 { + no-map; + reg = <0x0 0x4b000000 0x0 0x01700000>; + }; + + m3_dump@4c700000 { + no-map; + reg = <0x0 0x4c700000 0x0 0x100000>; + }; + + q6_etr_region:q6_etr_dump@4c800000 { + no-map; + reg = <0x0 0x4c800000 0x0 0x100000>; + }; + + q6_caldb_region:q6_caldb_region@4c900000 { + no-map; + reg = <0x0 0x4c900000 0x0 0x200000>; + }; + + qcn9000_pcie0: qcn9000_pcie0@4cb00000 { + no-map; + reg = <0x0 0x4CB00000 0x0 0x1A00000>; + }; + + #if defined(__CNSS2__) + mhi_region1: dma_pool1@4E500000 { + compatible = "shared-dma-pool"; + no-map; + reg = <0x0 0x4E500000 0x0 0x00500000>; + }; + #endif + #else + /* 1G Profile + * +=========+==============+========================+ + * | | | | + * | 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 | 0x4B000000 | 23MB | + * | | | | + * | | | | + * +--------+--------------+-------------------------+ + * | M3 Dump| 0x4C700000 | 1MB | + * +--------+--------------+-------------------------+ + * | QDSS | 0x4C800000 | 1MB | + * +--------+--------------+-------------------------+ + * | caldb | 0x4C900000 | 2MB | + * +--------+--------------+-------------------------+ + * | | | | + * |QCN9000 | 0x4CB00000 | 53MB | + * | | | | + * +--------+--------------+-------------------------+ + * | | | | + * | MHI1 | 0x50000000 | 5MB | + * | | | | + * +--------+--------------+-------------------------+ + * | | + * | Rest of the memory for Linux | + * | | + * +=================================================+ + */ + q6_region: memory@4b000000 { + no-map; + reg = <0x0 0x4b000000 0x0 0x01700000>; + }; + + m3_dump@4c700000 { + no-map; + reg = <0x0 0x4c700000 0x0 0x100000>; + }; + + q6_etr_region:q6_etr_dump@4c800000 { + no-map; + reg = <0x0 0x4c800000 0x0 0x100000>; + }; + + q6_caldb_region:q6_caldb_region@4c900000 { + no-map; + reg = <0x0 0x4c900000 0x0 0x200000>; + }; + + qcn9000_pcie0: qcn9000_pcie0@4cb00000 { + no-map; + reg = <0x0 0x4CB00000 0x0 0x03500000>; + }; + + #if defined(__CNSS2__) + mhi_region1: dma_pool1@50000000 { + compatible = "shared-dma-pool"; + no-map; + reg = <0x0 0x50000000 0x0 0x00500000>; + }; + #endif + #endif + }; + + soc { + 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"; + qcom,io_macro_max_clk = <320000000>; + qcom,io_macro_clk_rates = <24000000 100000000 200000000 \ + 320000000>; + 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 = <0>; + }; + + ethernet-phy@1 { + reg = <1>; + }; + + ethernet-phy@2 { + reg = <2>; + }; + + ethernet-phy@3 { + reg = <3>; + }; + }; + + ess-instance { + num_devices = <0x2>; + ess-switch@0x39c00000 { + compatible = "qcom,ess-switch-ipq50xx"; + device_id = <0>; + 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>; + }; + port@1 { + port_id = <2>; + forced-speed = <1000>; + forced-duplex = <1>; + }; + }; + 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 = <&tlmm 0x27 0>; + 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 = <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>; + }; + }; + }; + }; + + ess-uniphy@98000 { + status = "disabled"; + }; + + qcom,sps { + status = "ok"; + }; + + qcom,diag@0 { + 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"; + qcom,rx-page-mode = <0>; + }; + + 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>; + local-mac-address = [000000000000]; + phy-mode = "sgmii"; + qcom,rx-page-mode = <0>; + }; + + rpm_etm0 { + status = "disabled"; + }; + + pcm: pcm@0xA3C0000{ + pinctrl-0 = <&audio_pins>; + pinctrl-names = "default"; + }; + }; + + qcom,test@0 { + status = "ok"; + }; + + thermal-zones { + status = "ok"; + }; +}; + +&tlmm { + pinctrl-0 = <&blsp0_uart_pins &phy_led_pins>; + pinctrl-names = "default"; + + blsp0_uart_pins: blsp0_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 = "gpio23", "gpio25", "gpio24", "gpio26"; + 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 { + 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; + }; + }; + + 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 { + wps_button { + pins = "gpio38"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; + }; + }; + + audio_pins: audio_pinmux { + mux_1 { + pins = "gpio24"; + function = "audio_rxbclk"; + drive-strength = <8>; + bias-pull-down; + }; + + mux_2 { + pins = "gpio25"; + function = "audio_rxfsync"; + drive-strength = <8>; + bias-pull-down; + }; + + mux_3 { + pins = "gpio26"; + function = "audio_rxd"; + drive-strength = <8>; + bias-pull-down; + }; + + mux_4 { + pins = "gpio27"; + function = "audio_txmclk"; + drive-strength = <8>; + bias-pull-down; + }; + + mux_5 { + pins = "gpio28"; + function = "audio_txbclk"; + drive-strength = <8>; + bias-pull-down; + }; + + mux_6 { + pins = "gpio29"; + function = "audio_txfsync"; + drive-strength = <8>; + bias-pull-down; + }; + + mux_7 { + pins = "gpio30"; + function = "audio_txd"; + drive-strength = <8>; + bias-pull-down; + }; + }; +}; + +&soc { + gpio_keys { + compatible = "gpio-keys"; + pinctrl-0 = <&button_pins>; + pinctrl-names = "default"; + + button@1 { + label = "wps"; + linux,code = ; + gpios = <&tlmm 38 GPIO_ACTIVE_LOW>; + linux,input-type = <1>; + debounce-interval = <60>; + }; + }; +}; + +&usb3 { + qcom,multiplexed-phy; + qcom,phy-mux-regs = <&tcsr_q6_block 0x2540>; + device-power-gpio = <&tlmm 24 1>; + status = "ok"; +}; + +&eud { + status = "ok"; +}; + +&pcie_x1 { + perst-gpio = <&tlmm 18 GPIO_ACTIVE_LOW>; +}; + +&pcie_x2 { + status = "ok"; + perst-gpio = <&tlmm 15 GPIO_ACTIVE_LOW>; +}; + +&wcss { + status = "ok"; +}; + +&q6v5_wcss { + #ifdef __IPQ_MEM_PROFILE_256_MB__ + memory-region = <&q6_region>, <&q6_etr_region>; + #else + memory-region = <&q6_region>, <&q6_etr_region>, + <&q6_caldb_region>; + #endif +}; + +&i2c_0 { + pinctrl-0 = <&i2c_pins>; + pinctrl-names = "default"; +}; + +&blsp1_uart1 { + status = "ok"; +}; + +&ssuniphy_0 { + status = "ok"; +}; + +&hs_m31phy_0 { + status = "ok"; +}; + +&pcie_x2phy { + status = "ok"; +}; + +&pcie_x1_rp { + status = "disabled"; + + mhi_0: qcom,mhi@0 { + reg = <0 0 0 0 0 >; + }; +}; + +&pcie_x2_rp { + status = "ok"; + + mhi_1: qcom,mhi@1 { + reg = <0 0 0 0 0 >; + qrtr_instance_id = <0x20>; + qti,disable-rddm-prealloc; + qti,rddm-seg-len = <0x1000>; + #address-cells = <0x2>; + #size-cells = <0x2>; +#if defined(__CNSS2__) + memory-region = <0>,<&mhi_region1>; +#else + base-addr = <0x4CB00000>; + m3-dump-addr = <0x4DF00000>; + etr-addr = <0x4E000000>; + qcom,caldb-addr = <0x4E100000>; + pageable-addr = <0x4E900000>; + qcom,tgt-mem-mode = <0x1>; +#endif + }; +}; + +&wifi0 { + /* IPQ5018 */ + mem-region = <&q6_region>; + qcom,board_id = <0x24>; + + qcom,bdf-addr = <0x4BA00000 0x4BA00000 0x4BA00000 + 0x0 0x0>; + qcom,caldb-addr = <0x4C900000 0x4C900000 0x0 0x0 0x0>; + qcom,caldb-size = <0x200000>; + status = "ok"; +}; + +&wifi3 { + /* QCN9000 5G */ + board_id = <0xa0>; + hremote_node = <&qcn9000_pcie0>; +#ifdef __IPQ_MEM_PROFILE_256_MB__ + /* QCN9000 tgt-mem-mode=2 layout - 17MB + * +=========+==============+=========+ + * | Region | Start Offset | Size | + * +---------+--------------+---------+ + * | HREMOTE | 0x4C900000 | 11MB | + * +---------+--------------+---------+ + * | M3 Dump | 0x4D400000 | 1MB | + * +---------+--------------+---------+ + * | ETR | 0x4D500000 | 1MB | + * +---------+--------------+---------+ + * | Pageable| 0x4D600000 | 4MB | + * +==================================+ + */ + base-addr = <0x4C900000>; + m3-dump-addr = <0x4D400000>; + etr-addr = <0x4D500000>; + caldb-addr = <0>; + pageable-addr = <0x4D600000>; + caldb-size = <0>; + hremote-size = <0xB00000>; + tgt-mem-mode = <0x2>; + pageable-size = <0x400000>; +#elif __IPQ_MEM_PROFILE_512_MB__ + /* QCN9000 tgt-mem-mode=1 layout - 26MB + * +=========+==============+=========+ + * | Region | Start Offset | Size | + * +---------+--------------+---------+ + * | HREMOTE | 0x4CB00000 | 12MB | + * +---------+--------------+---------+ + * | M3 Dump | 0x4D700000 | 1MB | + * +---------+--------------+---------+ + * | ETR | 0x4D800000 | 1MB | + * +---------+--------------+---------+ + * | Caldb | 0x4D900000 | 8MB | + * +---------+--------------+---------+ + * | Pageable| 0x4E100000 | 4MB | + * +==================================+ + */ + base-addr = <0x4CB00000>; + m3-dump-addr = <0x4D700000>; + etr-addr = <0x4D800000>; + caldb-addr = <0x4D900000>; + pageable-addr = <0x4E100000>; + caldb-size = <0x800000>; + hremote-size = <0xC00000>; + tgt-mem-mode = <0x1>; + pageable-size = <0x400000>; +#else + /* QCN9000 tgt-mem-mode=0 layout - 53MB + * +=========+==============+=========+ + * | Region | Start Offset | Size | + * +---------+--------------+---------+ + * | HREMOTE | 0x4CB00000 | 35MB | + * +---------+--------------+---------+ + * | M3 Dump | 0x4EE00000 | 1MB | + * +---------+--------------+---------+ + * | ETR | 0x4EF00000 | 1MB | + * +---------+--------------+---------+ + * | Caldb | 0x4F000000 | 8MB | + * +---------+--------------+---------+ + * | Pageable| 0x4F800000 | 8MB | + * +==================================+ + */ + base-addr = <0x4CB00000>; + m3-dump-addr = <0x4EE00000>; + etr-addr = <0x4EF00000>; + caldb-addr = <0x4F000000>; + pageable-addr = <0x4F800000>; + hremote-size = <0x2300000>; + caldb-size = <0x800000>; + tgt-mem-mode = <0x0>; + pageable-size = <0x800000>; +#endif + status = "ok"; +}; diff --git a/feeds/ipq807x_v5.4/ipq50xx/files/arch/arm64/boot/dts/qcom/qcom-ipq5018-optimcloud-d60.dts b/feeds/ipq807x_v5.4/ipq50xx/files/arch/arm64/boot/dts/qcom/qcom-ipq5018-optimcloud-d60.dts new file mode 100644 index 000000000..5775281ca --- /dev/null +++ b/feeds/ipq807x_v5.4/ipq50xx/files/arch/arm64/boot/dts/qcom/qcom-ipq5018-optimcloud-d60.dts @@ -0,0 +1,859 @@ +/dts-v1/; +/* Copyright (c) 2018-2021, The Linux Foundation. All rights reserved. + * + * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include "ipq5018.dtsi" + +/ { + #address-cells = <0x2>; + #size-cells = <0x2>; + model = "OptimCloud D60"; + compatible = "optimcloud,d60", "qcom,ipq5018-ap-mp03.1", "qcom,ipq5018-mp03.1", "qcom,ipq5018"; + interrupt-parent = <&intc>; + + aliases { + sdhc1 = &sdhc_1; /* SDC1 eMMC slot */ + serial0 = &blsp1_uart1; + serial1 = &blsp1_uart2; + ethernet0 = "/soc/dp1"; + ethernet1 = "/soc/dp2"; + }; + + 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 | 0x4B000000 | 23MB | + * | | | | + * | | | | + * | | | | + * +--------+--------------+-------------------------+ + * | M3 Dump| 0x4C700000 | 1MB | + * +--------+--------------+-------------------------+ + * | QDSS | 0x4C800000 | 1MB | + * +--------+--------------+-------------------------+ + * | | | | + * |QCN9000 | 0x4C900000 | 17MB | + * | | | | + * +--------+--------------+-------------------------+ + * | | | | + * | MHI1 | 0x4DA00000 | 5MB | + * | | | | + * +--------+--------------+-------------------------+ + * | | + * | Rest of the memory for Linux | + * | | + * +=================================================+ + */ + q6_region: memory@4b000000 { + no-map; + reg = <0x0 0x4b000000 0x0 0x01700000>; + }; + + m3_dump@4c700000 { + no-map; + reg = <0x0 0x4C700000 0x0 0x100000>; + }; + + q6_etr_region:q6_etr_dump@4c800000 { + no-map; + reg = <0x0 0x4c800000 0x0 0x100000>; + }; + + qcn9000_pcie0: qcn9000_pcie0@4c900000 { + no-map; + reg = <0x0 0x4C900000 0x0 0x01100000>; + }; + + #if defined(__CNSS2__) + mhi_region1: dma_pool1@4da00000 { + compatible = "shared-dma-pool"; + no-map; + reg = <0x0 0x4DA00000 0x0 0x00500000>; + }; + #endif + #elif __IPQ_MEM_PROFILE_512_MB__ + /* 512 MB Profile + * +=========+==============+========================+ + * | | | | + * | 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 | 0x4B000000 | 23MB | + * | | | | + * | | | | + * +--------+--------------+-------------------------+ + * | M3 Dump| 0x4C700000 | 1MB | + * +--------+--------------+-------------------------+ + * | QDSS | 0x4C800000 | 1MB | + * +--------+--------------+-------------------------+ + * | caldb | 0x4C900000 | 2MB | + * +--------+--------------+-------------------------+ + * | | | | + * |QCN9000 | 0x4CB00000 | 26MB | + * | | | | + * +--------+--------------+-------------------------+ + * | | | | + * | MHI1 | 0x4E500000 | 5MB | + * | | | | + * +--------+--------------+-------------------------+ + * | | + * | Rest of the memory for Linux | + * | | + * +=================================================+ + */ + q6_region: memory@4b000000 { + no-map; + reg = <0x0 0x4b000000 0x0 0x01700000>; + }; + + m3_dump@4c700000 { + no-map; + reg = <0x0 0x4c700000 0x0 0x100000>; + }; + + q6_etr_region:q6_etr_dump@4c800000 { + no-map; + reg = <0x0 0x4c800000 0x0 0x100000>; + }; + + q6_caldb_region:q6_caldb_region@4c900000 { + no-map; + reg = <0x0 0x4c900000 0x0 0x200000>; + }; + + qcn9000_pcie0: qcn9000_pcie0@4cb00000 { + no-map; + reg = <0x0 0x4CB00000 0x0 0x1A00000>; + }; + + #if defined(__CNSS2__) + mhi_region1: dma_pool1@4E500000 { + compatible = "shared-dma-pool"; + no-map; + reg = <0x0 0x4E500000 0x0 0x00500000>; + }; + #endif + #else + /* 1G Profile + * +=========+==============+========================+ + * | | | | + * | 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 | 0x4B000000 | 23MB | + * | | | | + * | | | | + * +--------+--------------+-------------------------+ + * | M3 Dump| 0x4C700000 | 1MB | + * +--------+--------------+-------------------------+ + * | QDSS | 0x4C800000 | 1MB | + * +--------+--------------+-------------------------+ + * | caldb | 0x4C900000 | 2MB | + * +--------+--------------+-------------------------+ + * | | | | + * |QCN9000 | 0x4CB00000 | 53MB | + * | | | | + * +--------+--------------+-------------------------+ + * | | | | + * | MHI1 | 0x50000000 | 5MB | + * | | | | + * +--------+--------------+-------------------------+ + * | | + * | Rest of the memory for Linux | + * | | + * +=================================================+ + */ + q6_region: memory@4b000000 { + no-map; + reg = <0x0 0x4b000000 0x0 0x01700000>; + }; + + m3_dump@4c700000 { + no-map; + reg = <0x0 0x4c700000 0x0 0x100000>; + }; + + q6_etr_region:q6_etr_dump@4c800000 { + no-map; + reg = <0x0 0x4c800000 0x0 0x100000>; + }; + + q6_caldb_region:q6_caldb_region@4c900000 { + no-map; + reg = <0x0 0x4c900000 0x0 0x200000>; + }; + + qcn9000_pcie0: qcn9000_pcie0@4cb00000 { + no-map; + reg = <0x0 0x4CB00000 0x0 0x03500000>; + }; + + #if defined(__CNSS2__) + mhi_region1: dma_pool1@50000000 { + compatible = "shared-dma-pool"; + no-map; + reg = <0x0 0x50000000 0x0 0x00500000>; + }; + #endif + #endif + }; + + soc { + 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"; + qcom,io_macro_max_clk = <320000000>; + qcom,io_macro_clk_rates = <24000000 100000000 200000000 \ + 320000000>; + 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 = <0>; + }; + + ethernet-phy@1 { + reg = <1>; + }; + + ethernet-phy@2 { + reg = <2>; + }; + + ethernet-phy@3 { + reg = <3>; + }; + }; + + ess-instance { + num_devices = <0x2>; + ess-switch@0x39c00000 { + compatible = "qcom,ess-switch-ipq50xx"; + device_id = <0>; + 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>; + }; + port@1 { + port_id = <2>; + forced-speed = <1000>; + forced-duplex = <1>; + }; + }; + 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 = <&tlmm 0x27 0>; + 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 = <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>; + }; + }; + }; + }; + + ess-uniphy@98000 { + status = "disabled"; + }; + + qcom,sps { + status = "ok"; + }; + + qcom,diag@0 { + 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"; + qcom,rx-page-mode = <0>; + }; + + 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>; + local-mac-address = [000000000000]; + phy-mode = "sgmii"; + qcom,rx-page-mode = <0>; + }; + + rpm_etm0 { + status = "disabled"; + }; + + pcm: pcm@0xA3C0000{ + pinctrl-0 = <&audio_pins>; + pinctrl-names = "default"; + }; + }; + + qcom,test@0 { + status = "ok"; + }; + + thermal-zones { + status = "ok"; + }; +}; + +&tlmm { + pinctrl-0 = <&blsp0_uart_pins &phy_led_pins>; + pinctrl-names = "default"; + + blsp0_uart_pins: blsp0_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 = "gpio23", "gpio25", "gpio24", "gpio26"; + 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 { + 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; + }; + }; + + 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 { + wps_button { + pins = "gpio38"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; + }; + }; + + audio_pins: audio_pinmux { + mux_1 { + pins = "gpio24"; + function = "audio_rxbclk"; + drive-strength = <8>; + bias-pull-down; + }; + + mux_2 { + pins = "gpio25"; + function = "audio_rxfsync"; + drive-strength = <8>; + bias-pull-down; + }; + + mux_3 { + pins = "gpio26"; + function = "audio_rxd"; + drive-strength = <8>; + bias-pull-down; + }; + + mux_4 { + pins = "gpio27"; + function = "audio_txmclk"; + drive-strength = <8>; + bias-pull-down; + }; + + mux_5 { + pins = "gpio28"; + function = "audio_txbclk"; + drive-strength = <8>; + bias-pull-down; + }; + + mux_6 { + pins = "gpio29"; + function = "audio_txfsync"; + drive-strength = <8>; + bias-pull-down; + }; + + mux_7 { + pins = "gpio30"; + function = "audio_txd"; + drive-strength = <8>; + bias-pull-down; + }; + }; +}; + +&soc { + gpio_keys { + compatible = "gpio-keys"; + pinctrl-0 = <&button_pins>; + pinctrl-names = "default"; + + button@1 { + label = "wps"; + linux,code = ; + gpios = <&tlmm 38 GPIO_ACTIVE_LOW>; + linux,input-type = <1>; + debounce-interval = <60>; + }; + }; +}; + +&usb3 { + qcom,multiplexed-phy; + qcom,phy-mux-regs = <&tcsr_q6_block 0x2540>; + device-power-gpio = <&tlmm 24 1>; + status = "ok"; +}; + +&eud { + status = "ok"; +}; + +&pcie_x1 { + perst-gpio = <&tlmm 18 GPIO_ACTIVE_LOW>; +}; + +&pcie_x2 { + status = "ok"; + perst-gpio = <&tlmm 15 GPIO_ACTIVE_LOW>; +}; + +&wcss { + status = "ok"; +}; + +&q6v5_wcss { + #ifdef __IPQ_MEM_PROFILE_256_MB__ + memory-region = <&q6_region>, <&q6_etr_region>; + #else + memory-region = <&q6_region>, <&q6_etr_region>, + <&q6_caldb_region>; + #endif +}; + +&i2c_0 { + pinctrl-0 = <&i2c_pins>; + pinctrl-names = "default"; +}; + +&blsp1_uart1 { + status = "ok"; +}; + +&ssuniphy_0 { + status = "ok"; +}; + +&hs_m31phy_0 { + status = "ok"; +}; + +&pcie_x2phy { + status = "ok"; +}; + +&pcie_x1_rp { + status = "disabled"; + + mhi_0: qcom,mhi@0 { + reg = <0 0 0 0 0 >; + }; +}; + +&pcie_x2_rp { + status = "ok"; + + mhi_1: qcom,mhi@1 { + reg = <0 0 0 0 0 >; + qrtr_instance_id = <0x20>; + qti,disable-rddm-prealloc; + qti,rddm-seg-len = <0x1000>; + #address-cells = <0x2>; + #size-cells = <0x2>; +#if defined(__CNSS2__) + memory-region = <0>,<&mhi_region1>; +#else + base-addr = <0x4CB00000>; + m3-dump-addr = <0x4DF00000>; + etr-addr = <0x4E000000>; + qcom,caldb-addr = <0x4E100000>; + pageable-addr = <0x4E900000>; + qcom,tgt-mem-mode = <0x1>; +#endif + }; +}; + +&wifi0 { + /* IPQ5018 */ + mem-region = <&q6_region>; + qcom,board_id = <0x24>; + + qcom,bdf-addr = <0x4BA00000 0x4BA00000 0x4BA00000 + 0x0 0x0>; + qcom,caldb-addr = <0x4C900000 0x4C900000 0x0 0x0 0x0>; + qcom,caldb-size = <0x200000>; + status = "ok"; +}; + +&wifi3 { + /* QCN9000 5G */ + board_id = <0xa0>; + hremote_node = <&qcn9000_pcie0>; +#ifdef __IPQ_MEM_PROFILE_256_MB__ + /* QCN9000 tgt-mem-mode=2 layout - 17MB + * +=========+==============+=========+ + * | Region | Start Offset | Size | + * +---------+--------------+---------+ + * | HREMOTE | 0x4C900000 | 11MB | + * +---------+--------------+---------+ + * | M3 Dump | 0x4D400000 | 1MB | + * +---------+--------------+---------+ + * | ETR | 0x4D500000 | 1MB | + * +---------+--------------+---------+ + * | Pageable| 0x4D600000 | 4MB | + * +==================================+ + */ + base-addr = <0x4C900000>; + m3-dump-addr = <0x4D400000>; + etr-addr = <0x4D500000>; + caldb-addr = <0>; + pageable-addr = <0x4D600000>; + caldb-size = <0>; + hremote-size = <0xB00000>; + tgt-mem-mode = <0x2>; + pageable-size = <0x400000>; +#elif __IPQ_MEM_PROFILE_512_MB__ + /* QCN9000 tgt-mem-mode=1 layout - 26MB + * +=========+==============+=========+ + * | Region | Start Offset | Size | + * +---------+--------------+---------+ + * | HREMOTE | 0x4CB00000 | 12MB | + * +---------+--------------+---------+ + * | M3 Dump | 0x4D700000 | 1MB | + * +---------+--------------+---------+ + * | ETR | 0x4D800000 | 1MB | + * +---------+--------------+---------+ + * | Caldb | 0x4D900000 | 8MB | + * +---------+--------------+---------+ + * | Pageable| 0x4E100000 | 4MB | + * +==================================+ + */ + base-addr = <0x4CB00000>; + m3-dump-addr = <0x4D700000>; + etr-addr = <0x4D800000>; + caldb-addr = <0x4D900000>; + pageable-addr = <0x4E100000>; + caldb-size = <0x800000>; + hremote-size = <0xC00000>; + tgt-mem-mode = <0x1>; + pageable-size = <0x400000>; +#else + /* QCN9000 tgt-mem-mode=0 layout - 53MB + * +=========+==============+=========+ + * | Region | Start Offset | Size | + * +---------+--------------+---------+ + * | HREMOTE | 0x4CB00000 | 35MB | + * +---------+--------------+---------+ + * | M3 Dump | 0x4EE00000 | 1MB | + * +---------+--------------+---------+ + * | ETR | 0x4EF00000 | 1MB | + * +---------+--------------+---------+ + * | Caldb | 0x4F000000 | 8MB | + * +---------+--------------+---------+ + * | Pageable| 0x4F800000 | 8MB | + * +==================================+ + */ + base-addr = <0x4CB00000>; + m3-dump-addr = <0x4EE00000>; + etr-addr = <0x4EF00000>; + caldb-addr = <0x4F000000>; + pageable-addr = <0x4F800000>; + hremote-size = <0x2300000>; + caldb-size = <0x800000>; + tgt-mem-mode = <0x0>; + pageable-size = <0x800000>; +#endif + status = "ok"; +}; diff --git a/feeds/ipq807x_v5.4/ipq50xx/image/ipq50xx.mk b/feeds/ipq807x_v5.4/ipq50xx/image/ipq50xx.mk index 6b75c6df6..551899cc7 100644 --- a/feeds/ipq807x_v5.4/ipq50xx/image/ipq50xx.mk +++ b/feeds/ipq807x_v5.4/ipq50xx/image/ipq50xx.mk @@ -80,3 +80,39 @@ define Device/hfcl_ion4xi_w DEVICE_DTS_CONFIG := config@mp03.3 endef TARGET_DEVICES += hfcl_ion4xi_w + +define Device/optimcloud_d50-5g + DEVICE_TITLE := OptimCloud D50-5G + DEVICE_DTS := qcom-ipq5018-optimcloud-d50-5g + SUPPORTED_DEVICES := optimcloud,d50-5g + DEVICE_PACKAGES := ath11k-wifi-optimcloud-d50 ath11k-firmware-ipq50xx ath11k-firmware-qcn9000 + DEVICE_DTS_CONFIG := config@mp03.1 +endef +TARGET_DEVICES += optimcloud_d50-5g + +define Device/optimcloud_d50 + DEVICE_TITLE := OptimCloud D50 + DEVICE_DTS := qcom-ipq5018-optimcloud-d50 + SUPPORTED_DEVICES := optimcloud,d50 + DEVICE_PACKAGES := ath11k-wifi-optimcloud-d50 ath11k-firmware-ipq50xx ath11k-firmware-qcn9000 ath11k-firmware-qcn6122 + DEVICE_DTS_CONFIG := config@mp03.1 +endef +TARGET_DEVICES += optimcloud_d50 + +define Device/optimcloud_d60-5g + DEVICE_TITLE := OptimCloud D60-5G + DEVICE_DTS := qcom-ipq5018-optimcloud-d60-5g + SUPPORTED_DEVICES := optimcloud,d60-5g + DEVICE_PACKAGES := ath11k-wifi-optimcloud-d60 ath11k-firmware-ipq50xx ath11k-firmware-qcn9000 + DEVICE_DTS_CONFIG := config@mp03.1 +endef +TARGET_DEVICES += optimcloud_d60-5g + +define Device/optimcloud_d60 + DEVICE_TITLE := OptimCloud D60 + DEVICE_DTS := qcom-ipq5018-optimcloud-d60 + SUPPORTED_DEVICES := optimcloud,d60 + DEVICE_PACKAGES := ath11k-wifi-optimcloud-d60 ath11k-firmware-ipq50xx ath11k-firmware-qcn9000 ath11k-firmware-qcn6122 + DEVICE_DTS_CONFIG := config@mp03.1 +endef +TARGET_DEVICES += optimcloud_d60 diff --git a/profiles/optimcloud_d50-5g.yml b/profiles/optimcloud_d50-5g.yml new file mode 100644 index 000000000..0565ef0ee --- /dev/null +++ b/profiles/optimcloud_d50-5g.yml @@ -0,0 +1,15 @@ +profile: optimcloud_d50-5g +target: ipq50xx +subtarget: generic +description: Build image for the OptimCloud D50-5G +image: bin/targets/ipq50xx/generic/openwrt-ipq50xx-optimcloud_d50-5g-squashfs-sysupgrade.tar +feeds: + - name: ipq807x + path: ../../feeds/ipq807x_v5.4 +include: + - wifi-ax-v54 + - ucentral-ap +packages: + - ipq50xx +diffconfig: | + CONFIG_KERNEL_IPQ_MEM_PROFILE=512 diff --git a/profiles/optimcloud_d50.yml b/profiles/optimcloud_d50.yml new file mode 100644 index 000000000..d182e9ea3 --- /dev/null +++ b/profiles/optimcloud_d50.yml @@ -0,0 +1,15 @@ +profile: optimcloud_d50 +target: ipq50xx +subtarget: generic +description: Build image for the OptimCloud D50 +image: bin/targets/ipq50xx/generic/openwrt-ipq50xx-optimcloud-d50-squashfs-sysupgrade.tar +feeds: + - name: ipq807x + path: ../../feeds/ipq807x_v5.4 +include: + - wifi-ax-v54 + - ucentral-ap +packages: + - ipq50xx +diffconfig: | + CONFIG_KERNEL_IPQ_MEM_PROFILE=512 diff --git a/profiles/optimcloud_d60-5g.yml b/profiles/optimcloud_d60-5g.yml new file mode 100644 index 000000000..128344cc8 --- /dev/null +++ b/profiles/optimcloud_d60-5g.yml @@ -0,0 +1,15 @@ +profile: optimcloud_d60-5g +target: ipq50xx +subtarget: generic +description: Build image for the OptimCloud D60-5G +image: bin/targets/ipq50xx/generic/openwrt-ipq50xx-optimcloud_d60-5g-squashfs-sysupgrade.tar +feeds: + - name: ipq807x + path: ../../feeds/ipq807x_v5.4 +include: + - wifi-ax-v54 + - ucentral-ap +packages: + - ipq50xx +diffconfig: | + CONFIG_KERNEL_IPQ_MEM_PROFILE=512 diff --git a/profiles/optimcloud_d60.yml b/profiles/optimcloud_d60.yml new file mode 100644 index 000000000..ec4374493 --- /dev/null +++ b/profiles/optimcloud_d60.yml @@ -0,0 +1,15 @@ +profile: optimcloud_d60 +target: ipq50xx +subtarget: generic +description: Build image for the OptimCloud D60 +image: bin/targets/ipq50xx/generic/openwrt-ipq50xx-optimcloud-d60-squashfs-sysupgrade.tar +feeds: + - name: ipq807x + path: ../../feeds/ipq807x_v5.4 +include: + - wifi-ax-v54 + - ucentral-ap +packages: + - ipq50xx +diffconfig: | + CONFIG_KERNEL_IPQ_MEM_PROFILE=512 diff --git a/profiles/xunison_d50-5g.yml b/profiles/xunison_d50-5g.yml deleted file mode 100644 index 683b09048..000000000 --- a/profiles/xunison_d50-5g.yml +++ /dev/null @@ -1,16 +0,0 @@ -profile: xunison_d50-5g -target: ipq807x -subtarget: ipq50xx -description: Build image for the Xunison D50-5G -image: bin/targets/ipq807x/ipq807x/openwrt-ipq807x-edgecore_eap102-squashfs-sysupgrade.tar -feeds: - - name: ipq807x - path: ../../feeds/ipq807x -include: - - wifi-ax - - ucentral-ap - - wwan -packages: - - ipq807x -diffconfig: | - CONFIG_KERNEL_IPQ_MEM_PROFILE=512