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