292 lines · yaml
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)2%YAML 1.23---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 boots14 firmware on the Qualcomm MSM8916 Modem Hexagon Core (and similar).15 16properties:17 compatible:18 oneOf:19 - enum:20 - qcom,msm8909-mss-pil21 - qcom,msm8916-mss-pil22 - qcom,msm8953-mss-pil23 - qcom,msm8974-mss-pil24 25 - const: qcom,q6v5-pil26 description: Deprecated, prefer using qcom,msm8916-mss-pil27 deprecated: true28 29 reg:30 items:31 - description: MSS QDSP6 registers32 - description: RMB registers33 34 reg-names:35 items:36 - const: qdsp637 - const: rmb38 39 interrupts:40 items:41 - description: Watchdog interrupt42 - description: Fatal interrupt43 - description: Ready interrupt44 - description: Handover interrupt45 - description: Stop acknowledge interrupt46 47 interrupt-names:48 items:49 - const: wdog50 - const: fatal51 - const: ready52 - const: handover53 - const: stop-ack54 55 clocks:56 items:57 - description: Configuration interface (AXI) clock58 - description: Configuration bus (AHB) clock59 - description: Boot ROM (AHB) clock60 - description: XO proxy clock (control handed over after startup)61 62 clock-names:63 items:64 - const: iface65 - const: bus66 - const: mem67 - const: xo68 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: 276 77 power-domain-names:78 items:79 - const: cx80 - const: mx81 - const: mss # only valid for qcom,msm8953-mss-pil82 minItems: 283 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 control93 94 reset-names:95 items:96 - const: mss_restart97 98 qcom,smem-states:99 $ref: /schemas/types.yaml#/definitions/phandle-array100 description: States used by the AP to signal the Hexagon core101 items:102 - description: Stop modem103 104 qcom,smem-state-names:105 description: Names of the states used by the AP to signal the Hexagon core106 items:107 - const: stop108 109 qcom,halt-regs:110 $ref: /schemas/types.yaml#/definitions/phandle-array111 description:112 Halt registers are used to halt transactions of various sub-components113 within MSS.114 items:115 - items:116 - description: phandle to TCSR syscon region117 - description: offset to the Q6 halt register118 - description: offset to the modem halt register119 - description: offset to the nc halt register120 121 memory-region:122 items:123 - description: MBA reserved region124 - description: MPSS reserved region125 126 firmware-name:127 $ref: /schemas/types.yaml#/definitions/string-array128 items:129 - description: Name of MBA firmware130 - description: Name of modem firmware131 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, channels141 and devices related to the DSP.142 properties:143 label:144 enum:145 - modem146 - hexagon147 unevaluatedProperties: false148 149 # Deprecated properties150 cx-supply:151 description: CX power domain regulator supply (prefer using power-domains)152 deprecated: true153 154 mx-supply:155 description: MX power domain regulator supply (prefer using power-domains)156 deprecated: true157 158 mba:159 type: object160 additionalProperties: false161 description:162 MBA reserved region (prefer using memory-region with two items)163 properties:164 memory-region: true165 required:166 - memory-region167 deprecated: true168 169 mpss:170 type: object171 additionalProperties: false172 description:173 MPSS reserved region (prefer using memory-region with two items)174 properties:175 memory-region: true176 required:177 - memory-region178 deprecated: true179 180required:181 - compatible182 - reg183 - reg-names184 - interrupts185 - interrupt-names186 - clocks187 - clock-names188 - pll-supply189 - resets190 - reset-names191 - qcom,halt-regs192 - qcom,smem-states193 - qcom,smem-state-names194 - smd-edge195 196allOf:197 - if:198 properties:199 compatible:200 const: qcom,msm8953-mss-pil201 then:202 properties:203 power-domains:204 minItems: 3205 power-domain-names:206 minItems: 3207 required:208 - power-domains209 - power-domain-names210 else:211 properties:212 power-domains:213 maxItems: 2214 power-domain-names:215 maxItems: 2216 217 - if:218 properties:219 compatible:220 const: qcom,msm8974-mss-pil221 then:222 required:223 - mss-supply224 else:225 properties:226 mss-supply: false227 228 # Fallbacks for deprecated properties229 - oneOf:230 - required:231 - memory-region232 - required:233 - mba234 - mpss235 - oneOf:236 - required:237 - power-domains238 - power-domain-names239 - required:240 - cx-supply241 - mx-supply242 243additionalProperties: false244 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