xref: /openbmc/linux/Documentation/devicetree/bindings/remoteproc/qcom,sc7280-wpss-pil.yaml (revision 4f2c0a4acffbec01079c28f839422e64ddeff004)
126305048SRakesh Pillai# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
226305048SRakesh Pillai%YAML 1.2
326305048SRakesh Pillai---
426305048SRakesh Pillai$id: http://devicetree.org/schemas/remoteproc/qcom,sc7280-wpss-pil.yaml#
526305048SRakesh Pillai$schema: http://devicetree.org/meta-schemas/core.yaml#
626305048SRakesh Pillai
726305048SRakesh Pillaititle: Qualcomm SC7280 WPSS Peripheral Image Loader
826305048SRakesh Pillai
926305048SRakesh Pillaimaintainers:
1026305048SRakesh Pillai  - Bjorn Andersson <bjorn.andersson@linaro.org>
1126305048SRakesh Pillai
1226305048SRakesh Pillaidescription:
1326305048SRakesh Pillai  This document defines the binding for a component that loads and boots firmware
1426305048SRakesh Pillai  on the Qualcomm Technology Inc. WPSS.
1526305048SRakesh Pillai
1626305048SRakesh Pillaiproperties:
1726305048SRakesh Pillai  compatible:
1826305048SRakesh Pillai    enum:
1926305048SRakesh Pillai      - qcom,sc7280-wpss-pil
2026305048SRakesh Pillai
2126305048SRakesh Pillai  reg:
2226305048SRakesh Pillai    maxItems: 1
2326305048SRakesh Pillai    description:
2426305048SRakesh Pillai      The base address and size of the qdsp6ss register
2526305048SRakesh Pillai
2626305048SRakesh Pillai  interrupts:
2726305048SRakesh Pillai    items:
2826305048SRakesh Pillai      - description: Watchdog interrupt
2926305048SRakesh Pillai      - description: Fatal interrupt
3026305048SRakesh Pillai      - description: Ready interrupt
3126305048SRakesh Pillai      - description: Handover interrupt
3226305048SRakesh Pillai      - description: Stop acknowledge interrupt
3326305048SRakesh Pillai      - description: Shutdown acknowledge interrupt
3426305048SRakesh Pillai
3526305048SRakesh Pillai  interrupt-names:
3626305048SRakesh Pillai    items:
3726305048SRakesh Pillai      - const: wdog
3826305048SRakesh Pillai      - const: fatal
3926305048SRakesh Pillai      - const: ready
4026305048SRakesh Pillai      - const: handover
4126305048SRakesh Pillai      - const: stop-ack
4226305048SRakesh Pillai      - const: shutdown-ack
4326305048SRakesh Pillai
4426305048SRakesh Pillai  clocks:
4526305048SRakesh Pillai    items:
4626305048SRakesh Pillai      - description: GCC WPSS AHB BDG Master clock
4726305048SRakesh Pillai      - description: GCC WPSS AHB clock
4826305048SRakesh Pillai      - description: GCC WPSS RSCP clock
4926305048SRakesh Pillai      - description: XO clock
5026305048SRakesh Pillai
5126305048SRakesh Pillai  clock-names:
5226305048SRakesh Pillai    items:
5326305048SRakesh Pillai      - const: ahb_bdg
5426305048SRakesh Pillai      - const: ahb
5526305048SRakesh Pillai      - const: rscp
5626305048SRakesh Pillai      - const: xo
5726305048SRakesh Pillai
5826305048SRakesh Pillai  power-domains:
5926305048SRakesh Pillai    items:
6026305048SRakesh Pillai      - description: CX power domain
6126305048SRakesh Pillai      - description: MX power domain
6226305048SRakesh Pillai
6326305048SRakesh Pillai  power-domain-names:
6426305048SRakesh Pillai    items:
6526305048SRakesh Pillai      - const: cx
6626305048SRakesh Pillai      - const: mx
6726305048SRakesh Pillai
6826305048SRakesh Pillai  resets:
6926305048SRakesh Pillai    items:
7026305048SRakesh Pillai      - description: AOSS restart
7126305048SRakesh Pillai      - description: PDC SYNC
7226305048SRakesh Pillai
7326305048SRakesh Pillai  reset-names:
7426305048SRakesh Pillai    items:
7526305048SRakesh Pillai      - const: restart
7626305048SRakesh Pillai      - const: pdc_sync
7726305048SRakesh Pillai
7826305048SRakesh Pillai  memory-region:
798f69d59bSKrzysztof Kozlowski    maxItems: 1
8026305048SRakesh Pillai    description: Reference to the reserved-memory for the Hexagon core
8126305048SRakesh Pillai
8226305048SRakesh Pillai  firmware-name:
8326305048SRakesh Pillai    $ref: /schemas/types.yaml#/definitions/string
8426305048SRakesh Pillai    description:
8526305048SRakesh Pillai      The name of the firmware which should be loaded for this remote
8626305048SRakesh Pillai      processor.
8726305048SRakesh Pillai
8826305048SRakesh Pillai  qcom,halt-regs:
8926305048SRakesh Pillai    $ref: /schemas/types.yaml#/definitions/phandle-array
9026305048SRakesh Pillai    description:
9126305048SRakesh Pillai      Phandle reference to a syscon representing TCSR followed by the
9226305048SRakesh Pillai      three offsets within syscon for q6, modem and nc halt registers.
9326305048SRakesh Pillai
9426305048SRakesh Pillai  qcom,qmp:
9526305048SRakesh Pillai    $ref: /schemas/types.yaml#/definitions/phandle
9626305048SRakesh Pillai    description: Reference to the AOSS side-channel message RAM.
9726305048SRakesh Pillai
9826305048SRakesh Pillai  qcom,smem-states:
9926305048SRakesh Pillai    $ref: /schemas/types.yaml#/definitions/phandle-array
10026305048SRakesh Pillai    description: States used by the AP to signal the Hexagon core
10126305048SRakesh Pillai    items:
10226305048SRakesh Pillai      - description: Stop the modem
10326305048SRakesh Pillai
10426305048SRakesh Pillai  qcom,smem-state-names:
10526305048SRakesh Pillai    description: The names of the state bits used for SMP2P output
1065a674d9dSRob Herring    const: stop
10726305048SRakesh Pillai
10826305048SRakesh Pillai  glink-edge:
109ae9d475aSKrzysztof Kozlowski    $ref: qcom,glink-edge.yaml#
110*7470d2bfSRob Herring    unevaluatedProperties: false
111ae9d475aSKrzysztof Kozlowski    description:
11226305048SRakesh Pillai      Qualcomm G-Link subnode which represents communication edge, channels
11326305048SRakesh Pillai      and devices related to the ADSP.
11426305048SRakesh Pillai
11526305048SRakesh Pillai    properties:
11626305048SRakesh Pillai      interrupts:
11726305048SRakesh Pillai        items:
11826305048SRakesh Pillai          - description: IRQ from WPSS to GLINK
11926305048SRakesh Pillai
12026305048SRakesh Pillai      mboxes:
12126305048SRakesh Pillai        items:
12226305048SRakesh Pillai          - description: Mailbox for communication between APPS and WPSS
12326305048SRakesh Pillai
12426305048SRakesh Pillai      label:
12526305048SRakesh Pillai        items:
12626305048SRakesh Pillai          - const: wpss
12726305048SRakesh Pillai
128ae9d475aSKrzysztof Kozlowski      apr: false
129ae9d475aSKrzysztof Kozlowski      fastrpc: false
13026305048SRakesh Pillai
13126305048SRakesh Pillairequired:
13226305048SRakesh Pillai  - compatible
13326305048SRakesh Pillai  - reg
13426305048SRakesh Pillai  - interrupts
13526305048SRakesh Pillai  - interrupt-names
13626305048SRakesh Pillai  - clocks
13726305048SRakesh Pillai  - clock-names
13826305048SRakesh Pillai  - power-domains
13926305048SRakesh Pillai  - power-domain-names
14026305048SRakesh Pillai  - resets
14126305048SRakesh Pillai  - reset-names
14226305048SRakesh Pillai  - qcom,halt-regs
14326305048SRakesh Pillai  - memory-region
14426305048SRakesh Pillai  - qcom,qmp
14526305048SRakesh Pillai  - qcom,smem-states
14626305048SRakesh Pillai  - qcom,smem-state-names
14726305048SRakesh Pillai  - glink-edge
14826305048SRakesh Pillai
14926305048SRakesh PillaiadditionalProperties: false
15026305048SRakesh Pillai
15126305048SRakesh Pillaiexamples:
15226305048SRakesh Pillai  - |
15326305048SRakesh Pillai    #include <dt-bindings/interrupt-controller/arm-gic.h>
15426305048SRakesh Pillai    #include <dt-bindings/clock/qcom,gcc-sc7280.h>
15526305048SRakesh Pillai    #include <dt-bindings/clock/qcom,rpmh.h>
15626305048SRakesh Pillai    #include <dt-bindings/power/qcom-rpmpd.h>
15726305048SRakesh Pillai    #include <dt-bindings/reset/qcom,sdm845-aoss.h>
15826305048SRakesh Pillai    #include <dt-bindings/reset/qcom,sdm845-pdc.h>
15926305048SRakesh Pillai    #include <dt-bindings/mailbox/qcom-ipcc.h>
16026305048SRakesh Pillai    remoteproc@8a00000 {
16126305048SRakesh Pillai        compatible = "qcom,sc7280-wpss-pil";
16226305048SRakesh Pillai        reg = <0x08a00000 0x10000>;
16326305048SRakesh Pillai
16426305048SRakesh Pillai        interrupts-extended = <&intc GIC_SPI 587 IRQ_TYPE_EDGE_RISING>,
16526305048SRakesh Pillai                              <&wpss_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
16626305048SRakesh Pillai                              <&wpss_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
16726305048SRakesh Pillai                              <&wpss_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
16826305048SRakesh Pillai                              <&wpss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>,
16926305048SRakesh Pillai                              <&wpss_smp2p_in 7 IRQ_TYPE_EDGE_RISING>;
17026305048SRakesh Pillai        interrupt-names = "wdog", "fatal", "ready", "handover",
17126305048SRakesh Pillai                          "stop-ack", "shutdown-ack";
17226305048SRakesh Pillai
17326305048SRakesh Pillai        clocks = <&gcc GCC_WPSS_AHB_BDG_MST_CLK>,
17426305048SRakesh Pillai                 <&gcc GCC_WPSS_AHB_CLK>,
17526305048SRakesh Pillai                 <&gcc GCC_WPSS_RSCP_CLK>,
17626305048SRakesh Pillai                 <&rpmhcc RPMH_CXO_CLK>;
17726305048SRakesh Pillai        clock-names = "ahb_bdg", "ahb",
17826305048SRakesh Pillai                      "rscp", "xo";
17926305048SRakesh Pillai
18026305048SRakesh Pillai        power-domains = <&rpmhpd SC7280_CX>,
18126305048SRakesh Pillai                        <&rpmhpd SC7280_MX>;
18226305048SRakesh Pillai        power-domain-names = "cx", "mx";
18326305048SRakesh Pillai
18426305048SRakesh Pillai        memory-region = <&wpss_mem>;
18526305048SRakesh Pillai
18626305048SRakesh Pillai        qcom,qmp = <&aoss_qmp>;
18726305048SRakesh Pillai
18826305048SRakesh Pillai        qcom,smem-states = <&wpss_smp2p_out 0>;
18926305048SRakesh Pillai        qcom,smem-state-names = "stop";
19026305048SRakesh Pillai
19126305048SRakesh Pillai        resets = <&aoss_reset AOSS_CC_WCSS_RESTART>,
19226305048SRakesh Pillai                 <&pdc_reset PDC_WPSS_SYNC_RESET>;
19326305048SRakesh Pillai        reset-names = "restart", "pdc_sync";
19426305048SRakesh Pillai
19526305048SRakesh Pillai        qcom,halt-regs = <&tcsr_mutex 0x37000>;
19626305048SRakesh Pillai
19726305048SRakesh Pillai        glink-edge {
19826305048SRakesh Pillai            interrupts-extended = <&ipcc IPCC_CLIENT_WPSS
19926305048SRakesh Pillai                                         IPCC_MPROC_SIGNAL_GLINK_QMP
20026305048SRakesh Pillai                                         IRQ_TYPE_EDGE_RISING>;
20126305048SRakesh Pillai            mboxes = <&ipcc IPCC_CLIENT_WPSS
20226305048SRakesh Pillai                            IPCC_MPROC_SIGNAL_GLINK_QMP>;
20326305048SRakesh Pillai
20426305048SRakesh Pillai            label = "wpss";
20526305048SRakesh Pillai            qcom,remote-pid = <13>;
20626305048SRakesh Pillai        };
20726305048SRakesh Pillai    };
208