162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/soc/qcom/qcom,aoss-qmp.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Qualcomm Always-On Subsystem side channel
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Bjorn Andersson <bjorn.andersson@linaro.org>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_cidescription:
1362306a36Sopenharmony_ci  This binding describes the hardware component responsible for side channel
1462306a36Sopenharmony_ci  requests to the always-on subsystem (AOSS), used for certain power management
1562306a36Sopenharmony_ci  requests that is not handled by the standard RPMh interface. Each client in the
1662306a36Sopenharmony_ci  SoC has its own block of message RAM and IRQ for communication with the AOSS.
1762306a36Sopenharmony_ci  The protocol used to communicate in the message RAM is known as Qualcomm
1862306a36Sopenharmony_ci  Messaging Protocol (QMP)
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci  The AOSS side channel exposes control over a set of resources, used to control
2162306a36Sopenharmony_ci  a set of debug related clocks and to affect the low power state of resources
2262306a36Sopenharmony_ci  related to the secondary subsystems.
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ciproperties:
2562306a36Sopenharmony_ci  compatible:
2662306a36Sopenharmony_ci    items:
2762306a36Sopenharmony_ci      - enum:
2862306a36Sopenharmony_ci          - qcom,qdu1000-aoss-qmp
2962306a36Sopenharmony_ci          - qcom,sa8775p-aoss-qmp
3062306a36Sopenharmony_ci          - qcom,sc7180-aoss-qmp
3162306a36Sopenharmony_ci          - qcom,sc7280-aoss-qmp
3262306a36Sopenharmony_ci          - qcom,sc8180x-aoss-qmp
3362306a36Sopenharmony_ci          - qcom,sc8280xp-aoss-qmp
3462306a36Sopenharmony_ci          - qcom,sdm845-aoss-qmp
3562306a36Sopenharmony_ci          - qcom,sm6350-aoss-qmp
3662306a36Sopenharmony_ci          - qcom,sm8150-aoss-qmp
3762306a36Sopenharmony_ci          - qcom,sm8250-aoss-qmp
3862306a36Sopenharmony_ci          - qcom,sm8350-aoss-qmp
3962306a36Sopenharmony_ci          - qcom,sm8450-aoss-qmp
4062306a36Sopenharmony_ci          - qcom,sm8550-aoss-qmp
4162306a36Sopenharmony_ci      - const: qcom,aoss-qmp
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci  reg:
4462306a36Sopenharmony_ci    maxItems: 1
4562306a36Sopenharmony_ci    description:
4662306a36Sopenharmony_ci      The base address and size of the message RAM for this client's
4762306a36Sopenharmony_ci      communication with the AOSS
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci  interrupts:
5062306a36Sopenharmony_ci    maxItems: 1
5162306a36Sopenharmony_ci    description:
5262306a36Sopenharmony_ci      Should specify the AOSS message IRQ for this client
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ci  mboxes:
5562306a36Sopenharmony_ci    maxItems: 1
5662306a36Sopenharmony_ci    description:
5762306a36Sopenharmony_ci      Reference to the mailbox representing the outgoing doorbell in APCS for
5862306a36Sopenharmony_ci      this client, as described in mailbox/mailbox.txt
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ci  "#clock-cells":
6162306a36Sopenharmony_ci    const: 0
6262306a36Sopenharmony_ci    description:
6362306a36Sopenharmony_ci      The single clock represents the QDSS clock.
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_cirequired:
6662306a36Sopenharmony_ci  - compatible
6762306a36Sopenharmony_ci  - reg
6862306a36Sopenharmony_ci  - interrupts
6962306a36Sopenharmony_ci  - mboxes
7062306a36Sopenharmony_ci  - "#clock-cells"
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ciadditionalProperties: false
7362306a36Sopenharmony_ci
7462306a36Sopenharmony_cipatternProperties:
7562306a36Sopenharmony_ci  "^(cx|mx|ebi)$":
7662306a36Sopenharmony_ci    type: object
7762306a36Sopenharmony_ci    description:
7862306a36Sopenharmony_ci      The AOSS side channel also provides the controls for three cooling devices,
7962306a36Sopenharmony_ci      these are expressed as subnodes of the QMP node. The name of the node is
8062306a36Sopenharmony_ci      used to identify the resource and must therefore be "cx", "mx" or "ebi".
8162306a36Sopenharmony_ci
8262306a36Sopenharmony_ci    properties:
8362306a36Sopenharmony_ci      "#cooling-cells":
8462306a36Sopenharmony_ci        const: 2
8562306a36Sopenharmony_ci
8662306a36Sopenharmony_ci    required:
8762306a36Sopenharmony_ci      - "#cooling-cells"
8862306a36Sopenharmony_ci
8962306a36Sopenharmony_ci    additionalProperties: false
9062306a36Sopenharmony_ci
9162306a36Sopenharmony_ciexamples:
9262306a36Sopenharmony_ci  - |
9362306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/arm-gic.h>
9462306a36Sopenharmony_ci
9562306a36Sopenharmony_ci    aoss_qmp: qmp@c300000 {
9662306a36Sopenharmony_ci      compatible = "qcom,sdm845-aoss-qmp", "qcom,aoss-qmp";
9762306a36Sopenharmony_ci      reg = <0x0c300000 0x100000>;
9862306a36Sopenharmony_ci      interrupts = <GIC_SPI 389 IRQ_TYPE_EDGE_RISING>;
9962306a36Sopenharmony_ci      mboxes = <&apss_shared 0>;
10062306a36Sopenharmony_ci
10162306a36Sopenharmony_ci      #clock-cells = <0>;
10262306a36Sopenharmony_ci
10362306a36Sopenharmony_ci      cx_cdev: cx {
10462306a36Sopenharmony_ci        #cooling-cells = <2>;
10562306a36Sopenharmony_ci      };
10662306a36Sopenharmony_ci
10762306a36Sopenharmony_ci      mx_cdev: mx {
10862306a36Sopenharmony_ci        #cooling-cells = <2>;
10962306a36Sopenharmony_ci      };
11062306a36Sopenharmony_ci    };
11162306a36Sopenharmony_ci...
112