xref: /freebsd/sys/contrib/device-tree/Bindings/gpio/gpio-delay.yaml (revision 7fdf597e96a02165cfe22ff357b857d5fa15ed8a)
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
7title: GPIO delay controller
8
9maintainers:
10  - Alexander Stein <linux@ew.tq-group.com>
11
12description: |
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
36properties:
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
57required:
58  - compatible
59  - "#gpio-cells"
60  - gpio-controller
61  - gpios
62
63additionalProperties: false
64
65examples:
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    };
80