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