Re: [PATCH 1/2] dt-bindings: gpio: adg1712: add adg1712 support

From: Linus Walleij
Date: Mon Nov 10 2025 - 05:30:01 EST


Hi Antoniu,

thanks for your patch!

Add
Datasheet: https://www.analog.com/media/en/technical-documentation/data-sheets/adg1712.pdf

Before signed-off-by, thanks.

On Fri, Oct 31, 2025 at 5:08 PM Antoniu Miclaus
<antoniu.miclaus@xxxxxxxxxx> wrote:

> +title: Analog Devices ADG1712 quad SPST switch GPIO controller
> +
> +maintainers:
> + - Antoniu Miclaus <antoniu.miclaus@xxxxxxxxxx>
> +
> +description: |
> + Bindings for Analog Devices ADG1712 quad single-pole, single-throw (SPST)
> + switch controlled by GPIOs. The device features four independent switches,
> + each controlled by a dedicated GPIO input pin.
> +
> + Each GPIO line exposed by this controller corresponds to one of the four
> + switches (SW1-SW4) on the ADG1712. Setting a GPIO line high enables the
> + corresponding switch, while setting it low disables the switch.

There are two unclarities here:

- I know what an SPST switch is, but how is that electrically controlled?
Is it actually a good old electro-magnetic relay? There are clearly
details missing here. When I look in the datasheet, a symbol for a
relay is present in the schematics. At least explain that they work
"as a relay replacement" (literal wording from the datasheet) so
we know what this is.

- GPIO is general purpose input/output. This is a narrow fit with that
concept. This device is more of a general purpose mechanical
current switch. We need some motivation here, explaining why
GPIO is a good, operating system-neutral description of what this
device does.

Perhaps we need to create a new binding category
dt-bindings/switch for this, even if in Linux specifically we chose
to model this as a GPIO, it could just be something we do in
Linux, Zephyr for example might want to have a dedicated driver
for switches.

Also I would like Peter Rosin's eye on this, as we have
dt-bindings/mux which is selecting one analog line out of many
and it's close enough.

> + switch1-gpios:
> + description: GPIO connected to the IN1 control pin (controls SW1)
> + maxItems: 1
> +
> + switch2-gpios:
> + description: GPIO connected to the IN2 control pin (controls SW2)
> + maxItems: 1
> +
> + switch3-gpios:
> + description: GPIO connected to the IN3 control pin (controls SW3)
> + maxItems: 1
> +
> + switch4-gpios:
> + description: GPIO connected to the IN4 control pin (controls SW4)
> + maxItems: 1

Why not just use an array of GPIOs? The property has the suffix "gpios"
(pluralis) after all.

I'd just use switch-gpios = <1, 2, 3, 4>...

> + gpio-controller: true

So this switching capacity expose four new GPIOs, are these really
GPIOs, that's the question. I think we might need a new binding
category. Either this is switch, GPIO or some type of amplifier.

Yours,
Linus Walleij