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