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