2024-01-31 16:29:31

by Théo Lebrun

[permalink] [raw]
Subject: [PATCH v4 03/18] dt-bindings: pinctrl: allow pin controller device without unit address

Allow a pin controller device to have no address, therefore no unit
address.

The previous $nodename was enforcing a unit address, but
scripts/dtc/checks.c enforced that names with unit addresses have reg
or ranges:

Warning (unit_address_vs_reg): .../pinctrl@0: node has a unit
name, but no reg or ranges property

Fix pinctrl.yaml to adopt a (pinctrl|pinmux)(-[a-z]+)? node name when
neither reg nor ranges are required. Use [a-z]+ to avoid conflicts with
pinctrl-consumer.yaml.

Signed-off-by: Théo Lebrun <[email protected]>
---
Documentation/devicetree/bindings/pinctrl/pinctrl.yaml | 18 +++++++++++++++---
1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/Documentation/devicetree/bindings/pinctrl/pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/pinctrl.yaml
index d471563119a9..3d977b54e260 100644
--- a/Documentation/devicetree/bindings/pinctrl/pinctrl.yaml
+++ b/Documentation/devicetree/bindings/pinctrl/pinctrl.yaml
@@ -26,9 +26,6 @@ description: |
controller device.

properties:
- $nodename:
- pattern: "^(pinctrl|pinmux)(@[0-9a-f]+)?$"
-
"#pinctrl-cells":
description: >
Number of pin control cells in addition to the index within the pin
@@ -42,4 +39,19 @@ properties:
This property can be set either globally for the pin controller or in
child nodes for individual pin group control.

+if:
+ anyOf:
+ - required:
+ - reg
+ - required:
+ - ranges
+then:
+ properties:
+ $nodename:
+ pattern: "^(pinctrl|pinmux)(@[0-9a-f]+)?$"
+else:
+ properties:
+ $nodename:
+ pattern: "^(pinctrl|pinmux)(-[a-z]+)?$"
+
additionalProperties: true

--
2.43.0



2024-02-02 20:12:35

by Rob Herring (Arm)

[permalink] [raw]
Subject: Re: [PATCH v4 03/18] dt-bindings: pinctrl: allow pin controller device without unit address

On Wed, Jan 31, 2024 at 05:26:16PM +0100, Th?o Lebrun wrote:
> Allow a pin controller device to have no address, therefore no unit
> address.
>
> The previous $nodename was enforcing a unit address, but
> scripts/dtc/checks.c enforced that names with unit addresses have reg
> or ranges:
>
> Warning (unit_address_vs_reg): .../pinctrl@0: node has a unit
> name, but no reg or ranges property
>
> Fix pinctrl.yaml to adopt a (pinctrl|pinmux)(-[a-z]+)? node name when
> neither reg nor ranges are required. Use [a-z]+ to avoid conflicts with
> pinctrl-consumer.yaml.

You can drop this patch now.

Rob