Re: [PATCH RFC] dt-bindings: pinctrl: support specifying pins

From: Rob Herring
Date: Thu Nov 11 2021 - 15:07:13 EST


On Thu, Nov 11, 2021 at 12:14:36AM +0100, Rafał Miłecki wrote:
> From: Rafał Miłecki <rafal@xxxxxxxxxx>
>
> Add support for "pins" node with pin@ subnodes. This allows specifying
> all pins (and their names) at DT level.
>
> Signed-off-by: Rafał Miłecki <rafal@xxxxxxxxxx>
> ---
> While working with pinctrl in Linux I started wondering if we could
> start specifying pins in DT instead of Linux drivers. When working with
> DT we usually avoid hardcoding hardware description in drivers so it
> isn't clear to me why it doesn't apply to pins.
>
> Please let me know if this makes sense. If by some chance I'm correct I
> think that specifying groups and functions could follow too.
>
> FWIW: I didn't start working on Linux reading pins from DT yet.
> ---
> .../bindings/pinctrl/brcm,ns-pinmux.yaml | 12 +++++++++-
> .../devicetree/bindings/pinctrl/pinctrl.yaml | 23 +++++++++++++++++++
> 2 files changed, 34 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/devicetree/bindings/pinctrl/brcm,ns-pinmux.yaml b/Documentation/devicetree/bindings/pinctrl/brcm,ns-pinmux.yaml
> index 8d1e5b1cdd5f..92a86b0822d6 100644
> --- a/Documentation/devicetree/bindings/pinctrl/brcm,ns-pinmux.yaml
> +++ b/Documentation/devicetree/bindings/pinctrl/brcm,ns-pinmux.yaml
> @@ -74,7 +74,7 @@ required:
> - reg
> - reg-names
>
> -additionalProperties: false
> +unevaluatedProperties: false
>
> examples:
> - |
> @@ -83,6 +83,16 @@ examples:
> reg = <0x1800c1c0 0x24>;
> reg-names = "cru_gpio_control";
>
> + pins {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + pin@0 {
> + reg = <0>;

Where does 'reg' value come from?

> + label = "spi_clk";
> + };

If you just want a list of pins names, then why not just a list of
names?

Rob