1*5877457aSVivien Didelot #ifndef _LINUX_PCA953X_H 2*5877457aSVivien Didelot #define _LINUX_PCA953X_H 3*5877457aSVivien Didelot 4*5877457aSVivien Didelot #include <linux/types.h> 5*5877457aSVivien Didelot #include <linux/i2c.h> 6*5877457aSVivien Didelot 7*5877457aSVivien Didelot /* platform data for the PCA9539 16-bit I/O expander driver */ 8*5877457aSVivien Didelot 9*5877457aSVivien Didelot struct pca953x_platform_data { 10*5877457aSVivien Didelot /* number of the first GPIO */ 11*5877457aSVivien Didelot unsigned gpio_base; 12*5877457aSVivien Didelot 13*5877457aSVivien Didelot /* initial polarity inversion setting */ 14*5877457aSVivien Didelot u32 invert; 15*5877457aSVivien Didelot 16*5877457aSVivien Didelot /* interrupt base */ 17*5877457aSVivien Didelot int irq_base; 18*5877457aSVivien Didelot 19*5877457aSVivien Didelot void *context; /* param to setup/teardown */ 20*5877457aSVivien Didelot 21*5877457aSVivien Didelot int (*setup)(struct i2c_client *client, 22*5877457aSVivien Didelot unsigned gpio, unsigned ngpio, 23*5877457aSVivien Didelot void *context); 24*5877457aSVivien Didelot int (*teardown)(struct i2c_client *client, 25*5877457aSVivien Didelot unsigned gpio, unsigned ngpio, 26*5877457aSVivien Didelot void *context); 27*5877457aSVivien Didelot const char *const *names; 28*5877457aSVivien Didelot }; 29*5877457aSVivien Didelot 30*5877457aSVivien Didelot #endif /* _LINUX_PCA953X_H */ 31