[PATCH v2] dt-bindings: pinctrl: uniphier: Add child node definitions to describe pin mux and configuration
Kunihiko Hayashi
hayashi.kunihiko at socionext.com
Thu Nov 4 00:32:24 PDT 2021
On 2021/11/03 5:57, Rob Herring wrote:
> On Thu, Oct 28, 2021 at 10:46:39AM +0900, Kunihiko Hayashi wrote:
>> 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 at 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.yaml
> b/Documentation/devicetree/bindings/pinctrl/socionext,uniphier-pinctrl.yaml
>> 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".
>
>> + - $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: false
>
> Drop +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
More information about the linux-arm-kernel
mailing list