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,msm8996-mss-pil.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Qualcomm MSM8996 MSS Peripheral Image Loader (and similar) 8 9maintainers: 10 - Bjorn Andersson <andersson@kernel.org> 11 - Sibi Sankar <quic_sibis@quicinc.com> 12 13description: 14 MSS Peripheral Image Loader loads and boots firmware on the 15 Qualcomm Technology Inc. MSM8996 Modem Hexagon Core (and similar). 16 17properties: 18 compatible: 19 enum: 20 - qcom,msm8996-mss-pil 21 - qcom,msm8998-mss-pil 22 - qcom,sdm660-mss-pil 23 - qcom,sdm845-mss-pil 24 25 reg: 26 items: 27 - description: MSS QDSP6 registers 28 - description: RMB registers 29 30 reg-names: 31 items: 32 - const: qdsp6 33 - const: rmb 34 35 iommus: 36 items: 37 - description: MSA Stream 1 38 - description: MSA Stream 2 39 40 interrupts: 41 items: 42 - description: Watchdog interrupt 43 - description: Fatal interrupt 44 - description: Ready interrupt 45 - description: Handover interrupt 46 - description: Stop acknowledge interrupt 47 - description: Shutdown 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 - const: shutdown-ack 57 58 clocks: 59 minItems: 8 60 maxItems: 9 61 62 clock-names: 63 minItems: 8 64 maxItems: 9 65 66 power-domains: 67 items: 68 - description: CX power domain 69 - description: MX power domain 70 - description: MSS power domain (only valid for qcom,sdm845-mss-pil) 71 minItems: 2 72 73 power-domain-names: 74 items: 75 - const: cx 76 - const: mx 77 - const: mss # only valid for qcom,sdm845-mss-pil 78 minItems: 2 79 80 pll-supply: 81 description: PLL supply 82 83 resets: 84 items: 85 - description: AOSS restart 86 - description: PDC reset (only valid for qcom,sdm845-mss-pil) 87 minItems: 1 88 89 reset-names: 90 items: 91 - const: mss_restart 92 - const: pdc_reset # only valid for qcom,sdm845-mss-pil 93 minItems: 1 94 95 qcom,qmp: 96 $ref: /schemas/types.yaml#/definitions/phandle 97 description: Reference to the AOSS side-channel message RAM. 98 99 qcom,smem-states: 100 $ref: /schemas/types.yaml#/definitions/phandle-array 101 description: States used by the AP to signal the Hexagon core 102 items: 103 - description: Stop modem 104 105 qcom,smem-state-names: 106 description: Names of the states used by the AP to signal the Hexagon core 107 items: 108 - const: stop 109 110 qcom,halt-regs: 111 $ref: /schemas/types.yaml#/definitions/phandle-array 112 description: 113 Halt registers are used to halt transactions of various sub-components 114 within MSS. 115 items: 116 - items: 117 - description: phandle to TCSR syscon region 118 - description: offset to the Q6 halt register 119 - description: offset to the modem halt register 120 - description: offset to the nc halt register 121 122 memory-region: 123 items: 124 - description: MBA reserved region 125 - description: Modem reserved region 126 - description: Metadata reserved region 127 128 firmware-name: 129 $ref: /schemas/types.yaml#/definitions/string-array 130 items: 131 - description: Name of MBA firmware 132 - description: Name of modem firmware 133 134 smd-edge: 135 $ref: /schemas/remoteproc/qcom,smd-edge.yaml# 136 description: 137 Qualcomm Shared Memory subnode which represents communication edge, 138 channels and devices related to the Modem. 139 unevaluatedProperties: false 140 141 glink-edge: 142 $ref: /schemas/remoteproc/qcom,glink-edge.yaml# 143 description: 144 Qualcomm G-Link subnode which represents communication edge, channels 145 and devices related to the Modem. 146 unevaluatedProperties: false 147 148 # Deprecated properties 149 mba: 150 type: object 151 description: 152 MBA reserved region 153 154 properties: 155 memory-region: true 156 157 required: 158 - memory-region 159 160 additionalProperties: false 161 deprecated: true 162 163 mpss: 164 type: object 165 description: 166 MPSS reserved region 167 168 properties: 169 memory-region: true 170 171 required: 172 - memory-region 173 174 additionalProperties: false 175 deprecated: true 176 177 metadata: 178 type: object 179 description: 180 Metadata reserved region 181 182 properties: 183 memory-region: true 184 185 required: 186 - memory-region 187 188 additionalProperties: false 189 deprecated: true 190 191required: 192 - compatible 193 - reg 194 - reg-names 195 - interrupts 196 - interrupt-names 197 - clocks 198 - clock-names 199 - power-domains 200 - power-domain-names 201 - resets 202 - reset-names 203 - qcom,halt-regs 204 - qcom,smem-states 205 - qcom,smem-state-names 206 207allOf: 208 - if: 209 properties: 210 compatible: 211 const: qcom,msm8996-mss-pil 212 then: 213 properties: 214 clocks: 215 items: 216 - description: GCC MSS IFACE clock 217 - description: GCC MSS BUS clock 218 - description: GCC MSS MEM clock 219 - description: RPM XO clock 220 - description: GCC MSS GPLL0 clock 221 - description: GCC MSS SNOC_AXI clock 222 - description: GCC MSS MNOC_AXI clock 223 - description: RPM QDSS clock 224 clock-names: 225 items: 226 - const: iface 227 - const: bus 228 - const: mem 229 - const: xo 230 - const: gpll0_mss 231 - const: snoc_axi 232 - const: mnoc_axi 233 - const: qdss 234 required: 235 - pll-supply 236 - smd-edge 237 else: 238 properties: 239 pll-supply: false 240 smd-edge: false 241 242 - if: 243 properties: 244 compatible: 245 enum: 246 - qcom,msm8998-mss-pil 247 - qcom,sdm660-mss-pil 248 then: 249 properties: 250 clocks: 251 items: 252 - description: GCC MSS IFACE clock 253 - description: GCC MSS BUS clock 254 - description: GCC MSS MEM clock 255 - description: GCC MSS GPLL0 clock 256 - description: GCC MSS SNOC_AXI clock 257 - description: GCC MSS MNOC_AXI clock 258 - description: RPMH QDSS clock 259 - description: RPMH XO clock 260 clock-names: 261 items: 262 - const: iface 263 - const: bus 264 - const: mem 265 - const: gpll0_mss 266 - const: snoc_axi 267 - const: mnoc_axi 268 - const: qdss 269 - const: xo 270 required: 271 - glink-edge 272 273 - if: 274 properties: 275 compatible: 276 const: qcom,sdm845-mss-pil 277 then: 278 properties: 279 power-domains: 280 minItems: 3 281 power-domain-names: 282 minItems: 3 283 resets: 284 minItems: 2 285 reset-names: 286 minItems: 2 287 clocks: 288 items: 289 - description: GCC MSS IFACE clock 290 - description: GCC MSS BUS clock 291 - description: GCC MSS MEM clock 292 - description: GCC MSS GPLL0 clock 293 - description: GCC MSS SNOC_AXI clock 294 - description: GCC MSS MNOC_AXI clock 295 - description: GCC MSS PRNG clock 296 - description: RPMH XO clock 297 clock-names: 298 items: 299 - const: iface 300 - const: bus 301 - const: mem 302 - const: gpll0_mss 303 - const: snoc_axi 304 - const: mnoc_axi 305 - const: prng 306 - const: xo 307 required: 308 - qcom,qmp 309 - glink-edge 310 else: 311 properties: 312 iommus: false 313 power-domains: 314 maxItems: 2 315 power-domain-names: 316 maxItems: 2 317 resets: 318 maxItems: 1 319 reset-names: 320 maxItems: 1 321 qcom,qmp: false 322 323 # Fallbacks for deprecated properties 324 - oneOf: 325 - required: 326 - memory-region 327 - required: 328 - mba 329 - mpss 330 - metadata 331 332additionalProperties: false 333 334examples: 335 - | 336 #include <dt-bindings/clock/qcom,gcc-sdm845.h> 337 #include <dt-bindings/clock/qcom,rpmh.h> 338 #include <dt-bindings/interrupt-controller/arm-gic.h> 339 #include <dt-bindings/power/qcom-rpmpd.h> 340 #include <dt-bindings/reset/qcom,sdm845-aoss.h> 341 #include <dt-bindings/reset/qcom,sdm845-pdc.h> 342 343 remoteproc@4080000 { 344 compatible = "qcom,sdm845-mss-pil"; 345 reg = <0x04080000 0x408>, <0x04180000 0x48>; 346 reg-names = "qdsp6", "rmb"; 347 348 interrupts-extended = <&intc GIC_SPI 266 IRQ_TYPE_EDGE_RISING>, 349 <&modem_smp2p_in 0 IRQ_TYPE_EDGE_RISING>, 350 <&modem_smp2p_in 1 IRQ_TYPE_EDGE_RISING>, 351 <&modem_smp2p_in 2 IRQ_TYPE_EDGE_RISING>, 352 <&modem_smp2p_in 3 IRQ_TYPE_EDGE_RISING>, 353 <&modem_smp2p_in 7 IRQ_TYPE_EDGE_RISING>; 354 interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack", 355 "shutdown-ack"; 356 357 clocks = <&gcc GCC_MSS_CFG_AHB_CLK>, 358 <&gcc GCC_MSS_Q6_MEMNOC_AXI_CLK>, 359 <&gcc GCC_BOOT_ROM_AHB_CLK>, 360 <&gcc GCC_MSS_GPLL0_DIV_CLK_SRC>, 361 <&gcc GCC_MSS_SNOC_AXI_CLK>, 362 <&gcc GCC_MSS_MFAB_AXIS_CLK>, 363 <&gcc GCC_PRNG_AHB_CLK>, 364 <&rpmhcc RPMH_CXO_CLK>; 365 clock-names = "iface", "bus", "mem", "gpll0_mss", 366 "snoc_axi", "mnoc_axi", "prng", "xo"; 367 368 power-domains = <&rpmhpd SDM845_CX>, 369 <&rpmhpd SDM845_MX>, 370 <&rpmhpd SDM845_MSS>; 371 power-domain-names = "cx", "mx", "mss"; 372 373 memory-region = <&mba_mem>, <&mpss_mem>, <&mdata_mem>; 374 375 resets = <&aoss_reset AOSS_CC_MSS_RESTART>, 376 <&pdc_reset PDC_MODEM_SYNC_RESET>; 377 reset-names = "mss_restart", "pdc_reset"; 378 379 qcom,halt-regs = <&tcsr_regs_1 0x3000 0x5000 0x4000>; 380 381 qcom,qmp = <&aoss_qmp>; 382 383 qcom,smem-states = <&modem_smp2p_out 0>; 384 qcom,smem-state-names = "stop"; 385 386 glink-edge { 387 interrupts = <GIC_SPI 449 IRQ_TYPE_EDGE_RISING>; 388 label = "modem"; 389 qcom,remote-pid = <1>; 390 mboxes = <&apss_shared 12>; 391 }; 392 }; 393