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