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