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>;
 | 
						|
    };    
 |