---
name: "pcf8574"
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/pcf8574"
---

# pcf8574(4)

driver for the PCF8574 8-bit I2C IO expander

## NAME

**pcf8574** – driver for the PCF8574 8-bit I2C IO expander

## SYNOPSIS

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

**device pcf8574** **device gpio** **device iicbus**

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

```
pcf8574_load="YES"
```

## DESCRIPTION

The **pcf8574** driver provides [gpiobus(4)](/gpiobus/4.md) control over 8 GPIO pins. The pins are quasi-bidirectional. Only low output can be actively driven. High output is equivalent to input.

On an [FDT(4)](/FDT/4.md) based system the following properties must be set:

- *compatible*

  Must be set to "nxp,pcf8574".

- *reg*

  The I2C address of **pcf8574**.

The DTS part for a **pcf8574** device usually looks like:

```
/ {
	...
	pcf8574@27 {
		compatible = "nxp,pcf8574";
		reg = <0x27>;
	};
};
```

## SEE ALSO

[fdt(4)](/fdt/4.md), [gpiobus(4)](/gpiobus/4.md), [iicbus(4)](/iicbus/4.md)

## HISTORY

The **pcf8574** driver and this manual page was written by Andriy Gapon ⟨*avg@FreeBSD.org*⟩.

## BUGS

The **pcf8574** driver does not support the input change interrupt that the hardware provides.
