linux-pm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH v1 0/3] convert gpio-restart bindings to yaml
@ 2021-12-30 18:06 Sander Vanheule
  2021-12-30 18:06 ` [RFC PATCH v1 1/3] dt-bindings: power: reset: Convert gpio-restart binding to schema Sander Vanheule
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Sander Vanheule @ 2021-12-30 18:06 UTC (permalink / raw)
  To: linux-pm, devicetree
  Cc: Sebastian Reichel, Rob Herring, linux-kernel, Sander Vanheule

This patch series first converts the gpio-restart bindings to the schema
format, so device descriptions can be verified against the binding.  Two
smaller patches then follow: one to fix the documentation, and a one to add
suffixes to values with implied units.

Open questions:
- Who should I add as maintainer for the binding, if not myself (patch 1)
- Should properties with names that don't match the guidelines be updated, or
  can the original names be kept? (patch 2, 3)
- Since the "priority" property is a Linux kernel specific thing, should it
  just deprecated entirely? (patch 3)

Sander Vanheule (3):
  dt-bindings: power: reset: Convert gpio-restart binding to schema
  dt-bindings: power: reset: gpio-restart: Add -ms suffix to delays
  dt-bindings: power: reset: gpio-restart: Correct default priority

 .../bindings/power/reset/gpio-restart.txt     |  54 ----------
 .../bindings/power/reset/gpio-restart.yaml    | 101 ++++++++++++++++++
 2 files changed, 101 insertions(+), 54 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/power/reset/gpio-restart.txt
 create mode 100644 Documentation/devicetree/bindings/power/reset/gpio-restart.yaml

-- 
2.33.1


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [RFC PATCH v1 1/3] dt-bindings: power: reset: Convert gpio-restart binding to schema
  2021-12-30 18:06 [RFC PATCH v1 0/3] convert gpio-restart bindings to yaml Sander Vanheule
@ 2021-12-30 18:06 ` Sander Vanheule
  2021-12-30 18:11   ` Sander Vanheule
  2022-01-01 22:01   ` Rob Herring
  2021-12-30 18:06 ` [RFC PATCH v1 2/3] dt-bindings: power: reset: gpio-restart: Add -ms suffix to delays Sander Vanheule
  2021-12-30 18:06 ` [RFC PATCH v1 3/3] dt-bindings: power: reset: gpio-restart: Correct default priority Sander Vanheule
  2 siblings, 2 replies; 8+ messages in thread
From: Sander Vanheule @ 2021-12-30 18:06 UTC (permalink / raw)
  To: linux-pm, devicetree
  Cc: Sebastian Reichel, Rob Herring, linux-kernel, Sander Vanheule

Convert the gpio-restart binding from plain text format to a schema
binding, maintaining the original content and updating formatting where
required.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
---
 .../bindings/power/reset/gpio-restart.txt     | 54 -----------
 .../bindings/power/reset/gpio-restart.yaml    | 92 +++++++++++++++++++
 2 files changed, 92 insertions(+), 54 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/power/reset/gpio-restart.txt
 create mode 100644 Documentation/devicetree/bindings/power/reset/gpio-restart.yaml

