devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] dt-bindings: hwlock: Convert to dtschema
@ 2025-02-18 16:09 Siddharth Menon
  2025-02-18 16:42 ` Krzysztof Kozlowski
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Siddharth Menon @ 2025-02-18 16:09 UTC (permalink / raw)
  To: devicetree, andersson, robh, krzk+dt, conor+dt
  Cc: baolin.wang, linux-remoteproc, linux-kernel, BiscuitBobby

From: BiscuitBobby <simeddon@gmail.com>

Convert the generic hwspinlock bindings to DT schema.
---
 This is my first time converting bindings to dt schema, please let me
 know if I have overlooked anything.
 .../devicetree/bindings/hwlock/hwlock.txt     | 59 -----------------
 .../devicetree/bindings/hwlock/hwlock.yaml    | 65 +++++++++++++++++++
 2 files changed, 65 insertions(+), 59 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/hwlock/hwlock.txt
 create mode 100644 Documentation/devicetree/bindings/hwlock/hwlock.yaml

diff --git a/Documentation/devicetree/bindings/hwlock/hwlock.txt b/Documentation/devicetree/bindings/hwlock/hwlock.txt
deleted file mode 100644
index 085d1f5c916a..000000000000
--- a/Documentation/devicetree/bindings/hwlock/hwlock.txt
+++ /dev/null
@@ -1,59 +0,0 @@
-Generic hwlock bindings
-=======================
-
-Generic bindings that are common to all the hwlock platform specific driver
-implementations.
-
-Please also look through the individual platform specific hwlock binding
-documentations for identifying any additional properties specific to that
-platform.
-
-hwlock providers:
-=================
-
-Required properties:
-- #hwlock-cells:        Specifies the number of cells needed to represent a
-                        specific lock.
-
-hwlock users:
-=============
-
-Consumers that require specific hwlock(s) should specify them using the
-property "hwlocks", and an optional "hwlock-names" property.
-
-Required properties:
-- hwlocks:              List of phandle to a hwlock provider node and an
-                        associated hwlock args specifier as indicated by
-                        #hwlock-cells. The list can have just a single hwlock
-                        or multiple hwlocks, with each hwlock represented by
-                        a phandle and a corresponding args specifier.
-
-Optional properties:
-- hwlock-names:         List of hwlock name strings defined in the same order
-                        as the hwlocks, with one name per hwlock. Consumers can
-                        use the hwlock-names to match and get a specific hwlock.
-
-
-1. Example of a node using a single specific hwlock:
-
-The following example has a node requesting a hwlock in the bank defined by
-the node hwlock1. hwlock1 is a hwlock provider with an argument specifier
-of length 1.
-
-	node {
-		...
-		hwlocks = <&hwlock1 2>;
-		...
-	};
-
-2. Example of a node using multiple specific hwlocks:
-
-The following example has a node requesting two hwlocks, a hwlock within
-the hwlock device node 'hwlock1' with #hwlock-cells value of 1, and another
-hwlock within the hwlock device node 'hwlock2' with #hwlock-cells value of 2.
-
-	node {
-		...
-		hwlocks = <&hwlock1 2>, <&hwlock2 0 3>;
-		...
-	};
diff --git a/Documentation/devicetree/bindings/hwlock/hwlock.yaml b/Documentation/devicetree/bindings/hwlock/hwlock.yaml
new file mode 100644
index 000000000000..2492fdad3c6e
--- /dev/null
+++ b/Documentation/devicetree/bindings/hwlock/hwlock.yaml
@@ -0,0 +1,65 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/hwlock/hwlock.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Generic Hardware Lock (hwlock)
+
+description: |
+  Generic bindings that are common to all the hwlock platform specific driver
+  implementations.
+  Please also look through the individual platform specific hwlock binding
+  documentations for identifying any additional properties specific to that
+  platform.
+
+maintainers:
+  - Bjorn Andersson <andersson@kernel.org>
+  - Rob Herring <robh@kernel.org>
+  - Krzysztof Kozlowski <krzk+dt@kernel.org>
+  - Conor Dooley <conor+dt@kernel.org>
+
+properties:
+  $nodename:
+    pattern: "^hwlock(@.*)?"
+
+  "#hwlock-cells":
+    description: |
+      Specifies the number of cells needed to represent a specific lock.
+    minimum: 1
+
+  hwlocks:
+    description: |
+      List of phandle to a hwlock provider node and an associated hwlock args
+      specifier as indicated by #hwlock-cells. The list can have just a single
+      hwlock or multiple hwlocks, with each hwlock represented by a phandle and
+      a corresponding args specifier.
+
+  hwlock-names:
+    description: |
+      List of hwlock name strings defined in the same order as the hwlocks,
+      with one name per hwlock. Consumers can use the hwlock-names to match
+      and get a specific hwlock.
+
+patternProperties:
+  "^hwlock@[0-9a-f]+$":
+    type: object
+    description: Hardware lock provider node
+
+required:
+  - "#hwlock-cells"
+
+additionalProperties: true
+
+examples:
+  # Example 1: A node using a single specific hwlock
+  - |
+    node {
+      hwlocks = <&hwlock1 2>;
+    };
+
+  # Example 2: A node using multiple specific hwlocks
+  - |
+    node {
+      hwlocks = <&hwlock1 2>, <&hwlock2 0 3>;
+    };
-- 
2.48.1


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

* Re: [PATCH] dt-bindings: hwlock: Convert to dtschema
  2025-02-18 16:09 [PATCH] dt-bindings: hwlock: Convert to dtschema Siddharth Menon
@ 2025-02-18 16:42 ` Krzysztof Kozlowski
  2025-02-18 19:46 ` Rob Herring (Arm)
  2025-02-18 21:12 ` Rob Herring
  2 siblings, 0 replies; 5+ messages in thread
