2024-01-19 13:26:35

by Oleksij Rempel

[permalink] [raw]
Subject: [RFC PATCH v1 1/7] dt-bindings: power: reset: add generic PSCR binding trackers

Add binding for Power State Change Reason (PSCR) subsystem

Signed-off-by: Oleksij Rempel <[email protected]>
---
.../devicetree/bindings/power/reset/pscr.yaml | 51 +++++++++++++++++++
1 file changed, 51 insertions(+)
create mode 100644 Documentation/devicetree/bindings/power/reset/pscr.yaml

diff --git a/Documentation/devicetree/bindings/power/reset/pscr.yaml b/Documentation/devicetree/bindings/power/reset/pscr.yaml
new file mode 100644
index 000000000000..1ce973f3473c
--- /dev/null
+++ b/Documentation/devicetree/bindings/power/reset/pscr.yaml
@@ -0,0 +1,51 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/power/state-change/pscr.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Power State Change Reason (PSCR)
+
+maintainers:
+ - Oleksij Rempel <[email protected]>
+
+description: Binding for devices responsable to store reasons for power state
+ changes such as reboot and power-off. Reasons like unknown, under voltage,
+ and over temperature are captured for diagnostic or automatic recovery
+ purposes.
+
+properties:
+ $nodename:
+ pattern: "^pscr(@.*|-([0-9]|[1-9][0-9]+))?$"
+
+ pscr-unknown:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: Value to indicate an unknown reason for the power state change.
+
+ pscr-under-voltage:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: |
+ Value to indicate an under-voltage condition of a system critical
+ regulator as the reason for the power state change.
+
+ pscr-over-current:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: |
+ Value to indicate an over-current condition of a system ctitical regulator
+ as the reason for the power state change.
+
+ pscr-regulator-failure:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: |
+ Value to indicate an unknow, system ctitical regulator related failure
+ as the reason for the power state change.
+
+ pscr-over-temperature:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: |
+ Value to indicate a system critical over-temperature condition as the
+ reason for the power state change.
+
+additionalProperties: true
+
+...
--
2.39.2



2024-01-19 14:51:18

by Rob Herring (Arm)

[permalink] [raw]
Subject: Re: [RFC PATCH v1 1/7] dt-bindings: power: reset: add generic PSCR binding trackers


On Fri, 19 Jan 2024 14:25:15 +0100, Oleksij Rempel wrote:
> Add binding for Power State Change Reason (PSCR) subsystem
>
> Signed-off-by: Oleksij Rempel <[email protected]>
> ---
> .../devicetree/bindings/power/reset/pscr.yaml | 51 +++++++++++++++++++
> 1 file changed, 51 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/power/reset/pscr.yaml
>

My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
on your patch (DT_CHECKER_FLAGS is new in v5.13):

yamllint warnings/errors:

dtschema/dtc warnings/errors:
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/power/reset/pscr.yaml: $id: Cannot determine base path from $id, relative path/filename doesn't match actual path or filename
$id: http://devicetree.org/schemas/power/state-change/pscr.yaml
file: /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/power/reset/pscr.yaml

doc reference errors (make refcheckdocs):

See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/[email protected]

The base for the series is generally the latest rc1. A different dependency
should be noted in *this* patch.

If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:

pip3 install dtschema --upgrade

Please check and re-submit after running the above command yourself. Note
that DT_SCHEMA_FILES can be set to your schema file to speed up checking
your schema. However, it must be unset to test all examples with your schema.


2024-01-19 17:28:50

by Rob Herring (Arm)

[permalink] [raw]
Subject: Re: [RFC PATCH v1 1/7] dt-bindings: power: reset: add generic PSCR binding trackers

On Fri, Jan 19, 2024 at 02:25:15PM +0100, Oleksij Rempel wrote:
> Add binding for Power State Change Reason (PSCR) subsystem

Why?

How is this different from the reboot reason binding?

>
> Signed-off-by: Oleksij Rempel <[email protected]>
> ---
> .../devicetree/bindings/power/reset/pscr.yaml | 51 +++++++++++++++++++
> 1 file changed, 51 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/power/reset/pscr.yaml
>
> diff --git a/Documentation/devicetree/bindings/power/reset/pscr.yaml b/Documentation/devicetree/bindings/power/reset/pscr.yaml
> new file mode 100644
> index 000000000000..1ce973f3473c
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/power/reset/pscr.yaml
> @@ -0,0 +1,51 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/power/state-change/pscr.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Power State Change Reason (PSCR)
> +
> +maintainers:
> + - Oleksij Rempel <[email protected]>
> +
> +description: Binding for devices responsable to store reasons for power state

responsible

> + changes such as reboot and power-off. Reasons like unknown, under voltage,
> + and over temperature are captured for diagnostic or automatic recovery
> + purposes.
> +
> +properties:
> + $nodename:
> + pattern: "^pscr(@.*|-([0-9]|[1-9][0-9]+))?$"

Drop. This could be used in any random device.

> +
> + pscr-unknown:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: Value to indicate an unknown reason for the power state change.

What's an undocumented value? It would be unknown too, so just drop this
property.

> +
> + pscr-under-voltage:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: |
> + Value to indicate an under-voltage condition of a system critical
> + regulator as the reason for the power state change.
> +
> + pscr-over-current:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: |
> + Value to indicate an over-current condition of a system ctitical regulator
> + as the reason for the power state change.
> +
> + pscr-regulator-failure:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: |
> + Value to indicate an unknow, system ctitical regulator related failure
> + as the reason for the power state change.
> +
> + pscr-over-temperature:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: |
> + Value to indicate a system critical over-temperature condition as the
> + reason for the power state change.
> +
> +additionalProperties: true
> +
> +...
> --
> 2.39.2
>

2024-01-19 17:54:45

by Oleksij Rempel

[permalink] [raw]
Subject: Re: [RFC PATCH v1 1/7] dt-bindings: power: reset: add generic PSCR binding trackers

On Fri, Jan 19, 2024 at 11:28:38AM -0600, Rob Herring wrote:
> On Fri, Jan 19, 2024 at 02:25:15PM +0100, Oleksij Rempel wrote:
> > Add binding for Power State Change Reason (PSCR) subsystem
>
> Why?
>
> How is this different from the reboot reason binding?

I was not able to find "reboot reason", you probably refer to "reboot
mode".

Reboot Mode:
Purpose: Dictates how the system should reboot (e.g., normal, recovery,
bootloader).
Usage: Provides instructions for the next boot mode.
Scenario: Utilized in planned reboots or software-triggered reset scenarios.

PSCR (Power State Change Reasons):
Purpose: Logs the reason behind a power state change (e.g., voltage drop,
over-temperature).
Usage: Used for rapid logging and post-event analysis, potentially informing
automatic decision-making in subsequent boots.
Scenario: Critical in abrupt power-down situations where immediate, detailed
decision-making is not possible.

Regards,
Oleksij
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |