The MCP23S17-E/SS is a 16-bit I/O Expander, provides general purpose parallel I/O expansion for I2C bus or SPI applications. The two devices differ only in the serial interface. It consists of multiple 8-bit configuration registers for input, output and polarity selection. The system master can enable the I/Os as either inputs or outputs by writing the I/O configuration bits (IODIRA/B). The data for each input or output is kept in the corresponding input or output 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 16-bit I/O port functionally consists of two 8-bit ports (PORTA and PORTB). It can be configured to operate in the 8-bit or 16-bit modes via IOCON.BANK.
16-bit Input/Output Port Expander with SPI/Interrupt Output