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