PCA95[357]x, PCA9698, TCA64xx, and MAX7310 I/O ports

modulename: gpio-pca953x.ko

configname: CONFIG_GPIO_PCA953X

Linux Kernel Configuration
└─>Device Drivers
└─>GPIO Support
└─>I2C GPIO expanders
└─>PCA95[357]x, PCA9698, TCA64xx, and MAX7310 I/O ports
In linux kernel since version 2.6.25 (release Date: 2008-04-16)  
Say yes here to provide access to several register-oriented
SMBus I/O expanders, made mostly by NXP or TI. Compatible
models include:

4 bits: pca9536, pca9537

8 bits: max7310, max7315, pca6107, pca9534, pca9538, pca9554,
pca9556, pca9557, pca9574, tca6408, tca9554, xra1202

16 bits: max7312, max7313, pca9535, pca9539, pca9555, pca9575,

24 bits: tca6424

40 bits: pca9505, pca9698

source code: