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