Qualcomm ADSP Peripheral Image Loader

This document defines the binding for a component that loads and boots firmware
on the Qualcomm ADSP Hexagon core.

- compatible:
	Usage: required
	Value type: <string>
	Definition: must be one of:
		    "qcom,msm8974-adsp-pil"
		    "qcom,msm8996-adsp-pil"
		    "qcom,msm8996-slpi-pil"
		    "qcom,msm8998-adsp-pas"
		    "qcom,msm8998-slpi-pas"
		    "qcom,qcs404-adsp-pas"
		    "qcom,qcs404-cdsp-pas"
		    "qcom,qcs404-wcss-pas"
		    "qcom,sc7180-mpss-pas"
		    "qcom,sdm845-adsp-pas"
		    "qcom,sdm845-cdsp-pas"
		    "qcom,sm8150-adsp-pas"
		    "qcom,sm8150-cdsp-pas"
		    "qcom,sm8150-mpss-pas"
		    "qcom,sm8150-slpi-pas"
		    "qcom,sm8250-adsp-pas"
		    "qcom,sm8250-cdsp-pas"
		    "qcom,sm8250-slpi-pas"

- interrupts-extended:
	Usage: required
	Value type: <prop-encoded-array>
	Definition: reference to the interrupts that match interrupt-names

- interrupt-names:
	Usage: required
	Value type: <stringlist>
	Definition: The interrupts needed depends on the compatible
		    string:
	qcom,msm8974-adsp-pil:
	qcom,msm8996-adsp-pil:
	qcom,msm8996-slpi-pil:
	qcom,msm8998-adsp-pas:
	qcom,msm8998-slpi-pas:
	qcom,qcs404-adsp-pas:
	qcom,qcs404-cdsp-pas:
	qcom,sdm845-adsp-pas:
	qcom,sdm845-cdsp-pas:
	qcom,sm8150-adsp-pas:
	qcom,sm8150-cdsp-pas:
	qcom,sm8150-slpi-pas:
	qcom,sm8250-adsp-pas:
	qcom,sm8250-cdsp-pas:
	qcom,sm8250-slpi-pas:
		    must be "wdog", "fatal", "ready", "handover", "stop-ack"
	qcom,qcs404-wcss-pas:
	qcom,sc7180-mpss-pas:
	qcom,sm8150-mpss-pas:
		    must be "wdog", "fatal", "ready", "handover", "stop-ack",
		    "shutdown-ack"

- firmware-name:
	Usage: optional
	Value type: <string>
	Definition: must list the relative firmware image path for the
		    Hexagon Core.

- clocks:
	Usage: required
	Value type: <prop-encoded-array>
	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" and optionally include "aggre2"

- cx-supply:
	Usage: required
	Value type: <phandle>
	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

- power-domains:
	Usage: required
	Value type: <phandle>
	Definition: reference to power-domains that match the power-domain-names

- power-domain-names:
	Usage: required
	Value type: <stringlist>
	Definition: The power-domains needed depend on the compatible string:
	qcom,msm8974-adsp-pil:
	qcom,msm8996-adsp-pil:
	qcom,msm8998-adsp-pas:
		    must be "cx"
	qcom,msm8996-slpi-pil:
		    must be "ss_cx"
	qcom,msm8998-slpi-pas:
		    must be "ssc_cx"
	qcom,qcs404-adsp-pas:
		    must be "lpi_cx"
	qcom,qcs404-cdsp-pas:
	qcom,qcs404-wcss-pas:
		    must be "mx"
	qcom,sdm845-adsp-pas:
	qcom,sdm845-cdsp-pas:
	qcom,sm8150-adsp-pas:
	qcom,sm8150-cdsp-pas:
	qcom,sm8250-cdsp-pas:
		    must be "cx", "load_state"
	qcom,sc7180-mpss-pas:
	qcom,sm8150-mpss-pas:
		    must be "cx", "load_state", "mss"
	qcom,sm8250-adsp-pas:
	qcom,sm8150-slpi-pas:
	qcom,sm8250-slpi-pas:
		    must be "lcx", "lmx", "load_state"

- memory-region:
	Usage: required
	Value type: <phandle>
	Definition: reference to the reserved-memory for the ADSP

- qcom,smem-states:
	Usage: required
	Value type: <phandle>
	Definition: reference to the smem state for requesting the ADSP to
		    shut down

- qcom,smem-state-names:
	Usage: required
	Value type: <stringlist>
	Definition: must be "stop"


= SUBNODES
The adsp node may have an subnode named either "smd-edge" or "glink-edge" that
describes the communication edge, channels and devices related to the ADSP.
See ../soc/qcom/qcom,smd.txt and ../soc/qcom/qcom,glink.txt for details on how
to describe these.


= EXAMPLE
The following example describes the resources needed to boot control the
ADSP, as it is found on MSM8974 boards.

	adsp {
		compatible = "qcom,msm8974-adsp-pil";

		interrupts-extended = <&intc 0 162 IRQ_TYPE_EDGE_RISING>,
				      <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
				      <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
				      <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
				      <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
		interrupt-names = "wdog",
				  "fatal",
				  "ready",
				  "handover",
				  "stop-ack";

		clocks = <&rpmcc RPM_CXO_CLK>;
		clock-names = "xo";

		cx-supply = <&pm8841_s2>;

		memory-region = <&adsp_region>;

		qcom,smem-states = <&adsp_smp2p_out 0>;
		qcom,smem-state-names = "stop";

		smd-edge {
			interrupts = <0 156 IRQ_TYPE_EDGE_RISING>;

			qcom,ipc = <&apcs 8 8>;
			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";
        };
