95 lines
3.0 KiB
YAML
95 lines
3.0 KiB
YAML
|
# 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>;
|
||
|
};
|