xref: /linux/Documentation/devicetree/bindings/remoteproc/qcom,sc7180-mss-pil.yaml (revision 9a87ffc99ec8eb8d35eed7c4f816d75f5cc9662e)
15eb1c7deSSibi Sankar# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
25eb1c7deSSibi Sankar%YAML 1.2
35eb1c7deSSibi Sankar---
45eb1c7deSSibi Sankar$id: http://devicetree.org/schemas/remoteproc/qcom,sc7180-mss-pil.yaml#
55eb1c7deSSibi Sankar$schema: http://devicetree.org/meta-schemas/core.yaml#
65eb1c7deSSibi Sankar
75eb1c7deSSibi Sankartitle: Qualcomm SC7180 MSS Peripheral Image Loader
85eb1c7deSSibi Sankar
95eb1c7deSSibi Sankarmaintainers:
105eb1c7deSSibi Sankar  - Sibi Sankar <quic_sibis@quicinc.com>
115eb1c7deSSibi Sankar
125eb1c7deSSibi Sankardescription:
135eb1c7deSSibi Sankar  This document describes the hardware for a component that loads and boots firmware
145eb1c7deSSibi Sankar  on the Qualcomm Technology Inc. SC7180 Modem Hexagon Core.
155eb1c7deSSibi Sankar
165eb1c7deSSibi Sankarproperties:
175eb1c7deSSibi Sankar  compatible:
185eb1c7deSSibi Sankar    enum:
195eb1c7deSSibi Sankar      - qcom,sc7180-mss-pil
205eb1c7deSSibi Sankar
215eb1c7deSSibi Sankar  reg:
225eb1c7deSSibi Sankar    items:
235eb1c7deSSibi Sankar      - description: MSS QDSP6 registers
245eb1c7deSSibi Sankar      - description: RMB registers
255eb1c7deSSibi Sankar
265eb1c7deSSibi Sankar  reg-names:
275eb1c7deSSibi Sankar    items:
285eb1c7deSSibi Sankar      - const: qdsp6
295eb1c7deSSibi Sankar      - const: rmb
305eb1c7deSSibi Sankar
315eb1c7deSSibi Sankar  iommus:
325eb1c7deSSibi Sankar    items:
335eb1c7deSSibi Sankar      - description: MSA Stream 1
345eb1c7deSSibi Sankar      - description: MSA Stream 2
355eb1c7deSSibi Sankar
365eb1c7deSSibi Sankar  interrupts:
375eb1c7deSSibi Sankar    items:
385eb1c7deSSibi Sankar      - description: Watchdog interrupt
395eb1c7deSSibi Sankar      - description: Fatal interrupt
405eb1c7deSSibi Sankar      - description: Ready interrupt
415eb1c7deSSibi Sankar      - description: Handover interrupt
425eb1c7deSSibi Sankar      - description: Stop acknowledge interrupt
435eb1c7deSSibi Sankar      - description: Shutdown acknowledge interrupt
445eb1c7deSSibi Sankar
455eb1c7deSSibi Sankar  interrupt-names:
465eb1c7deSSibi Sankar    items:
475eb1c7deSSibi Sankar      - const: wdog
485eb1c7deSSibi Sankar      - const: fatal
495eb1c7deSSibi Sankar      - const: ready
505eb1c7deSSibi Sankar      - const: handover
515eb1c7deSSibi Sankar      - const: stop-ack
525eb1c7deSSibi Sankar      - const: shutdown-ack
535eb1c7deSSibi Sankar
545eb1c7deSSibi Sankar  clocks:
555eb1c7deSSibi Sankar    items:
565eb1c7deSSibi Sankar      - description: GCC MSS IFACE clock
575eb1c7deSSibi Sankar      - description: GCC MSS BUS clock
585eb1c7deSSibi Sankar      - description: GCC MSS NAV clock
595eb1c7deSSibi Sankar      - description: GCC MSS SNOC_AXI clock
605eb1c7deSSibi Sankar      - description: GCC MSS MFAB_AXIS clock
615eb1c7deSSibi Sankar      - description: RPMH XO clock
625eb1c7deSSibi Sankar
635eb1c7deSSibi Sankar  clock-names:
645eb1c7deSSibi Sankar    items:
655eb1c7deSSibi Sankar      - const: iface
665eb1c7deSSibi Sankar      - const: bus
675eb1c7deSSibi Sankar      - const: nav
685eb1c7deSSibi Sankar      - const: snoc_axi
695eb1c7deSSibi Sankar      - const: mnoc_axi
705eb1c7deSSibi Sankar      - const: xo
715eb1c7deSSibi Sankar
725eb1c7deSSibi Sankar  power-domains:
735eb1c7deSSibi Sankar    items:
745eb1c7deSSibi Sankar      - description: CX power domain
755eb1c7deSSibi Sankar      - description: MX power domain
765eb1c7deSSibi Sankar      - description: MSS power domain
775eb1c7deSSibi Sankar
785eb1c7deSSibi Sankar  power-domain-names:
795eb1c7deSSibi Sankar    items:
805eb1c7deSSibi Sankar      - const: cx
815eb1c7deSSibi Sankar      - const: mx
825eb1c7deSSibi Sankar      - const: mss
835eb1c7deSSibi Sankar
845eb1c7deSSibi Sankar  resets:
855eb1c7deSSibi Sankar    items:
865eb1c7deSSibi Sankar      - description: AOSS restart
875eb1c7deSSibi Sankar      - description: PDC reset
885eb1c7deSSibi Sankar
895eb1c7deSSibi Sankar  reset-names:
905eb1c7deSSibi Sankar    items:
915eb1c7deSSibi Sankar      - const: mss_restart
925eb1c7deSSibi Sankar      - const: pdc_reset
935eb1c7deSSibi Sankar
945eb1c7deSSibi Sankar  memory-region:
955eb1c7deSSibi Sankar    items:
965eb1c7deSSibi Sankar      - description: MBA reserved region
975eb1c7deSSibi Sankar      - description: modem reserved region
98*95864f27SSibi Sankar      - description: metadata reserved region
995eb1c7deSSibi Sankar
1005eb1c7deSSibi Sankar  firmware-name:
1015eb1c7deSSibi Sankar    $ref: /schemas/types.yaml#/definitions/string-array
1025eb1c7deSSibi Sankar    items:
1035eb1c7deSSibi Sankar      - description: Name of MBA firmware
1045eb1c7deSSibi Sankar      - description: Name of modem firmware
1055eb1c7deSSibi Sankar
1065eb1c7deSSibi Sankar  qcom,halt-regs:
1075eb1c7deSSibi Sankar    $ref: /schemas/types.yaml#/definitions/phandle-array
1085eb1c7deSSibi Sankar    description:
1095eb1c7deSSibi Sankar      Halt registers are used to halt transactions of various sub-components
1105eb1c7deSSibi Sankar      within MSS.
1115eb1c7deSSibi Sankar    items:
1125eb1c7deSSibi Sankar      - items:
1135eb1c7deSSibi Sankar          - description: phandle to TCSR_MUTEX registers
1145eb1c7deSSibi Sankar          - description: offset to the Q6 halt register
1155eb1c7deSSibi Sankar          - description: offset to the modem halt register
1165eb1c7deSSibi Sankar          - description: offset to the nc halt register
1175eb1c7deSSibi Sankar
1185eb1c7deSSibi Sankar  qcom,spare-regs:
1195eb1c7deSSibi Sankar    $ref: /schemas/types.yaml#/definitions/phandle-array
1205eb1c7deSSibi Sankar    description:
1215eb1c7deSSibi Sankar      Spare registers are multipurpose registers used for errata
1225eb1c7deSSibi Sankar      handling.
1235eb1c7deSSibi Sankar    items:
1245eb1c7deSSibi Sankar      - items:
1255eb1c7deSSibi Sankar          - description: phandle to TCSR_MUTEX registers
1265eb1c7deSSibi Sankar          - description: offset to the conn_box_spare0 register
1275eb1c7deSSibi Sankar
1285eb1c7deSSibi Sankar  qcom,qmp:
1295eb1c7deSSibi Sankar    $ref: /schemas/types.yaml#/definitions/phandle
1305eb1c7deSSibi Sankar    description: Reference to the AOSS side-channel message RAM.
1315eb1c7deSSibi Sankar
1325eb1c7deSSibi Sankar  qcom,smem-states:
1335eb1c7deSSibi Sankar    $ref: /schemas/types.yaml#/definitions/phandle-array
1345eb1c7deSSibi Sankar    description: States used by the AP to signal the Hexagon core
1355eb1c7deSSibi Sankar    items:
1365eb1c7deSSibi Sankar      - description: Stop the modem
1375eb1c7deSSibi Sankar
1385eb1c7deSSibi Sankar  qcom,smem-state-names:
1395eb1c7deSSibi Sankar    description: The names of the state bits used for SMP2P output
1405eb1c7deSSibi Sankar    const: stop
1415eb1c7deSSibi Sankar
1425eb1c7deSSibi Sankar  glink-edge:
1435eb1c7deSSibi Sankar    $ref: qcom,glink-edge.yaml#
1447470d2bfSRob Herring    unevaluatedProperties: false
1455eb1c7deSSibi Sankar    description:
1465eb1c7deSSibi Sankar      Qualcomm G-Link subnode which represents communication edge, channels
1475eb1c7deSSibi Sankar      and devices related to the DSP.
1485eb1c7deSSibi Sankar
1495eb1c7deSSibi Sankar    properties:
1505eb1c7deSSibi Sankar      interrupts:
1515eb1c7deSSibi Sankar        items:
1525eb1c7deSSibi Sankar          - description: IRQ from MSS to GLINK
1535eb1c7deSSibi Sankar
1545eb1c7deSSibi Sankar      mboxes:
1555eb1c7deSSibi Sankar        items:
1565eb1c7deSSibi Sankar          - description: Mailbox for communication between APPS and MSS
1575eb1c7deSSibi Sankar
1585eb1c7deSSibi Sankar      label:
1595eb1c7deSSibi Sankar        const: modem
1605eb1c7deSSibi Sankar
1615eb1c7deSSibi Sankar      apr: false
1625eb1c7deSSibi Sankar      fastrpc: false
1635eb1c7deSSibi Sankar
1645eb1c7deSSibi Sankarrequired:
1655eb1c7deSSibi Sankar  - compatible
1665eb1c7deSSibi Sankar  - reg
1675eb1c7deSSibi Sankar  - reg-names
1685eb1c7deSSibi Sankar  - iommus
1695eb1c7deSSibi Sankar  - interrupts
1705eb1c7deSSibi Sankar  - interrupt-names
1715eb1c7deSSibi Sankar  - clocks
1725eb1c7deSSibi Sankar  - clock-names
1735eb1c7deSSibi Sankar  - power-domains
1745eb1c7deSSibi Sankar  - power-domain-names
1755eb1c7deSSibi Sankar  - resets
1765eb1c7deSSibi Sankar  - reset-names
1775eb1c7deSSibi Sankar  - qcom,halt-regs
1785eb1c7deSSibi Sankar  - qcom,spare-regs
1795eb1c7deSSibi Sankar  - memory-region
1805eb1c7deSSibi Sankar  - qcom,qmp
1815eb1c7deSSibi Sankar  - qcom,smem-states
1825eb1c7deSSibi Sankar  - qcom,smem-state-names
1835eb1c7deSSibi Sankar  - glink-edge
1845eb1c7deSSibi Sankar
1855eb1c7deSSibi SankaradditionalProperties: false
1865eb1c7deSSibi Sankar
1875eb1c7deSSibi Sankarexamples:
1885eb1c7deSSibi Sankar  - |
1895eb1c7deSSibi Sankar    #include <dt-bindings/clock/qcom,gcc-sc7180.h>
1905eb1c7deSSibi Sankar    #include <dt-bindings/clock/qcom,rpmh.h>
1915eb1c7deSSibi Sankar    #include <dt-bindings/interrupt-controller/arm-gic.h>
1925eb1c7deSSibi Sankar    #include <dt-bindings/power/qcom-rpmpd.h>
1935eb1c7deSSibi Sankar    #include <dt-bindings/reset/qcom,sdm845-aoss.h>
1945eb1c7deSSibi Sankar    #include <dt-bindings/reset/qcom,sdm845-pdc.h>
1955eb1c7deSSibi Sankar
1965eb1c7deSSibi Sankar    remoteproc_mpss: remoteproc@4080000 {
1975eb1c7deSSibi Sankar        compatible = "qcom,sc7180-mss-pil";
1985eb1c7deSSibi Sankar        reg = <0x04080000 0x10000>, <0x04180000 0x48>;
1995eb1c7deSSibi Sankar        reg-names = "qdsp6", "rmb";
2005eb1c7deSSibi Sankar
2015eb1c7deSSibi Sankar        iommus = <&apps_smmu 0x461 0x0>, <&apps_smmu 0x444 0x3>;
2025eb1c7deSSibi Sankar
2035eb1c7deSSibi Sankar        interrupts-extended = <&intc GIC_SPI 264 IRQ_TYPE_EDGE_RISING>,
2045eb1c7deSSibi Sankar                              <&modem_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
2055eb1c7deSSibi Sankar                              <&modem_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
2065eb1c7deSSibi Sankar                              <&modem_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
2075eb1c7deSSibi Sankar                              <&modem_smp2p_in 3 IRQ_TYPE_EDGE_RISING>,
2085eb1c7deSSibi Sankar                              <&modem_smp2p_in 7 IRQ_TYPE_EDGE_RISING>;
2095eb1c7deSSibi Sankar
2105eb1c7deSSibi Sankar        interrupt-names = "wdog", "fatal", "ready", "handover",
2115eb1c7deSSibi Sankar                          "stop-ack", "shutdown-ack";
2125eb1c7deSSibi Sankar
2135eb1c7deSSibi Sankar        clocks = <&gcc GCC_MSS_CFG_AHB_CLK>,
2145eb1c7deSSibi Sankar                 <&gcc GCC_MSS_Q6_MEMNOC_AXI_CLK>,
2155eb1c7deSSibi Sankar                 <&gcc GCC_MSS_NAV_AXI_CLK>,
2165eb1c7deSSibi Sankar                 <&gcc GCC_MSS_SNOC_AXI_CLK>,
2175eb1c7deSSibi Sankar                 <&gcc GCC_MSS_MFAB_AXIS_CLK>,
2185eb1c7deSSibi Sankar                 <&rpmhcc RPMH_CXO_CLK>;
2195eb1c7deSSibi Sankar        clock-names = "iface", "bus", "nav", "snoc_axi",
2205eb1c7deSSibi Sankar                      "mnoc_axi", "xo";
2215eb1c7deSSibi Sankar
2225eb1c7deSSibi Sankar        power-domains = <&rpmhpd SC7180_CX>,
2235eb1c7deSSibi Sankar                        <&rpmhpd SC7180_MX>,
2245eb1c7deSSibi Sankar                        <&rpmhpd SC7180_MSS>;
2255eb1c7deSSibi Sankar        power-domain-names = "cx", "mx", "mss";
2265eb1c7deSSibi Sankar
227*95864f27SSibi Sankar        memory-region = <&mba_mem>, <&mpss_mem>, <&mdata_mem>;
2285eb1c7deSSibi Sankar
2295eb1c7deSSibi Sankar        qcom,qmp = <&aoss_qmp>;
2305eb1c7deSSibi Sankar
2315eb1c7deSSibi Sankar        qcom,smem-states = <&modem_smp2p_out 0>;
2325eb1c7deSSibi Sankar        qcom,smem-state-names = "stop";
2335eb1c7deSSibi Sankar
2345eb1c7deSSibi Sankar        resets = <&aoss_reset AOSS_CC_MSS_RESTART>,
2355eb1c7deSSibi Sankar                 <&pdc_reset PDC_MODEM_SYNC_RESET>;
2365eb1c7deSSibi Sankar        reset-names = "mss_restart", "pdc_reset";
2375eb1c7deSSibi Sankar
2385eb1c7deSSibi Sankar        qcom,halt-regs = <&tcsr_mutex_regs 0x23000 0x25000 0x24000>;
2395eb1c7deSSibi Sankar        qcom,spare-regs = <&tcsr_regs 0xb3e4>;
2405eb1c7deSSibi Sankar
2415eb1c7deSSibi Sankar        glink-edge {
2425eb1c7deSSibi Sankar            interrupts = <GIC_SPI 449 IRQ_TYPE_EDGE_RISING>;
2435eb1c7deSSibi Sankar            mboxes = <&apss_shared 12>;
2445eb1c7deSSibi Sankar            qcom,remote-pid = <1>;
2455eb1c7deSSibi Sankar            label = "modem";
2465eb1c7deSSibi Sankar        };
2475eb1c7deSSibi Sankar    };
248