diff --git a/Documentation/devicetree/bindings/power/reset/gpio-restart.txt b/Documentation/devicetree/bindings/power/reset/gpio-restart.txt
deleted file mode 100644
index af3701bc15c4..000000000000
--- a/Documentation/devicetree/bindings/power/reset/gpio-restart.txt
+++ /dev/null
@@ -1,54 +0,0 @@
-Drive a GPIO line that can be used to restart the system from a restart
-handler.
-
-This binding supports level and edge triggered reset.  At driver load
-time, the driver will request the given gpio line and install a restart
-handler. If the optional properties 'open-source' is not found, the GPIO line
-will be driven in the inactive state.  Otherwise its not driven until
-the restart is initiated.
-
-When the system is restarted, the restart handler will be invoked in
-priority order.  The gpio is configured as an output, and driven active,
-triggering a level triggered reset condition. This will also cause an
-inactive->active edge condition, triggering positive edge triggered
-reset. After a delay specified by active-delay, the GPIO is set to
-inactive, thus causing an active->inactive edge, triggering negative edge
-triggered reset. After a delay specified by 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.
-
-Required properties:
-- compatible : should be "gpio-restart".
-- gpios : The GPIO to set high/low, see "gpios property" in
-  Documentation/devicetree/bindings/gpio/gpio.txt. If the pin should be
-  low to reset the board set it to "Active Low", otherwise set
-  gpio to "Active High".
-
-Optional properties:
-- open-source : Treat the GPIO as being open source and defer driving
-  it to when the restart is initiated.  If this optional property is not
-  specified, the GPIO is initialized as an output in its inactive state.
-- priority : A priority ranging from 0 to 255 (default 128) 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
-- active-delay: Delay (default 100) to wait after driving gpio active [ms]
-- inactive-delay: Delay (default 100) to wait after driving gpio inactive [ms]
-- wait-delay: Delay (default 3000) to wait after completing restart
-  sequence [ms]
-
-Examples:
-
-gpio-restart {
-	compatible = "gpio-restart";
-	gpios = <&gpio 4 0>;
-	priority = <128>;
-	active-delay = <100>;
-	inactive-delay = <100>;
-	wait-delay = <3000>;
-};
diff --git a/Documentation/devicetree/bindings/power/reset/gpio-restart.yaml b/Documentation/devicetree/bindings/power/reset/gpio-restart.yaml
new file mode 100644
index 000000000000..6a1f4aeebf49
--- /dev/null
+++ b/Documentation/devicetree/bindings/power/reset/gpio-restart.yaml
@@ -0,0 +1,92 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/power/reset/gpio-restart.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: GPIO-driven system restart
+
+maintainers:
+  - TODO
+
+description:
+  Drive a GPIO line that can be used to restart the system from a restart
+  handler.
+
+  This binding supports level and edge triggered reset. At driver load time,
+  the driver will request the given gpio line and install a restart handler. If
+  the optional properties 'open-source' is not found, the GPIO line will be
+  driven in the inactive state. Otherwise its not driven until the restart is
+  initiated.
+
+  When the system is restarted, the restart handler will be invoked in priority
+  order. The gpio is configured as an output, and driven active, triggering a
+  level triggered reset condition. This will also cause an inactive->active
+  edge condition, triggering positive edge triggered reset. After a delay
+  specified by active-delay, the GPIO is set to inactive, thus causing an
+  active->inactive edge, triggering negative edge triggered reset. After a
+  delay specified by 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.
+
+properties:
+  compatible:
+    const: gpio-restart
+
+  gpios:
+    maxItems: 1
+    description:
+      The GPIO to set high/low, see "gpios property" in
+      Documentation/devicetree/bindings/gpio/gpio.txt. If the pin should be low
+      to reset the board set it to "Active Low", otherwise set gpio to "Active
+      High".
+
+  open-source:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      Treat the GPIO as being open source and defer driving it to when the
+      restart is initiated. If this optional property is not specified, the
+      GPIO is initialized as an output in its inactive state.
+
+  priority:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: |
+      A priority ranging from 0 to 255 (default 128) 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
+
+  active-delay:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: Delay (default 100) to wait after driving gpio active [ms]
+
+  inactive-delay:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: Delay (default 100) to wait after driving gpio inactive [ms]
+
+  wait-delay:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Delay (default 3000) to wait after completing restart sequence [ms]
+
+required:
+  - compatible
+  - gpios
+
+additionalProperties: false
+
+examples:
+  - |
+    gpio-restart {
+      compatible = "gpio-restart";
+      gpios = <&gpio 4 0>;
+      priority = <128>;
+      active-delay = <100>;
+      inactive-delay = <100>;
+      wait-delay = <3000>;
+    };
-- 
2.33.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [RFC PATCH v1 2/3] dt-bindings: power: reset: gpio-restart: Add -ms suffix to delays
  2021-12-30 18:06 [RFC PATCH v1 0/3] convert gpio-restart bindings to yaml Sander Vanheule
  2021-12-30 18:06 ` [RFC PATCH v1 1/3] dt-bindings: power: reset: Convert gpio-restart binding to schema Sander Vanheule
@ 2021-12-30 18:06 ` Sander Vanheule
  2022-01-10 20:38   ` Rob Herring
  2021-12-30 18:06 ` [RFC PATCH v1 3/3] dt-bindings: power: reset: gpio-restart: Correct default priority Sander Vanheule
  2 siblings, 1 reply; 8+ messages in thread
