# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/msm/sys-pm-violators.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm Technologies, Inc. System PM Violoators

maintainers:
       - Maulik Shah <quic_mkshah@quicinc.com>

description: |
  System PM Violoators is a virtual device sends a QMP message to AOP to start
  recording subsystems that are preventing system low power modes - AOSS sleep,
  CX PC, DDR low power from happening during a test duration. The stats are
  saved in MSGRAM and are read and displayed from Linux in debugfs.

properties:
  compatible:
    enum:
      - qcom,sys-pm-parrot
      - qcom,sys-pm-ravelin
      - qcom,sys-pm-lahaina
      - qcom,sys-pm-waipio
      - qcom,sys-pm-kalama
      - qcom,sys-pm-pineapple
      - qcom,sys-pm-monaco-auto
      - qcom,sys-pm-sun
      - qcom,sys-pm-tuna
      - qcom,sys-pm-kera
      - qcom,sys-pm-sdxkova

  reg:
    maxItems: 1
    description:
      The address on the AOP Message RAM from where the stats are read.

  qcom,qmp:
    $ref: /schemas/types.yaml#/definitions/phandle
    description: Handle to the QMP mailbox.

required:
  - compatible
  - reg
  - qcom,qmp

allOf:
  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,sys-pm-sun
              - qcom,sys-pm-tuna
              - qcom,sys-pm-kera
              - qcom,sys-pm-pineapple
              - qcom,sys-pm-parrot
              - qcom,sys-pm-ravelin
              - qcom,sys-pm-sdxkova

    then:
      properties:
        reg:
          items:
            - description: AOP Message RAM base register region
        qcom,qmp:
          items:
            - description: Handle to the QMP mailbox.

additionalProperties: false

examples:
  - |
    sys-pm-vx@c320000 {
      compatible = "qcom,sys-pm-violators", "qcom,sys-pm-lahaina";
      reg = <0xc320000 0x0400>;
      qcom,qmp = <&aoss_qmp>;
    };
