# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/remoteproc/qcom,sc7180-pas.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm SC7180/SC7280 Peripheral Authentication Service

maintainers:
  - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>

description:
  Qualcomm SC7180/SC7280 SoC Peripheral Authentication Service loads and boots
  firmware on the Qualcomm DSP Hexagon cores.

properties:
  compatible:
    enum:
      - qcom,sc7180-mpss-pas
      - qcom,sc7280-mpss-pas

  reg:
    maxItems: 1

  clocks:
    items:
      - description: XO clock

  clock-names:
    items:
      - const: xo

  interrupts:
    minItems: 6

  interrupt-names:
    minItems: 6

  power-domains:
    minItems: 2
    items:
      - description: CX power domain
      - description: MX power domain
      - description: MSS power domain

  power-domain-names:
    minItems: 2
    items:
      - const: cx
      - const: mx
      - const: mss

  memory-region:
    minItems: 1
    description: Reference to the reserved-memory for the Hexagon core

  qcom,qmp:
    $ref: /schemas/types.yaml#/definitions/phandle
    description: Reference to the AOSS side-channel message RAM.

  smd-edge: false

  firmware-name:
    $ref: /schemas/types.yaml#/definitions/string
    description: Firmware name for the Hexagon core

required:
  - compatible
  - reg

allOf:
  - $ref: /schemas/remoteproc/qcom,pas-common.yaml#
  - if:
      properties:
        compatible:
          enum:
            - qcom,sc7180-mpss-pas
    then:
      properties:
        power-domains:
          minItems: 3
        power-domain-names:
          minItems: 3
    else:
      properties:
        power-domains:
          maxItems: 2
        power-domain-names:
          maxItems: 2

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/clock/qcom,rpmh.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/power/qcom-rpmpd.h>

    remoteproc@4080000 {
        compatible = "qcom,sc7180-mpss-pas";
        reg = <0x04080000 0x4040>;

        clocks = <&rpmhcc RPMH_CXO_CLK>;
        clock-names = "xo";

        interrupts-extended = <&intc GIC_SPI 266 IRQ_TYPE_EDGE_RISING>,
                              <&modem_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
                              <&modem_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
                              <&modem_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
                              <&modem_smp2p_in 3 IRQ_TYPE_EDGE_RISING>,
                              <&modem_smp2p_in 7 IRQ_TYPE_EDGE_RISING>;
        interrupt-names = "wdog", "fatal", "ready", "handover",
                          "stop-ack", "shutdown-ack";

        memory-region = <&mpss_mem>;

        power-domains = <&rpmhpd SC7180_CX>,
                        <&rpmhpd SC7180_MX>,
                        <&rpmhpd SC7180_MSS>;
        power-domain-names = "cx", "mx", "mss";

        qcom,qmp = <&aoss_qmp>;
        qcom,smem-states = <&modem_smp2p_out 0>;
        qcom,smem-state-names = "stop";

        glink-edge {
            interrupts = <GIC_SPI 449 IRQ_TYPE_EDGE_RISING>;
            label = "modem";
            qcom,remote-pid = <1>;
            mboxes = <&apss_shared 12>;
        };
    };
