The PCA9538 consists of one 8-bit Configuration (input or output selection), Input Port,
Output Port, and Polarity Inversion (active high or active low) registers. At power on, the I/Os
are configured as inputs. However, the system master can enable the I/Os as either inputs or
outputs by writing to the I/O configuration bits. The data for each input or output is kept in the
corresponding Input Port or Output Port register. The polarity of the Input Port register can be
inverted with the Polarity Inversion register. All registers can be read by the system
master.

The system master can reset the PCA9538 in the event of a timeout or other improper
operation by asserting a low in the RESET input. The power-on reset puts the
registers in their default state and initializes the I2C/SMBus state
machine. The RESET pin causes the same reset/initialization to occur without
powering down the part.

The PCA9538 open-drain interrupt (INT) output is activated when
any input state differs from its corresponding Input Port register state and is used to indicate to
the system master that an input state has changed.

INT can be connected to the interrupt input of a microcontroller.
By sending an interrupt signal on this line, the remote I/O can inform the microcontroller if there
is incoming data on its ports without having to communicate via the I2C
bus. Thus, the PCA9538 can remain a simple slave device.

The device outputs (latched) have high-current drive capability for directly driving
LEDs. It has low current consumption.

Two hardware pins (A0 and A1) are used to program and vary the fixed
I2C address and allow up to four devices to share the same
I2C bus or SMBus.