%YAML 1.2
---
$id: http://devicetree.org/schemas/soc/qcom/soc-sleep-stats.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm Technologies, Inc. (QTI) SoC sleep stats bindings

maintainers:
  - Maulik Shah <mkshah@codeaurora.org>
  - Lina Iyer <ilina@codeaurora.org>

description:
  Always On Processor/Resource Power Manager maintains statistics of the SoC
  sleep modes involving powering down of the rails and oscillator clock.

  Statistics includes SoC sleep mode type, number of times low power mode were
  entered, time of last entry, time of last exit and accumulated sleep duration.

properties:
  compatible:
    enum:
      - qcom,rpmh-sleep-stats-legacy
      - qcom,rpmh-sleep-stats
      - qcom,rpm-sleep-stats

  reg:
    maxItems: 1

  qcom,drv-max:
    maxItems: 1
    Value type: <u32>
    Definition: Drv max value supported on target.

  ss-name:
    $ref: /schemas/types.yaml#/definitions/string
    Value type: <stringlist>
    Definition: Supported subsystem names. Must be from "modem", "adsp",
                "adsp_island", "cdsp", "slpi", "slpi_island", "apss",
                "gpu", "display".
  mboxes:
    $ref: "/schemas/types.yaml#/definitions/phandle-array"
    maxItems: 1
    Value type: <prop-encoded-array>
    Definition: List of QMP mailbox phandle and channel identifier tuples.

  ddr-freq-update:
    Usage: optional
    Value type: <boolean>
    Definition: Boolean property to support to get ddr freq distribution.

required:
  - compatible
  - reg

examples:
  # Example of rpmh sleep stats
  - |
    rpmh-sleep-stats@c3f0000 {
      compatible = "qcom,rpmh-sleep-stats";
      reg = <0 0xc3f0000 0 0x400>;
      qcom,drv-max = <0x14>;
      ss-name = "modem", "adsp", "adsp_island",
                "cdsp", "slpi", "slpi_island",
                "apss";
      mboxes = <&qmp_aop 0>;
    };
  # Example of rpm sleep stats
  - |
    rpm-sleep-stats@4690000 {
      compatible = "qcom,rpm-sleep-stats";
      reg = <0 0x04690000 0 0x400>;
    };
  # Example of rpmh sleep stats that supports to get ddr freq distribution
  - |
    rpmh-sleep-stats@c3f0000 {
      compatible = "qcom,rpmh-sleep-stats";
      reg = <0 0xc3f0000 0 0x400>;
      qcom,drv-max = <0x14>;
      ss-name = "modem", "adsp", "adsp_island",
                "cdsp", "slpi", "slpi_island",
                "apss";
      mboxes = <&qmp_aop 0>;
      ddr-freq-update;
    };
    # Example of legacy rpmh sleep stats
  - |
    rpmh-sleep-stats@c3f0000 {
      compatible = "qcom,rpmh-sleep-stats-legacy";
      reg = <0 0xc3f0000 0 0x400>;
      ss-name = "modem", "adsp", "adsp_island",
                "cdsp", "slpi", "slpi_island",
                "apss";
    };
...
