1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/remoteproc/qcom,msm8916-mss-pil.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Qualcomm MSM8916 MSS Peripheral Image Loader (and similar) 8 9maintainers: 10 - Stephan Gerhold <stephan@gerhold.net> 11 12description: 13 This document describes the hardware for a component that loads and boots 14 firmware on the Qualcomm MSM8916 Modem Hexagon Core (and similar). 15 16properties: 17 compatible: 18 oneOf: 19 - enum: 20 - qcom,msm8226-mss-pil 21 - qcom,msm8909-mss-pil 22 - qcom,msm8916-mss-pil 23 - qcom,msm8926-mss-pil 24 - qcom,msm8953-mss-pil 25 - qcom,msm8974-mss-pil 26 27 - const: qcom,q6v5-pil 28 description: Deprecated, prefer using qcom,msm8916-mss-pil 29 deprecated: true 30 31 reg: 32 items: 33 - description: MSS QDSP6 registers 34 - description: RMB registers 35 36 reg-names: 37 items: 38 - const: qdsp6 39 - const: rmb 40 41 interrupts: 42 items: 43 - description: Watchdog interrupt 44 - description: Fatal interrupt 45 - description: Ready interrupt 46 - description: Handover interrupt 47 - description: Stop acknowledge interrupt 48 49 interrupt-names: 50 items: 51 - const: wdog 52 - const: fatal 53 - const: ready 54 - const: handover 55 - const: stop-ack 56 57 clocks: 58 items: 59 - description: Configuration interface (AXI) clock 60 - description: Configuration bus (AHB) clock 61 - description: Boot ROM (AHB) clock 62 - description: XO proxy clock (control handed over after startup) 63 64 clock-names: 65 items: 66 - const: iface 67 - const: bus 68 - const: mem 69 - const: xo 70 71 power-domains: 72 items: 73 - description: CX proxy power domain (control handed over after startup) 74 - description: MX proxy power domain (control handed over after startup) 75 (not valid for qcom,msm8226-mss-pil, qcom,msm8926-mss-pil 76 and qcom,msm8974-mss-pil) 77 - description: MSS proxy power domain (control handed over after startup) 78 (only valid for qcom,msm8953-mss-pil) 79 minItems: 1 80 81 power-domain-names: 82 items: 83 - const: cx 84 - const: mx # not valid for qcom,msm8226-mss-pil, qcom-msm8926-mss-pil and qcom,msm8974-mss-pil 85 - const: mss # only valid for qcom,msm8953-mss-pil 86 minItems: 1 87 88 pll-supply: 89 description: PLL proxy supply (control handed over after startup) 90 91 mss-supply: 92 description: MSS power domain supply (only valid for qcom,msm8974-mss-pil) 93 94 resets: 95 items: 96 - description: MSS restart control 97 98 reset-names: 99 items: 100 - const: mss_restart 101 102 qcom,smem-states: 103 $ref: /schemas/types.yaml#/definitions/phandle-array 104 description: States used by the AP to signal the Hexagon core 105 items: 106 - description: Stop modem 107 108 qcom,smem-state-names: 109 description: Names of the states used by the AP to signal the Hexagon core 110 items: 111 - const: stop 112 113 qcom,ext-bhs-reg: 114 $ref: /schemas/types.yaml#/definitions/phandle-array 115 description: External power block headswitch (BHS) register 116 (only valid for qcom,msm8226-mss-pil) 117 items: 118 - items: 119 - description: phandle to external BHS syscon region 120 - description: offset to the external BHS register 121 122 qcom,halt-regs: 123 $ref: /schemas/types.yaml#/definitions/phandle-array 124 description: 125 Halt registers are used to halt transactions of various sub-components 126 within MSS. 127 items: 128 - items: 129 - description: phandle to TCSR syscon region 130 - description: offset to the Q6 halt register 131 - description: offset to the modem halt register 132 - description: offset to the nc halt register 133 134 memory-region: 135 items: 136 - description: MBA reserved region 137 - description: MPSS reserved region 138 139 firmware-name: 140 $ref: /schemas/types.yaml#/definitions/string-array 141 items: 142 - description: Name of MBA firmware 143 - description: Name of modem firmware 144 145 bam-dmux: 146 $ref: /schemas/net/qcom,bam-dmux.yaml# 147 description: 148 Qualcomm BAM Data Multiplexer (provides network interface to the modem) 149 150 smd-edge: 151 $ref: qcom,smd-edge.yaml# 152 description: 153 Qualcomm SMD subnode which represents communication edge, channels 154 and devices related to the DSP. 155 properties: 156 label: 157 enum: 158 - modem 159 - hexagon 160 unevaluatedProperties: false 161 162 # Deprecated properties 163 cx-supply: 164 description: CX power domain regulator supply (prefer using power-domains) 165 deprecated: true 166 167 mx-supply: 168 description: MX power domain regulator supply (prefer using power-domains) 169 deprecated: true 170 171 mba: 172 type: object 173 additionalProperties: false 174 description: 175 MBA reserved region (prefer using memory-region with two items) 176 properties: 177 memory-region: true 178 required: 179 - memory-region 180 deprecated: true 181 182 mpss: 183 type: object 184 additionalProperties: false 185 description: 186 MPSS reserved region (prefer using memory-region with two items) 187 properties: 188 memory-region: true 189 required: 190 - memory-region 191 deprecated: true 192 193required: 194 - compatible 195 - reg 196 - reg-names 197 - interrupts 198 - interrupt-names 199 - clocks 200 - clock-names 201 - pll-supply 202 - resets 203 - reset-names 204 - qcom,halt-regs 205 - qcom,smem-states 206 - qcom,smem-state-names 207 - smd-edge 208 209allOf: 210 - if: 211 properties: 212 compatible: 213 const: qcom,msm8953-mss-pil 214 then: 215 properties: 216 power-domains: 217 minItems: 3 218 power-domain-names: 219 minItems: 3 220 required: 221 - power-domains 222 - power-domain-names 223 224 - if: 225 properties: 226 compatible: 227 contains: 228 enum: 229 - qcom,msm8909-mss-pil 230 - qcom,msm8916-mss-pil 231 then: 232 properties: 233 power-domains: 234 minItems: 2 235 maxItems: 2 236 power-domain-names: 237 minItems: 2 238 maxItems: 2 239 240 - if: 241 properties: 242 compatible: 243 contains: 244 enum: 245 - qcom,msm8226-mss-pil 246 - qcom,msm8926-mss-pil 247 - qcom,msm8974-mss-pil 248 then: 249 properties: 250 power-domains: 251 maxItems: 1 252 power-domain-names: 253 maxItems: 1 254 required: 255 - mx-supply 256 257 - if: 258 properties: 259 compatible: 260 const: qcom,msm8226-mss-pil 261 then: 262 required: 263 - qcom,ext-bhs-reg 264 else: 265 properties: 266 qcom,ext-bhs-reg: false 267 268 - if: 269 properties: 270 compatible: 271 contains: 272 enum: 273 - qcom,msm8926-mss-pil 274 - qcom,msm8974-mss-pil 275 then: 276 required: 277 - mss-supply 278 else: 279 properties: 280 mss-supply: false 281 282 # Fallbacks for deprecated properties 283 - oneOf: 284 - required: 285 - memory-region 286 - required: 287 - mba 288 - mpss 289 - oneOf: 290 - required: 291 - power-domains 292 - power-domain-names 293 - required: 294 - cx-supply 295 - mx-supply 296 297additionalProperties: false 298 299examples: 300 - | 301 #include <dt-bindings/clock/qcom,gcc-msm8916.h> 302 #include <dt-bindings/interrupt-controller/arm-gic.h> 303 #include <dt-bindings/power/qcom-rpmpd.h> 304 305 remoteproc_mpss: remoteproc@4080000 { 306 compatible = "qcom,msm8916-mss-pil"; 307 reg = <0x04080000 0x100>, <0x04020000 0x40>; 308 reg-names = "qdsp6", "rmb"; 309 310 interrupts-extended = <&intc GIC_SPI 24 IRQ_TYPE_EDGE_RISING>, 311 <&hexagon_smp2p_in 0 IRQ_TYPE_EDGE_RISING>, 312 <&hexagon_smp2p_in 1 IRQ_TYPE_EDGE_RISING>, 313 <&hexagon_smp2p_in 2 IRQ_TYPE_EDGE_RISING>, 314 <&hexagon_smp2p_in 3 IRQ_TYPE_EDGE_RISING>; 315 interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack"; 316 317 qcom,smem-states = <&hexagon_smp2p_out 0>; 318 qcom,smem-state-names = "stop"; 319 qcom,halt-regs = <&tcsr 0x18000 0x19000 0x1a000>; 320 321 clocks = <&gcc GCC_MSS_CFG_AHB_CLK>, 322 <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>, 323 <&gcc GCC_BOOT_ROM_AHB_CLK>, 324 <&xo_board>; 325 clock-names = "iface", "bus", "mem", "xo"; 326 327 power-domains = <&rpmpd MSM8916_VDDCX>, <&rpmpd MSM8916_VDDMX>; 328 power-domain-names = "cx", "mx"; 329 pll-supply = <&pm8916_l7>; 330 331 resets = <&scm 0>; 332 reset-names = "mss_restart"; 333 334 memory-region = <&mba_mem>, <&mpss_mem>; 335 336 smd-edge { 337 interrupts = <GIC_SPI 25 IRQ_TYPE_EDGE_RISING>; 338 339 qcom,smd-edge = <0>; 340 qcom,ipc = <&apcs 8 12>; 341 qcom,remote-pid = <1>; 342 343 label = "hexagon"; 344 }; 345 }; 346