1b9880532SStephan Gerhold# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2b9880532SStephan Gerhold%YAML 1.2 3b9880532SStephan Gerhold--- 4b9880532SStephan Gerhold$id: http://devicetree.org/schemas/remoteproc/qcom,msm8916-mss-pil.yaml# 5b9880532SStephan Gerhold$schema: http://devicetree.org/meta-schemas/core.yaml# 6b9880532SStephan Gerhold 7b9880532SStephan Gerholdtitle: Qualcomm MSM8916 MSS Peripheral Image Loader (and similar) 8b9880532SStephan Gerhold 9b9880532SStephan Gerholdmaintainers: 10b9880532SStephan Gerhold - Stephan Gerhold <stephan@gerhold.net> 11b9880532SStephan Gerhold 12b9880532SStephan Gerholddescription: 13b9880532SStephan Gerhold This document describes the hardware for a component that loads and boots 14b9880532SStephan Gerhold firmware on the Qualcomm MSM8916 Modem Hexagon Core (and similar). 15b9880532SStephan Gerhold 16b9880532SStephan Gerholdproperties: 17b9880532SStephan Gerhold compatible: 18b9880532SStephan Gerhold oneOf: 19b9880532SStephan Gerhold - enum: 20f8fb0b3dSStephan Gerhold - qcom,msm8909-mss-pil 21b9880532SStephan Gerhold - qcom,msm8916-mss-pil 2243baa1a2SStephan Gerhold - qcom,msm8953-mss-pil 23ac686cbcSStephan Gerhold - qcom,msm8974-mss-pil 24b9880532SStephan Gerhold 25b9880532SStephan Gerhold - const: qcom,q6v5-pil 26b9880532SStephan Gerhold description: Deprecated, prefer using qcom,msm8916-mss-pil 27b9880532SStephan Gerhold deprecated: true 28b9880532SStephan Gerhold 29b9880532SStephan Gerhold reg: 30b9880532SStephan Gerhold items: 31b9880532SStephan Gerhold - description: MSS QDSP6 registers 32b9880532SStephan Gerhold - description: RMB registers 33b9880532SStephan Gerhold 34b9880532SStephan Gerhold reg-names: 35b9880532SStephan Gerhold items: 36b9880532SStephan Gerhold - const: qdsp6 37b9880532SStephan Gerhold - const: rmb 38b9880532SStephan Gerhold 39b9880532SStephan Gerhold interrupts: 40b9880532SStephan Gerhold items: 41b9880532SStephan Gerhold - description: Watchdog interrupt 42b9880532SStephan Gerhold - description: Fatal interrupt 43b9880532SStephan Gerhold - description: Ready interrupt 44b9880532SStephan Gerhold - description: Handover interrupt 45b9880532SStephan Gerhold - description: Stop acknowledge interrupt 46b9880532SStephan Gerhold 47b9880532SStephan Gerhold interrupt-names: 48b9880532SStephan Gerhold items: 49b9880532SStephan Gerhold - const: wdog 50b9880532SStephan Gerhold - const: fatal 51b9880532SStephan Gerhold - const: ready 52b9880532SStephan Gerhold - const: handover 53b9880532SStephan Gerhold - const: stop-ack 54b9880532SStephan Gerhold 55b9880532SStephan Gerhold clocks: 56b9880532SStephan Gerhold items: 57b9880532SStephan Gerhold - description: Configuration interface (AXI) clock 58b9880532SStephan Gerhold - description: Configuration bus (AHB) clock 59b9880532SStephan Gerhold - description: Boot ROM (AHB) clock 60b9880532SStephan Gerhold - description: XO proxy clock (control handed over after startup) 61b9880532SStephan Gerhold 62b9880532SStephan Gerhold clock-names: 63b9880532SStephan Gerhold items: 64b9880532SStephan Gerhold - const: iface 65b9880532SStephan Gerhold - const: bus 66b9880532SStephan Gerhold - const: mem 67b9880532SStephan Gerhold - const: xo 68b9880532SStephan Gerhold 69b9880532SStephan Gerhold power-domains: 70b9880532SStephan Gerhold items: 71b9880532SStephan Gerhold - description: CX proxy power domain (control handed over after startup) 72b9880532SStephan Gerhold - description: MX proxy power domain (control handed over after startup) 7343baa1a2SStephan Gerhold - description: MSS proxy power domain (control handed over after startup) 7443baa1a2SStephan Gerhold (only valid for qcom,msm8953-mss-pil) 7543baa1a2SStephan Gerhold minItems: 2 76b9880532SStephan Gerhold 77b9880532SStephan Gerhold power-domain-names: 78b9880532SStephan Gerhold items: 79b9880532SStephan Gerhold - const: cx 80b9880532SStephan Gerhold - const: mx 8143baa1a2SStephan Gerhold - const: mss # only valid for qcom,msm8953-mss-pil 8243baa1a2SStephan Gerhold minItems: 2 83b9880532SStephan Gerhold 84b9880532SStephan Gerhold pll-supply: 85b9880532SStephan Gerhold description: PLL proxy supply (control handed over after startup) 86b9880532SStephan Gerhold 87ac686cbcSStephan Gerhold mss-supply: 88ac686cbcSStephan Gerhold description: MSS power domain supply (only valid for qcom,msm8974-mss-pil) 89ac686cbcSStephan Gerhold 90b9880532SStephan Gerhold resets: 91b9880532SStephan Gerhold items: 92b9880532SStephan Gerhold - description: MSS restart control 93b9880532SStephan Gerhold 94b9880532SStephan Gerhold reset-names: 95b9880532SStephan Gerhold items: 96b9880532SStephan Gerhold - const: mss_restart 97b9880532SStephan Gerhold 98b9880532SStephan Gerhold qcom,smem-states: 99b9880532SStephan Gerhold $ref: /schemas/types.yaml#/definitions/phandle-array 100b9880532SStephan Gerhold description: States used by the AP to signal the Hexagon core 101b9880532SStephan Gerhold items: 102b9880532SStephan Gerhold - description: Stop modem 103b9880532SStephan Gerhold 104b9880532SStephan Gerhold qcom,smem-state-names: 105b9880532SStephan Gerhold description: Names of the states used by the AP to signal the Hexagon core 106b9880532SStephan Gerhold items: 107b9880532SStephan Gerhold - const: stop 108b9880532SStephan Gerhold 109b9880532SStephan Gerhold qcom,halt-regs: 110b9880532SStephan Gerhold $ref: /schemas/types.yaml#/definitions/phandle-array 111b9880532SStephan Gerhold description: 112b9880532SStephan Gerhold Halt registers are used to halt transactions of various sub-components 113b9880532SStephan Gerhold within MSS. 114b9880532SStephan Gerhold items: 115b9880532SStephan Gerhold - items: 116b9880532SStephan Gerhold - description: phandle to TCSR syscon region 117b9880532SStephan Gerhold - description: offset to the Q6 halt register 118b9880532SStephan Gerhold - description: offset to the modem halt register 119b9880532SStephan Gerhold - description: offset to the nc halt register 120b9880532SStephan Gerhold 121b9880532SStephan Gerhold memory-region: 122b9880532SStephan Gerhold items: 123b9880532SStephan Gerhold - description: MBA reserved region 124b9880532SStephan Gerhold - description: MPSS reserved region 125b9880532SStephan Gerhold 126b9880532SStephan Gerhold firmware-name: 127b9880532SStephan Gerhold $ref: /schemas/types.yaml#/definitions/string-array 128b9880532SStephan Gerhold items: 129b9880532SStephan Gerhold - description: Name of MBA firmware 130b9880532SStephan Gerhold - description: Name of modem firmware 131b9880532SStephan Gerhold 132b9880532SStephan Gerhold bam-dmux: 133b9880532SStephan Gerhold $ref: /schemas/net/qcom,bam-dmux.yaml# 134b9880532SStephan Gerhold description: 135b9880532SStephan Gerhold Qualcomm BAM Data Multiplexer (provides network interface to the modem) 136b9880532SStephan Gerhold 137b9880532SStephan Gerhold smd-edge: 138b9880532SStephan Gerhold $ref: qcom,smd-edge.yaml# 139b9880532SStephan Gerhold description: 140b9880532SStephan Gerhold Qualcomm SMD subnode which represents communication edge, channels 141b9880532SStephan Gerhold and devices related to the DSP. 142b9880532SStephan Gerhold properties: 143b9880532SStephan Gerhold label: 144b9880532SStephan Gerhold enum: 145b9880532SStephan Gerhold - modem 146b9880532SStephan Gerhold - hexagon 147b9880532SStephan Gerhold unevaluatedProperties: false 148b9880532SStephan Gerhold 149b9880532SStephan Gerhold # Deprecated properties 150b9880532SStephan Gerhold cx-supply: 151b9880532SStephan Gerhold description: CX power domain regulator supply (prefer using power-domains) 152b9880532SStephan Gerhold deprecated: true 153b9880532SStephan Gerhold 154b9880532SStephan Gerhold mx-supply: 155b9880532SStephan Gerhold description: MX power domain regulator supply (prefer using power-domains) 156b9880532SStephan Gerhold deprecated: true 157b9880532SStephan Gerhold 158b9880532SStephan Gerhold mba: 159b9880532SStephan Gerhold type: object 160*e62fc182SRob Herring additionalProperties: false 161b9880532SStephan Gerhold description: 162b9880532SStephan Gerhold MBA reserved region (prefer using memory-region with two items) 163b9880532SStephan Gerhold properties: 164b9880532SStephan Gerhold memory-region: true 165b9880532SStephan Gerhold required: 166b9880532SStephan Gerhold - memory-region 167b9880532SStephan Gerhold deprecated: true 168b9880532SStephan Gerhold 169b9880532SStephan Gerhold mpss: 170b9880532SStephan Gerhold type: object 171*e62fc182SRob Herring additionalProperties: false 172b9880532SStephan Gerhold description: 173b9880532SStephan Gerhold MPSS reserved region (prefer using memory-region with two items) 174b9880532SStephan Gerhold properties: 175b9880532SStephan Gerhold memory-region: true 176b9880532SStephan Gerhold required: 177b9880532SStephan Gerhold - memory-region 178b9880532SStephan Gerhold deprecated: true 179b9880532SStephan Gerhold 180b9880532SStephan Gerholdrequired: 181b9880532SStephan Gerhold - compatible 182b9880532SStephan Gerhold - reg 183b9880532SStephan Gerhold - reg-names 184b9880532SStephan Gerhold - interrupts 185b9880532SStephan Gerhold - interrupt-names 186b9880532SStephan Gerhold - clocks 187b9880532SStephan Gerhold - clock-names 188b9880532SStephan Gerhold - pll-supply 189b9880532SStephan Gerhold - resets 190b9880532SStephan Gerhold - reset-names 191b9880532SStephan Gerhold - qcom,halt-regs 192b9880532SStephan Gerhold - qcom,smem-states 193b9880532SStephan Gerhold - qcom,smem-state-names 194b9880532SStephan Gerhold - smd-edge 195b9880532SStephan Gerhold 196b9880532SStephan GerholdallOf: 197ac686cbcSStephan Gerhold - if: 198ac686cbcSStephan Gerhold properties: 199ac686cbcSStephan Gerhold compatible: 20043baa1a2SStephan Gerhold const: qcom,msm8953-mss-pil 20143baa1a2SStephan Gerhold then: 20243baa1a2SStephan Gerhold properties: 20343baa1a2SStephan Gerhold power-domains: 20443baa1a2SStephan Gerhold minItems: 3 20543baa1a2SStephan Gerhold power-domain-names: 20643baa1a2SStephan Gerhold minItems: 3 20743baa1a2SStephan Gerhold required: 20843baa1a2SStephan Gerhold - power-domains 20943baa1a2SStephan Gerhold - power-domain-names 21043baa1a2SStephan Gerhold else: 21143baa1a2SStephan Gerhold properties: 21243baa1a2SStephan Gerhold power-domains: 21343baa1a2SStephan Gerhold maxItems: 2 21443baa1a2SStephan Gerhold power-domain-names: 21543baa1a2SStephan Gerhold maxItems: 2 21643baa1a2SStephan Gerhold 21743baa1a2SStephan Gerhold - if: 21843baa1a2SStephan Gerhold properties: 21943baa1a2SStephan Gerhold compatible: 220ac686cbcSStephan Gerhold const: qcom,msm8974-mss-pil 221ac686cbcSStephan Gerhold then: 222ac686cbcSStephan Gerhold required: 223ac686cbcSStephan Gerhold - mss-supply 224ac686cbcSStephan Gerhold else: 225ac686cbcSStephan Gerhold properties: 226ac686cbcSStephan Gerhold mss-supply: false 227ac686cbcSStephan Gerhold 228b9880532SStephan Gerhold # Fallbacks for deprecated properties 229b9880532SStephan Gerhold - oneOf: 230b9880532SStephan Gerhold - required: 231b9880532SStephan Gerhold - memory-region 232b9880532SStephan Gerhold - required: 233b9880532SStephan Gerhold - mba 234b9880532SStephan Gerhold - mpss 235b9880532SStephan Gerhold - oneOf: 236b9880532SStephan Gerhold - required: 237b9880532SStephan Gerhold - power-domains 238b9880532SStephan Gerhold - power-domain-names 239b9880532SStephan Gerhold - required: 240b9880532SStephan Gerhold - cx-supply 241b9880532SStephan Gerhold - mx-supply 242b9880532SStephan Gerhold 243b9880532SStephan GerholdadditionalProperties: false 244b9880532SStephan Gerhold 245b9880532SStephan Gerholdexamples: 246b9880532SStephan Gerhold - | 247b9880532SStephan Gerhold #include <dt-bindings/clock/qcom,gcc-msm8916.h> 248b9880532SStephan Gerhold #include <dt-bindings/interrupt-controller/arm-gic.h> 249b9880532SStephan Gerhold #include <dt-bindings/power/qcom-rpmpd.h> 250b9880532SStephan Gerhold 251b9880532SStephan Gerhold remoteproc_mpss: remoteproc@4080000 { 252b9880532SStephan Gerhold compatible = "qcom,msm8916-mss-pil"; 253b9880532SStephan Gerhold reg = <0x04080000 0x100>, <0x04020000 0x40>; 254b9880532SStephan Gerhold reg-names = "qdsp6", "rmb"; 255b9880532SStephan Gerhold 256b9880532SStephan Gerhold interrupts-extended = <&intc GIC_SPI 24 IRQ_TYPE_EDGE_RISING>, 257b9880532SStephan Gerhold <&hexagon_smp2p_in 0 IRQ_TYPE_EDGE_RISING>, 258b9880532SStephan Gerhold <&hexagon_smp2p_in 1 IRQ_TYPE_EDGE_RISING>, 259b9880532SStephan Gerhold <&hexagon_smp2p_in 2 IRQ_TYPE_EDGE_RISING>, 260b9880532SStephan Gerhold <&hexagon_smp2p_in 3 IRQ_TYPE_EDGE_RISING>; 261b9880532SStephan Gerhold interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack"; 262b9880532SStephan Gerhold 263b9880532SStephan Gerhold qcom,smem-states = <&hexagon_smp2p_out 0>; 264b9880532SStephan Gerhold qcom,smem-state-names = "stop"; 265b9880532SStephan Gerhold qcom,halt-regs = <&tcsr 0x18000 0x19000 0x1a000>; 266b9880532SStephan Gerhold 267b9880532SStephan Gerhold clocks = <&gcc GCC_MSS_CFG_AHB_CLK>, 268b9880532SStephan Gerhold <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>, 269b9880532SStephan Gerhold <&gcc GCC_BOOT_ROM_AHB_CLK>, 270b9880532SStephan Gerhold <&xo_board>; 271b9880532SStephan Gerhold clock-names = "iface", "bus", "mem", "xo"; 272b9880532SStephan Gerhold 273b9880532SStephan Gerhold power-domains = <&rpmpd MSM8916_VDDCX>, <&rpmpd MSM8916_VDDMX>; 274b9880532SStephan Gerhold power-domain-names = "cx", "mx"; 275b9880532SStephan Gerhold pll-supply = <&pm8916_l7>; 276b9880532SStephan Gerhold 277b9880532SStephan Gerhold resets = <&scm 0>; 278b9880532SStephan Gerhold reset-names = "mss_restart"; 279b9880532SStephan Gerhold 280b9880532SStephan Gerhold memory-region = <&mba_mem>, <&mpss_mem>; 281b9880532SStephan Gerhold 282b9880532SStephan Gerhold smd-edge { 283b9880532SStephan Gerhold interrupts = <GIC_SPI 25 IRQ_TYPE_EDGE_RISING>; 284b9880532SStephan Gerhold 285b9880532SStephan Gerhold qcom,smd-edge = <0>; 286b9880532SStephan Gerhold qcom,ipc = <&apcs 8 12>; 287b9880532SStephan Gerhold qcom,remote-pid = <1>; 288b9880532SStephan Gerhold 289b9880532SStephan Gerhold label = "hexagon"; 290b9880532SStephan Gerhold }; 291b9880532SStephan Gerhold }; 292