Re: [PATCH v11 1/5] dt-bindings: Introduce QCOM Sleep stats bindings

From: Stephan Gerhold
Date: Thu Oct 07 2021 - 15:53:51 EST


On Thu, Oct 07, 2021 at 03:27:25PM +0530, Maulik Shah wrote:
> From: Mahesh Sivasubramanian <msivasub@xxxxxxxxxxxxxx>
>
> Add device binding documentation for Qualcomm Technologies, Inc. (QTI)
> Sleep stats driver. The driver is used for displaying Sleep statistic maintained
> by Always On Processor or Resource Power Manager.
>
> Cc: devicetree@xxxxxxxxxxxxxxx
> Signed-off-by: Mahesh Sivasubramanian <msivasub@xxxxxxxxxxxxxx>
> Signed-off-by: Lina Iyer <ilina@xxxxxxxxxxxxxx>
> Signed-off-by: Maulik Shah <mkshah@xxxxxxxxxxxxxx>
> Reviewed-by: Rob Herring <robh@xxxxxxxxxx>
> Reviewed-by: Bjorn Andersson <bjorn.andersson@xxxxxxxxxx>
> Reviewed-by: Stephen Boyd <swboyd@xxxxxxxxxxxx>
> ---
> .../bindings/soc/qcom/qcom-sleep-stats.yaml | 47 ++++++++++++++++++++++
> 1 file changed, 47 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom-sleep-stats.yaml
>
> diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom-sleep-stats.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom-sleep-stats.yaml
> new file mode 100644
> index 0000000..5213daf
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/soc/qcom/qcom-sleep-stats.yaml
> @@ -0,0 +1,47 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/soc/qcom/qcom-sleep-stats.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Qualcomm Technologies, Inc. (QTI) Sleep stats bindings
> +
> +maintainers:
> + - Maulik Shah <mkshah@xxxxxxxxxxxxxx>
> +
> +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
> + - qcom,rpm-sleep-stats
> +
> + reg:
> + maxItems: 1
> +
> +required:
> + - compatible
> + - reg
> +
> +additionalProperties: false
> +
> +examples:
> + # Example of rpmh sleep stats
> + - |
> + sram@c3f0000 {
> + compatible = "qcom,rpmh-sleep-stats";
> + reg = <0x0c3f0000 0x400>;
> + };
> + # Example of rpm sleep stats
> + - |
> + sram@4690000 {
> + compatible = "qcom,rpm-sleep-stats";
> + reg = <0x04690000 0x400>;
> + };

Does this region really only contain "rpm-*sleep*-stats"? AFAICT this is
really a more generic memory region where various offsets are read from.

These are all the offsets in msm8998-pm.dtsi downstream [1]:
...9000c: rpm-rail-stats offset
...90014: rpm-sleep-stats offset (RPM_DYNAMIC_ADDR in your driver)
...90018: rpm-log offset
...9001c: "RPM FREE HEAP SPACE"

How would you set up any of the other drivers if the entire region
is declared as "rpm-sleep-stats"?

Perhaps this region should have a more generic name that represents what
it actually is and not only one of the information it contains, similar
to "qcom,rpm-msg-ram"?

Thanks,
Stephan

[1]: https://source.codeaurora.org/quic/la/kernel/msm-4.4/tree/arch/arm/boot/dts/qcom/msm8998-pm.dtsi?h=LA.UM.8.4.1.c25#n271