blob: 5d4a1897b293ec60644efe18f1f8d0508b051fa9 [file] [log] [blame]
Denis Cioccad6251162013-01-25 23:44:00 +00001/*
2 * STMicroelectronics accelerometers driver
3 *
4 * Copyright 2012-2013 STMicroelectronics Inc.
5 *
6 * Denis Ciocca <denis.ciocca@st.com>
7 * v. 1.0.0
8 * Licensed under the GPL-2.
9 */
10
11#ifndef ST_ACCEL_H
12#define ST_ACCEL_H
13
14#include <linux/types.h>
15#include <linux/iio/common/st_sensors.h>
16
Linus Walleij3acddf72015-03-18 10:52:06 +010017#define LIS3LV02DL_ACCEL_DEV_NAME "lis3lv02dl_accel"
Denis Cioccad6251162013-01-25 23:44:00 +000018#define LSM303DLHC_ACCEL_DEV_NAME "lsm303dlhc_accel"
19#define LIS3DH_ACCEL_DEV_NAME "lis3dh"
20#define LSM330D_ACCEL_DEV_NAME "lsm330d_accel"
21#define LSM330DL_ACCEL_DEV_NAME "lsm330dl_accel"
22#define LSM330DLC_ACCEL_DEV_NAME "lsm330dlc_accel"
Linus Walleijbbf5f032015-05-19 15:37:18 +020023#define LIS331DL_ACCEL_DEV_NAME "lis331dl_accel"
Denis Cioccad6251162013-01-25 23:44:00 +000024#define LIS331DLH_ACCEL_DEV_NAME "lis331dlh"
25#define LSM303DL_ACCEL_DEV_NAME "lsm303dl_accel"
26#define LSM303DLH_ACCEL_DEV_NAME "lsm303dlh_accel"
27#define LSM303DLM_ACCEL_DEV_NAME "lsm303dlm_accel"
28#define LSM330_ACCEL_DEV_NAME "lsm330_accel"
Giuseppe Barbaddc05fa2015-07-21 10:35:44 +020029#define LSM303AGR_ACCEL_DEV_NAME "lsm303agr_accel"
Giuseppe Barba34dc5782015-11-12 08:36:49 +010030#define LIS2DH12_ACCEL_DEV_NAME "lis2dh12_accel"
Denis Cioccad6251162013-01-25 23:44:00 +000031
Denis CIOCCA23cde4d2013-06-19 09:28:00 +010032/**
33* struct st_sensors_platform_data - default accel platform data
34* @drdy_int_pin: default accel DRDY is available on INT1 pin.
35*/
36static const struct st_sensors_platform_data default_accel_pdata = {
37 .drdy_int_pin = 1,
38};
39
Denis CIOCCAb6e6bda62014-10-03 17:35:36 +020040int st_accel_common_probe(struct iio_dev *indio_dev);
Denis Cioccad6251162013-01-25 23:44:00 +000041void st_accel_common_remove(struct iio_dev *indio_dev);
42
43#ifdef CONFIG_IIO_BUFFER
44int st_accel_allocate_ring(struct iio_dev *indio_dev);
45void st_accel_deallocate_ring(struct iio_dev *indio_dev);
46int st_accel_trig_set_state(struct iio_trigger *trig, bool state);
47#define ST_ACCEL_TRIGGER_SET_STATE (&st_accel_trig_set_state)
48#else /* CONFIG_IIO_BUFFER */
49static inline int st_accel_allocate_ring(struct iio_dev *indio_dev)
50{
51 return 0;
52}
53static inline void st_accel_deallocate_ring(struct iio_dev *indio_dev)
54{
55}
56#define ST_ACCEL_TRIGGER_SET_STATE NULL
57#endif /* CONFIG_IIO_BUFFER */
58
59#endif /* ST_ACCEL_H */