xref: /linux/Documentation/devicetree/bindings/remoteproc/qcom,sc7280-mss-pil.yaml (revision 9a87ffc99ec8eb8d35eed7c4f816d75f5cc9662e)
13abe6d65SSibi Sankar# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
23abe6d65SSibi Sankar%YAML 1.2
33abe6d65SSibi Sankar---
43abe6d65SSibi Sankar$id: http://devicetree.org/schemas/remoteproc/qcom,sc7280-mss-pil.yaml#
53abe6d65SSibi Sankar$schema: http://devicetree.org/meta-schemas/core.yaml#
63abe6d65SSibi Sankar
73abe6d65SSibi Sankartitle: Qualcomm SC7280 MSS Peripheral Image Loader
83abe6d65SSibi Sankar
93abe6d65SSibi Sankarmaintainers:
103abe6d65SSibi Sankar  - Sibi Sankar <quic_sibis@quicinc.com>
113abe6d65SSibi Sankar
123abe6d65SSibi Sankardescription:
133abe6d65SSibi Sankar  This document describes the hardware for a component that loads and boots firmware
143abe6d65SSibi Sankar  on the Qualcomm Technology Inc. SC7280 Modem Hexagon Core.
153abe6d65SSibi Sankar
163abe6d65SSibi Sankarproperties:
173abe6d65SSibi Sankar  compatible:
183abe6d65SSibi Sankar    enum:
193abe6d65SSibi Sankar      - qcom,sc7280-mss-pil
203abe6d65SSibi Sankar
213abe6d65SSibi Sankar  reg:
223abe6d65SSibi Sankar    items:
233abe6d65SSibi Sankar      - description: MSS QDSP6 registers
243abe6d65SSibi Sankar      - description: RMB registers
253abe6d65SSibi Sankar
263abe6d65SSibi Sankar  reg-names:
273abe6d65SSibi Sankar    items:
283abe6d65SSibi Sankar      - const: qdsp6
293abe6d65SSibi Sankar      - const: rmb
303abe6d65SSibi Sankar
313abe6d65SSibi Sankar  iommus:
323abe6d65SSibi Sankar    items:
333abe6d65SSibi Sankar      - description: MSA Stream 1
343abe6d65SSibi Sankar      - description: MSA Stream 2
353abe6d65SSibi Sankar
363abe6d65SSibi Sankar  interconnects:
373abe6d65SSibi Sankar    items:
383abe6d65SSibi Sankar      - description: Path leading to system memory
393abe6d65SSibi Sankar
403abe6d65SSibi Sankar  interrupts:
413abe6d65SSibi Sankar    items:
423abe6d65SSibi Sankar      - description: Watchdog interrupt
433abe6d65SSibi Sankar      - description: Fatal interrupt
443abe6d65SSibi Sankar      - description: Ready interrupt
453abe6d65SSibi Sankar      - description: Handover interrupt
463abe6d65SSibi Sankar      - description: Stop acknowledge interrupt
473abe6d65SSibi Sankar      - description: Shutdown acknowledge interrupt
483abe6d65SSibi Sankar
493abe6d65SSibi Sankar  interrupt-names:
503abe6d65SSibi Sankar    items:
513abe6d65SSibi Sankar      - const: wdog
523abe6d65SSibi Sankar      - const: fatal
533abe6d65SSibi Sankar      - const: ready
543abe6d65SSibi Sankar      - const: handover
553abe6d65SSibi Sankar      - const: stop-ack
563abe6d65SSibi Sankar      - const: shutdown-ack
573abe6d65SSibi Sankar
583abe6d65SSibi Sankar  clocks:
593abe6d65SSibi Sankar    items:
603abe6d65SSibi Sankar      - description: GCC MSS IFACE clock
613abe6d65SSibi Sankar      - description: GCC MSS OFFLINE clock
623abe6d65SSibi Sankar      - description: GCC MSS SNOC_AXI clock
633abe6d65SSibi Sankar      - description: RPMH PKA clock
643abe6d65SSibi Sankar      - description: RPMH XO clock
653abe6d65SSibi Sankar
663abe6d65SSibi Sankar  clock-names:
673abe6d65SSibi Sankar    items:
683abe6d65SSibi Sankar      - const: iface
693abe6d65SSibi Sankar      - const: offline
703abe6d65SSibi Sankar      - const: snoc_axi
713abe6d65SSibi Sankar      - const: pka
723abe6d65SSibi Sankar      - const: xo
733abe6d65SSibi Sankar
743abe6d65SSibi Sankar  power-domains:
753abe6d65SSibi Sankar    items:
763abe6d65SSibi Sankar      - description: CX power domain
773abe6d65SSibi Sankar      - description: MSS power domain
783abe6d65SSibi Sankar
793abe6d65SSibi Sankar  power-domain-names:
803abe6d65SSibi Sankar    items:
813abe6d65SSibi Sankar      - const: cx
823abe6d65SSibi Sankar      - const: mss
833abe6d65SSibi Sankar
843abe6d65SSibi Sankar  resets:
853abe6d65SSibi Sankar    items:
863abe6d65SSibi Sankar      - description: AOSS restart
873abe6d65SSibi Sankar      - description: PDC reset
883abe6d65SSibi Sankar
893abe6d65SSibi Sankar  reset-names:
903abe6d65SSibi Sankar    items:
913abe6d65SSibi Sankar      - const: mss_restart
923abe6d65SSibi Sankar      - const: pdc_reset
933abe6d65SSibi Sankar
943abe6d65SSibi Sankar  memory-region:
953abe6d65SSibi Sankar    items:
963abe6d65SSibi Sankar      - description: MBA reserved region
973abe6d65SSibi Sankar      - description: modem reserved region
98*eb48137dSSibi Sankar      - description: metadata reserved region
993abe6d65SSibi Sankar
1003abe6d65SSibi Sankar  firmware-name:
1013abe6d65SSibi Sankar    $ref: /schemas/types.yaml#/definitions/string-array
1023abe6d65SSibi Sankar    items:
1033abe6d65SSibi Sankar      - description: Name of MBA firmware
1043abe6d65SSibi Sankar      - description: Name of modem firmware
1053abe6d65SSibi Sankar
1063abe6d65SSibi Sankar  qcom,halt-regs:
1073abe6d65SSibi Sankar    $ref: /schemas/types.yaml#/definitions/phandle-array
1083abe6d65SSibi Sankar    description:
1093abe6d65SSibi Sankar      Halt registers are used to halt transactions of various sub-components
1103abe6d65SSibi Sankar      within MSS.
1113abe6d65SSibi Sankar    items:
1123abe6d65SSibi Sankar      - items:
1133abe6d65SSibi Sankar          - description: phandle to TCSR_MUTEX registers
1143abe6d65SSibi Sankar          - description: offset to the Q6 halt register
1153abe6d65SSibi Sankar          - description: offset to the modem halt register
1163abe6d65SSibi Sankar          - description: offset to the nc halt register
1173abe6d65SSibi Sankar          - description: offset to the vq6 halt register
1183abe6d65SSibi Sankar
1193abe6d65SSibi Sankar  qcom,ext-regs:
1203abe6d65SSibi Sankar    $ref: /schemas/types.yaml#/definitions/phandle-array
1213abe6d65SSibi Sankar    description: EXT registers are used for various power related functionality
1223abe6d65SSibi Sankar    items:
1233abe6d65SSibi Sankar      - items:
1243abe6d65SSibi Sankar          - description: phandle to TCSR_REG registers
1253abe6d65SSibi Sankar          - description: offset to the force_clk_en register
1263abe6d65SSibi Sankar          - description: offset to the rscc_disable register
1273abe6d65SSibi Sankar      - items:
1283abe6d65SSibi Sankar          - description: phandle to TCSR_MUTEX registers
1293abe6d65SSibi Sankar          - description: offset to the axim1_clk_off register
1303abe6d65SSibi Sankar          - description: offset to the crypto_clk_off register
1313abe6d65SSibi Sankar
1323abe6d65SSibi Sankar  qcom,qaccept-regs:
1333abe6d65SSibi Sankar    $ref: /schemas/types.yaml#/definitions/phandle-array
1343abe6d65SSibi Sankar    description: QACCEPT registers are used to bring up/down Q-channels
1353abe6d65SSibi Sankar    items:
1363abe6d65SSibi Sankar      - items:
1373abe6d65SSibi Sankar          - description: phandle to TCSR_MUTEX registers
1383abe6d65SSibi Sankar          - description: offset to the mdm qaccept register
1393abe6d65SSibi Sankar          - description: offset to the cx qaccept register
1403abe6d65SSibi Sankar          - description: offset to the axi qaccept register
1413abe6d65SSibi Sankar
1423abe6d65SSibi Sankar  qcom,qmp:
1433abe6d65SSibi Sankar    $ref: /schemas/types.yaml#/definitions/phandle
1443abe6d65SSibi Sankar    description: Reference to the AOSS side-channel message RAM.
1453abe6d65SSibi Sankar
1463abe6d65SSibi Sankar  qcom,smem-states:
1473abe6d65SSibi Sankar    $ref: /schemas/types.yaml#/definitions/phandle-array
1483abe6d65SSibi Sankar    description: States used by the AP to signal the Hexagon core
1493abe6d65SSibi Sankar    items:
1503abe6d65SSibi Sankar      - description: Stop the modem
1513abe6d65SSibi Sankar
1523abe6d65SSibi Sankar  qcom,smem-state-names:
1533abe6d65SSibi Sankar    description: The names of the state bits used for SMP2P output
1543abe6d65SSibi Sankar    const: stop
1553abe6d65SSibi Sankar
1563abe6d65SSibi Sankar  glink-edge:
1573abe6d65SSibi Sankar    $ref: qcom,glink-edge.yaml#
1587470d2bfSRob Herring    unevaluatedProperties: false
1593abe6d65SSibi Sankar    description:
1603abe6d65SSibi Sankar      Qualcomm G-Link subnode which represents communication edge, channels
1613abe6d65SSibi Sankar      and devices related to the DSP.
1623abe6d65SSibi Sankar
1633abe6d65SSibi Sankar    properties:
1643abe6d65SSibi Sankar      interrupts:
1653abe6d65SSibi Sankar        items:
1663abe6d65SSibi Sankar          - description: IRQ from MSS to GLINK
1673abe6d65SSibi Sankar
1683abe6d65SSibi Sankar      mboxes:
1693abe6d65SSibi Sankar        items:
1703abe6d65SSibi Sankar          - description: Mailbox for communication between APPS and MSS
1713abe6d65SSibi Sankar
1723abe6d65SSibi Sankar      label:
1733abe6d65SSibi Sankar        const: modem
1743abe6d65SSibi Sankar
1753abe6d65SSibi Sankar      apr: false
1763abe6d65SSibi Sankar      fastrpc: false
1773abe6d65SSibi Sankar
1783abe6d65SSibi Sankarrequired:
1793abe6d65SSibi Sankar  - compatible
1803abe6d65SSibi Sankar  - reg
1813abe6d65SSibi Sankar  - reg-names
1823abe6d65SSibi Sankar  - iommus
1833abe6d65SSibi Sankar  - interconnects
1843abe6d65SSibi Sankar  - interrupts
1853abe6d65SSibi Sankar  - interrupt-names
1863abe6d65SSibi Sankar  - clocks
1873abe6d65SSibi Sankar  - clock-names
1883abe6d65SSibi Sankar  - power-domains
1893abe6d65SSibi Sankar  - power-domain-names
1903abe6d65SSibi Sankar  - resets
1913abe6d65SSibi Sankar  - reset-names
1923abe6d65SSibi Sankar  - qcom,halt-regs
1933abe6d65SSibi Sankar  - qcom,ext-regs
1943abe6d65SSibi Sankar  - qcom,qaccept-regs
1953abe6d65SSibi Sankar  - memory-region
1963abe6d65SSibi Sankar  - qcom,qmp
1973abe6d65SSibi Sankar  - qcom,smem-states
1983abe6d65SSibi Sankar  - qcom,smem-state-names
1993abe6d65SSibi Sankar  - glink-edge
2003abe6d65SSibi Sankar
2013abe6d65SSibi SankaradditionalProperties: false
2023abe6d65SSibi Sankar
2033abe6d65SSibi Sankarexamples:
2043abe6d65SSibi Sankar  - |
2053abe6d65SSibi Sankar    #include <dt-bindings/clock/qcom,gcc-sc7280.h>
2063abe6d65SSibi Sankar    #include <dt-bindings/clock/qcom,rpmh.h>
2073abe6d65SSibi Sankar    #include <dt-bindings/interconnect/qcom,sc7280.h>
2083abe6d65SSibi Sankar    #include <dt-bindings/interrupt-controller/arm-gic.h>
2093abe6d65SSibi Sankar    #include <dt-bindings/mailbox/qcom-ipcc.h>
2103abe6d65SSibi Sankar    #include <dt-bindings/power/qcom-rpmpd.h>
2113abe6d65SSibi Sankar    #include <dt-bindings/reset/qcom,sdm845-aoss.h>
2123abe6d65SSibi Sankar    #include <dt-bindings/reset/qcom,sdm845-pdc.h>
2133abe6d65SSibi Sankar
2143abe6d65SSibi Sankar    remoteproc_mpss: remoteproc@4080000 {
2153abe6d65SSibi Sankar        compatible = "qcom,sc7280-mss-pil";
2163abe6d65SSibi Sankar        reg = <0x04080000 0x10000>, <0x04180000 0x48>;
2173abe6d65SSibi Sankar        reg-names = "qdsp6", "rmb";
2183abe6d65SSibi Sankar
2193abe6d65SSibi Sankar        iommus = <&apps_smmu 0x124 0x0>, <&apps_smmu 0x488 0x7>;
2203abe6d65SSibi Sankar
2213abe6d65SSibi Sankar        interconnects = <&mc_virt MASTER_LLCC 0 &mc_virt SLAVE_EBI1 0>;
2223abe6d65SSibi Sankar
2233abe6d65SSibi Sankar        interrupts-extended = <&intc GIC_SPI 264 IRQ_TYPE_EDGE_RISING>,
2243abe6d65SSibi Sankar                              <&modem_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
2253abe6d65SSibi Sankar                              <&modem_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
2263abe6d65SSibi Sankar                              <&modem_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
2273abe6d65SSibi Sankar                              <&modem_smp2p_in 3 IRQ_TYPE_EDGE_RISING>,
2283abe6d65SSibi Sankar                              <&modem_smp2p_in 7 IRQ_TYPE_EDGE_RISING>;
2293abe6d65SSibi Sankar
2303abe6d65SSibi Sankar        interrupt-names = "wdog", "fatal", "ready", "handover",
2313abe6d65SSibi Sankar                          "stop-ack", "shutdown-ack";
2323abe6d65SSibi Sankar
2333abe6d65SSibi Sankar        clocks = <&gcc GCC_MSS_CFG_AHB_CLK>,
2343abe6d65SSibi Sankar                 <&gcc GCC_MSS_OFFLINE_AXI_CLK>,
2353abe6d65SSibi Sankar                 <&gcc GCC_MSS_SNOC_AXI_CLK>,
2363abe6d65SSibi Sankar                 <&rpmhcc RPMH_PKA_CLK>,
2373abe6d65SSibi Sankar                 <&rpmhcc RPMH_CXO_CLK>;
2383abe6d65SSibi Sankar        clock-names = "iface", "offline", "snoc_axi", "pka", "xo";
2393abe6d65SSibi Sankar
2403abe6d65SSibi Sankar        power-domains = <&rpmhpd SC7280_CX>,
2413abe6d65SSibi Sankar                        <&rpmhpd SC7280_MSS>;
2423abe6d65SSibi Sankar        power-domain-names = "cx", "mss";
2433abe6d65SSibi Sankar
244*eb48137dSSibi Sankar        memory-region = <&mba_mem>, <&mpss_mem>, <&mdata_mem>;
2453abe6d65SSibi Sankar
2463abe6d65SSibi Sankar        qcom,qmp = <&aoss_qmp>;
2473abe6d65SSibi Sankar
2483abe6d65SSibi Sankar        qcom,smem-states = <&modem_smp2p_out 0>;
2493abe6d65SSibi Sankar        qcom,smem-state-names = "stop";
2503abe6d65SSibi Sankar
2513abe6d65SSibi Sankar        resets = <&aoss_reset AOSS_CC_MSS_RESTART>,
2523abe6d65SSibi Sankar                 <&pdc_reset PDC_MODEM_SYNC_RESET>;
2533abe6d65SSibi Sankar        reset-names = "mss_restart", "pdc_reset";
2543abe6d65SSibi Sankar
2553abe6d65SSibi Sankar        qcom,halt-regs = <&tcsr_mutex 0x23000 0x25000 0x28000 0x33000>;
2563abe6d65SSibi Sankar        qcom,ext-regs = <&tcsr 0x10000 0x10004>, <&tcsr_mutex 0x26004 0x26008>;
2573abe6d65SSibi Sankar        qcom,qaccept-regs = <&tcsr_mutex 0x23030 0x23040 0x23020>;
2583abe6d65SSibi Sankar
2593abe6d65SSibi Sankar        glink-edge {
2603abe6d65SSibi Sankar            interrupts-extended = <&ipcc IPCC_CLIENT_MPSS
2613abe6d65SSibi Sankar                                   IPCC_MPROC_SIGNAL_GLINK_QMP
2623abe6d65SSibi Sankar                                   IRQ_TYPE_EDGE_RISING>;
2633abe6d65SSibi Sankar            mboxes = <&ipcc IPCC_CLIENT_MPSS
2643abe6d65SSibi Sankar                      IPCC_MPROC_SIGNAL_GLINK_QMP>;
2653abe6d65SSibi Sankar            label = "modem";
2663abe6d65SSibi Sankar            qcom,remote-pid = <1>;
2673abe6d65SSibi Sankar        };
2683abe6d65SSibi Sankar    };
269