Re: [PATCH v5 2/2] dt-bindings: gpio: Add gpio-latch binding document

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Oct 07, 2022 at 01:46:47PM +0200, Sascha Hauer wrote:
> This adds a binding for a GPIO multiplexer driver based on latches
> connected to other GPIOs.
> 
> Signed-off-by: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx>
> Reviewed-by: Rob Herring <robh@xxxxxxxxxx>

Reviewed-by: Serge Semin <fancer.lancer@xxxxxxxxx>

Just a note. In accordance with [1] the DT-bindings patches should come
in the series before the code implementing the bindings.

[1] Documentation/devicetree/bindings/submitting-patches.rst, unit I.5).

-Sergey

> ---
> 
> Notes:
>     Changes since v3:
>     - Introduce delays between GPIO toggles as suggested by Serge Semin
>     
>     Changes since v1:
>     - Add license to binding file
> 
>  .../devicetree/bindings/gpio/gpio-latch.yaml  | 94 +++++++++++++++++++
>  1 file changed, 94 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/gpio/gpio-latch.yaml
> 
> diff --git a/Documentation/devicetree/bindings/gpio/gpio-latch.yaml b/Documentation/devicetree/bindings/gpio/gpio-latch.yaml
> new file mode 100644
> index 0000000000000..1ed82a2cebdaa
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/gpio/gpio-latch.yaml
> @@ -0,0 +1,94 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/gpio/gpio-latch.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: GPIO latch controller
> +
> +maintainers:
> +  - Sascha Hauer <s.hauer@xxxxxxxxxxxxxx>
> +
> +description: |
> +  This binding describes a GPIO multiplexer based on latches connected to
> +  other GPIOs, like this:
> +
> +  CLK0 ----------------------.        ,--------.
> +  CLK1 -------------------.  `--------|>    #0 |
> +                          |           |        |
> +  OUT0 ----------------+--|-----------|D0    Q0|-----|<
> +  OUT1 --------------+-|--|-----------|D1    Q1|-----|<
> +  OUT2 ------------+-|-|--|-----------|D2    Q2|-----|<
> +  OUT3 ----------+-|-|-|--|-----------|D3    Q3|-----|<
> +  OUT4 --------+-|-|-|-|--|-----------|D4    Q4|-----|<
> +  OUT5 ------+-|-|-|-|-|--|-----------|D5    Q5|-----|<
> +  OUT6 ----+-|-|-|-|-|-|--|-----------|D6    Q6|-----|<
> +  OUT7 --+-|-|-|-|-|-|-|--|-----------|D7    Q7|-----|<
> +         | | | | | | | |  |           `--------'
> +         | | | | | | | |  |
> +         | | | | | | | |  |           ,--------.
> +         | | | | | | | |  `-----------|>    #1 |
> +         | | | | | | | |              |        |
> +         | | | | | | | `--------------|D0    Q0|-----|<
> +         | | | | | | `----------------|D1    Q1|-----|<
> +         | | | | | `------------------|D2    Q2|-----|<
> +         | | | | `--------------------|D3    Q3|-----|<
> +         | | | `----------------------|D4    Q4|-----|<
> +         | | `------------------------|D5    Q5|-----|<
> +         | `--------------------------|D6    Q6|-----|<
> +         `----------------------------|D7    Q7|-----|<
> +                                      `--------'
> +
> +  The number of clk-gpios and latched-gpios is not fixed. The actual number
> +  of number of latches and the number of inputs per latch is derived from
> +  the number of GPIOs given in the corresponding device tree properties.
> +
> +properties:
> +  compatible:
> +    const: gpio-latch
> +  "#gpio-cells":
> +    const: 2
> +
> +  clk-gpios:
> +    description: Array of GPIOs to be used to clock a latch
> +
> +  latched-gpios:
> +    description: Array of GPIOs to be used as inputs per latch
> +
> +  setup-duration-ns:
> +    description: Delay in nanoseconds to wait after the latch inputs have been
> +      set up
> +
> +  clock-duration-ns:
> +    description: Delay in nanoseconds to wait between clock output changes
> +
> +  gpio-controller: true
> +
> +  gpio-line-names: true
> +
> +required:
> +  - compatible
> +  - "#gpio-cells"
> +  - gpio-controller
> +  - clk-gpios
> +  - latched-gpios
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    gpio-latch {
> +        #gpio-cells = <2>;
> +        pinctrl-names = "default";
> +        pinctrl-0 = <&pinctrl_di_do_leds>;
> +        compatible = "gpio-latch";
> +        gpio-controller;
> +        setup-duration-ns = <100>;
> +        clock-duration-ns = <100>;
> +
> +        clk-gpios = <&gpio3 7 0>, <&gpio3 8 0>;
> +        latched-gpios = <&gpio3 21 0>, <&gpio3 22 0>,
> +                       <&gpio3 23 0>, <&gpio3 24 0>,
> +                       <&gpio3 25 0>, <&gpio3 26 0>,
> +                       <&gpio3 27 0>, <&gpio3 28 0>;
> +    };
> -- 
> 2.30.2
> 



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux