Re: [PATCH v2] dt-bindings: pinctrl: uniphier: Add child node definitions to describe pin mux and configuration
From: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
Date: 2021-11-04 07:32:29
Also in:
linux-arm-kernel, linux-gpio, lkml
On 2021/11/03 5:57, Rob Herring wrote:
On Thu, Oct 28, 2021 at 10:46:39AM +0900, Kunihiko Hayashi wrote:quoted
In arch/arm/boot/dts/uniphier-pinctrl.dtsi, there are child nodes of pinctrl that defines pinmux and pincfg, however, there are no rules about that in dt-bindings. 'make dtbs_check' results an error with the following message: pinctrl: 'ain1', 'ain2', 'ainiec1', 'aout', 'aout1', 'aout2', ... ... 'usb2', 'usb3' do not match any of the regexes: 'pinctrl-[0-9]+' To avoid this issue, add the rules of pinmux and pincfg in each child node and grandchild node. Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com> --- Changes since v1: - Replace additionalProperties with unevaluatedProperties - Add additionalProperties for child and grandchild nodes .../pinctrl/socionext,uniphier-pinctrl.yaml | 50 +++++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-)diff --git a/Documentation/devicetree/bindings/pinctrl/socionext,uniphier-pinctrl.yamlb/Documentation/devicetree/bindings/pinctrl/socionext,uniphier-pinctrl.yamlquoted
index a804d9bc1602..7e504e003181 100644--- a/Documentation/devicetree/bindings/pinctrl/socionext,uniphier-pinctrl.yaml +++ b/Documentation/devicetree/bindings/pinctrl/socionext,uniphier-pinctrl.yaml@@ -26,10 +26,58 @@ properties: - socionext,uniphier-pxs3-pinctrl - socionext,uniphier-nx1-pinctrl +additionalProperties: + type: object + +patternProperties: + "^.*$": + if: + type: object + then: + allOf:All of the above should be: additionalProperties: type: object allOf: ...
I see. I'll rewrite it instead of "patternProperties".
quoted
+ - $ref: pincfg-node.yaml# + - $ref: pinmux-node.yaml# + + properties: + phandle: true + function: true + groups: true + pins: true + bias-pull-up: true + bias-pull-down: true + bias-pull-pin-default: true + drive-strength: true + + additionalProperties: + type: object + + patternProperties: + "^.*$": + if: + type: object + then: + allOf: + - $ref: pincfg-node.yaml# + - $ref: pinmux-node.yaml# + + properties: + phandle: true + function: true + groups: true + pins: true + bias-pull-up: true + bias-pull-down: true + bias-pull-pin-default: true + drive-strength: true + + unevaluatedProperties: false + + unevaluatedProperties: false + required: - compatible -additionalProperties: false +unevaluatedProperties: falseDrop +unevaluatedProperties.
I understand that "additionalProperties" has already been used at the top
level, so this "unevaluatedProperties" is unnecessary.
For the same reason, "unevaluatedProperties" at the child node is also unnecessary.
I think "unevaluatedProperties" at the grandchild node should be left because
the grandchild node doesn't have "additionalProperties".
additionalProperties:
type: object
allOf:
...
additionalProperties:
type: object
allOf:
...
unevaluatedProperties: false
[X]
[X]
Thank you,
---
Best Regards
Kunihiko Hayashi