[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v3 4/7] dt-bindings: gpio: Add gpio-repeater bindings
From: |
Ulrich Hecht |
Subject: |
Re: [PATCH v3 4/7] dt-bindings: gpio: Add gpio-repeater bindings |
Date: |
Thu, 28 Nov 2019 04:39:37 +0100 (CET) |
> On November 27, 2019 at 9:42 AM Geert Uytterhoeven <address@hidden> wrote:
>
>
> Add Device Tree bindings for a GPIO repeater, with optional translation
> of physical signal properties. This is useful for describing explicitly
> the presence of e.g. an inverter on a GPIO line, and was inspired by the
> non-YAML gpio-inverter bindings by Harish Jenny K N
> <address@hidden>[1].
>
> Note that this is different from a GPIO Nexus Node[2], which cannot do
> physical signal property translation.
>
> While an inverter can be described implicitly by exchanging the
> GPIO_ACTIVE_HIGH and GPIO_ACTIVE_LOW flags, this has its limitations.
> Each GPIO line has only a single GPIO_ACTIVE_* flag, but applies to both
> th provider and consumer sides:
> 1. The GPIO provider (controller) looks at the flags to know the
> polarity, so it can translate between logical (active/not active)
> and physical (high/low) signal levels.
> 2. While the signal polarity is usually fixed on the GPIO consumer
> side (e.g. an LED is tied to either the supply voltage or GND),
> it may be configurable on some devices, and both sides need to
> agree. Hence the GPIO_ACTIVE_* flag as seen by the consumer must
> match the actual polarity.
> There exists a similar issue with interrupt flags, where both the
> interrupt controller and the device generating the interrupt need
> to agree, which breaks in the presence of a physical inverter not
> described in DT (see e.g. [3]).
>
> [1] "[PATCH V4 2/2] gpio: inverter: document the inverter bindings"
> https://lore.kernel.org/linux-gpio/address@hidden/
>
> [2] Devicetree Specification v0.3-rc2, Section 2.5
>
> https://github.com/devicetree-org/devicetree-specification/releases/tag/v0.3-rc2
>
> [3] "[PATCH] wlcore/wl18xx: Add invert-irq OF property for physically
> inverted IRQ"
> https://lore.kernel.org/linux-renesas-soc/address@hidden/
>
> Signed-off-by: Geert Uytterhoeven <address@hidden>
> ---
> v3:
> - New.
> ---
> .../bindings/gpio/gpio-repeater.yaml | 53 +++++++++++++++++++
> 1 file changed, 53 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/gpio/gpio-repeater.yaml
>
> diff --git a/Documentation/devicetree/bindings/gpio/gpio-repeater.yaml
> b/Documentation/devicetree/bindings/gpio/gpio-repeater.yaml
> new file mode 100644
> index 0000000000000000..efdee0c3be43f731
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/gpio/gpio-repeater.yaml
> @@ -0,0 +1,53 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/gpio/gpio-repeater.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: GPIO Repeater
> +
> +maintainers:
> + - Harish Jenny K N <address@hidden>
> + - Geert Uytterhoeven <address@hidden>
> +
> +description:
> + This represents a repeater for one or more GPIOs, possibly including
> physical
> + signal property translation (e.g. polarity inversion).
> +
> +properties:
> + compatible:
> + const: gpio-repeater
> +
> + "#gpio-cells":
> + const: 2
> +
> + gpio-controller: true
> +
> + gpios:
> + description:
> + Phandle and specifier, one for each repeated GPIO.
> +
> + gpio-line-names:
> + description:
> + Strings defining the names of the GPIO lines going out of the GPIO
> + controller.
> +
> +required:
> + - compatible
> + - "#gpio-cells"
> + - gpio-controller
> + - gpios
> +
> +additionalProperties: false
> +
> +examples:
> + # Device node describing a polarity inverter for a single GPIO
> + - |
> + #include <dt-bindings/gpio/gpio.h>
> +
> + inverter: gpio-repeater {
> + compatible = "gpio-repeater";
> + #gpio-cells = <2>;
> + gpio-controller;
> + gpios = <&gpio 95 GPIO_ACTIVE_LOW>;
> + };
> --
> 2.17.1
>
Reviewed-by: Ulrich Hecht <address@hidden>
CU
Uli
- [PATCH v3 0/7] gpio: Add GPIO Aggregator/Repeater, Geert Uytterhoeven, 2019/11/27
- [PATCH v3 7/7] MAINTAINERS: Add GPIO Aggregator/Repeater section, Geert Uytterhoeven, 2019/11/27
- [PATCH v3 3/7] gpiolib: Add support for GPIO line table lookup, Geert Uytterhoeven, 2019/11/27
- [PATCH v3 4/7] dt-bindings: gpio: Add gpio-repeater bindings, Geert Uytterhoeven, 2019/11/27
- Re: [PATCH v3 4/7] dt-bindings: gpio: Add gpio-repeater bindings,
Ulrich Hecht <=
- [PATCH v3 1/7] gpiolib: Add GPIOCHIP_NAME definition, Geert Uytterhoeven, 2019/11/27
- [PATCH v3 2/7] gpiolib: Add support for gpiochipN-based table lookup, Geert Uytterhoeven, 2019/11/27
- [PATCH v3 6/7] docs: gpio: Add GPIO Aggregator/Repeater documentation, Geert Uytterhoeven, 2019/11/27
- [PATCH v3 5/7] gpio: Add GPIO Aggregator/Repeater driver, Geert Uytterhoeven, 2019/11/27