Commit a03a5b63 authored by Sibi Sankar's avatar Sibi Sankar Committed by Bjorn Andersson
Browse files

dt-bindings: soc: qcom: apr: Add protection domain bindings



Qualcomm SoCs (starting with MSM8998) allow for multiple protection
domains (PDs) to run on the same Q6 sub-system. This allows for
services like AVS AUDIO to have their own separate address space and
crash/recover without disrupting the other PDs running on the same Q6
ADSP. Add "qcom,protection-domain" bindings to capture the dependencies
between the APR service and the PD on which the apr service runs.

Reviewed-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarSibi Sankar <sibis@codeaurora.org>
Link: https://lore.kernel.org/r/20200312120842.21991-3-sibis@codeaurora.org


Signed-off-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
parent fbe639b4
Loading
Loading
Loading
Loading
+50 −0
Original line number Diff line number Diff line
@@ -45,6 +45,18 @@ by the individual bindings for the specific service
			12 - Ultrasound stream manager.
			13 - Listen stream manager.

- qcom,protection-domain
	Usage: optional
	Value type: <stringlist>
	Definition: Must list the protection domain service name and path
		    that the particular apr service has a dependency on.
	Possible values are :
			"avs/audio", "msm/adsp/audio_pd".
			"kernel/elf_loader", "msm/modem/wlan_pd".
			"tms/servreg", "msm/adsp/audio_pd".
			"tms/servreg", "msm/modem/wlan_pd".
			"tms/servreg", "msm/slpi/sensor_pd".

= EXAMPLE
The following example represents a QDSP based sound card on a MSM8996 device
which uses apr as communication between Apps and QDSP.
@@ -82,3 +94,41 @@ which uses apr as communication between Apps and QDSP.
			...
		};
	};

= EXAMPLE 2
The following example represents a QDSP based sound card with protection domain
dependencies specified. Here some of the apr services are dependent on services
running on protection domain hosted on ADSP/SLPI remote processors while others
have no such dependency.

	apr {
		compatible = "qcom,apr-v2";
		qcom,glink-channels = "apr_audio_svc";
		qcom,apr-domain = <APR_DOMAIN_ADSP>;

		q6core {
			compatible = "qcom,q6core";
			reg = <APR_SVC_ADSP_CORE>;
		};

		q6afe: q6afe {
			compatible = "qcom,q6afe";
			reg = <APR_SVC_AFE>;
			qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
			...
		};

		q6asm: q6asm {
			compatible = "qcom,q6asm";
			reg = <APR_SVC_ASM>;
			qcom,protection-domain = "tms/servreg", "msm/slpi/sensor_pd";
			...
		};

		q6adm: q6adm {
			compatible = "qcom,q6adm";
			reg = <APR_SVC_ADM>;
			qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
			...
		};
	};