Message ID | 20220907123630.57383-1-krzysztof.kozlowski@linaro.org (mailing list archive) |
---|---|
State | Handled Elsewhere, archived |
Headers | show |
Series | dt-bindings: power: reset: restart-handler: add common schema | expand |
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@linaro.org> > > --- > > See also: > https://lore.kernel.org/all/8fe93da3-f768-16ae-7025-1cfa97a42b27@linaro.org/ > https://lore.kernel.org/all/20220831081715.14673-1-pali@kernel.org/ > --- > .../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@kernel.org> > + > +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. > + > +additionalProperties: true > -- > 2.34.1 >
On 07/09/2022 18:32, 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@linaro.org> >> >> --- >> >> See also: >> https://lore.kernel.org/all/8fe93da3-f768-16ae-7025-1cfa97a42b27@linaro.org/ >> https://lore.kernel.org/all/20220831081715.14673-1-pali@kernel.org/ >> --- >> .../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@kernel.org> >> + >> +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. Although technically in the kernel it is int, all existing kernel users assign here unsigned number and existing bindings were unsigned int, so I don't think there is benefit to change it to signed. Best regards, Krzysztof
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@linaro.org> > > > > --- > > > > See also: > > https://lore.kernel.org/all/8fe93da3-f768-16ae-7025-1cfa97a42b27@linaro.org/ > > https://lore.kernel.org/all/20220831081715.14673-1-pali@kernel.org/ > > --- > > .../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@kernel.org> > > + > > +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
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@kernel.org> + +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 + 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 + +additionalProperties: true
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@linaro.org> --- See also: https://lore.kernel.org/all/8fe93da3-f768-16ae-7025-1cfa97a42b27@linaro.org/ https://lore.kernel.org/all/20220831081715.14673-1-pali@kernel.org/ --- .../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