xref: /openbmc/linux/drivers/input/misc/adxl34x.h (revision 40be0646)
180503b23SThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */
2e27c7292SMichael Hennerich /*
3e27c7292SMichael Hennerich  * ADXL345/346 Three-Axis Digital Accelerometers (I2C/SPI Interface)
4e27c7292SMichael Hennerich  *
5e27c7292SMichael Hennerich  * Enter bugs at http://blackfin.uclinux.org/
6e27c7292SMichael Hennerich  *
7e27c7292SMichael Hennerich  * Copyright (C) 2009 Michael Hennerich, Analog Devices Inc.
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 struct adxl34x *adxl34x_probe(struct device *dev, int irq,
24e27c7292SMichael Hennerich 			      bool fifo_delay_default,
25e27c7292SMichael Hennerich 			      const struct adxl34x_bus_ops *bops);
26af98ff04SUwe Kleine-König void adxl34x_remove(struct adxl34x *ac);
27e27c7292SMichael Hennerich 
28*40be0646SJonathan Cameron extern const struct dev_pm_ops adxl34x_pm;
29*40be0646SJonathan Cameron 
30e27c7292SMichael Hennerich #endif
31