[PATCH v4 1/2] dt-bindings: mux: gpio-mux: add enable-gpios support

Antoniu Miclaus posted 2 patches 3 weeks, 2 days ago
There is a newer version of this series
[PATCH v4 1/2] dt-bindings: mux: gpio-mux: add enable-gpios support
Posted by Antoniu Miclaus 3 weeks, 2 days ago
Add support for an optional enable GPIO that allows the multiplexer
to be disabled before changing address lines and re-enabled after,
preventing glitches during channel transitions.

This is useful for devices like the Analog Devices ADG2404 (4:1 mux)
that benefit from enable control to ensure clean channel switching.

Signed-off-by: Antoniu Miclaus <antoniu.miclaus@analog.com>
---
Changes in v4:
 * Add ADG2404 to binding description for discoverability
 * Add dedicated ADG2404 example showing enable-gpios usage
 * Update commit message to reference ADG2404 as use case

---
 .../devicetree/bindings/mux/gpio-mux.yaml     | 25 +++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/Documentation/devicetree/bindings/mux/gpio-mux.yaml b/Documentation/devicetree/bindings/mux/gpio-mux.yaml
index ef7e33ec85d4..2d9f32012127 100644
--- a/Documentation/devicetree/bindings/mux/gpio-mux.yaml
+++ b/Documentation/devicetree/bindings/mux/gpio-mux.yaml
@@ -17,6 +17,9 @@ description: |+
   multiplexer GPIO pins, where the first pin is the least significant
   bit. An active pin is a binary 1, an inactive pin is a binary 0.
 
+  This binding supports GPIO-controlled multiplexers such as the Analog
+  Devices ADG2404 (4:1 mux with enable control).
+
 properties:
   compatible:
     const: gpio-mux
@@ -25,6 +28,13 @@ properties:
     description:
       List of gpios used to control the multiplexer, least significant bit first.
 
+  enable-gpios:
+    description:
+      Optional GPIO to enable the multiplexer. When present, the mux will be
+      disabled before changing address lines and re-enabled after to prevent
+      glitches. Required for MUX_IDLE_DISCONNECT idle-state.
+    maxItems: 1
+
   mux-supply:
     description:
       Regulator to power on the multiplexer.
@@ -100,4 +110,19 @@ examples:
             };
         };
     };
+
+  - |
+    /* Analog Devices ADG2404 4:1 multiplexer with enable control */
+    #include <dt-bindings/gpio/gpio.h>
+
+    mux-controller {
+        compatible = "gpio-mux";
+        #mux-control-cells = <0>;
+
+        mux-gpios = <&gpio 1 GPIO_ACTIVE_HIGH>,
+                    <&gpio 2 GPIO_ACTIVE_HIGH>;
+        enable-gpios = <&gpio 3 GPIO_ACTIVE_HIGH>;
+
+        idle-state = <0>;
+    };
 ...
-- 
2.43.0
Re: [PATCH v4 1/2] dt-bindings: mux: gpio-mux: add enable-gpios support
Posted by Krzysztof Kozlowski 3 weeks, 2 days ago
On 16/01/2026 16:26, Antoniu Miclaus wrote:
> Add support for an optional enable GPIO that allows the multiplexer
> to be disabled before changing address lines and re-enabled after,
> preventing glitches during channel transitions.
> 
> This is useful for devices like the Analog Devices ADG2404 (4:1 mux)
> that benefit from enable control to ensure clean channel switching.
> 
> Signed-off-by: Antoniu Miclaus <antoniu.miclaus@analog.com>
> ---
> Changes in v4:
>  * Add ADG2404 to binding description for discoverability
>  * Add dedicated ADG2404 example showing enable-gpios usage
>  * Update commit message to reference ADG2404 as use case
> 
> ---
>  .../devicetree/bindings/mux/gpio-mux.yaml     | 25 +++++++++++++++++++
>  1 file changed, 25 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/mux/gpio-mux.yaml b/Documentation/devicetree/bindings/mux/gpio-mux.yaml
> index ef7e33ec85d4..2d9f32012127 100644
> --- a/Documentation/devicetree/bindings/mux/gpio-mux.yaml
> +++ b/Documentation/devicetree/bindings/mux/gpio-mux.yaml
> @@ -17,6 +17,9 @@ description: |+
>    multiplexer GPIO pins, where the first pin is the least significant
>    bit. An active pin is a binary 1, an inactive pin is a binary 0.
>  
> +  This binding supports GPIO-controlled multiplexers such as the Analog
> +  Devices ADG2404 (4:1 mux with enable control).
> +
>  properties:
>    compatible:
>      const: gpio-mux
> @@ -25,6 +28,13 @@ properties:
>      description:
>        List of gpios used to control the multiplexer, least significant bit first.
>  
> +  enable-gpios:
> +    description:
> +      Optional GPIO to enable the multiplexer. When present, the mux will be
> +      disabled before changing address lines and re-enabled after to prevent
> +      glitches. Required for MUX_IDLE_DISCONNECT idle-state.
> +    maxItems: 1
> +
>    mux-supply:
>      description:
>        Regulator to power on the multiplexer.
> @@ -100,4 +110,19 @@ examples:
>              };
>          };
>      };
> +
> +  - |
> +    /* Analog Devices ADG2404 4:1 multiplexer with enable control */
> +    #include <dt-bindings/gpio/gpio.h>
> +
> +    mux-controller {

I did not ask for this. I asked for upstreamed DTS. DTS is a format and
a file - see arch/*/boot/dts/. When I say - upstream DTS - it means you
should make your or any board using this hardware accepted by respective
maintainer. We do not add new examples per every new property, so just
add enable-gpios into existing example.



Best regards,
Krzysztof