Merge branch 'misc.namei' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[linux-2.6-microblaze.git] / include / linux / spi / max7301.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef LINUX_SPI_MAX7301_H
3 #define LINUX_SPI_MAX7301_H
4
5 #include <linux/gpio/driver.h>
6
7 /*
8  * Some registers must be read back to modify.
9  * To save time we cache them here in memory
10  */
11 struct max7301 {
12         struct mutex    lock;
13         u8              port_config[8]; /* field 0 is unused */
14         u32             out_level;      /* cached output levels */
15         u32             input_pullup_active;
16         struct gpio_chip chip;
17         struct device *dev;
18         int (*write)(struct device *dev, unsigned int reg, unsigned int val);
19         int (*read)(struct device *dev, unsigned int reg);
20 };
21
22 struct max7301_platform_data {
23         /* number assigned to the first GPIO */
24         unsigned        base;
25         /*
26          * bitmask controlling the pullup configuration,
27          *
28          * _note_ the 4 lowest bits are unused, because the first 4
29          * ports of the controller are not used, too.
30          */
31         u32             input_pullup_active;
32 };
33
34 extern int __max730x_remove(struct device *dev);
35 extern int __max730x_probe(struct max7301 *ts);
36 #endif