qcom,adsp.txt 3.5 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11
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"
12
		    "qcom,msm8996-slpi-pil"
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

- interrupts-extended:
	Usage: required
	Value type: <prop-encoded-array>
	Definition: must list the watchdog, fatal IRQs ready, handover and
		    stop-ack IRQs

- interrupt-names:
	Usage: required
	Value type: <stringlist>
	Definition: must be "wdog", "fatal", "ready", "handover", "stop-ack"

- clocks:
	Usage: required
	Value type: <prop-encoded-array>
28 29
	Definition: reference to the xo clock and optionally aggre2 clock to be
		    held on behalf of the booting Hexagon core
30 31 32 33

- clock-names:
	Usage: required
	Value type: <stringlist>
34
	Definition: must be "xo" and optionally include "aggre2"
35 36 37 38 39 40 41

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

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

48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
- 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
66 67 68 69
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.
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106


= 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>;
		};
	};
107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134

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