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

Commit c043315f authored by Sanjay Dwivedi's avatar Sanjay Dwivedi Committed by Gerrit - the friendly Code Review server
Browse files

ARM: dts: msm: add support for SMP2P shutdown ack from modem



Add the device entry to define the SMP2P interface for shutdown
acknowledgment from modem after SSCTL command is sent from MPSS
to APPS. Also define the correct SSCTL instance ID to register the
SSCTL QMI service.

Change-Id: I8420857df0c0b9d364b04fb465b79c331f3881cd
Signed-off-by: default avatarSanjay Dwivedi <sanjaykd@codeaurora.org>
parent 9499b3ff
Loading
Loading
Loading
Loading
+132 −0
Original line number Original line 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.
 */

#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>;
	};

	/* ipa - outbound entry to mss */
	smp2pgpio_ipa_1_out: qcom,smp2pgpio-ipa-1-out {
		compatible = "qcom,smp2pgpio";
		qcom,entry-name = "ipa";
		qcom,remote-pid = <1>;
		gpio-controller;
		#gpio-cells = <2>;
		interrupt-controller;
		#interrupt-cells = <2>;
	};

	/* ipa - inbound entry from mss */
	smp2pgpio_ipa_1_in: qcom,smp2pgpio-ipa-1-in {
		compatible = "qcom,smp2pgpio";
		qcom,entry-name = "ipa";
		qcom,remote-pid = <1>;
		qcom,is-inbound;
		gpio-controller;
		#gpio-cells = <2>;
		interrupt-controller;
		#interrupt-cells = <2>;
	};
};
+11 −0
Original line number Original line Diff line number Diff line
@@ -480,6 +480,16 @@
		qcom,smem-states = <&modem_smp2p_out 0>;
		qcom,smem-states = <&modem_smp2p_out 0>;
		qcom,smem-state-names = "qcom,force-stop";
		qcom,smem-state-names = "qcom,force-stop";


		/* GPIO intput to 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";
		status = "ok";
	};
	};


@@ -1619,6 +1629,7 @@
#include "sdxprairie-aqc.dtsi"
#include "sdxprairie-aqc.dtsi"
#include "sdxprairie-thermal.dtsi"
#include "sdxprairie-thermal.dtsi"
#include "sdxprairie-qcom-smmu.dtsi"
#include "sdxprairie-qcom-smmu.dtsi"
#include "sdxprairie-smp2p.dtsi"


&gdsc_usb30 {
&gdsc_usb30 {
	status = "ok";
	status = "ok";