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

Commit 8353608a authored by Zhiqiang Tu's avatar Zhiqiang Tu Committed by Gerrit - the friendly Code Review server
Browse files

ARM: dts: msm: Refactor device tree of msm8996 virtual platform



Refactor device tree to support multiple targets on virtual platform.

Change-Id: Id4a3519afd63b77510d824979fc71309ff6ac481
Signed-off-by: default avatarZhiqiang Tu <ztu@codeaurora.org>
parent 2db878d5
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -115,7 +115,8 @@ dtb-$(CONFIG_ARCH_MSM8996) += msm8996-v2-pmi8994-cdp.dtb \
	apq8096-v3-pmi8996-mdm9x55-slimbus-mtp.dtb \
	apq8096-v3-pmi8996-dragonboard.dtb

dtb-$(CONFIG_MSM_GVM_QUIN) += vplatform-lfv-msm8996.dtb
dtb-$(CONFIG_MSM_GVM_QUIN) += vplatform-lfv-msm8996-telematics.dtb \
	vplatform-lfv-msm8996-ivi.dtb

ifeq ($(CONFIG_BUILD_ARM64_DT_OVERLAY),y)
dtbo-$(CONFIG_ARCH_MSM8998) += \
+166 −0
Original line number Diff line number Diff line
/* Copyright (c) 2017, 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.
 */

