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