---
name: "iic_gpiomux"
section: "4"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["freebsd"]
url: "https://new.carta.tech/iic_gpiomux"
---

# iic\_gpiomux(4)

driver for I2C mux hardware controlled via GPIO

## NAME

**iic\_gpiomux** – driver for I2C mux hardware controlled via GPIO

## SYNOPSIS

To compile this driver into the kernel, place the following line in your kernel configuration file:

**device iic\_gpiomux**

Alternatively, to load the driver as a module at boot time, place the following line in [loader.conf(5)](/loader.conf/5.md):

```
iic_gpiomux_load="YES"
```

## DESCRIPTION

The **iic\_gpiomux** driver supports any type of I2C bus multiplexer (mux) hardware that is controlled by manipulating the state of one or more GPIO pins. It automatically connects an upstream I2C bus to one of the downstream buses as needed when slave devices on the downstream buses initiate I/O. More information on the automatic switching behavior is available in [iicmux(4)](/iicmux/4.md).

## FDT CONFIGURATION

On an [fdt(4)](/fdt/4.md) based system, an **iic\_gpiomux** device node may be defined as a child node of any arbitrary bus in the FDT data. The *i2c-parent* property indicates the connection to the upstream I2C bus. The children of the **iic\_gpiomux** node are additional i2c buses, which will have their own i2c slave devices described in their child nodes.

The **iic\_gpiomux** driver conforms to the standard i2c/i2c-mux-gpio.txt bindings document.

## SEE ALSO

[iicbus(4)](/iicbus/4.md), [iicmux(4)](/iicmux/4.md)

## HISTORY

The **iic\_gpiomux** driver first appeared in FreeBSD 13.0.
