[PATCH 0/5] pinctrl: Add generic pinctrl for board-level mux chips

Linus Walleij linusw at kernel.org
Thu Feb 19 15:12:26 PST 2026


Hi Frank,

On Thu, Feb 19, 2026 at 11:24 PM Frank Li <Frank.Li at nxp.com> wrote:

> Add a generic pinctrl binding for board-level pinmux chips that are
> controlled through the multiplexer subsystem.
>
> On some boards, especially development boards, external mux chips are used
> to switch SoC signals between different peripherals (e.g. MMC and UART).
> The mux select lines are often driven by a GPIO expander over I2C,
> as illustrated below:
>
>         ┌──────┐      ┌─────┐
>         │ SOC  │      │     │    ┌───────┐
>         │      │      │     │───►│ MMC   │
>         │      │      │ MUX │    └───────┘
>         │      ├─────►│     │    ┌───────┐
>         │      │      │     │───►│ UART  │
>         │      │      └─────┘    └───────┘
>         │      │         ▲
>         │      │    ┌────┴──────────────┐
>         │ I2C  ├───►│ GPIO Expander     │
>         └──────┘    └───────────────────┘
>
> Traditionally, gpio-hog is used to configure the onboard mux at boot.
> However, the GPIO expander may probe later than consumer devices such as
> MMC. As a result, the MUX might not be configured when the peripheral
> driver probes, leading to initialization failures or data transfer errors.
>
> Introduce a generic pinctrl binding that models the board-level MUX as a
> pin control provider and builds proper device links between the MUX, its
> GPIO controller, and peripheral devices. This ensures correct probe
> ordering and reliable mux configuration.
>
> The implementation leverages the standard multiplexer subsystem, which
> provides broad support for onboard mux controllers and avoids the need for
> per-driver custom MUX handling
>
> Signed-off-by: Frank Li <Frank.Li at nxp.com>

I kind of like what I see here. :)

This makes a lot of sense: it uses muxes, and it muxes pins.
So that is the appropriate description, pinmuxes using
muxes (in turn controlled by GPIOs).

I just need to have buy-in from DT binding
maintainers and the authors of the mux core that this is a good
idea.

Yours,
Linus Walleij


More information about the linux-arm-kernel mailing list