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