[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID:
<CY4PR03MB339998CE283A3D13B534F47A9B89A@CY4PR03MB3399.namprd03.prod.outlook.com>
Date: Tue, 20 Jan 2026 14:28:15 +0000
From: "Miclaus, Antoniu" <Antoniu.Miclaus@...log.com>
To: Linus Walleij <linusw@...nel.org>
CC: Peter Rosin <peda@...ntia.se>, Rob Herring <robh@...nel.org>,
Krzysztof
Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>,
Srinivas
Kandagatla <srini@...nel.org>,
Johan Hovold <johan+linaro@...nel.org>,
David
Lechner <dlechner@...libre.com>,
"devicetree@...r.kernel.org"
<devicetree@...r.kernel.org>,
"linux-kernel@...r.kernel.org"
<linux-kernel@...r.kernel.org>
Subject: RE: [PATCH v4 0/2] mux: gpio-mux: add enable GPIO support
> -----Original Message-----
> From: Linus Walleij <linusw@...nel.org>
> Sent: Monday, January 19, 2026 1:19 AM
> To: Miclaus, Antoniu <Antoniu.Miclaus@...log.com>
> Cc: Peter Rosin <peda@...ntia.se>; Rob Herring <robh@...nel.org>; Krzysztof
> Kozlowski <krzk+dt@...nel.org>; Conor Dooley <conor+dt@...nel.org>;
> Srinivas Kandagatla <srini@...nel.org>; Johan Hovold
> <johan+linaro@...nel.org>; David Lechner <dlechner@...libre.com>;
> devicetree@...r.kernel.org; linux-kernel@...r.kernel.org
> Subject: Re: [PATCH v4 0/2] mux: gpio-mux: add enable GPIO support
>
> [External]
>
> Hi Antoniu,
>
> thanks for your patch!
>
> On Fri, Jan 16, 2026 at 4:38 PM Antoniu Miclaus
> <antoniu.miclaus@...log.com> wrote:
>
> > This series adds optional enable GPIO support to the gpio-mux driver.
> > The enable GPIO allows the multiplexer to be disabled before changing
> > address lines and re-enabled after, preventing glitches that could
> > briefly activate unintended channels during transitions.
> >
> > This feature is useful for devices like the Analog Devices ADG2404
> > (4:1 mux) that require enable control for glitch-free operation. The
> > binding documentation now includes ADG2404 as a supported device with
> > a dedicated example.
>
> Overall the idea is sound!
>
> I don't know if "enable" is a good name for this GPIO though,
> because as I understand it the signal passes through the mux even
> if it is "disabled"?
>
> I would call it "hold" and make it active low if it holds the mux
> state when this signal is low.
>
> hold-gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
>
> this will have the intended semantic.
>
Thanks for the feedback!
Looking at the ADG2404 truth table, "enable" appears
to be semantically correct:
EN A1 A0 S1 S2 S3 S4
0 X X Off Off Off Off
1 0 0 On Off Off Off
1 0 1 Off On Off Off
1 1 0 Off Off On Off
1 1 1 Off Off Off On
When EN=0, all switches are OFF and no signal passes through
the mux - it's truly disabled. When EN=1, exactly one channel is
selected based on the address pins A1/A0.
The implementation uses this to:
- Keep all channels disconnected when idle (EN=0)
- Disable during address changes to prevent glitches
- Enable to activate the selected channel
Looking forward to your feedback.
Regards,
Antoniu
> Yours,
> Linus Walleij
Powered by blists - more mailing lists