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