From: Sander Vanheule @ 2021-12-30 18:06 UTC (permalink / raw)
  To: linux-pm, devicetree
  Cc: Sebastian Reichel, Rob Herring, linux-kernel, Sander Vanheule

The delay properties are expressed in milliseconds, so the property
names should have a -ms suffix. Add the suffix, and deprecate the
original properties.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
---
 .../bindings/power/reset/gpio-restart.yaml    | 27 ++++++++++++-------
 1 file changed, 18 insertions(+), 9 deletions(-)

diff --git a/Documentation/devicetree/bindings/power/reset/gpio-restart.yaml b/Documentation/devicetree/bindings/power/reset/gpio-restart.yaml
index 6a1f4aeebf49..13827fe7b395 100644
--- a/Documentation/devicetree/bindings/power/reset/gpio-restart.yaml
+++ b/Documentation/devicetree/bindings/power/reset/gpio-restart.yaml
@@ -62,17 +62,26 @@ properties:
             restart handlers
 
   active-delay:
-    $ref: /schemas/types.yaml#/definitions/uint32
-    description: Delay (default 100) to wait after driving gpio active [ms]
+    $ref: '#/properties/active-delay-ms'
+    deprecated: true
 
   inactive-delay:
-    $ref: /schemas/types.yaml#/definitions/uint32
-    description: Delay (default 100) to wait after driving gpio inactive [ms]
+    $ref: '#/properties/inactive-delay-ms'
+    deprecated: true
 
   wait-delay:
-    $ref: /schemas/types.yaml#/definitions/uint32
+    $ref: '#/properties/wait-delay-ms'
+    deprecated: true
+
+  active-delay-ms:
+    description: Delay (default 100 ms) to wait after driving gpio active
+
+  inactive-delay-ms:
+    description: Delay (default 100 ms) to wait after driving gpio inactive
+
+  wait-delay-ms:
     description:
-      Delay (default 3000) to wait after completing restart sequence [ms]
+      Delay (default 3000 ms) to wait after completing restart sequence
 
 required:
   - compatible
@@ -86,7 +95,7 @@ examples:
       compatible = "gpio-restart";
       gpios = <&gpio 4 0>;
       priority = <128>;
-      active-delay = <100>;
-      inactive-delay = <100>;
-      wait-delay = <3000>;
+      active-delay-ms = <100>;
+      inactive-delay-ms = <100>;
+      wait-delay-ms = <3000>;
     };
-- 
2.33.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [RFC PATCH v1 3/3] dt-bindings: power: reset: gpio-restart: Correct default priority
  2021-12-30 18:06 [RFC PATCH v1 0/3] convert gpio-restart bindings to yaml Sander Vanheule
  2021-12-30 18:06 ` [RFC PATCH v1 1/3] dt-bindings: power: reset: Convert gpio-restart binding to schema Sander Vanheule
  2021-12-30 18:06 ` [RFC PATCH v1 2/3] dt-bindings: power: reset: gpio-restart: Add -ms suffix to delays Sander Vanheule
@ 2021-12-30 18:06 ` Sander Vanheule
  2 siblings, 0 replies; 8+ messages in thread
From: Sander Vanheule @ 2021-12-30 18:06 UTC (permalink / raw)
  To: linux-pm, devicetree
  Cc: Sebastian Reichel, Rob Herring, linux-kernel, Sander Vanheule

Commit bcd56fe1aa97 ("power: reset: gpio-restart: increase priority
slightly") changed the default restart priority 129, but did not update
the documentation. Correct this, so the driver and documentation have
the same default value.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
---
 Documentation/devicetree/bindings/power/reset/gpio-restart.yaml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/power/reset/gpio-restart.yaml b/Documentation/devicetree/bindings/power/reset/gpio-restart.yaml
index 13827fe7b395..ab26af93cb39 100644
--- a/Documentation/devicetree/bindings/power/reset/gpio-restart.yaml
+++ b/Documentation/devicetree/bindings/power/reset/gpio-restart.yaml
@@ -51,7 +51,7 @@ properties:
   priority:
     $ref: /schemas/types.yaml#/definitions/uint32
     description: |
-      A priority ranging from 0 to 255 (default 128) according to the following
+      A priority ranging from 0 to 255 (default 129) according to the following
       guidelines:
       0:    Restart handler of last resort, with limited restart
             capabilities
-- 
2.33.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [RFC PATCH v1 1/3] dt-bindings: power: reset: Convert gpio-restart binding to schema
  2021-12-30 18:06 ` [RFC PATCH v1 1/3] dt-bindings: power: reset: Convert gpio-restart binding to schema Sander Vanheule
