Re: [PATCH v2 2/6] dt-bindings: pinctrl: Add generic pinctrl for board-level mux chips

From: Rob Herring (Arm)

Date: Thu Mar 05 2026 - 19:58:17 EST



On Wed, 25 Feb 2026 18:55:06 -0500, Frank Li 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.
>
> Allow pinctrl-* pattern as node name because this pinctrl device have not
> reg property.
>
> Signed-off-by: Frank Li <Frank.Li@xxxxxxx>
> ---
> change in v2:
> - change descriptions for device, not for driver
> - add missed additionalProperties: false
> ---
> .../bindings/pinctrl/pinctrl-multiplexer.yaml | 57 ++++++++++++++++++++++
> .../devicetree/bindings/pinctrl/pinctrl.yaml | 2 +-
> 2 files changed, 58 insertions(+), 1 deletion(-)
>

Reviewed-by: Rob Herring (Arm) <robh@xxxxxxxxxx>