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 <[email protected]>
---
See also:
https://lore.kernel.org/all/[email protected]/
https://lore.kernel.org/all/[email protected]/
---
.../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 <[email protected]>
+
+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
--
2.34.1
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 <[email protected]>
>
> ---
>
> See also:
> https://lore.kernel.org/all/[email protected]/
> https://lore.kernel.org/all/[email protected]/
> ---
> .../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 <[email protected]>
> +
> +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 <[email protected]>
>>
>> ---
>>
>> See also:
>> https://lore.kernel.org/all/[email protected]/
>> https://lore.kernel.org/all/[email protected]/
>> ---
>> .../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 <[email protected]>
>> +
>> +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 <[email protected]>
> >
> > ---
> >
> > See also:
> > https://lore.kernel.org/all/[email protected]/
> > https://lore.kernel.org/all/[email protected]/
> > ---
> > .../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 <[email protected]>
> > +
> > +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