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

Commit 929d9bad authored by Chris Lew's avatar Chris Lew Committed by Gerrit - the friendly Code Review server
Browse files

ARM: dts: msm: Add MPROC configurations for sdxpoorwills



Add new entry in device tree for hwspinlocks, smem, smp2p,
glink and ipcrtr. This enables IPC between remote processors.

Change-Id: I903ae02903b3e04d1d4feb40a058dea012a333af
Signed-off-by: default avatarChris Lew <clew@codeaurora.org>
parent 127ef2e2
Loading
Loading
Loading
Loading
+109 −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.
 */

#include <dt-bindings/interrupt-controller/arm-gic.h>

&soc {
	qcom,smp2p-modem@17811008 {
		compatible = "qcom,smp2p";
		reg = <0x17811008 0x4>;
		qcom,remote-pid = <1>;
		qcom,irq-bitmask = <0x4000>;
		interrupts = <GIC_SPI 113 IRQ_TYPE_EDGE_RISING>;
	};

	smp2pgpio_smp2p_15_in: qcom,smp2pgpio-smp2p-15-in {
		compatible = "qcom,smp2pgpio";
		qcom,entry-name = "smp2p";
		qcom,remote-pid = <15>;
		qcom,is-inbound;
		gpio-controller;
		#gpio-cells = <2>;
		interrupt-controller;
		#interrupt-cells = <2>;
	};

	qcom,smp2pgpio_test_smp2p_15_in {
		compatible = "qcom,smp2pgpio_test_smp2p_15_in";
		gpios = <&smp2pgpio_smp2p_15_in 0 0>;
	};

	smp2pgpio_smp2p_15_out: qcom,smp2pgpio-smp2p-15-out {
		compatible = "qcom,smp2pgpio";
		qcom,entry-name = "smp2p";
		qcom,remote-pid = <15>;
		gpio-controller;
		#gpio-cells = <2>;
		interrupt-controller;
		#interrupt-cells = <2>;
	};

	qcom,smp2pgpio_test_smp2p_15_out {
		compatible = "qcom,smp2pgpio_test_smp2p_15_out";
		gpios = <&smp2pgpio_smp2p_15_out 0 0>;
	};

	smp2pgpio_smp2p_1_in: qcom,smp2pgpio-smp2p-1-in {
		compatible = "qcom,smp2pgpio";
		qcom,entry-name = "smp2p";
		qcom,remote-pid = <1>;
		qcom,is-inbound;
		gpio-controller;
		#gpio-cells = <2>;
		interrupt-controller;
		#interrupt-cells = <2>;
	};

	qcom,smp2pgpio_test_smp2p_1_in {
		compatible = "qcom,smp2pgpio_test_smp2p_1_in";
		gpios = <&smp2pgpio_smp2p_1_in 0 0>;
	};

	smp2pgpio_smp2p_1_out: qcom,smp2pgpio-smp2p-1-out {
		compatible = "qcom,smp2pgpio";
		qcom,entry-name = "smp2p";
		qcom,remote-pid = <1>;
		gpio-controller;
		#gpio-cells = <2>;
		interrupt-controller;
		#interrupt-cells = <2>;
	};

	qcom,smp2pgpio_test_smp2p_1_out {
		compatible = "qcom,smp2pgpio_test_smp2p_1_out";
		gpios = <&smp2pgpio_smp2p_1_out 0 0>;
	};

	/* ssr - inbound entry from mss */
	smp2pgpio_ssr_smp2p_1_in: qcom,smp2pgpio-ssr-smp2p-1-in {
		compatible = "qcom,smp2pgpio";
		qcom,entry-name = "slave-kernel";
		qcom,remote-pid = <1>;
		qcom,is-inbound;
		gpio-controller;
		#gpio-cells = <2>;
		interrupt-controller;
		#interrupt-cells = <2>;
	};

	/* ssr - outbound entry to mss */
	smp2pgpio_ssr_smp2p_1_out: qcom,smp2pgpio-ssr-smp2p-1-out {
		compatible = "qcom,smp2pgpio";
		qcom,entry-name = "master-kernel";
		qcom,remote-pid = <1>;
		gpio-controller;
		#gpio-cells = <2>;
		interrupt-controller;
		#interrupt-cells = <2>;
	};
};
+95 −0
Original line number Diff line number Diff line
@@ -324,8 +324,103 @@
		#interrupt-cells = <4>;
		cell-index = <0>;
	};

	qcom,ipc-spinlock@1f40000 {
		compatible = "qcom,ipc-spinlock-sfpb";
		reg = <0x1f40000 0x8000>;
		qcom,num-locks = <8>;
	};

	qcom,smem@8fe40000 {
		compatible = "qcom,smem";
		reg = <0x8fe40000 0xc0000>,
			<0x17811008 0x4>,
			<0x1fd4000 0x8>;
		reg-names = "smem", "irq-reg-base",
			"smem_targ_info_reg";
		qcom,mpu-enabled;
	};

	qcom,glink-smem-native-xprt-modem@8fe40000 {
		compatible = "qcom,glink-smem-native-xprt";
		reg = <0x8fe40000 0xc0000>,
			<0x17811008 0x4>;
		reg-names = "smem", "irq-reg-base";
		qcom,irq-mask = <0x1000>;
		interrupts = <GIC_SPI 111 IRQ_TYPE_EDGE_RISING>;
		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 = "smem";
		qcom,xprt-linkid = <1>;
		qcom,xprt-version = <1>;
		qcom,fragmented-data;
	};

	qcom,glink_pkt {
		compatible = "qcom,glinkpkt";

		qcom,glinkpkt-at-mdm0 {
			qcom,glinkpkt-transport = "smem";
			qcom,glinkpkt-edge = "mpss";
			qcom,glinkpkt-ch-name = "DS";
			qcom,glinkpkt-dev-name = "at_mdm0";
		};

		qcom,glinkpkt-loopback_cntl {
			qcom,glinkpkt-transport = "lloop";
			qcom,glinkpkt-edge = "local";
			qcom,glinkpkt-ch-name = "LOCAL_LOOPBACK_CLNT";
			qcom,glinkpkt-dev-name = "glink_pkt_loopback_ctrl";
		};

		qcom,glinkpkt-loopback_data {
			qcom,glinkpkt-transport = "lloop";
			qcom,glinkpkt-edge = "local";
			qcom,glinkpkt-ch-name = "glink_pkt_lloop_CLNT";
			qcom,glinkpkt-dev-name = "glink_pkt_loopback";
		};

		qcom,glinkpkt-data40-cntl {
			qcom,glinkpkt-transport = "smem";
			qcom,glinkpkt-edge = "mpss";
			qcom,glinkpkt-ch-name = "DATA40_CNTL";
			qcom,glinkpkt-dev-name = "smdcntl8";
		};

		qcom,glinkpkt-data1 {
			qcom,glinkpkt-transport = "smem";
			qcom,glinkpkt-edge = "mpss";
			qcom,glinkpkt-ch-name = "DATA1";
			qcom,glinkpkt-dev-name = "smd7";
		};

		qcom,glinkpkt-data4 {
			qcom,glinkpkt-transport = "smem";
			qcom,glinkpkt-edge = "mpss";
			qcom,glinkpkt-ch-name = "DATA4";
			qcom,glinkpkt-dev-name = "smd8";
		};

		qcom,glinkpkt-data11 {
			qcom,glinkpkt-transport = "smem";
			qcom,glinkpkt-edge = "mpss";
			qcom,glinkpkt-ch-name = "DATA11";
			qcom,glinkpkt-dev-name = "smd11";
		};
	};
};

#include "pmxpoorwills.dtsi"
#include "sdxpoorwills-regulator.dtsi"
#include "sdxpoorwills-smp2p.dtsi"
#include "sdxpoorwills-usb.dtsi"