1Qualcomm Hexagon Peripheral Image Loader 2 3This document defines the binding for a component that loads and boots firmware 4on the Qualcomm Hexagon core. 5 6- compatible: 7 Usage: required 8 Value type: <string> 9 Definition: must be one of: 10 "qcom,q6v5-pil", 11 "qcom,ipq8074-wcss-pil" 12 "qcom,msm8916-mss-pil", 13 "qcom,msm8974-mss-pil" 14 "qcom,msm8996-mss-pil" 15 "qcom,msm8998-mss-pil" 16 "qcom,sdm845-mss-pil" 17 18- reg: 19 Usage: required 20 Value type: <prop-encoded-array> 21 Definition: must specify the base address and size of the qdsp6 and 22 rmb register blocks 23 24- reg-names: 25 Usage: required 26 Value type: <stringlist> 27 Definition: must be "q6dsp" and "rmb" 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 the compatible 38 string: 39 qcom,q6v5-pil: 40 qcom,ipq8074-wcss-pil: 41 qcom,msm8916-mss-pil: 42 qcom,msm8974-mss-pil: 43 must be "wdog", "fatal", "ready", "handover", "stop-ack" 44 qcom,msm8996-mss-pil: 45 qcom,msm8998-mss-pil: 46 qcom,sdm845-mss-pil: 47 must be "wdog", "fatal", "ready", "handover", "stop-ack", 48 "shutdown-ack" 49 50- firmware-name: 51 Usage: optional 52 Value type: <stringlist> 53 Definition: must list the relative firmware image paths for mba and 54 modem. They are used for booting and authenticating the 55 Hexagon core. 56 57- clocks: 58 Usage: required 59 Value type: <phandle> 60 Definition: reference to the clocks that match clock-names 61 62- clock-names: 63 Usage: required 64 Value type: <stringlist> 65 Definition: The clocks needed depend on the compatible string: 66 qcom,ipq8074-wcss-pil: 67 no clock names required 68 qcom,q6v5-pil: 69 qcom,msm8916-mss-pil: 70 qcom,msm8974-mss-pil: 71 must be "iface", "bus", "mem", "xo" 72 qcom,msm8996-mss-pil: 73 must be "iface", "bus", "mem", "xo", "gpll0_mss", 74 "snoc_axi", "mnoc_axi", "pnoc", "qdss" 75 qcom,msm8998-mss-pil: 76 must be "iface", "bus", "mem", "xo", "gpll0_mss", 77 "snoc_axi", "mnoc_axi", "qdss" 78 qcom,sdm845-mss-pil: 79 must be "iface", "bus", "mem", "xo", "gpll0_mss", 80 "snoc_axi", "mnoc_axi", "prng" 81 82- resets: 83 Usage: required 84 Value type: <phandle> 85 Definition: reference to the reset-controller for the modem sub-system 86 reference to the list of 3 reset-controllers for the 87 wcss sub-system 88 reference to the list of 2 reset-controllers for the modem 89 sub-system on SDM845 SoCs 90 91- reset-names: 92 Usage: required 93 Value type: <stringlist> 94 Definition: must be "mss_restart" for the modem sub-system 95 must be "wcss_aon_reset", "wcss_reset", "wcss_q6_reset" 96 for the wcss sub-system 97 must be "mss_restart", "pdc_reset" for the modem 98 sub-system on SDM845 SoCs 99 100For the compatible strings below the following supplies are required: 101 "qcom,q6v5-pil" 102 "qcom,msm8916-mss-pil", 103- cx-supply: 104- mx-supply: 105- pll-supply: 106 Usage: required 107 Value type: <phandle> 108 Definition: reference to the regulators to be held on behalf of the 109 booting of the Hexagon core 110 111For the compatible string below the following supplies are required: 112 "qcom,msm8974-mss-pil" 113- cx-supply: 114- mss-supply: 115- mx-supply: 116- pll-supply: 117 Usage: required 118 Value type: <phandle> 119 Definition: reference to the regulators to be held on behalf of the 120 booting of the Hexagon core 121 122For the compatible string below the following supplies are required: 123 "qcom,msm8996-mss-pil" 124- pll-supply: 125 Usage: required 126 Value type: <phandle> 127 Definition: reference to the regulators to be held on behalf of the 128 booting of the Hexagon core 129 130- power-domains: 131 Usage: required 132 Value type: <phandle> 133 Definition: reference to power-domains that match power-domain-names 134 135- power-domain-names: 136 Usage: required 137 Value type: <stringlist> 138 Definition: The power-domains needed depend on the compatible string: 139 qcom,q6v5-pil: 140 qcom,ipq8074-wcss-pil: 141 qcom,msm8916-mss-pil: 142 qcom,msm8974-mss-pil: 143 no power-domain names required 144 qcom,msm8996-mss-pil: 145 qcom,msm8998-mss-pil: 146 must be "cx", "mx" 147 qcom,sdm845-mss-pil: 148 must be "cx", "mx", "mss", "load_state" 149 150- qcom,smem-states: 151 Usage: required 152 Value type: <phandle> 153 Definition: reference to the smem state for requesting the Hexagon to 154 shut down 155 156- qcom,smem-state-names: 157 Usage: required 158 Value type: <stringlist> 159 Definition: must be "stop" 160 161- qcom,halt-regs: 162 Usage: required 163 Value type: <prop-encoded-array> 164 Definition: a phandle reference to a syscon representing TCSR followed 165 by the three offsets within syscon for q6, modem and nc 166 halt registers. 167 168= SUBNODES: 169The Hexagon node must contain two subnodes, named "mba" and "mpss" representing 170the memory regions used by the Hexagon firmware. Each sub-node must contain: 171 172- memory-region: 173 Usage: required 174 Value type: <phandle> 175 Definition: reference to the reserved-memory for the region 176 177The Hexagon node may also have an subnode named either "smd-edge" or 178"glink-edge" that describes the communication edge, channels and devices 179related to the Hexagon. See ../soc/qcom/qcom,smd.txt and 180../soc/qcom/qcom,glink.txt for details on how to describe these. 181 182= EXAMPLE 183The following example describes the resources needed to boot control the 184Hexagon, as it is found on MSM8974 boards. 185 186 modem-rproc@fc880000 { 187 compatible = "qcom,q6v5-pil"; 188 reg = <0xfc880000 0x100>, 189 <0xfc820000 0x020>; 190 reg-names = "qdsp6", "rmb"; 191 192 interrupts-extended = <&intc 0 24 1>, 193 <&modem_smp2p_in 0 0>, 194 <&modem_smp2p_in 1 0>, 195 <&modem_smp2p_in 2 0>, 196 <&modem_smp2p_in 3 0>; 197 interrupt-names = "wdog", 198 "fatal", 199 "ready", 200 "handover", 201 "stop-ack"; 202 203 clocks = <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>, 204 <&gcc GCC_MSS_CFG_AHB_CLK>, 205 <&gcc GCC_BOOT_ROM_AHB_CLK>; 206 clock-names = "iface", "bus", "mem"; 207 208 qcom,halt-regs = <&tcsr_mutex_block 0x1180 0x1200 0x1280>; 209 210 resets = <&gcc GCC_MSS_RESTART>; 211 reset-names = "mss_restart"; 212 213 cx-supply = <&pm8841_s2>; 214 mss-supply = <&pm8841_s3>; 215 mx-supply = <&pm8841_s1>; 216 pll-supply = <&pm8941_l12>; 217 218 qcom,smem-states = <&modem_smp2p_out 0>; 219 qcom,smem-state-names = "stop"; 220 221 mba { 222 memory-region = <&mba_region>; 223 }; 224 225 mpss { 226 memory-region = <&mpss_region>; 227 }; 228 }; 229