162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/gpio/gpio-latch.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: GPIO latch controller 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - Sascha Hauer <s.hauer@pengutronix.de> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_cidescription: | 1362306a36Sopenharmony_ci This binding describes a GPIO multiplexer based on latches connected to 1462306a36Sopenharmony_ci other GPIOs, like this: 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ci CLK0 ----------------------. ,--------. 1762306a36Sopenharmony_ci CLK1 -------------------. `--------|> #0 | 1862306a36Sopenharmony_ci | | | 1962306a36Sopenharmony_ci OUT0 ----------------+--|-----------|D0 Q0|-----|< 2062306a36Sopenharmony_ci OUT1 --------------+-|--|-----------|D1 Q1|-----|< 2162306a36Sopenharmony_ci OUT2 ------------+-|-|--|-----------|D2 Q2|-----|< 2262306a36Sopenharmony_ci OUT3 ----------+-|-|-|--|-----------|D3 Q3|-----|< 2362306a36Sopenharmony_ci OUT4 --------+-|-|-|-|--|-----------|D4 Q4|-----|< 2462306a36Sopenharmony_ci OUT5 ------+-|-|-|-|-|--|-----------|D5 Q5|-----|< 2562306a36Sopenharmony_ci OUT6 ----+-|-|-|-|-|-|--|-----------|D6 Q6|-----|< 2662306a36Sopenharmony_ci OUT7 --+-|-|-|-|-|-|-|--|-----------|D7 Q7|-----|< 2762306a36Sopenharmony_ci | | | | | | | | | `--------' 2862306a36Sopenharmony_ci | | | | | | | | | 2962306a36Sopenharmony_ci | | | | | | | | | ,--------. 3062306a36Sopenharmony_ci | | | | | | | | `-----------|> #1 | 3162306a36Sopenharmony_ci | | | | | | | | | | 3262306a36Sopenharmony_ci | | | | | | | `--------------|D0 Q0|-----|< 3362306a36Sopenharmony_ci | | | | | | `----------------|D1 Q1|-----|< 3462306a36Sopenharmony_ci | | | | | `------------------|D2 Q2|-----|< 3562306a36Sopenharmony_ci | | | | `--------------------|D3 Q3|-----|< 3662306a36Sopenharmony_ci | | | `----------------------|D4 Q4|-----|< 3762306a36Sopenharmony_ci | | `------------------------|D5 Q5|-----|< 3862306a36Sopenharmony_ci | `--------------------------|D6 Q6|-----|< 3962306a36Sopenharmony_ci `----------------------------|D7 Q7|-----|< 4062306a36Sopenharmony_ci `--------' 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ci The number of clk-gpios and latched-gpios is not fixed. The actual number 4362306a36Sopenharmony_ci of number of latches and the number of inputs per latch is derived from 4462306a36Sopenharmony_ci the number of GPIOs given in the corresponding device tree properties. 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ciproperties: 4762306a36Sopenharmony_ci compatible: 4862306a36Sopenharmony_ci const: gpio-latch 4962306a36Sopenharmony_ci "#gpio-cells": 5062306a36Sopenharmony_ci const: 2 5162306a36Sopenharmony_ci 5262306a36Sopenharmony_ci clk-gpios: 5362306a36Sopenharmony_ci description: Array of GPIOs to be used to clock a latch 5462306a36Sopenharmony_ci 5562306a36Sopenharmony_ci latched-gpios: 5662306a36Sopenharmony_ci description: Array of GPIOs to be used as inputs per latch 5762306a36Sopenharmony_ci 5862306a36Sopenharmony_ci setup-duration-ns: 5962306a36Sopenharmony_ci description: Delay in nanoseconds to wait after the latch inputs have been 6062306a36Sopenharmony_ci set up 6162306a36Sopenharmony_ci 6262306a36Sopenharmony_ci clock-duration-ns: 6362306a36Sopenharmony_ci description: Delay in nanoseconds to wait between clock output changes 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_ci gpio-controller: true 6662306a36Sopenharmony_ci 6762306a36Sopenharmony_ci gpio-line-names: true 6862306a36Sopenharmony_ci 6962306a36Sopenharmony_cirequired: 7062306a36Sopenharmony_ci - compatible 7162306a36Sopenharmony_ci - "#gpio-cells" 7262306a36Sopenharmony_ci - gpio-controller 7362306a36Sopenharmony_ci - clk-gpios 7462306a36Sopenharmony_ci - latched-gpios 7562306a36Sopenharmony_ci 7662306a36Sopenharmony_ciadditionalProperties: false 7762306a36Sopenharmony_ci 7862306a36Sopenharmony_ciexamples: 7962306a36Sopenharmony_ci - | 8062306a36Sopenharmony_ci gpio-latch { 8162306a36Sopenharmony_ci #gpio-cells = <2>; 8262306a36Sopenharmony_ci pinctrl-names = "default"; 8362306a36Sopenharmony_ci pinctrl-0 = <&pinctrl_di_do_leds>; 8462306a36Sopenharmony_ci compatible = "gpio-latch"; 8562306a36Sopenharmony_ci gpio-controller; 8662306a36Sopenharmony_ci setup-duration-ns = <100>; 8762306a36Sopenharmony_ci clock-duration-ns = <100>; 8862306a36Sopenharmony_ci 8962306a36Sopenharmony_ci clk-gpios = <&gpio3 7 0>, <&gpio3 8 0>; 9062306a36Sopenharmony_ci latched-gpios = <&gpio3 21 0>, <&gpio3 22 0>, 9162306a36Sopenharmony_ci <&gpio3 23 0>, <&gpio3 24 0>, 9262306a36Sopenharmony_ci <&gpio3 25 0>, <&gpio3 26 0>, 9362306a36Sopenharmony_ci <&gpio3 27 0>, <&gpio3 28 0>; 9462306a36Sopenharmony_ci }; 95