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