From: Krzysztof Kozlowski @ 2025-02-18 16:42 UTC (permalink / raw)
  To: Siddharth Menon, devicetree, andersson, robh, krzk+dt, conor+dt
  Cc: baolin.wang, linux-remoteproc, linux-kernel

On 18/02/2025 17:09, Siddharth Menon wrote:
> From: BiscuitBobby <simeddon@gmail.com>
> 
> Convert the generic hwspinlock bindings to DT schema.

Thank you for your patch. There is something to discuss/improve.

Please run scripts/checkpatch.pl and fix reported warnings. After that,
run also `scripts/checkpatch.pl --strict` and (probably) fix more
warnings. Some warnings can be ignored, especially from --strict run,
but the code here looks like it needs a fix. Feel free to get in touch
if the warning is not clear.

Also you must use your full name, not nicknames.


> ---
>  This is my first time converting bindings to dt schema, please let me
>  know if I have overlooked anything.
>  .../devicetree/bindings/hwlock/hwlock.txt     | 59 -----------------
>  .../devicetree/bindings/hwlock/hwlock.yaml    | 65 +++++++++++++++++++
>  2 files changed, 65 insertions(+), 59 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/hwlock/hwlock.txt
>  create mode 100644 Documentation/devicetree/bindings/hwlock/hwlock.yaml
> 

You leave now incorrect paths in the kernel.

If you decide to convert the generic subsystem binding, you must take
extra care and change/fix/update/improve all bindings using it.


> diff --git a/Documentation/devicetree/bindings/hwlock/hwlock.yaml b/Documentation/devicetree/bindings/hwlock/hwlock.yaml
> new file mode 100644
> index 000000000000..2492fdad3c6e
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/hwlock/hwlock.yaml
> @@ -0,0 +1,65 @@
> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/hwlock/hwlock.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Generic Hardware Lock (hwlock)
> +
> +description: |
> +  Generic bindings that are common to all the hwlock platform specific driver
> +  implementations.
> +  Please also look through the individual platform specific hwlock binding
> +  documentations for identifying any additional properties specific to that
> +  platform.
> +
> +maintainers:
> +  - Bjorn Andersson <andersson@kernel.org>
> +  - Rob Herring <robh@kernel.org>
> +  - Krzysztof Kozlowski <krzk+dt@kernel.org>
> +  - Conor Dooley <conor+dt@kernel.org>

Subsystem maintainer only.

> +
> +properties:
> +  $nodename:
> +    pattern: "^hwlock(@.*)?"

Why .* in the pattern if you do not anchor it with $?

> +
> +  "#hwlock-cells":
> +    description: |
> +      Specifies the number of cells needed to represent a specific lock.
> +    minimum: 1
> +
> +  hwlocks:
> +    description: |

Do not need '|' unless you need to preserve formatting.

> +      List of phandle to a hwlock provider node and an associated hwlock args
> +      specifier as indicated by #hwlock-cells. The list can have just a single
> +      hwlock or multiple hwlocks, with each hwlock represented by a phandle and
> +      a corresponding args specifier.

Missing type, here and  other places, unless this is already covered by
dtschema? But then why this binding is needed?

> +
> +  hwlock-names:
> +    description: |
> +      List of hwlock name strings defined in the same order as the hwlocks,
> +      with one name per hwlock. Consumers can use the hwlock-names to match
> +      and get a specific hwlock.

Hm? I don't think you understood the binding. The provider does not have
consumer properties. Read again original binding.

> +
> +patternProperties:
> +  "^hwlock@[0-9a-f]+$":
> +    type: object
> +    description: Hardware lock provider node

This makes no sense. hwlock within hwlock?

> +
> +required:
> +  - "#hwlock-cells"
> +
> +additionalProperties: true
> +
> +examples:
> +  # Example 1: A node using a single specific hwlock


Drop all examples, not really useful.

Best regards,
Krzysztof

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