@ 2021-12-30 18:11   ` Sander Vanheule
  2022-01-01 22:01   ` Rob Herring
  1 sibling, 0 replies; 8+ messages in thread
From: Sander Vanheule @ 2021-12-30 18:11 UTC (permalink / raw)
  To: linux-pm, devicetree; +Cc: Sebastian Reichel, Rob Herring, linux-kernel

On Thu, 2021-12-30 at 19:06 +0100, Sander Vanheule wrote:
> Convert the gpio-restart binding from plain text format to a schema
> binding, maintaining the original content and updating formatting where
> required.
> 
> Signed-off-by: Sander Vanheule <sander@svanheule.net>

I had these patches set aside since a few weeks already, but apparently this conversion
was merged last week. This patch can be disregarded, sorry for the noise.

Best,
Sander


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [RFC PATCH v1 1/3] dt-bindings: power: reset: Convert gpio-restart binding to schema
  2021-12-30 18:06 ` [RFC PATCH v1 1/3] dt-bindings: power: reset: Convert gpio-restart binding to schema Sander Vanheule
  2021-12-30 18:11   ` Sander Vanheule
@ 2022-01-01 22:01   ` Rob Herring
  1 sibling, 0 replies; 8+ messages in thread
From: Rob Herring @ 2022-01-01 22:01 UTC (permalink / raw)
  To: Sander Vanheule
  Cc: linux-pm, Sebastian Reichel, linux-kernel, devicetree, Rob Herring

On Thu, 30 Dec 2021 19:06:01 +0100, Sander Vanheule wrote:
> Convert the gpio-restart binding from plain text format to a schema
> binding, maintaining the original content and updating formatting where
> required.
> 
> Signed-off-by: Sander Vanheule <sander@svanheule.net>
> ---
>  .../bindings/power/reset/gpio-restart.txt     | 54 -----------
>  .../bindings/power/reset/gpio-restart.yaml    | 92 +++++++++++++++++++
>  2 files changed, 92 insertions(+), 54 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/power/reset/gpio-restart.txt
>  create mode 100644 Documentation/devicetree/bindings/power/reset/gpio-restart.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/linux-dt-review/Documentation/devicetree/bindings/power/reset/gpio-restart.yaml: maintainers:0: 'TODO' is not a 'email'
	from schema $id: http://devicetree.org/meta-schemas/base.yaml#
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/power/reset/gpio-restart.yaml: ignoring, error in schema: maintainers: 0
Documentation/devicetree/bindings/power/reset/gpio-restart.example.dt.yaml:0:0: /example-0/gpio-restart: failed to match any schema with compatible: ['gpio-restart']

doc reference errors (make refcheckdocs):

See https://patchwork.ozlabs.org/patch/1574223

This check can fail if there are any dependencies. The base for a patch
series is generally the most recent rc1.

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.


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [RFC PATCH v1 2/3] dt-bindings: power: reset: gpio-restart: Add -ms suffix to delays
  2021-12-30 18:06 ` [RFC PATCH v1 2/3] dt-bindings: power: reset: gpio-restart: Add -ms suffix to delays Sander Vanheule
@ 2022-01-10 20:38   ` Rob Herring
  2022-01-10 20:55     ` Sander Vanheule
  0 siblings, 1 reply; 8+ messages in thread
From: Rob Herring @ 2022-01-10 20:38 UTC (permalink / raw)
  To: Sander Vanheule; +Cc: linux-pm, devicetree, Sebastian Reichel, linux-kernel

