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

Commit 90a068ed authored by Avaneesh Kumar Dwivedi's avatar Avaneesh Kumar Dwivedi Committed by Bjorn Andersson
Browse files

remoteproc: qcom: Add SLPI rproc support to load and boot slpi proc.



This patch add slpi remoteproc support in existing adsp rproc driver.

Signed-off-by: default avatarAvaneesh Kumar Dwivedi <akdwived@codeaurora.org>
[bjorn: documented aggre2 and px-supply]
Signed-off-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
parent e323fc03
Loading
Loading
Loading
Loading
+38 −3
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@ on the Qualcomm ADSP Hexagon core.
	Definition: must be one of:
		    "qcom,msm8974-adsp-pil"
		    "qcom,msm8996-adsp-pil"
		    "qcom,msm8996-slpi-pil"

- interrupts-extended:
	Usage: required
@@ -24,13 +25,13 @@ on the Qualcomm ADSP Hexagon core.
- clocks:
	Usage: required
	Value type: <prop-encoded-array>
	Definition: reference to the xo clock to be held on behalf of the
		    booting Hexagon core
	Definition: reference to the xo clock and optionally aggre2 clock to be
		    held on behalf of the booting Hexagon core

- clock-names:
	Usage: required
	Value type: <stringlist>
	Definition: must be "xo"
	Definition: must be "xo" and optionally include "aggre2"

- cx-supply:
	Usage: required
@@ -38,6 +39,12 @@ on the Qualcomm ADSP Hexagon core.
	Definition: reference to the regulator to be held on behalf of the
		    booting Hexagon core

- px-supply:
	Usage: required
	Value type: <phandle>
	Definition: reference to the px regulator to be held on behalf of the
		    booting Hexagon core

- memory-region:
	Usage: required
	Value type: <phandle>
@@ -96,3 +103,31 @@ ADSP, as it is found on MSM8974 boards.
			qcom,smd-edge = <1>;
		};
	};

The following example describes the resources needed to boot control the
SLPI, as it is found on MSM8996 boards.

	slpi {
		compatible = "qcom,msm8996-slpi-pil";
		interrupts-extended = <&intc 0 390 IRQ_TYPE_EDGE_RISING>,
				      <&slpi_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
				      <&slpi_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
				      <&slpi_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
				      <&slpi_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
		interrupt-names = "wdog",
				  "fatal",
				  "ready",
				  "handover",
				  "stop-ack";

		clocks = <&rpmcc MSM8996_RPM_SMD_XO_CLK_SRC>,
		         <&rpmcc MSM8996_RPM_SMD_AGGR2_NOC_CLK>;
		clock-names = "xo", "aggre2";

		cx-supply = <&pm8994_l26>;
		px-supply = <&pm8994_lvs2>;

		memory-region = <&slpi_region>;
		qcom,smem-states = <&slpi_smp2p_out 0>;
		qcom,smem-state-names = "stop";
        };
+9 −1
Original line number Diff line number Diff line
/*
 * Qualcomm ADSP Peripheral Image Loader for MSM8974 and MSM8996
 * Qualcomm ADSP/SLPI Peripheral Image Loader for MSM8974 and MSM8996
 *
 * Copyright (C) 2016 Linaro Ltd
 * Copyright (C) 2014 Sony Mobile Communications AB
@@ -459,9 +459,17 @@ static const struct adsp_data adsp_resource_init = {
		.has_aggre2_clk = false,
};

static const struct adsp_data slpi_resource_init = {
		.crash_reason_smem = 424,
		.firmware_name = "slpi.mdt",
		.pas_id = 12,
		.has_aggre2_clk = true,
};

static const struct of_device_id adsp_of_match[] = {
	{ .compatible = "qcom,msm8974-adsp-pil", .data = &adsp_resource_init},
	{ .compatible = "qcom,msm8996-adsp-pil", .data = &adsp_resource_init},
	{ .compatible = "qcom,msm8996-slpi-pil", .data = &slpi_resource_init},
	{ },
};
MODULE_DEVICE_TABLE(of, adsp_of_match);