| # 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@pengutronix.de> |
| |
| 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>; |
| }; |