Re: [PATCH v4 1/4] dt-bindings: Introduce SoC sleep stats bindings

From: Bjorn Andersson
Date: Mon Mar 09 2020 - 14:51:29 EST


On Mon 09 Mar 11:23 PDT 2020, Stephen Boyd wrote:

> Quoting Maulik Shah (2020-03-09 04:14:14)
> > From: Mahesh Sivasubramanian <msivasub@xxxxxxxxxxxxxx>
> >
> > Add device binding documentation for Qualcomm Technologies, Inc. (QTI)
> > SoC sleep stats driver. The driver is used for displaying SoC 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>
> > ---
> > .../bindings/soc/qcom/soc-sleep-stats.yaml | 46 ++++++++++++++++++++++
> > 1 file changed, 46 insertions(+)
> > create mode 100644 Documentation/devicetree/bindings/soc/qcom/soc-sleep-stats.yaml
> >
> > diff --git a/Documentation/devicetree/bindings/soc/qcom/soc-sleep-stats.yaml b/Documentation/devicetree/bindings/soc/qcom/soc-sleep-stats.yaml
> > new file mode 100644
> > index 00000000..7c29c61
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/soc/qcom/soc-sleep-stats.yaml
> > @@ -0,0 +1,46 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > +%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@xxxxxxxxxxxxxx>
> > + - Lina Iyer <ilina@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
> > +
> > +examples:
> > + # Example of rpmh sleep stats
> > + - |
> > + rpmh_sleep_stats@c3f0000 {
> > + compatible = "qcom,rpmh-sleep-stats";
> > + reg = <0 0xc3f0000 0 0x400>;
> > + };
> > + # Example of rpm sleep stats
> > + - |
> > + rpm_sleep_stats@4690000 {
>
> Node names don't have underscores. It really feels like we should be able
> to get away with not having this device node at all. Why can't we have
> the rpm message ram be a node that covers the entire range and then have
> that either create a platform device for debugfs stats or just have it
> register the stat information from whatever driver attaches to that
> node?
>
> Carving this up into multiple nodes and making compatible strings
> doesn't seem very useful here because we're essentially making device
> nodes in DT for logical software components that exist in the rpm
> message ram.

It's been a while since I discussed this with Lina, but iirc I opted for
the model you suggest and we concluded that it wouldn't fit with the RPM
case.

And given that, for reasons unknown to me, msgram isn't a single region,
but a set of adjacent memory regions, this does seem to represent
hardware better.

Regards,
Bjorn