[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <YXhluRBQ+sGMYGkj@robh.at.kernel.org>
Date: Tue, 26 Oct 2021 15:31:53 -0500
From: Rob Herring <robh@...nel.org>
To: Kunihiko Hayashi <hayashi.kunihiko@...ionext.com>
Cc: Linus Walleij <linus.walleij@...aro.org>,
Masami Hiramatsu <mhiramat@...nel.org>,
linux-gpio@...r.kernel.org, devicetree@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] dt-bindings: pinctrl: uniphier: Add child node
definitions to describe pin mux and configuration
On Wed, Oct 13, 2021 at 11:54:08PM +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@...ionext.com>
> ---
> .../pinctrl/socionext,uniphier-pinctrl.yaml | 46 +++++++++++++++++++++-
> 1 file changed, 44 insertions(+), 2 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/pinctrl/socionext,uniphier-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/socionext,uniphier-pinctrl.yaml
> index a804d9bc1602..4567330fe536 100644
> --- a/Documentation/devicetree/bindings/pinctrl/socionext,uniphier-pinctrl.yaml
> +++ b/Documentation/devicetree/bindings/pinctrl/socionext,uniphier-pinctrl.yaml
> @@ -26,11 +26,53 @@ properties:
> - socionext,uniphier-pxs3-pinctrl
> - socionext,uniphier-nx1-pinctrl
>
> -required:
> - - compatible
> +patternProperties:
> + "^.*$":
> + if:
> + type: object
> + then:
After coming up with this hack, I found a better way using
additionalProperties:
additionalProperties:
type: object
and then all this:
> + 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
> +
> + patternProperties:
> + "^.*$":
> + if:
> + type: object
> + then:
Same thing here.
> + 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
>
> additionalProperties: false
>
> +required:
> + - compatible
> +
> examples:
> - |
> // The UniPhier pinctrl should be a subnode of a "syscon" compatible node.
> --
> 2.7.4
>
>
Powered by blists - more mailing lists