Hi, On Wed, Sep 07, 2022 at 06:32:18PM +0200, Pali Rohár wrote: > On Wednesday 07 September 2022 14:36:30 Krzysztof Kozlowski wrote: > > Add common schema for restart and shutdown handlers, so they all use > > same meaning of "priority" field. The Linux drivers already have this > > property and some systems want to customize it per-board in DTS. > > > > Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx> > > > > --- > > > > See also: > > https://lore.kernel.org/all/8fe93da3-f768-16ae-7025-1cfa97a42b27@xxxxxxxxxx/ > > https://lore.kernel.org/all/20220831081715.14673-1-pali@xxxxxxxxxx/ > > --- > > .../bindings/power/reset/gpio-restart.yaml | 13 ++------ > > .../bindings/power/reset/restart-handler.yaml | 30 +++++++++++++++++++ > > 2 files changed, 33 insertions(+), 10 deletions(-) > > create mode 100644 Documentation/devicetree/bindings/power/reset/restart-handler.yaml > > > > diff --git a/Documentation/devicetree/bindings/power/reset/gpio-restart.yaml b/Documentation/devicetree/bindings/power/reset/gpio-restart.yaml > > index a72d5c721516..d3d18e0f5db3 100644 > > --- a/Documentation/devicetree/bindings/power/reset/gpio-restart.yaml > > +++ b/Documentation/devicetree/bindings/power/reset/gpio-restart.yaml > > @@ -25,6 +25,9 @@ description: > > > inactive-delay, the GPIO is driven active again. After a delay specified by wait-delay, the > > restart handler completes allowing other restart handlers to be attempted. > > > > +allOf: > > + - $ref: restart-handler.yaml# > > + > > properties: > > compatible: > > const: gpio-restart > > @@ -41,16 +44,6 @@ properties: > > in its inactive state. > > > > priority: > > - $ref: /schemas/types.yaml#/definitions/uint32 > > - description: | > > - A priority ranging from 0 to 255 (default 129) according to the following guidelines: > > - > > - 0: Restart handler of last resort, with limited restart capabilities. > > - 128: Default restart handler; use if no other restart handler is expected to be available, > > - and/or if restart functionality is sufficient to restart the entire system. > > - 255: Highest priority restart handler, will preempt all other restart handlers. > > - minimum: 0 > > - maximum: 255 > > default: 129 > > > > active-delay: > > diff --git a/Documentation/devicetree/bindings/power/reset/restart-handler.yaml b/Documentation/devicetree/bindings/power/reset/restart-handler.yaml > > new file mode 100644 > > index 000000000000..f5d22ca0cd45 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/power/reset/restart-handler.yaml > > @@ -0,0 +1,30 @@ > > +# SPDX-License-Identifier: GPL-2.0-only or BSD-2-Clause > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/power/reset/restart-handler.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: Restart and shutdown handler generic binding > > + > > +maintainers: > > + - Sebastian Reichel <sre@xxxxxxxxxx> > > + > > +description: > > + Restart and shutdown handler device is responsible for powering off the > > + system, e.g. my cutting off the power. System might have several restart > > + handlers, which usually are tried from most precise to last resort. > > + > > +properties: > > + priority: > > + $ref: /schemas/types.yaml#/definitions/uint32 > > IIRC priority is signed integer number, not unsigned. > > > + description: | > > + A priority ranging from 0 to 255 according to the following guidelines:: > > + 0: Restart handler of last resort, with limited restart capabilities. > > + 128: Typical, default restart handler; use if no other restart handler > > + is expected to be available, and/or if restart functionality is > > + sufficient to restart the entire system. > > + 255: Highest priority restart handler, will preempt all other restart handlers. > > + minimum: 0 > > + maximum: 255 > > And IIRC also other values (above 255 or below 0) are allowed for tuning > two "highest" or two "last resort" handlers. > > This needs to be checked / tested to ensure that new schema is not incorrect. priority is blindly copied into the priority field of struct notifier_block, which is of type int. But that is an implementation detail. I think the proposal from Krzysztof looks good. But let's wait a bit to give Rob a chance to review. -- Sebastian
Attachment:
signature.asc
Description: PGP signature