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