1b97ee269SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2b97ee269SEmmanuel Vadot%YAML 1.2 3b97ee269SEmmanuel Vadot--- 4b97ee269SEmmanuel Vadot$id: http://devicetree.org/schemas/remoteproc/qcom,sc7180-mss-pil.yaml# 5b97ee269SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6b97ee269SEmmanuel Vadot 7b97ee269SEmmanuel Vadottitle: Qualcomm SC7180 MSS Peripheral Image Loader 8b97ee269SEmmanuel Vadot 9b97ee269SEmmanuel Vadotmaintainers: 10b97ee269SEmmanuel Vadot - Sibi Sankar <quic_sibis@quicinc.com> 11b97ee269SEmmanuel Vadot 12b97ee269SEmmanuel Vadotdescription: 13b97ee269SEmmanuel Vadot This document describes the hardware for a component that loads and boots firmware 14b97ee269SEmmanuel Vadot on the Qualcomm Technology Inc. SC7180 Modem Hexagon Core. 15b97ee269SEmmanuel Vadot 16b97ee269SEmmanuel Vadotproperties: 17b97ee269SEmmanuel Vadot compatible: 18b97ee269SEmmanuel Vadot enum: 19b97ee269SEmmanuel Vadot - qcom,sc7180-mss-pil 20b97ee269SEmmanuel Vadot 21b97ee269SEmmanuel Vadot reg: 22b97ee269SEmmanuel Vadot items: 23b97ee269SEmmanuel Vadot - description: MSS QDSP6 registers 24b97ee269SEmmanuel Vadot - description: RMB registers 25b97ee269SEmmanuel Vadot 26b97ee269SEmmanuel Vadot reg-names: 27b97ee269SEmmanuel Vadot items: 28b97ee269SEmmanuel Vadot - const: qdsp6 29b97ee269SEmmanuel Vadot - const: rmb 30b97ee269SEmmanuel Vadot 31b97ee269SEmmanuel Vadot iommus: 32b97ee269SEmmanuel Vadot items: 33b97ee269SEmmanuel Vadot - description: MSA Stream 1 34b97ee269SEmmanuel Vadot - description: MSA Stream 2 35b97ee269SEmmanuel Vadot 36b97ee269SEmmanuel Vadot interrupts: 37b97ee269SEmmanuel Vadot items: 38b97ee269SEmmanuel Vadot - description: Watchdog interrupt 39b97ee269SEmmanuel Vadot - description: Fatal interrupt 40b97ee269SEmmanuel Vadot - description: Ready interrupt 41b97ee269SEmmanuel Vadot - description: Handover interrupt 42b97ee269SEmmanuel Vadot - description: Stop acknowledge interrupt 43b97ee269SEmmanuel Vadot - description: Shutdown acknowledge interrupt 44b97ee269SEmmanuel Vadot 45b97ee269SEmmanuel Vadot interrupt-names: 46b97ee269SEmmanuel Vadot items: 47b97ee269SEmmanuel Vadot - const: wdog 48b97ee269SEmmanuel Vadot - const: fatal 49b97ee269SEmmanuel Vadot - const: ready 50b97ee269SEmmanuel Vadot - const: handover 51b97ee269SEmmanuel Vadot - const: stop-ack 52b97ee269SEmmanuel Vadot - const: shutdown-ack 53b97ee269SEmmanuel Vadot 54b97ee269SEmmanuel Vadot clocks: 55b97ee269SEmmanuel Vadot items: 56b97ee269SEmmanuel Vadot - description: GCC MSS IFACE clock 57b97ee269SEmmanuel Vadot - description: GCC MSS BUS clock 58b97ee269SEmmanuel Vadot - description: GCC MSS NAV clock 59b97ee269SEmmanuel Vadot - description: GCC MSS SNOC_AXI clock 60b97ee269SEmmanuel Vadot - description: GCC MSS MFAB_AXIS clock 61b97ee269SEmmanuel Vadot - description: RPMH XO clock 62b97ee269SEmmanuel Vadot 63b97ee269SEmmanuel Vadot clock-names: 64b97ee269SEmmanuel Vadot items: 65b97ee269SEmmanuel Vadot - const: iface 66b97ee269SEmmanuel Vadot - const: bus 67b97ee269SEmmanuel Vadot - const: nav 68b97ee269SEmmanuel Vadot - const: snoc_axi 69b97ee269SEmmanuel Vadot - const: mnoc_axi 70b97ee269SEmmanuel Vadot - const: xo 71b97ee269SEmmanuel Vadot 72b97ee269SEmmanuel Vadot power-domains: 73b97ee269SEmmanuel Vadot items: 74b97ee269SEmmanuel Vadot - description: CX power domain 75b97ee269SEmmanuel Vadot - description: MX power domain 76b97ee269SEmmanuel Vadot - description: MSS power domain 77b97ee269SEmmanuel Vadot 78b97ee269SEmmanuel Vadot power-domain-names: 79b97ee269SEmmanuel Vadot items: 80b97ee269SEmmanuel Vadot - const: cx 81b97ee269SEmmanuel Vadot - const: mx 82b97ee269SEmmanuel Vadot - const: mss 83b97ee269SEmmanuel Vadot 84b97ee269SEmmanuel Vadot resets: 85b97ee269SEmmanuel Vadot items: 86b97ee269SEmmanuel Vadot - description: AOSS restart 87b97ee269SEmmanuel Vadot - description: PDC reset 88b97ee269SEmmanuel Vadot 89b97ee269SEmmanuel Vadot reset-names: 90b97ee269SEmmanuel Vadot items: 91b97ee269SEmmanuel Vadot - const: mss_restart 92b97ee269SEmmanuel Vadot - const: pdc_reset 93b97ee269SEmmanuel Vadot 94b97ee269SEmmanuel Vadot memory-region: 95b97ee269SEmmanuel Vadot items: 96b97ee269SEmmanuel Vadot - description: MBA reserved region 97b97ee269SEmmanuel Vadot - description: modem reserved region 98*cb7aa33aSEmmanuel Vadot - description: metadata reserved region 99b97ee269SEmmanuel Vadot 100b97ee269SEmmanuel Vadot firmware-name: 101b97ee269SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/string-array 102b97ee269SEmmanuel Vadot items: 103b97ee269SEmmanuel Vadot - description: Name of MBA firmware 104b97ee269SEmmanuel Vadot - description: Name of modem firmware 105b97ee269SEmmanuel Vadot 106b97ee269SEmmanuel Vadot qcom,halt-regs: 107b97ee269SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle-array 108b97ee269SEmmanuel Vadot description: 109b97ee269SEmmanuel Vadot Halt registers are used to halt transactions of various sub-components 110b97ee269SEmmanuel Vadot within MSS. 111b97ee269SEmmanuel Vadot items: 112b97ee269SEmmanuel Vadot - items: 113b97ee269SEmmanuel Vadot - description: phandle to TCSR_MUTEX registers 114b97ee269SEmmanuel Vadot - description: offset to the Q6 halt register 115b97ee269SEmmanuel Vadot - description: offset to the modem halt register 116b97ee269SEmmanuel Vadot - description: offset to the nc halt register 117b97ee269SEmmanuel Vadot 118b97ee269SEmmanuel Vadot qcom,spare-regs: 119b97ee269SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle-array 120b97ee269SEmmanuel Vadot description: 121b97ee269SEmmanuel Vadot Spare registers are multipurpose registers used for errata 122b97ee269SEmmanuel Vadot handling. 123b97ee269SEmmanuel Vadot items: 124b97ee269SEmmanuel Vadot - items: 125b97ee269SEmmanuel Vadot - description: phandle to TCSR_MUTEX registers 126b97ee269SEmmanuel Vadot - description: offset to the conn_box_spare0 register 127b97ee269SEmmanuel Vadot 128b97ee269SEmmanuel Vadot qcom,qmp: 129b97ee269SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle 130b97ee269SEmmanuel Vadot description: Reference to the AOSS side-channel message RAM. 131b97ee269SEmmanuel Vadot 132b97ee269SEmmanuel Vadot qcom,smem-states: 133b97ee269SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle-array 134b97ee269SEmmanuel Vadot description: States used by the AP to signal the Hexagon core 135b97ee269SEmmanuel Vadot items: 136b97ee269SEmmanuel Vadot - description: Stop the modem 137b97ee269SEmmanuel Vadot 138b97ee269SEmmanuel Vadot qcom,smem-state-names: 139b97ee269SEmmanuel Vadot description: The names of the state bits used for SMP2P output 140b97ee269SEmmanuel Vadot const: stop 141b97ee269SEmmanuel Vadot 142b97ee269SEmmanuel Vadot glink-edge: 143b97ee269SEmmanuel Vadot $ref: qcom,glink-edge.yaml# 1447ef62cebSEmmanuel Vadot unevaluatedProperties: false 145b97ee269SEmmanuel Vadot description: 146b97ee269SEmmanuel Vadot Qualcomm G-Link subnode which represents communication edge, channels 147b97ee269SEmmanuel Vadot and devices related to the DSP. 148b97ee269SEmmanuel Vadot 149b97ee269SEmmanuel Vadot properties: 150b97ee269SEmmanuel Vadot interrupts: 151b97ee269SEmmanuel Vadot items: 152b97ee269SEmmanuel Vadot - description: IRQ from MSS to GLINK 153b97ee269SEmmanuel Vadot 154b97ee269SEmmanuel Vadot mboxes: 155b97ee269SEmmanuel Vadot items: 156b97ee269SEmmanuel Vadot - description: Mailbox for communication between APPS and MSS 157b97ee269SEmmanuel Vadot 158b97ee269SEmmanuel Vadot label: 159b97ee269SEmmanuel Vadot const: modem 160b97ee269SEmmanuel Vadot 161b97ee269SEmmanuel Vadot apr: false 162b97ee269SEmmanuel Vadot fastrpc: false 163b97ee269SEmmanuel Vadot 164b97ee269SEmmanuel Vadotrequired: 165b97ee269SEmmanuel Vadot - compatible 166b97ee269SEmmanuel Vadot - reg 167b97ee269SEmmanuel Vadot - reg-names 168b97ee269SEmmanuel Vadot - iommus 169b97ee269SEmmanuel Vadot - interrupts 170b97ee269SEmmanuel Vadot - interrupt-names 171b97ee269SEmmanuel Vadot - clocks 172b97ee269SEmmanuel Vadot - clock-names 173b97ee269SEmmanuel Vadot - power-domains 174b97ee269SEmmanuel Vadot - power-domain-names 175b97ee269SEmmanuel Vadot - resets 176b97ee269SEmmanuel Vadot - reset-names 177b97ee269SEmmanuel Vadot - qcom,halt-regs 178b97ee269SEmmanuel Vadot - qcom,spare-regs 179b97ee269SEmmanuel Vadot - memory-region 180b97ee269SEmmanuel Vadot - qcom,qmp 181b97ee269SEmmanuel Vadot - qcom,smem-states 182b97ee269SEmmanuel Vadot - qcom,smem-state-names 183b97ee269SEmmanuel Vadot - glink-edge 184b97ee269SEmmanuel Vadot 185b97ee269SEmmanuel VadotadditionalProperties: false 186b97ee269SEmmanuel Vadot 187b97ee269SEmmanuel Vadotexamples: 188b97ee269SEmmanuel Vadot - | 189b97ee269SEmmanuel Vadot #include <dt-bindings/clock/qcom,gcc-sc7180.h> 190b97ee269SEmmanuel Vadot #include <dt-bindings/clock/qcom,rpmh.h> 191b97ee269SEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 192b97ee269SEmmanuel Vadot #include <dt-bindings/power/qcom-rpmpd.h> 193b97ee269SEmmanuel Vadot #include <dt-bindings/reset/qcom,sdm845-aoss.h> 194b97ee269SEmmanuel Vadot #include <dt-bindings/reset/qcom,sdm845-pdc.h> 195b97ee269SEmmanuel Vadot 196b97ee269SEmmanuel Vadot remoteproc_mpss: remoteproc@4080000 { 197b97ee269SEmmanuel Vadot compatible = "qcom,sc7180-mss-pil"; 198b97ee269SEmmanuel Vadot reg = <0x04080000 0x10000>, <0x04180000 0x48>; 199b97ee269SEmmanuel Vadot reg-names = "qdsp6", "rmb"; 200b97ee269SEmmanuel Vadot 201b97ee269SEmmanuel Vadot iommus = <&apps_smmu 0x461 0x0>, <&apps_smmu 0x444 0x3>; 202b97ee269SEmmanuel Vadot 203b97ee269SEmmanuel Vadot interrupts-extended = <&intc GIC_SPI 264 IRQ_TYPE_EDGE_RISING>, 204b97ee269SEmmanuel Vadot <&modem_smp2p_in 0 IRQ_TYPE_EDGE_RISING>, 205b97ee269SEmmanuel Vadot <&modem_smp2p_in 1 IRQ_TYPE_EDGE_RISING>, 206b97ee269SEmmanuel Vadot <&modem_smp2p_in 2 IRQ_TYPE_EDGE_RISING>, 207b97ee269SEmmanuel Vadot <&modem_smp2p_in 3 IRQ_TYPE_EDGE_RISING>, 208b97ee269SEmmanuel Vadot <&modem_smp2p_in 7 IRQ_TYPE_EDGE_RISING>; 209b97ee269SEmmanuel Vadot 210b97ee269SEmmanuel Vadot interrupt-names = "wdog", "fatal", "ready", "handover", 211b97ee269SEmmanuel Vadot "stop-ack", "shutdown-ack"; 212b97ee269SEmmanuel Vadot 213b97ee269SEmmanuel Vadot clocks = <&gcc GCC_MSS_CFG_AHB_CLK>, 214b97ee269SEmmanuel Vadot <&gcc GCC_MSS_Q6_MEMNOC_AXI_CLK>, 215b97ee269SEmmanuel Vadot <&gcc GCC_MSS_NAV_AXI_CLK>, 216b97ee269SEmmanuel Vadot <&gcc GCC_MSS_SNOC_AXI_CLK>, 217b97ee269SEmmanuel Vadot <&gcc GCC_MSS_MFAB_AXIS_CLK>, 218b97ee269SEmmanuel Vadot <&rpmhcc RPMH_CXO_CLK>; 219b97ee269SEmmanuel Vadot clock-names = "iface", "bus", "nav", "snoc_axi", 220b97ee269SEmmanuel Vadot "mnoc_axi", "xo"; 221b97ee269SEmmanuel Vadot 222b97ee269SEmmanuel Vadot power-domains = <&rpmhpd SC7180_CX>, 223b97ee269SEmmanuel Vadot <&rpmhpd SC7180_MX>, 224b97ee269SEmmanuel Vadot <&rpmhpd SC7180_MSS>; 225b97ee269SEmmanuel Vadot power-domain-names = "cx", "mx", "mss"; 226b97ee269SEmmanuel Vadot 227*cb7aa33aSEmmanuel Vadot memory-region = <&mba_mem>, <&mpss_mem>, <&mdata_mem>; 228b97ee269SEmmanuel Vadot 229b97ee269SEmmanuel Vadot qcom,qmp = <&aoss_qmp>; 230b97ee269SEmmanuel Vadot 231b97ee269SEmmanuel Vadot qcom,smem-states = <&modem_smp2p_out 0>; 232b97ee269SEmmanuel Vadot qcom,smem-state-names = "stop"; 233b97ee269SEmmanuel Vadot 234b97ee269SEmmanuel Vadot resets = <&aoss_reset AOSS_CC_MSS_RESTART>, 235b97ee269SEmmanuel Vadot <&pdc_reset PDC_MODEM_SYNC_RESET>; 236b97ee269SEmmanuel Vadot reset-names = "mss_restart", "pdc_reset"; 237b97ee269SEmmanuel Vadot 238b97ee269SEmmanuel Vadot qcom,halt-regs = <&tcsr_mutex_regs 0x23000 0x25000 0x24000>; 239b97ee269SEmmanuel Vadot qcom,spare-regs = <&tcsr_regs 0xb3e4>; 240b97ee269SEmmanuel Vadot 241b97ee269SEmmanuel Vadot glink-edge { 242b97ee269SEmmanuel Vadot interrupts = <GIC_SPI 449 IRQ_TYPE_EDGE_RISING>; 243b97ee269SEmmanuel Vadot mboxes = <&apss_shared 12>; 244b97ee269SEmmanuel Vadot qcom,remote-pid = <1>; 245b97ee269SEmmanuel Vadot label = "modem"; 246b97ee269SEmmanuel Vadot }; 247b97ee269SEmmanuel Vadot }; 248