Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit df40bd05 authored by Chaoli Zhou's avatar Chaoli Zhou
Browse files

ARM: dts: msm: Add cnss dts for dual hst in sa8195 LV GVM



In order to support dual hastings running on sa8195
LV GVM, enable pcie2 and add cnss node for the second
WLAN chipset.

Change-Id: Ib746309ce44103f006127d369aed342befa405ec
Signed-off-by: default avatarChaoli Zhou <zchaoli@codeaurora.org>
parent 98bf49c0
Loading
Loading
Loading
Loading
+601 −0
Original line number Diff line number Diff line
/* Copyright (c) 2020, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
 * only version 2 as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */

&pcie2_msi {
	status = "ok";
};

&pcie2 {
	status = "ok";
};

&cnss_pins {

	cnss_wlan_en_active2: cnss_wlan_en_active2 {
		mux {
			pins = "gpio170";
			function = "gpio";
		};

		config {
			pins = "gpio170";
			drive-strength = <16>;
			output-high;
			bias-pull-up;
		};
	};
	cnss_wlan_en_sleep2: cnss_wlan_en_sleep2 {
		mux {
			pins = "gpio170";
			function = "gpio";
		};

		config {
			pins = "gpio170";
			drive-strength = <2>;
			output-low;
			bias-pull-down;
		};
	};
};

&cnss_pcie {
	status = "disabled";
};