&soc {
	qcom,msm-dai-mi2s {
		dai_mi2s_sec: qcom,msm-dai-q6-mi2s-sec {
			qcom,msm-mi2s-rx-lines = <2>;
			qcom,msm-mi2s-tx-lines = <1>;
			pinctrl-names = "default", "sleep";
			pinctrl-0 = <&sec_mi2s_active &sec_mi2s_sd0_active
				&sec_mi2s_sd1_active>;
			pinctrl-1 = <&sec_mi2s_sleep &sec_mi2s_sd0_sleep
				&sec_mi2s_sd1_sleep>;
		};

		dai_mi2s: qcom,msm-dai-q6-mi2s-tert {
			pinctrl-names = "default", "sleep";
			pinctrl-0 = <&tert_mi2s_active &tert_mi2s_sd0_active>;
			pinctrl-1 = <&tert_mi2s_sleep &tert_mi2s_sd0_sleep>;
		};

		dai_mi2s_quat: qcom,msm-dai-q6-mi2s-quat {
			pinctrl-names = "default", "sleep";
			pinctrl-0 = <&quat_mi2s_active &quat_mi2s_sd0_active>;
			pinctrl-1 = <&quat_mi2s_sleep &quat_mi2s_sd0_sleep>;
		};
	};

	qcom,msm-dai-tdm-tert-rx {
		pinctrl-names = "default", "sleep";
		pinctrl-0 = <&tert_tdm_dout_active>;
		pinctrl-1 = <&tert_tdm_dout_sleep>;
	};

	qcom,msm-dai-tdm-quat-rx {
		pinctrl-names = "default", "sleep";
		pinctrl-0 = <&quat_tdm_dout_active>;
		pinctrl-1 = <&quat_tdm_dout_sleep>;
	};

	qcom,msm-audio-ion {
		compatible = "qcom,msm-audio-ion";
		qcom,smmu-version = <2>;
		qcom,smmu-enabled;
		iommus = <&lpass_q6_smmu 1>;
	};

	qcom,msm-adsp-loader {
		status = "ok";
		compatible = "qcom,adsp-loader";
		qcom,adsp-state = <0>;
	};

	qcom,msm-adsprpc-mem {
		compatible = "qcom,msm-adsprpc-mem-region";
		memory-region = <&adsp_mem>;
	};

	qcom,msm_fastrpc {
		compatible = "qcom,msm-fastrpc-adsp";

		qcom,msm_fastrpc_compute_cb1 {
			compatible = "qcom,msm-fastrpc-compute-cb";
			label = "adsprpc-smd";
			iommus = <&lpass_q6_smmu 8>;
		};
		qcom,msm_fastrpc_compute_cb2 {
			compatible = "qcom,msm-fastrpc-compute-cb";
			label = "adsprpc-smd";
			iommus = <&lpass_q6_smmu 9>;
		};
		qcom,msm_fastrpc_compute_cb3 {
			compatible = "qcom,msm-fastrpc-compute-cb";
			label = "adsprpc-smd";
			iommus = <&lpass_q6_smmu 10>;
		};
		qcom,msm_fastrpc_compute_cb4 {
			compatible = "qcom,msm-fastrpc-compute-cb";
			label = "adsprpc-smd";
			iommus = <&lpass_q6_smmu 11>;
		};
		qcom,msm_fastrpc_compute_cb5 {
			compatible = "qcom,msm-fastrpc-compute-cb";
			label = "adsprpc-smd";
			iommus = <&lpass_q6_smmu 12>;
		};
		qcom,msm_fastrpc_compute_cb6 {
			compatible = "qcom,msm-fastrpc-compute-cb";
			label = "adsprpc-smd";
			iommus = <&lpass_q6_smmu 5>;
		};
		qcom,msm_fastrpc_compute_cb7 {
			compatible = "qcom,msm-fastrpc-compute-cb";
			label = "adsprpc-smd";
			iommus = <&lpass_q6_smmu 6>;
		};
		qcom,msm_fastrpc_compute_cb8 {
			compatible = "qcom,msm-fastrpc-compute-cb";
			label = "adsprpc-smd";
			iommus = <&lpass_q6_smmu 7>;
		};
	};

	qcom,glink-smem-native-xprt-adsp@86000000 {
		compatible = "qcom,glink-smem-native-xprt";
		reg = <0x86000000 0x200000>,
			<0x9820010 0x4>;
		reg-names = "smem", "irq-reg-base";
		qcom,irq-mask = <0x200>;
		interrupts = <0 157 1>;
		label = "lpass";
		qcom,qos-config = <0x1b8>;
		qcom,ramp-time = <0xaf>;
	};

	qcom,glink-qos-config-adsp {
		compatible = "qcom,glink-qos-config";
		qcom,flow-info = <0x3c 0x0 0x3c 0x0 0x3c 0x0 0x3c 0x0>;
		qcom,mtu-size = <0x800>;
		qcom,tput-stats-cycle = <0xa>;
		linux,phandle = <0x1b8>;
		phandle = <0x1b8>;
	};

	qcom,lpass@9300000 {
		compatible = "qcom,pil-tz-generic";
		reg = <0x9300000 0x00100>;
		interrupts = <0 162 1>;

		vdd_cx-supply = <&pm8994_s1_corner>;
		qcom,proxy-reg-names = "vdd_cx";
		qcom,vdd_cx-uV-uA = <7 100000>;

		clocks = <&clock_gcc clk_cxo_pil_lpass_clk>;
		clock-names = "xo";
		qcom,proxy-clock-names = "xo";

		qcom,pas-id = <1>;
		qcom,proxy-timeout-ms = <10000>;
		qcom,smem-id = <423>;
		qcom,sysmon-id = <1>;
		qcom,ssctl-instance-id = <0x14>;
		qcom,firmware-name = "adsp";
		qcom,edge = "lpass";
		memory-region = <&peripheral_mem>;

		/* GPIO inputs from lpass */
		qcom,gpio-err-fatal = <&smp2pgpio_ssr_smp2p_2_in 0 0>;
		qcom,gpio-proxy-unvote = <&smp2pgpio_ssr_smp2p_2_in 2 0>;
		qcom,gpio-err-ready = <&smp2pgpio_ssr_smp2p_2_in 1 0>;
		qcom,gpio-stop-ack = <&smp2pgpio_ssr_smp2p_2_in 3 0>;

		/* GPIO output to lpass */
		qcom,gpio-force-stop = <&smp2pgpio_ssr_smp2p_2_out 0 0>;
	};
};
+116 −0
Original line number Diff line number Diff line
/*
 * Copyright (c) 2017, 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.
 */
/ {
	aliases {
		spi9 = &spi_9;
		i2c6 = &i2c_6;
		i2c8 = &i2c_8;
	};
};