* Re: [PATCH] dt-bindings: hwlock: Convert to dtschema
  2025-02-18 16:09 [PATCH] dt-bindings: hwlock: Convert to dtschema Siddharth Menon
  2025-02-18 16:42 ` Krzysztof Kozlowski
@ 2025-02-18 19:46 ` Rob Herring (Arm)
  2025-02-18 21:12 ` Rob Herring
  2 siblings, 0 replies; 5+ messages in thread
From: Rob Herring (Arm) @ 2025-02-18 19:46 UTC (permalink / raw)
  To: Siddharth Menon
  Cc: krzk+dt, andersson, conor+dt, linux-remoteproc, devicetree,
	linux-kernel, baolin.wang


On Tue, 18 Feb 2025 21:39:35 +0530, Siddharth Menon wrote:
> From: BiscuitBobby <simeddon@gmail.com>
> 
> Convert the generic hwspinlock bindings to DT schema.
> ---
>  This is my first time converting bindings to dt schema, please let me
>  know if I have overlooked anything.
>  .../devicetree/bindings/hwlock/hwlock.txt     | 59 -----------------
>  .../devicetree/bindings/hwlock/hwlock.yaml    | 65 +++++++++++++++++++
>  2 files changed, 65 insertions(+), 59 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/hwlock/hwlock.txt
>  create mode 100644 Documentation/devicetree/bindings/hwlock/hwlock.yaml
> 

My bot found errors running 'make dt_binding_check' on your patch:

yamllint warnings/errors:

dtschema/dtc warnings/errors:


doc reference errors (make refcheckdocs):
Warning: Documentation/devicetree/bindings/hwlock/ti,omap-hwspinlock.yaml references a file that doesn't exist: Documentation/devicetree/bindings/hwlock/hwlock.txt
Documentation/devicetree/bindings/hwlock/ti,omap-hwspinlock.yaml: Documentation/devicetree/bindings/hwlock/hwlock.txt

See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20250218161352.269237-1-simeddon@gmail.com

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.


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

* Re: [PATCH] dt-bindings: hwlock: Convert to dtschema
  2025-02-18 16:09 [PATCH] dt-bindings: hwlock: Convert to dtschema Siddharth Menon
  2025-02-18 16:42 ` Krzysztof Kozlowski
  2025-02-18 19:46 ` Rob Herring (Arm)
@ 2025-02-18 21:12 ` Rob Herring
  2025-02-20 10:51   ` Siddharth Menon
  2 siblings, 1 reply; 5+ messages in thread
From: Rob Herring @ 2025-02-18 21:12 UTC (permalink / raw)
  To: Siddharth Menon
  Cc: devicetree, andersson, krzk+dt, conor+dt, baolin.wang,
	linux-remoteproc, linux-kernel

On Tue, Feb 18, 2025 at 09:39:35PM +0530, Siddharth Menon wrote:
> From: BiscuitBobby <simeddon@gmail.com>
> 
> Convert the generic hwspinlock bindings to DT schema.
> ---
>  This is my first time converting bindings to dt schema, please let me
>  know if I have overlooked anything.
>  .../devicetree/bindings/hwlock/hwlock.txt     | 59 -----------------
>  .../devicetree/bindings/hwlock/hwlock.yaml    | 65 +++++++++++++++++++
>  2 files changed, 65 insertions(+), 59 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/hwlock/hwlock.txt
>  create mode 100644 Documentation/devicetree/bindings/hwlock/hwlock.yaml

The consumer side lives in dtschema already. Please add the provider 
side there too. Patches to devicetree-spec@vger.kernel.org or GH PR are 
fine.

For the descriptions, you'll need to relicense the text in hwlock.txt to 
dual GPL/BSD. You will need TI's permission for that.

Rob

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

* Re: [PATCH] dt-bindings: hwlock: Convert to dtschema
  2025-02-18 21:12 ` Rob Herring
@ 2025-02-20 10:51   ` Siddharth Menon
  0 siblings, 0 replies; 5+ messages in thread
From: Siddharth Menon @ 2025-02-20 10:51 UTC (permalink / raw)
  To: Rob Herring
  Cc: devicetree, andersson, krzk+dt, conor+dt, baolin.wang,
	linux-remoteproc, linux-kernel

On Wed, 19 Feb 2025 at 02:42, Rob Herring <robh@kernel.org> wrote:
>
> The consumer side lives in dtschema already. Please add the provider
> side there too. Patches to devicetree-spec@vger.kernel.org or GH PR are
> fine.

Thank you and Krzysztof for the feedback, I shall address the issues in the
next patch set.

> For the descriptions, you'll need to relicense the text in hwlock.txt to
> dual GPL/BSD. You will need TI's permission for that.

Regarding the relicensing, should I first submit a patch to relicense
the hwlock.txt
binding, then follow up with a patch to replace it with the YAML file
and correct
incorrect paths?

Regards,
Siddharth Menon

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

end of thread, other threads:[~2025-02-20 10:52 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-18 16:09 [PATCH] dt-bindings: hwlock: Convert to dtschema Siddharth Menon
2025-02-18 16:42 ` Krzysztof Kozlowski
2025-02-18 19:46 ` Rob Herring (Arm)
2025-02-18 21:12 ` Rob Herring
2025-02-20 10:51   ` Siddharth Menon

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).