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