&soc {
	spi_9: spi@75B7000 { /* BLSP2 QUP3 */
		compatible = "qcom,spi-qup-v2";
		#address-cells = <1>;
		#size-cells = <0>;
		reg-names = "spi_physical";
		reg = <0x075B7000 0x600>;
		interrupt-names = "spi_irq";
		interrupts = <0 103 0>;
		spi-max-frequency = <19200000>;
		qcom,infinite-mode = <0>;
		qcom,ver-reg-exists;
		qcom,master-id = <84>;
		qcom,use-pinctrl;
		pinctrl-names = "spi_default", "spi_sleep";
		pinctrl-0 = <&spi_9_active>;
		pinctrl-1 = <&spi_9_sleep>;
		clock-names = "iface_clk", "core_clk";
		clocks = <&clock_gcc clk_gcc_blsp2_ahb_clk>,
			 <&clock_gcc clk_gcc_blsp2_qup3_spi_apps_clk>;
		status = "disabled";
	};

	i2c_6: i2c@757a000 { /* BLSP1 QUP6 */
		compatible = "qcom,i2c-msm-v2";
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0x757a000  0x1000>;
		reg-names = "qup_phys_addr";
		interrupt-names = "qup_irq";
		interrupts = <0 100 0>;
		qcom,disable-dma;
		qcom,master-id = <86>;
		qcom,clk-freq-out = <400000>;
		qcom,clk-freq-in  = <19200000>;
		clock-names = "iface_clk", "core_clk";
		clocks = <&clock_gcc clk_gcc_blsp1_ahb_clk>,
			      <&clock_gcc clk_gcc_blsp1_qup6_i2c_apps_clk>;
		pinctrl-names = "i2c_active", "i2c_sleep";
		pinctrl-0 = <&i2c_6_active>;
		pinctrl-1 = <&i2c_6_sleep>;
		status = "disabled";
	};

	i2c_8: i2c@75b6000 { /* BLSP2 QUP2 */
		compatible = "qcom,i2c-msm-v2";
		#address-cells = <1>;
		#size-cells = <0>;
		reg-names = "qup_phys_addr";
		reg = <0x75b6000 0x1000>;
		interrupt-names = "qup_irq";
		interrupts = <0 102 0>;
		qcom,disable-dma;
		qcom,master-id = <84>;
		qcom,clk-freq-out = <400000>;
		qcom,clk-freq-in  = <19200000>;
		clock-names = "iface_clk", "core_clk";
		clocks = <&clock_gcc clk_gcc_blsp2_ahb_clk>,
			<&clock_gcc clk_gcc_blsp2_qup2_i2c_apps_clk>;
		pinctrl-names = "i2c_active", "i2c_sleep";
		pinctrl-0 = <&i2c_8_active>;
		pinctrl-1 = <&i2c_8_sleep>;
		status = "disabled";
	};

	blsp1_uart2: uart@07570000 { /* BLSP1 UART2 */
		compatible = "qcom,msm-hsuart-v14";
		reg = <0x07570000 0x1000>,
		    <0x7544000 0x2b000>;
		reg-names = "core_mem", "bam_mem";
		interrupt-names = "core_irq", "bam_irq", "wakeup_irq";
		interrupts = <0 108 0>, <0 238 0>, <0 810 0>;
		#address-cells = <0>;

		qcom,inject-rx-on-wakeup;
		qcom,rx-char-to-inject = <0xFD>;

		qcom,bam-tx-ep-pipe-index = <2>;
		qcom,bam-rx-ep-pipe-index = <3>;
		qcom,master-id = <86>;
		clock-names = "core_clk", "iface_clk";
		clocks = <&clock_gcc clk_gcc_blsp1_uart2_apps_clk>,
		    <&clock_gcc clk_gcc_blsp1_ahb_clk>;
		pinctrl-names = "sleep", "default";
		pinctrl-0 = <&blsp1_uart2_sleep>;
		pinctrl-1 = <&blsp1_uart2_active>;

		qcom,msm-bus,name = "buart2";
		qcom,msm-bus,num-cases = <2>;
		qcom,msm-bus,num-paths = <1>;
		qcom,msm-bus,vectors-KBps =
			    <86 512 0 0>,
			    <86 512 500 800>;
		status = "disabled";
	};
};
+43 −0
Original line number Diff line number Diff line
@@ -10,41 +10,34 @@
 * GNU General Public License for more details.
 */

