blob: 34af0a3477bf1d6fc0472c0c845f63d28e05d4a1 [file] [log] [blame]
Juergen Beisert0c36ec32008-07-21 14:21:34 -07001#ifndef LINUX_SPI_MAX7301_H
2#define LINUX_SPI_MAX7301_H
3
Wolfram Sange9528052010-03-05 13:44:33 -08004#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 struct gpio_chip chip;
15 struct device *dev;
16 int (*write)(struct device *dev, unsigned int reg, unsigned int val);
17 int (*read)(struct device *dev, unsigned int reg);
18};
19
Juergen Beisert0c36ec32008-07-21 14:21:34 -070020struct max7301_platform_data {
21 /* number assigned to the first GPIO */
22 unsigned base;
23};
24
Wolfram Sange9528052010-03-05 13:44:33 -080025extern int __max730x_remove(struct device *dev);
26extern int __max730x_probe(struct max7301 *ts);
Juergen Beisert0c36ec32008-07-21 14:21:34 -070027#endif