Add binding for Power State Change Reason (PSCR) subsystem
Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
---
.../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 <o.rempel@pengutronix.de>
+
+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
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 <o.rempel@pengutronix.de> > --- > .../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 <o.rempel@pengutronix.de> > + > +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 >
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 |
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 <o.rempel@pengutronix.de> > --- > .../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/20240119132521.3609945-2-o.rempel@pengutronix.de 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.
© 2016 - 2025 Red Hat, Inc.