&soc {
	qcom,msm-dai-mi2s {
		dai_mi2s_sec: qcom,msm-dai-q6-mi2s-sec {
			qcom,msm-mi2s-rx-lines = <2>;
			qcom,msm-mi2s-tx-lines = <1>;
			pinctrl-names = "default", "sleep";
			pinctrl-0 = <&sec_mi2s_active &sec_mi2s_sd0_active
				&sec_mi2s_sd1_active>;
			pinctrl-1 = <&sec_mi2s_sleep &sec_mi2s_sd0_sleep
				&sec_mi2s_sd1_sleep>;
		};
/dts-v1/;

#include "skeleton64.dtsi"
#include "vplatform-lfv-msm8996.dtsi"
#include <dt-bindings/clock/msm-clocks-8996.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>

		dai_mi2s: qcom,msm-dai-q6-mi2s-tert {
			pinctrl-names = "default", "sleep";
			pinctrl-0 = <&tert_mi2s_active &tert_mi2s_sd0_active>;
			pinctrl-1 = <&tert_mi2s_sleep &tert_mi2s_sd0_sleep>;
/ {
	model = "Qualcomm Technologies, Inc. MSM 8996";
	compatible = "qcom,msm8996";
	qcom,msm-id = <246 0x0>;
};

		dai_mi2s_quat: qcom,msm-dai-q6-mi2s-quat {
			pinctrl-names = "default", "sleep";
			pinctrl-0 = <&quat_mi2s_active &quat_mi2s_sd0_active>;
			pinctrl-1 = <&quat_mi2s_sleep &quat_mi2s_sd0_sleep>;
&soc {
	qcom,msm-audio-ion-vm {
		compatible = "qcom,msm-audio-ion-vm";
		qcom,smmu-enabled;
	};
};

	qcom,msm-dai-tdm-tert-rx {
		pinctrl-names = "default", "sleep";
		pinctrl-0 = <&tert_tdm_dout_active>;
		pinctrl-1 = <&tert_tdm_dout_sleep>;
&spi_9 {
	status = "okay";
};

	qcom,msm-dai-tdm-quat-rx {
		pinctrl-names = "default", "sleep";
		pinctrl-0 = <&quat_tdm_dout_active>;
		pinctrl-1 = <&quat_tdm_dout_sleep>;
	};
&i2c_8 {
	status = "okay";
};

&blsp1_uart2 {
	status = "okay";
};
+154 −0
Original line number Diff line number Diff line
/* Copyright (c) 2017, 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.
 */

&soc {
	qcom,ipc-spinlock@740000 {
		compatible = "qcom,ipc-spinlock-sfpb";
		reg = <0x740000 0x8000>;
		qcom,num-locks = <8>;
	};

	qcom,rmtfs_sharedmem@85e00000 {
		compatible = "qcom,sharedmem-uio";
		reg = <0x85e00000 0x00200000>;
		reg-names = "rmtfs";
		qcom,client-id = <0x00000001>;
	};

	qcom,glink-smem-native-xprt-modem@86000000 {
		compatible = "qcom,glink-smem-native-xprt";
		reg = <0x86000000 0x200000>,
			<0x9820010 0x4>;
		reg-names = "smem", "irq-reg-base";
		qcom,irq-mask = <0x8000>;
		interrupts = <0 452 1>;
		label = "mpss";
	};

	qcom,ipc_router {
		compatible = "qcom,ipc_router";
		qcom,node-id = <1>;
	};

	qcom,ipc_router_modem_xprt {
		compatible = "qcom,ipc_router_glink_xprt";
		qcom,ch-name = "IPCRTR";
		qcom,xprt-remote = "mpss";
		qcom,glink-xprt = "smd_trans";
		qcom,xprt-linkid = <1>;
		qcom,xprt-version = <1>;
		qcom,fragmented-data;
	};

	qcom,ipc_router_q6_xprt {
		compatible = "qcom,ipc_router_glink_xprt";
		qcom,ch-name = "IPCRTR";
		qcom,xprt-remote = "lpass";
		qcom,glink-xprt = "smd_trans";
		qcom,xprt-linkid = <1>;
		qcom,xprt-version = <1>;
		qcom,fragmented-data;
	};

	ipa_hw: qcom,ipa@680000 {
		compatible = "qcom,ipa";
		reg = <0x680000 0x4effc>,
			<0x684000 0x26934>;
		reg-names = "ipa-base", "bam-base";
		interrupts = <0 333 0>,
			<0 432 0>;
		interrupt-names = "ipa-irq", "bam-irq";
		qcom,ipa-hw-ver = <5>; /* IPA core version = IPAv2.5 */
		qcom,ipa-hw-mode = <0>;
		qcom,ee = <0>;
		qcom,use-ipa-tethering-bridge;
		qcom,ipa-bam-remote-mode;
		qcom,modem-cfg-emb-pipe-flt;
		clocks = <&clock_gcc clk_ipa_clk>;
		clock-names = "core_clk";
		qcom,use-dma-zone;
		qcom,msm-bus,name = "ipa";
		qcom,msm-bus,num-cases = <3>;
		qcom,msm-bus,num-paths = <2>;
		qcom,msm-bus,vectors-KBps =
		<90 512 0 0>, <90 585 0 0>,         /* No vote */
		<90 512 80000 640000>, <90 585 80000 640000>,    /* SVS */
		<90 512 206000 960000>, <90 585 206000 960000>;    /* PERF */
		qcom,bus-vector-names = "MIN", "SVS", "PERF";
	};

	qcom,rmnet-ipa {
		compatible = "qcom,rmnet-ipa";
		qcom,rmnet-ipa-ssr;
		qcom,ipa-loaduC;
		qcom,ipa-advertise-sg-support;
	};

	pil_modem: qcom,mss@2080000 {
		compatible = "qcom,pil-q6v55-mss";
		reg = <0x2080000 0x100>,
			<0x0763000 0x008>,
			<0x0765000 0x008>,
			<0x0764000 0x008>,
			<0x2180000 0x020>,
			<0x038f008 0x004>;
		reg-names = "qdsp6_base", "halt_q6", "halt_modem",
			"halt_nc", "rmb_base", "restart_reg";

		clocks = <&clock_gcc clk_cxo_clk_src>,
			<&clock_gcc clk_gcc_mss_cfg_ahb_clk>,
			<&clock_gcc clk_pnoc_clk>,
			<&clock_gcc clk_gcc_mss_q6_bimc_axi_clk>,
			<&clock_gcc clk_gcc_boot_rom_ahb_clk>,
			<&clock_gcc clk_gpll0_out_msscc>,
			<&clock_gcc clk_gcc_mss_snoc_axi_clk>,
			<&clock_gcc clk_gcc_mss_mnoc_bimc_axi_clk>,
			<&clock_gcc clk_qdss_clk>;
		clock-names = "xo", "iface_clk", "pnoc_clk", "bus_clk",
				"mem_clk", "gpll0_mss_clk", "snoc_axi_clk",
				"mnoc_axi_clk", "qdss_clk";
		qcom,proxy-clock-names = "xo", "pnoc_clk", "qdss_clk";
		qcom,active-clock-names = "iface_clk", "bus_clk", "mem_clk",
					"gpll0_mss_clk", "snoc_axi_clk",
					"mnoc_axi_clk";

		interrupts = <0 448 1>;
		vdd_cx-supply = <&pm8994_s1_corner>;
		vdd_cx-voltage = <7>;
		vdd_mx-supply = <&pm8994_s2_corner>;
		vdd_mx-uV = <6>;
		vdd_pll-supply = <&pm8994_l12>;
		qcom,vdd_pll = <1800000>;
		qcom,firmware-name = "modem";
		qcom,pil-self-auth;
		qcom,sysmon-id = <0>;
		qcom,ssctl-instance-id = <0x12>;
		qcom,override-acc;
		qcom,ahb-clk-vote;
		qcom,pnoc-clk-vote;
		qcom,qdsp6v56-1-5;
		qcom,mx-spike-wa;
		memory-region = <&modem_mem>;
		qcom,mem-protect-id = <0xF>;

		/* GPIO inputs from mss */
		qcom,gpio-err-fatal = <&smp2pgpio_ssr_smp2p_1_in 0 0>;
		qcom,gpio-err-ready = <&smp2pgpio_ssr_smp2p_1_in 1 0>;
		qcom,gpio-proxy-unvote = <&smp2pgpio_ssr_smp2p_1_in 2 0>;
		qcom,gpio-stop-ack = <&smp2pgpio_ssr_smp2p_1_in 3 0>;
		qcom,gpio-shutdown-ack = <&smp2pgpio_ssr_smp2p_1_in 7 0>;

		/* GPIO output to mss */
		qcom,gpio-force-stop = <&smp2pgpio_ssr_smp2p_1_out 0 0>;
		status = "ok";
	};
};
Loading