1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 25877457aSVivien Didelot #ifndef _LINUX_PCA953X_H 35877457aSVivien Didelot #define _LINUX_PCA953X_H 45877457aSVivien Didelot 55877457aSVivien Didelot #include <linux/types.h> 65877457aSVivien Didelot #include <linux/i2c.h> 75877457aSVivien Didelot 85877457aSVivien Didelot /* platform data for the PCA9539 16-bit I/O expander driver */ 95877457aSVivien Didelot 105877457aSVivien Didelot struct pca953x_platform_data { 115877457aSVivien Didelot /* number of the first GPIO */ 125877457aSVivien Didelot unsigned gpio_base; 135877457aSVivien Didelot 145877457aSVivien Didelot /* initial polarity inversion setting */ 155877457aSVivien Didelot u32 invert; 165877457aSVivien Didelot 175877457aSVivien Didelot /* interrupt base */ 185877457aSVivien Didelot int irq_base; 195877457aSVivien Didelot 205877457aSVivien Didelot void *context; /* param to setup/teardown */ 215877457aSVivien Didelot 225877457aSVivien Didelot int (*setup)(struct i2c_client *client, 235877457aSVivien Didelot unsigned gpio, unsigned ngpio, 245877457aSVivien Didelot void *context); 25*6a8f359cSUwe Kleine-König void (*teardown)(struct i2c_client *client, 265877457aSVivien Didelot unsigned gpio, unsigned ngpio, 275877457aSVivien Didelot void *context); 285877457aSVivien Didelot const char *const *names; 295877457aSVivien Didelot }; 305877457aSVivien Didelot 315877457aSVivien Didelot #endif /* _LINUX_PCA953X_H */ 32