Linux 6.7-rc7
[linux-modified.git] / Documentation / devicetree / bindings / gpio / gpio-delay.yaml
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/gpio/gpio-delay.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: GPIO delay controller
8
9 maintainers:
10   - Alexander Stein <linux@ew.tq-group.com>
11
12 description: |
13   This binding describes an electrical setup where setting an GPIO output
14   is delayed by some external setup, e.g. RC circuit.
15
16   +----------+                    +-----------+
17   |          |             VCC_B  |           |
18   |          |              |     |           |
19   |          | VCC_A        _     |           |
20   |  GPIO    |             | | R  |  Consumer |
21   |controller|        ___  |_|    |           |
22   |          |       |   |  |     |           |
23   |      [IOx|-------|   |--+-----|-----+     |
24   |          |       |___|  |     |   input   |
25   |          |              |     |           |
26   +----------+             --- C  +-----------+
27                            ---
28                             |
29                             -
30                            GND
31
32   If the input on the consumer is controlled by an open-drain signal
33   attached to an RC circuit the ramp-up delay is not under control
34   of the GPIO controller.
35
36 properties:
37   compatible:
38     const: gpio-delay
39
40   "#gpio-cells":
41     description: |
42       Specifies the pin, ramp-up and ramp-down delays. The
43       delays are specified in microseconds.
44     const: 3
45
46   gpios:
47     description: Array of GPIOs which output signal change is delayed
48     minItems: 1
49     maxItems: 32
50
51   gpio-controller: true
52
53   gpio-line-names:
54     minItems: 1
55     maxItems: 32
56
57 required:
58   - compatible
59   - "#gpio-cells"
60   - gpio-controller
61   - gpios
62
63 additionalProperties: false
64
65 examples:
66   - |
67     #include <dt-bindings/gpio/gpio.h>
68
69     enable_delay: enable-delay {
70         compatible = "gpio-delay";
71         #gpio-cells = <3>;
72         gpio-controller;
73         gpios = <&gpio0 3 GPIO_ACTIVE_LOW>,
74                 <&gpio3 1 GPIO_ACTIVE_HIGH>;
75     };
76
77     consumer {
78         enable-gpios = <&enable_delay 0 130000 30000>;
79     };