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