xref: /openbmc/linux/drivers/input/misc/adxl34x.h (revision e27c7292)
1e27c7292SMichael Hennerich /*
2e27c7292SMichael Hennerich  * ADXL345/346 Three-Axis Digital Accelerometers (I2C/SPI Interface)
3e27c7292SMichael Hennerich  *
4e27c7292SMichael Hennerich  * Enter bugs at http://blackfin.uclinux.org/
5e27c7292SMichael Hennerich  *
6e27c7292SMichael Hennerich  * Copyright (C) 2009 Michael Hennerich, Analog Devices Inc.
7e27c7292SMichael Hennerich  * Licensed under the GPL-2 or later.
8e27c7292SMichael Hennerich  */
9e27c7292SMichael Hennerich 
10e27c7292SMichael Hennerich #ifndef _ADXL34X_H_
11e27c7292SMichael Hennerich #define _ADXL34X_H_
12e27c7292SMichael Hennerich 
13e27c7292SMichael Hennerich struct device;
14e27c7292SMichael Hennerich struct adxl34x;
15e27c7292SMichael Hennerich 
16e27c7292SMichael Hennerich struct adxl34x_bus_ops {
17e27c7292SMichael Hennerich 	u16 bustype;
18e27c7292SMichael Hennerich 	int (*read)(struct device *, unsigned char);
19e27c7292SMichael Hennerich 	int (*read_block)(struct device *, unsigned char, int, void *);
20e27c7292SMichael Hennerich 	int (*write)(struct device *, unsigned char, unsigned char);
21e27c7292SMichael Hennerich };
22e27c7292SMichael Hennerich 
23e27c7292SMichael Hennerich void adxl34x_disable(struct adxl34x *ac);
24e27c7292SMichael Hennerich void adxl34x_enable(struct adxl34x *ac);
25e27c7292SMichael Hennerich struct adxl34x *adxl34x_probe(struct device *dev, int irq,
26e27c7292SMichael Hennerich 			      bool fifo_delay_default,
27e27c7292SMichael Hennerich 			      const struct adxl34x_bus_ops *bops);
28e27c7292SMichael Hennerich int adxl34x_remove(struct adxl34x *ac);
29e27c7292SMichael Hennerich 
30e27c7292SMichael Hennerich #endif
31