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,sc7280-mss-pil.yaml# 5b97ee269SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6b97ee269SEmmanuel Vadot 7b97ee269SEmmanuel Vadottitle: Qualcomm SC7280 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. SC7280 Modem Hexagon Core. 15b97ee269SEmmanuel Vadot 16b97ee269SEmmanuel Vadotproperties: 17b97ee269SEmmanuel Vadot compatible: 18b97ee269SEmmanuel Vadot enum: 19b97ee269SEmmanuel Vadot - qcom,sc7280-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 interconnects: 37b97ee269SEmmanuel Vadot items: 38b97ee269SEmmanuel Vadot - description: Path leading to system memory 39b97ee269SEmmanuel Vadot 40b97ee269SEmmanuel Vadot interrupts: 41b97ee269SEmmanuel Vadot items: 42b97ee269SEmmanuel Vadot - description: Watchdog interrupt 43b97ee269SEmmanuel Vadot - description: Fatal interrupt 44b97ee269SEmmanuel Vadot - description: Ready interrupt 45b97ee269SEmmanuel Vadot - description: Handover interrupt 46b97ee269SEmmanuel Vadot - description: Stop acknowledge interrupt 47b97ee269SEmmanuel Vadot - description: Shutdown acknowledge interrupt 48b97ee269SEmmanuel Vadot 49b97ee269SEmmanuel Vadot interrupt-names: 50b97ee269SEmmanuel Vadot items: 51b97ee269SEmmanuel Vadot - const: wdog 52b97ee269SEmmanuel Vadot - const: fatal 53b97ee269SEmmanuel Vadot - const: ready 54b97ee269SEmmanuel Vadot - const: handover 55b97ee269SEmmanuel Vadot - const: stop-ack 56b97ee269SEmmanuel Vadot - const: shutdown-ack 57b97ee269SEmmanuel Vadot 58b97ee269SEmmanuel Vadot clocks: 59b97ee269SEmmanuel Vadot items: 60b97ee269SEmmanuel Vadot - description: GCC MSS IFACE clock 61b97ee269SEmmanuel Vadot - description: GCC MSS OFFLINE clock 62b97ee269SEmmanuel Vadot - description: GCC MSS SNOC_AXI clock 63b97ee269SEmmanuel Vadot - description: RPMH PKA clock 64b97ee269SEmmanuel Vadot - description: RPMH XO clock 65b97ee269SEmmanuel Vadot 66b97ee269SEmmanuel Vadot clock-names: 67b97ee269SEmmanuel Vadot items: 68b97ee269SEmmanuel Vadot - const: iface 69b97ee269SEmmanuel Vadot - const: offline 70b97ee269SEmmanuel Vadot - const: snoc_axi 71b97ee269SEmmanuel Vadot - const: pka 72b97ee269SEmmanuel Vadot - const: xo 73b97ee269SEmmanuel Vadot 74b97ee269SEmmanuel Vadot power-domains: 75b97ee269SEmmanuel Vadot items: 76b97ee269SEmmanuel Vadot - description: CX power domain 77b97ee269SEmmanuel Vadot - description: MSS power domain 78b97ee269SEmmanuel Vadot 79b97ee269SEmmanuel Vadot power-domain-names: 80b97ee269SEmmanuel Vadot items: 81b97ee269SEmmanuel Vadot - const: cx 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 - description: offset to the vq6 halt register 118b97ee269SEmmanuel Vadot 119b97ee269SEmmanuel Vadot qcom,ext-regs: 120b97ee269SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle-array 121b97ee269SEmmanuel Vadot description: EXT registers are used for various power related functionality 122b97ee269SEmmanuel Vadot items: 123b97ee269SEmmanuel Vadot - items: 124b97ee269SEmmanuel Vadot - description: phandle to TCSR_REG registers 125b97ee269SEmmanuel Vadot - description: offset to the force_clk_en register 126b97ee269SEmmanuel Vadot - description: offset to the rscc_disable register 127b97ee269SEmmanuel Vadot - items: 128b97ee269SEmmanuel Vadot - description: phandle to TCSR_MUTEX registers 129b97ee269SEmmanuel Vadot - description: offset to the axim1_clk_off register 130b97ee269SEmmanuel Vadot - description: offset to the crypto_clk_off register 131b97ee269SEmmanuel Vadot 132b97ee269SEmmanuel Vadot qcom,qaccept-regs: 133b97ee269SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle-array 134b97ee269SEmmanuel Vadot description: QACCEPT registers are used to bring up/down Q-channels 135b97ee269SEmmanuel Vadot items: 136b97ee269SEmmanuel Vadot - items: 137b97ee269SEmmanuel Vadot - description: phandle to TCSR_MUTEX registers 138b97ee269SEmmanuel Vadot - description: offset to the mdm qaccept register 139b97ee269SEmmanuel Vadot - description: offset to the cx qaccept register 140b97ee269SEmmanuel Vadot - description: offset to the axi qaccept register 141b97ee269SEmmanuel Vadot 142b97ee269SEmmanuel Vadot qcom,qmp: 143b97ee269SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle 144b97ee269SEmmanuel Vadot description: Reference to the AOSS side-channel message RAM. 145b97ee269SEmmanuel Vadot 146b97ee269SEmmanuel Vadot qcom,smem-states: 147b97ee269SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle-array 148b97ee269SEmmanuel Vadot description: States used by the AP to signal the Hexagon core 149b97ee269SEmmanuel Vadot items: 150b97ee269SEmmanuel Vadot - description: Stop the modem 151b97ee269SEmmanuel Vadot 152b97ee269SEmmanuel Vadot qcom,smem-state-names: 153b97ee269SEmmanuel Vadot description: The names of the state bits used for SMP2P output 154b97ee269SEmmanuel Vadot const: stop 155b97ee269SEmmanuel Vadot 156b97ee269SEmmanuel Vadot glink-edge: 157b97ee269SEmmanuel Vadot $ref: qcom,glink-edge.yaml# 1587ef62cebSEmmanuel Vadot unevaluatedProperties: false 159b97ee269SEmmanuel Vadot description: 160b97ee269SEmmanuel Vadot Qualcomm G-Link subnode which represents communication edge, channels 161b97ee269SEmmanuel Vadot and devices related to the DSP. 162b97ee269SEmmanuel Vadot 163b97ee269SEmmanuel Vadot properties: 164b97ee269SEmmanuel Vadot interrupts: 165b97ee269SEmmanuel Vadot items: 166b97ee269SEmmanuel Vadot - description: IRQ from MSS to GLINK 167b97ee269SEmmanuel Vadot 168b97ee269SEmmanuel Vadot mboxes: 169b97ee269SEmmanuel Vadot items: 170b97ee269SEmmanuel Vadot - description: Mailbox for communication between APPS and MSS 171b97ee269SEmmanuel Vadot 172b97ee269SEmmanuel Vadot label: 173b97ee269SEmmanuel Vadot const: modem 174b97ee269SEmmanuel Vadot 175b97ee269SEmmanuel Vadot apr: false 176b97ee269SEmmanuel Vadot fastrpc: false 177b97ee269SEmmanuel Vadot 178b97ee269SEmmanuel Vadotrequired: 179b97ee269SEmmanuel Vadot - compatible 180b97ee269SEmmanuel Vadot - reg 181b97ee269SEmmanuel Vadot - reg-names 182b97ee269SEmmanuel Vadot - iommus 183b97ee269SEmmanuel Vadot - interconnects 184b97ee269SEmmanuel Vadot - interrupts 185b97ee269SEmmanuel Vadot - interrupt-names 186b97ee269SEmmanuel Vadot - clocks 187b97ee269SEmmanuel Vadot - clock-names 188b97ee269SEmmanuel Vadot - power-domains 189b97ee269SEmmanuel Vadot - power-domain-names 190b97ee269SEmmanuel Vadot - resets 191b97ee269SEmmanuel Vadot - reset-names 192b97ee269SEmmanuel Vadot - qcom,halt-regs 193b97ee269SEmmanuel Vadot - qcom,ext-regs 194b97ee269SEmmanuel Vadot - qcom,qaccept-regs 195b97ee269SEmmanuel Vadot - memory-region 196b97ee269SEmmanuel Vadot - qcom,qmp 197b97ee269SEmmanuel Vadot - qcom,smem-states 198b97ee269SEmmanuel Vadot - qcom,smem-state-names 199b97ee269SEmmanuel Vadot - glink-edge 200b97ee269SEmmanuel Vadot 201b97ee269SEmmanuel VadotadditionalProperties: false 202b97ee269SEmmanuel Vadot 203b97ee269SEmmanuel Vadotexamples: 204b97ee269SEmmanuel Vadot - | 205b97ee269SEmmanuel Vadot #include <dt-bindings/clock/qcom,gcc-sc7280.h> 206b97ee269SEmmanuel Vadot #include <dt-bindings/clock/qcom,rpmh.h> 207b97ee269SEmmanuel Vadot #include <dt-bindings/interconnect/qcom,sc7280.h> 208b97ee269SEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 209b97ee269SEmmanuel Vadot #include <dt-bindings/mailbox/qcom-ipcc.h> 210b97ee269SEmmanuel Vadot #include <dt-bindings/power/qcom-rpmpd.h> 211b97ee269SEmmanuel Vadot #include <dt-bindings/reset/qcom,sdm845-aoss.h> 212b97ee269SEmmanuel Vadot #include <dt-bindings/reset/qcom,sdm845-pdc.h> 213b97ee269SEmmanuel Vadot 214b97ee269SEmmanuel Vadot remoteproc_mpss: remoteproc@4080000 { 215b97ee269SEmmanuel Vadot compatible = "qcom,sc7280-mss-pil"; 216b97ee269SEmmanuel Vadot reg = <0x04080000 0x10000>, <0x04180000 0x48>; 217b97ee269SEmmanuel Vadot reg-names = "qdsp6", "rmb"; 218b97ee269SEmmanuel Vadot 219b97ee269SEmmanuel Vadot iommus = <&apps_smmu 0x124 0x0>, <&apps_smmu 0x488 0x7>; 220b97ee269SEmmanuel Vadot 221b97ee269SEmmanuel Vadot interconnects = <&mc_virt MASTER_LLCC 0 &mc_virt SLAVE_EBI1 0>; 222b97ee269SEmmanuel Vadot 223b97ee269SEmmanuel Vadot interrupts-extended = <&intc GIC_SPI 264 IRQ_TYPE_EDGE_RISING>, 224b97ee269SEmmanuel Vadot <&modem_smp2p_in 0 IRQ_TYPE_EDGE_RISING>, 225b97ee269SEmmanuel Vadot <&modem_smp2p_in 1 IRQ_TYPE_EDGE_RISING>, 226b97ee269SEmmanuel Vadot <&modem_smp2p_in 2 IRQ_TYPE_EDGE_RISING>, 227b97ee269SEmmanuel Vadot <&modem_smp2p_in 3 IRQ_TYPE_EDGE_RISING>, 228b97ee269SEmmanuel Vadot <&modem_smp2p_in 7 IRQ_TYPE_EDGE_RISING>; 229b97ee269SEmmanuel Vadot 230b97ee269SEmmanuel Vadot interrupt-names = "wdog", "fatal", "ready", "handover", 231b97ee269SEmmanuel Vadot "stop-ack", "shutdown-ack"; 232b97ee269SEmmanuel Vadot 233b97ee269SEmmanuel Vadot clocks = <&gcc GCC_MSS_CFG_AHB_CLK>, 234b97ee269SEmmanuel Vadot <&gcc GCC_MSS_OFFLINE_AXI_CLK>, 235b97ee269SEmmanuel Vadot <&gcc GCC_MSS_SNOC_AXI_CLK>, 236b97ee269SEmmanuel Vadot <&rpmhcc RPMH_PKA_CLK>, 237b97ee269SEmmanuel Vadot <&rpmhcc RPMH_CXO_CLK>; 238b97ee269SEmmanuel Vadot clock-names = "iface", "offline", "snoc_axi", "pka", "xo"; 239b97ee269SEmmanuel Vadot 240b97ee269SEmmanuel Vadot power-domains = <&rpmhpd SC7280_CX>, 241b97ee269SEmmanuel Vadot <&rpmhpd SC7280_MSS>; 242b97ee269SEmmanuel Vadot power-domain-names = "cx", "mss"; 243b97ee269SEmmanuel Vadot 244*cb7aa33aSEmmanuel Vadot memory-region = <&mba_mem>, <&mpss_mem>, <&mdata_mem>; 245b97ee269SEmmanuel Vadot 246b97ee269SEmmanuel Vadot qcom,qmp = <&aoss_qmp>; 247b97ee269SEmmanuel Vadot 248b97ee269SEmmanuel Vadot qcom,smem-states = <&modem_smp2p_out 0>; 249b97ee269SEmmanuel Vadot qcom,smem-state-names = "stop"; 250b97ee269SEmmanuel Vadot 251b97ee269SEmmanuel Vadot resets = <&aoss_reset AOSS_CC_MSS_RESTART>, 252b97ee269SEmmanuel Vadot <&pdc_reset PDC_MODEM_SYNC_RESET>; 253b97ee269SEmmanuel Vadot reset-names = "mss_restart", "pdc_reset"; 254b97ee269SEmmanuel Vadot 255b97ee269SEmmanuel Vadot qcom,halt-regs = <&tcsr_mutex 0x23000 0x25000 0x28000 0x33000>; 256b97ee269SEmmanuel Vadot qcom,ext-regs = <&tcsr 0x10000 0x10004>, <&tcsr_mutex 0x26004 0x26008>; 257b97ee269SEmmanuel Vadot qcom,qaccept-regs = <&tcsr_mutex 0x23030 0x23040 0x23020>; 258b97ee269SEmmanuel Vadot 259b97ee269SEmmanuel Vadot glink-edge { 260b97ee269SEmmanuel Vadot interrupts-extended = <&ipcc IPCC_CLIENT_MPSS 261b97ee269SEmmanuel Vadot IPCC_MPROC_SIGNAL_GLINK_QMP 262b97ee269SEmmanuel Vadot IRQ_TYPE_EDGE_RISING>; 263b97ee269SEmmanuel Vadot mboxes = <&ipcc IPCC_CLIENT_MPSS 264b97ee269SEmmanuel Vadot IPCC_MPROC_SIGNAL_GLINK_QMP>; 265b97ee269SEmmanuel Vadot label = "modem"; 266b97ee269SEmmanuel Vadot qcom,remote-pid = <1>; 267b97ee269SEmmanuel Vadot }; 268b97ee269SEmmanuel Vadot }; 269