On Thu, Dec 30, 2021 at 07:06:02PM +0100, Sander Vanheule wrote:
> The delay properties are expressed in milliseconds, so the property
> names should have a -ms suffix. Add the suffix, and deprecate the
> original properties.
> 
> Signed-off-by: Sander Vanheule <sander@svanheule.net>
> ---
>  .../bindings/power/reset/gpio-restart.yaml    | 27 ++++++++++++-------
>  1 file changed, 18 insertions(+), 9 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/power/reset/gpio-restart.yaml b/Documentation/devicetree/bindings/power/reset/gpio-restart.yaml
> index 6a1f4aeebf49..13827fe7b395 100644
> --- a/Documentation/devicetree/bindings/power/reset/gpio-restart.yaml
> +++ b/Documentation/devicetree/bindings/power/reset/gpio-restart.yaml
> @@ -62,17 +62,26 @@ properties:
>              restart handlers
>  
>    active-delay:
> -    $ref: /schemas/types.yaml#/definitions/uint32
> -    description: Delay (default 100) to wait after driving gpio active [ms]
> +    $ref: '#/properties/active-delay-ms'

While 'active-delay-ms' has a type because '.*-ms' has a type, you just 
removed the type for this property. Now 'active-delay = "foo"' is valid.

While it would be nice to change this, we're pretty much stuck with it 
forever. I don't think supporting both versions in the kernel is worth 
it.

Rob

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [RFC PATCH v1 2/3] dt-bindings: power: reset: gpio-restart: Add -ms suffix to delays
  2022-01-10 20:38   ` Rob Herring
@ 2022-01-10 20:55     ` Sander Vanheule
  0 siblings, 0 replies; 8+ messages in thread
From: Sander Vanheule @ 2022-01-10 20:55 UTC (permalink / raw)
  To: Rob Herring; +Cc: linux-pm, devicetree, Sebastian Reichel, linux-kernel

Hi Rob,

On Mon, 2022-01-10 at 14:38 -0600, Rob Herring wrote:
> On Thu, Dec 30, 2021 at 07:06:02PM +0100, Sander Vanheule wrote:
> > The delay properties are expressed in milliseconds, so the property
> > names should have a -ms suffix. Add the suffix, and deprecate the
> > original properties.
> > 
> > Signed-off-by: Sander Vanheule <sander@svanheule.net>
> > ---
> >  .../bindings/power/reset/gpio-restart.yaml    | 27 ++++++++++++-------
> >  1 file changed, 18 insertions(+), 9 deletions(-)
> > 
> > diff --git a/Documentation/devicetree/bindings/power/reset/gpio-restart.yaml
> > b/Documentation/devicetree/bindings/power/reset/gpio-restart.yaml
> > index 6a1f4aeebf49..13827fe7b395 100644
> > --- a/Documentation/devicetree/bindings/power/reset/gpio-restart.yaml
> > +++ b/Documentation/devicetree/bindings/power/reset/gpio-restart.yaml
> > @@ -62,17 +62,26 @@ properties:
> >              restart handlers
> >  
> >    active-delay:
> > -    $ref: /schemas/types.yaml#/definitions/uint32
> > -    description: Delay (default 100) to wait after driving gpio active [ms]
> > +    $ref: '#/properties/active-delay-ms'
> 
> While 'active-delay-ms' has a type because '.*-ms' has a type, you just 
> removed the type for this property. Now 'active-delay = "foo"' is valid.

Good to know, I would've expected the type to be inherited.

> While it would be nice to change this, we're pretty much stuck with it 
> forever. I don't think supporting both versions in the kernel is worth 
> it.

Figured as much. I'll just keep patch 3/3 then.

Thanks for the feedback!

Best,
Sander


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2022-01-10 20:55 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-30 18:06 [RFC PATCH v1 0/3] convert gpio-restart bindings to yaml Sander Vanheule
2021-12-30 18:06 ` [RFC PATCH v1 1/3] dt-bindings: power: reset: Convert gpio-restart binding to schema Sander Vanheule
2021-12-30 18:11   ` Sander Vanheule
2022-01-01 22:01   ` Rob Herring
2021-12-30 18:06 ` [RFC PATCH v1 2/3] dt-bindings: power: reset: gpio-restart: Add -ms suffix to delays Sander Vanheule
2022-01-10 20:38   ` Rob Herring
2022-01-10 20:55     ` Sander Vanheule
2021-12-30 18:06 ` [RFC PATCH v1 3/3] dt-bindings: power: reset: gpio-restart: Correct default priority Sander Vanheule

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).