&soc {
	/* Support Dual Hastings case*/
	cnss_pcie0: qcom,cnss-qca-converged0 {
		compatible = "qcom,cnss-qca-converged";

		qcom,converged-dt;
		qcom,wlan-rc-num = <0>;
		qcom,bus-type=<0>;
		qcom,qrtr_node_id = <0x10>;
		qcom,notify-modem-status;
		qcom,msm-bus,name = "msm-cnss";
		qcom,msm-bus,num-cases = <6>;
		qcom,msm-bus,num-paths = <1>;
		qcom,msm-bus,vectors-KBps =
		/* no vote */
		<MSM_BUS_MASTER_PCIE MSM_BUS_SLAVE_FIRST 0 0>,
		/* idle: 0-18 Mbps, ddr freq: 100 MHz */
		<MSM_BUS_MASTER_PCIE MSM_BUS_SLAVE_FIRST 2250 400000>,
		/* low: 18-60 Mbps, ddr freq: 200 MHz*/
		<MSM_BUS_MASTER_PCIE MSM_BUS_SLAVE_FIRST 7500 800000>,
		/* medium: 60-240 Mbps, ddr freq: 451.2 MHz */
		<MSM_BUS_MASTER_PCIE MSM_BUS_SLAVE_FIRST 30000 1804800>,
		/* high: 240 - 800 Mbps, ddr freq: 451.2 MHz */
		<MSM_BUS_MASTER_PCIE MSM_BUS_SLAVE_FIRST 100000 1804800>,
		/* very high: 800 - 1400 Mbps, ddr freq: 1555.2 MHz */
		<MSM_BUS_MASTER_PCIE MSM_BUS_SLAVE_FIRST 175000 6220800>;

		#address-cells=<1>;
		#size-cells=<1>;
		ranges = <0x10000000 0x10000000 0x10000000>,
		      <0x20000000 0x20000000 0x10000>,
		      <0xa0000000 0xa0000000 0x10000000>,
		      <0xb0000000 0xb0000000 0x10000>;

		vdd-wlan-ctrl1-supply = <&vreg_conn_pa>;
		vdd-wlan-ctrl2-supply = <&vreg_conn_1p8>;
		vdd-wlan-supply = <&vreg_wlan>;
		vdd-wlan-aon-supply = <&pm8195_1_s5>;
		vdd-wlan-rfa1-supply = <&pm8195_1_s2>;
		vdd-wlan-rfa2-supply = <&pm8195_2_s5>;
		vdd-wlan-rfa3-supply = <&pm8195_2_l7>;

		wlan_vregs = "vdd-wlan-ctrl1", "vdd-wlan-ctrl2";
		qcom,vdd-wlan-ctrl1-info = <0 0 0 0>;
		qcom,vdd-wlan-ctrl2-info = <0 0 0 0>;
		wlan-en-gpio = <&tlmm 169 0>;
		pinctrl-names = "wlan_en_active", "wlan_en_sleep";
		pinctrl-0 = <&cnss_wlan_en_active>;
		pinctrl-1 = <&cnss_wlan_en_sleep>;

		chip_cfg@0 {
			reg = <0x10000000 0x10000000>,
			    <0x20000000 0x10000>;
			reg-names = "smmu_iova_base", "smmu_iova_ipa";

			supported-ids = <0x003e>;
			wlan_vregs = "vdd-wlan";
			qcom,vdd-wlan-info = <0 0 0 10>;

			qcom,smmu-s1-enable;
			qcom,wlan-ramdump-dynamic = <0x200000>;
		};

		chip_cfg@1 {
			reg = <0xa0000000 0x10000000>,
			    <0xb0000000 0x10000>;
			reg-names = "smmu_iova_base", "smmu_iova_ipa";

			supported-ids = <0x1101>;
			wlan_vregs = "vdd-wlan-aon", "vdd-wlan-rfa1",
				   "vdd-wlan-rfa2", "vdd-wlan-rfa3";
			qcom,vdd-wlan-aon-info = <1000000 1000000 0 0>;
			qcom,vdd-wlan-rfa1-info = <1370000 1370000 0 0>;
			qcom,vdd-wlan-rfa2-info = <2040000 2040000 0 0>;
			qcom,vdd-wlan-rfa3-info = <1900000 1900000 450000 0>;
			qcom,wlan-ramdump-dynamic = <0x400000>;
			mhi,max-channels = <30>;
			mhi,timeout = <10000>;

			mhi_channels {
				#address-cells = <1>;
				#size-cells = <0>;
				mhi_chan@0 {
					reg = <0>;
					label = "LOOPBACK";
					mhi,num-elements = <32>;
					mhi,event-ring = <1>;
					mhi,chan-dir = <1>;
					mhi,data-type = <0>;
					mhi,doorbell-mode = <2>;
					mhi,ee = <0x14>;
				};

				mhi_chan@1 {
					reg = <1>;
					label = "LOOPBACK";
					mhi,num-elements = <32>;
					mhi,event-ring = <1>;
					mhi,chan-dir = <2>;
					mhi,data-type = <0>;
					mhi,doorbell-mode = <2>;
					mhi,ee = <0x14>;
				};

				mhi_chan@4 {
					reg = <4>;
					label = "DIAG";
					mhi,num-elements = <32>;
					mhi,event-ring = <1>;
					mhi,chan-dir = <1>;
					mhi,data-type = <0>;
					mhi,doorbell-mode = <2>;
					mhi,ee = <0x14>;
				};

				mhi_chan@5 {
					reg = <5>;
					label = "DIAG";
					mhi,num-elements = <32>;
					mhi,event-ring = <1>;
					mhi,chan-dir = <2>;
					mhi,data-type = <0>;
					mhi,doorbell-mode = <2>;
					mhi,ee = <0x14>;
				};

				mhi_chan@20 {
					reg = <20>;
					label = "IPCR";
					mhi,num-elements = <32>;
					mhi,event-ring = <1>;
					mhi,chan-dir = <1>;
					mhi,data-type = <1>;
					mhi,doorbell-mode = <2>;
					mhi,ee = <0x14>;
					mhi,auto-start;
				};

				mhi_chan@21 {
					reg = <21>;
					label = "IPCR";
					mhi,num-elements = <32>;
					mhi,event-ring = <1>;
					mhi,chan-dir = <2>;
					mhi,data-type = <0>;
					mhi,doorbell-mode = <2>;
					mhi,ee = <0x14>;
					mhi,auto-queue;
					mhi,auto-start;
				};
			};

			mhi_events {
				mhi_event@0 {
					mhi,num-elements = <32>;
					mhi,intmod = <1>;
					mhi,msi = <1>;
					mhi,priority = <1>;
					mhi,brstmode = <2>;
					mhi,data-type = <1>;
				};

				mhi_event@1 {
					mhi,num-elements = <256>;
					mhi,intmod = <1>;
					mhi,msi = <2>;
					mhi,priority = <1>;
					mhi,brstmode = <2>;
				};
			};
		};

		chip_cfg@2 {
			reg = <0xa0000000 0x10000000>,
			    <0xb0000000 0x10000>;
			reg-names = "smmu_iova_base", "smmu_iova_ipa";

			supported-ids = <0x1102>;
			wlan_vregs = "vdd-wlan-aon", "vdd-wlan-rfa1",
				   "vdd-wlan-rfa2", "vdd-wlan-rfa3";
			qcom,vdd-wlan-aon-info = <1000000 1000000 0 0>;
			qcom,vdd-wlan-rfa1-info = <1370000 1370000 0 0>;
			qcom,vdd-wlan-rfa2-info = <2040000 2040000 0 0>;
			qcom,vdd-wlan-rfa3-info = <1900000 1900000 0 0>;

			qcom,wlan-ramdump-dynamic = <0x300000>;
			mhi,max-channels = <30>;
			mhi,timeout = <10000>;
			mhi,ee = <0x3>, <0x4>;
			mhi,ee-names = "SBL", "RDDM";
			mhi,bhie-offset = <0x0324>;

			mhi_channels {
				#address-cells = <1>;
				#size-cells = <0>;
				mhi_chan@0 {
					reg = <0>;
					label = "LOOPBACK";
					mhi,num-elements = <32>;
					mhi,event-ring = <1>;
					mhi,chan-dir = <1>;
					mhi,data-type = <0>;
					mhi,doorbell-mode = <2>;
					mhi,ee = <0x14>;
				};

				mhi_chan@1 {
					reg = <1>;
					label = "LOOPBACK";
					mhi,num-elements = <32>;
					mhi,event-ring = <1>;
					mhi,chan-dir = <2>;
					mhi,data-type = <0>;
					mhi,doorbell-mode = <2>;
					mhi,ee = <0x14>;
				};

				mhi_chan@4 {
					reg = <4>;
					label = "DIAG";
					mhi,num-elements = <32>;
					mhi,event-ring = <1>;
					mhi,chan-dir = <1>;
					mhi,data-type = <0>;
					mhi,doorbell-mode = <2>;
					mhi,ee = <0x14>;
				};

				mhi_chan@5 {
					reg = <5>;
					label = "DIAG";
					mhi,num-elements = <32>;
					mhi,event-ring = <1>;
					mhi,chan-dir = <2>;
					mhi,data-type = <0>;
					mhi,doorbell-mode = <2>;
					mhi,ee = <0x14>;
				};

				mhi_chan@16 {
					reg = <16>;
					label = "IPCR";
					mhi,num-elements = <32>;
					mhi,event-ring = <1>;
					mhi,chan-dir = <1>;
					mhi,data-type = <1>;
					mhi,doorbell-mode = <2>;
					mhi,ee = <0x14>;
					mhi,auto-start;
				};

				mhi_chan@17 {
					reg = <17>;
					label = "IPCR";
					mhi,num-elements = <32>;
					mhi,event-ring = <1>;
					mhi,chan-dir = <2>;
					mhi,data-type = <0>;
					mhi,doorbell-mode = <2>;
					mhi,ee = <0x14>;
					mhi,auto-queue;
					mhi,auto-start;
				};
			};

			mhi_events {
				mhi_event@0 {
					mhi,num-elements = <32>;
					mhi,intmod = <1>;
					mhi,msi = <1>;
					mhi,priority = <1>;
					mhi,brstmode = <2>;
					mhi,data-type = <1>;
				};

				mhi_event@1 {
					mhi,num-elements = <256>;
					mhi,intmod = <1>;
					mhi,msi = <2>;
					mhi,priority = <1>;
					mhi,brstmode = <2>;
				};
			};
		};
	};

	cnss_pcie2: qcom,cnss-qca-converged2 {
		compatible = "qcom,cnss-qca-converged";

		qcom,converged-dt;
		qcom,wlan-rc-num = <2>;
		qcom,qrtr_node_id = <0x20>;
		qcom,bus-type=<0>;
		qcom,notify-modem-status;
		qcom,msm-bus,name = "msm-cnss";
		qcom,msm-bus,num-cases = <6>;
		qcom,msm-bus,num-paths = <1>;
		qcom,msm-bus,vectors-KBps =
		/* no vote */
		<MSM_BUS_MASTER_PCIE MSM_BUS_SLAVE_FIRST 0 0>,
		/* idle: 0-18 Mbps, ddr freq: 100 MHz */
		<MSM_BUS_MASTER_PCIE MSM_BUS_SLAVE_FIRST 2250 400000>,
		/* low: 18-60 Mbps, ddr freq: 200 MHz*/
		<MSM_BUS_MASTER_PCIE MSM_BUS_SLAVE_FIRST 7500 800000>,
		/* medium: 60-240 Mbps, ddr freq: 451.2 MHz */
		<MSM_BUS_MASTER_PCIE MSM_BUS_SLAVE_FIRST 30000 1804800>,
		/* high: 240 - 800 Mbps, ddr freq: 451.2 MHz */
		<MSM_BUS_MASTER_PCIE MSM_BUS_SLAVE_FIRST 100000 1804800>,
		/* very high: 800 - 1400 Mbps, ddr freq: 1555.2 MHz */
		<MSM_BUS_MASTER_PCIE MSM_BUS_SLAVE_FIRST 175000 6220800>;

		#address-cells=<1>;
		#size-cells=<1>;
		ranges = <0xc0000000 0xc0000000 0x10000000>,
		      <0xd0000000 0xd0000000 0x10000>;

		vdd-wlan-ctrl1-supply = <&vreg_conn_pa>;
		vdd-wlan-ctrl2-supply = <&vreg_conn_1p8>;
		vdd-wlan-supply = <&vreg_wlan>;
		vdd-wlan-aon-supply = <&pm8195_1_s5>;
		vdd-wlan-rfa1-supply = <&pm8195_1_s2>;
		vdd-wlan-rfa2-supply = <&pm8195_2_s5>;
		vdd-wlan-rfa3-supply = <&pm8195_2_l7>;

		wlan_vregs = "vdd-wlan-ctrl1", "vdd-wlan-ctrl2";
		qcom,vdd-wlan-ctrl1-info = <0 0 0 0>;
		qcom,vdd-wlan-ctrl2-info = <0 0 0 0>;
		wlan-en-gpio = <&tlmm 170 0>;
		pinctrl-names = "wlan_en_active", "wlan_en_sleep";
		pinctrl-0 = <&cnss_wlan_en_active2>;
		pinctrl-1 = <&cnss_wlan_en_sleep2>;

		chip_cfg@0 {
			reg = <0xc0000000 0x10000000>,
			    <0xd0000000 0x10000>;
			reg-names = "smmu_iova_base", "smmu_iova_ipa";

			supported-ids = <0x003e>;
			wlan_vregs = "vdd-wlan";
			qcom,vdd-wlan-info = <0 0 0 10>;

			qcom,smmu-s1-enable;
			qcom,wlan-ramdump-dynamic = <0x200000>;
		};

		chip_cfg@1 {
			reg = <0xc0000000 0x10000000>,
			    <0xd0000000 0x10000>;
			reg-names = "smmu_iova_base", "smmu_iova_ipa";

			supported-ids = <0x1101>;
			wlan_vregs = "vdd-wlan-aon", "vdd-wlan-rfa1",
				   "vdd-wlan-rfa2", "vdd-wlan-rfa3";
			qcom,vdd-wlan-aon-info = <1000000 1000000 0 0>;
			qcom,vdd-wlan-rfa1-info = <1370000 1370000 0 0>;
			qcom,vdd-wlan-rfa2-info = <2040000 2040000 0 0>;
			qcom,vdd-wlan-rfa3-info = <1900000 1900000 450000 0>;
			qcom,wlan-ramdump-dynamic = <0x400000>;
			mhi,max-channels = <30>;
			mhi,timeout = <10000>;

			mhi_channels {
				#address-cells = <1>;
				#size-cells = <0>;
				mhi_chan@0 {
					reg = <0>;
					label = "LOOPBACK";
					mhi,num-elements = <32>;
					mhi,event-ring = <1>;
					mhi,chan-dir = <1>;
					mhi,data-type = <0>;
					mhi,doorbell-mode = <2>;
					mhi,ee = <0x14>;
				};

				mhi_chan@1 {
					reg = <1>;
					label = "LOOPBACK";
					mhi,num-elements = <32>;
					mhi,event-ring = <1>;
					mhi,chan-dir = <2>;
					mhi,data-type = <0>;
					mhi,doorbell-mode = <2>;
					mhi,ee = <0x14>;
				};

				mhi_chan@20 {
					reg = <20>;
					label = "IPCR";
					mhi,num-elements = <32>;
					mhi,event-ring = <1>;
					mhi,chan-dir = <1>;
					mhi,data-type = <1>;
					mhi,doorbell-mode = <2>;
					mhi,ee = <0x14>;
					mhi,auto-start;
				};

				mhi_chan@21 {
					reg = <21>;
					label = "IPCR";
					mhi,num-elements = <32>;
					mhi,event-ring = <1>;
					mhi,chan-dir = <2>;
					mhi,data-type = <0>;
					mhi,doorbell-mode = <2>;
					mhi,ee = <0x14>;
					mhi,auto-queue;
					mhi,auto-start;
				};
			};

			mhi_events {
				mhi_event@0 {
					mhi,num-elements = <32>;
					mhi,intmod = <1>;
					mhi,msi = <1>;
					mhi,priority = <1>;
					mhi,brstmode = <2>;
					mhi,data-type = <1>;
				};

				mhi_event@1 {
					mhi,num-elements = <256>;
					mhi,intmod = <1>;
					mhi,msi = <2>;
					mhi,priority = <1>;
					mhi,brstmode = <2>;
				};
			};
		};

		chip_cfg@2 {
			reg = <0xa0000000 0x10000000>,
			    <0xb0000000 0x10000>;
			reg-names = "smmu_iova_base", "smmu_iova_ipa";

			supported-ids = <0x1102>;
			wlan_vregs = "vdd-wlan-aon", "vdd-wlan-rfa1",
				   "vdd-wlan-rfa2", "vdd-wlan-rfa3";
			qcom,vdd-wlan-aon-info = <1000000 1000000 0 0>;
			qcom,vdd-wlan-rfa1-info = <1370000 1370000 0 0>;
			qcom,vdd-wlan-rfa2-info = <2040000 2040000 0 0>;
			qcom,vdd-wlan-rfa3-info = <1900000 1900000 0 0>;

			qcom,wlan-ramdump-dynamic = <0x300000>;
			mhi,max-channels = <30>;
			mhi,timeout = <10000>;
			mhi,ee = <0x3>, <0x4>;
			mhi,ee-names = "SBL", "RDDM";
			mhi,bhie-offset = <0x0324>;

			mhi_channels {
				#address-cells = <1>;
				#size-cells = <0>;
				mhi_chan@0 {
					reg = <0>;
					label = "LOOPBACK";
					mhi,num-elements = <32>;
					mhi,event-ring = <1>;
					mhi,chan-dir = <1>;
					mhi,data-type = <0>;
					mhi,doorbell-mode = <2>;
					mhi,ee = <0x14>;
				};

				mhi_chan@1 {
					reg = <1>;
					label = "LOOPBACK";
					mhi,num-elements = <32>;
					mhi,event-ring = <1>;
					mhi,chan-dir = <2>;
					mhi,data-type = <0>;
					mhi,doorbell-mode = <2>;
					mhi,ee = <0x14>;
				};

				mhi_chan@4 {
					reg = <4>;
					label = "DIAG";
					mhi,num-elements = <32>;
					mhi,event-ring = <1>;
					mhi,chan-dir = <1>;
					mhi,data-type = <0>;
					mhi,doorbell-mode = <2>;
					mhi,ee = <0x14>;
				};

				mhi_chan@5 {
					reg = <5>;
					label = "DIAG";
					mhi,num-elements = <32>;
					mhi,event-ring = <1>;
					mhi,chan-dir = <2>;
					mhi,data-type = <0>;
					mhi,doorbell-mode = <2>;
					mhi,ee = <0x14>;
				};

				mhi_chan@16 {
					reg = <16>;
					label = "IPCR";
					mhi,num-elements = <32>;
					mhi,event-ring = <1>;
					mhi,chan-dir = <1>;
					mhi,data-type = <1>;
					mhi,doorbell-mode = <2>;
					mhi,ee = <0x14>;
					mhi,auto-start;
				};

				mhi_chan@17 {
					reg = <17>;
					label = "IPCR";
					mhi,num-elements = <32>;
					mhi,event-ring = <1>;
					mhi,chan-dir = <2>;
					mhi,data-type = <0>;
					mhi,doorbell-mode = <2>;
					mhi,ee = <0x14>;
					mhi,auto-queue;
					mhi,auto-start;
				};
			};

			mhi_events {
				mhi_event@0 {
					mhi,num-elements = <32>;
					mhi,intmod = <1>;
					mhi,msi = <1>;
					mhi,priority = <1>;
					mhi,brstmode = <2>;
					mhi,data-type = <1>;
				};

				mhi_event@1 {
					mhi,num-elements = <256>;
					mhi,intmod = <1>;
					mhi,msi = <2>;
					mhi,priority = <1>;
					mhi,brstmode = <2>;
				};
			};
		};
	};
};
+2 −0
Original line number Diff line number Diff line
@@ -67,3 +67,5 @@
	/delete-property/ size;
	size = <0x0 0x3c00000>;
};

#include "sa8195-vm-lv-cnss-lxc.dtsi"
+1 −1
Original line number Diff line number Diff line
@@ -3587,7 +3587,7 @@
			};
		};

		cnss_pins {
		cnss_pins: cnss_pins {
			cnss_wlan_en_active: cnss_wlan_en_active {
				mux {
					pins = "gpio169";