1Qualcomm ADSP Peripheral Image Loader 2 3This document defines the binding for a component that loads and boots firmware 4on the Qualcomm ADSP Hexagon core. 5 6- compatible: 7 Usage: required 8 Value type: <string> 9 Definition: must be one of: 10 "qcom,msm8974-adsp-pil" 11 "qcom,msm8996-adsp-pil" 12 "qcom,msm8996-slpi-pil" 13 "qcom,msm8998-adsp-pas" 14 "qcom,msm8998-slpi-pas" 15 "qcom,qcs404-adsp-pas" 16 "qcom,qcs404-cdsp-pas" 17 "qcom,qcs404-wcss-pas" 18 "qcom,sc7180-mpss-pas" 19 "qcom,sdm845-adsp-pas" 20 "qcom,sdm845-cdsp-pas" 21 "qcom,sm8150-adsp-pas" 22 "qcom,sm8150-cdsp-pas" 23 "qcom,sm8150-mpss-pas" 24 "qcom,sm8150-slpi-pas" 25 "qcom,sm8250-adsp-pas" 26 "qcom,sm8250-cdsp-pas" 27 "qcom,sm8250-slpi-pas" 28 "qcom,sm8350-adsp-pas" 29 "qcom,sm8350-cdsp-pas" 30 "qcom,sm8350-slpi-pas" 31 "qcom,sm8350-mpss-pas" 32 33- interrupts-extended: 34 Usage: required 35 Value type: <prop-encoded-array> 36 Definition: reference to the interrupts that match interrupt-names 37 38- interrupt-names: 39 Usage: required 40 Value type: <stringlist> 41 Definition: The interrupts needed depends on the compatible 42 string: 43 qcom,msm8974-adsp-pil: 44 qcom,msm8996-adsp-pil: 45 qcom,msm8996-slpi-pil: 46 qcom,msm8998-adsp-pas: 47 qcom,msm8998-slpi-pas: 48 qcom,qcs404-adsp-pas: 49 qcom,qcs404-cdsp-pas: 50 qcom,sdm845-adsp-pas: 51 qcom,sdm845-cdsp-pas: 52 qcom,sm8150-adsp-pas: 53 qcom,sm8150-cdsp-pas: 54 qcom,sm8150-slpi-pas: 55 qcom,sm8250-adsp-pas: 56 qcom,sm8250-cdsp-pas: 57 qcom,sm8250-slpi-pas: 58 qcom,sm8350-adsp-pas: 59 qcom,sm8350-cdsp-pas: 60 qcom,sm8350-slpi-pas: 61 must be "wdog", "fatal", "ready", "handover", "stop-ack" 62 qcom,qcs404-wcss-pas: 63 qcom,sc7180-mpss-pas: 64 qcom,sm8150-mpss-pas: 65 qcom,sm8350-mpss-pas: 66 must be "wdog", "fatal", "ready", "handover", "stop-ack", 67 "shutdown-ack" 68 69- firmware-name: 70 Usage: optional 71 Value type: <string> 72 Definition: must list the relative firmware image path for the 73 Hexagon Core. 74 75- clocks: 76 Usage: required 77 Value type: <prop-encoded-array> 78 Definition: reference to the xo clock and optionally aggre2 clock to be 79 held on behalf of the booting Hexagon core 80 81- clock-names: 82 Usage: required 83 Value type: <stringlist> 84 Definition: must be "xo" and optionally include "aggre2" 85 86- cx-supply: 87 Usage: required 88 Value type: <phandle> 89 Definition: reference to the regulator to be held on behalf of the 90 booting Hexagon core 91 92- px-supply: 93 Usage: required 94 Value type: <phandle> 95 Definition: reference to the px regulator to be held on behalf of the 96 booting Hexagon core 97 98- power-domains: 99 Usage: required 100 Value type: <phandle> 101 Definition: reference to power-domains that match the power-domain-names 102 103- power-domain-names: 104 Usage: required 105 Value type: <stringlist> 106 Definition: The power-domains needed depend on the compatible string: 107 qcom,msm8974-adsp-pil: 108 qcom,msm8996-adsp-pil: 109 qcom,msm8998-adsp-pas: 110 must be "cx" 111 qcom,msm8996-slpi-pil: 112 must be "ss_cx" 113 qcom,msm8998-slpi-pas: 114 must be "ssc_cx" 115 qcom,qcs404-adsp-pas: 116 must be "lpi_cx" 117 qcom,qcs404-cdsp-pas: 118 qcom,qcs404-wcss-pas: 119 must be "mx" 120 qcom,sdm845-adsp-pas: 121 qcom,sdm845-cdsp-pas: 122 qcom,sm8150-adsp-pas: 123 qcom,sm8150-cdsp-pas: 124 qcom,sm8250-cdsp-pas: 125 qcom,sm8350-cdsp-pas: 126 must be "cx", "load_state" 127 qcom,sc7180-mpss-pas: 128 qcom,sm8150-mpss-pas: 129 qcom,sm8350-mpss-pas: 130 must be "cx", "load_state", "mss" 131 qcom,sm8250-adsp-pas: 132 qcom,sm8350-adsp-pas: 133 qcom,sm8150-slpi-pas: 134 qcom,sm8250-slpi-pas: 135 qcom,sm8350-slpi-pas: 136 must be "lcx", "lmx", "load_state" 137 138- memory-region: 139 Usage: required 140 Value type: <phandle> 141 Definition: reference to the reserved-memory for the ADSP 142 143- qcom,smem-states: 144 Usage: required 145 Value type: <phandle> 146 Definition: reference to the smem state for requesting the ADSP to 147 shut down 148 149- qcom,smem-state-names: 150 Usage: required 151 Value type: <stringlist> 152 Definition: must be "stop" 153 154 155= SUBNODES 156The adsp node may have an subnode named either "smd-edge" or "glink-edge" that 157describes the communication edge, channels and devices related to the ADSP. 158See ../soc/qcom/qcom,smd.txt and ../soc/qcom/qcom,glink.txt for details on how 159to describe these. 160 161 162= EXAMPLE 163The following example describes the resources needed to boot control the 164ADSP, as it is found on MSM8974 boards. 165 166 adsp { 167 compatible = "qcom,msm8974-adsp-pil"; 168 169 interrupts-extended = <&intc 0 162 IRQ_TYPE_EDGE_RISING>, 170 <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>, 171 <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>, 172 <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>, 173 <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>; 174 interrupt-names = "wdog", 175 "fatal", 176 "ready", 177 "handover", 178 "stop-ack"; 179 180 clocks = <&rpmcc RPM_CXO_CLK>; 181 clock-names = "xo"; 182 183 cx-supply = <&pm8841_s2>; 184 185 memory-region = <&adsp_region>; 186 187 qcom,smem-states = <&adsp_smp2p_out 0>; 188 qcom,smem-state-names = "stop"; 189 190 smd-edge { 191 interrupts = <0 156 IRQ_TYPE_EDGE_RISING>; 192 193 qcom,ipc = <&apcs 8 8>; 194 qcom,smd-edge = <1>; 195 }; 196 }; 197 198The following example describes the resources needed to boot control the 199SLPI, as it is found on MSM8996 boards. 200 201 slpi { 202 compatible = "qcom,msm8996-slpi-pil"; 203 interrupts-extended = <&intc 0 390 IRQ_TYPE_EDGE_RISING>, 204 <&slpi_smp2p_in 0 IRQ_TYPE_EDGE_RISING>, 205 <&slpi_smp2p_in 1 IRQ_TYPE_EDGE_RISING>, 206 <&slpi_smp2p_in 2 IRQ_TYPE_EDGE_RISING>, 207 <&slpi_smp2p_in 3 IRQ_TYPE_EDGE_RISING>; 208 interrupt-names = "wdog", 209 "fatal", 210 "ready", 211 "handover", 212 "stop-ack"; 213 214 clocks = <&rpmcc MSM8996_RPM_SMD_XO_CLK_SRC>, 215 <&rpmcc MSM8996_RPM_SMD_AGGR2_NOC_CLK>; 216 clock-names = "xo", "aggre2"; 217 218 cx-supply = <&pm8994_l26>; 219 px-supply = <&pm8994_lvs2>; 220 221 memory-region = <&slpi_region>; 222 qcom,smem-states = <&slpi_smp2p_out 0>; 223 qcom,smem-state-names = "stop"; 224 }; 225