xref: /openbmc/linux/drivers/iio/gyro/st_gyro.h (revision 7be56a8f57b57cca1651fb97886e20246c168e25)
1*7be56a8fSDenis Ciocca /*
2*7be56a8fSDenis Ciocca  * STMicroelectronics gyroscopes driver
3*7be56a8fSDenis Ciocca  *
4*7be56a8fSDenis Ciocca  * Copyright 2012-2013 STMicroelectronics Inc.
5*7be56a8fSDenis Ciocca  *
6*7be56a8fSDenis Ciocca  * Denis Ciocca <denis.ciocca@st.com>
7*7be56a8fSDenis Ciocca  * v. 1.0.0
8*7be56a8fSDenis Ciocca  * Licensed under the GPL-2.
9*7be56a8fSDenis Ciocca  */
10*7be56a8fSDenis Ciocca 
11*7be56a8fSDenis Ciocca #ifndef ST_GYRO_H
12*7be56a8fSDenis Ciocca #define ST_GYRO_H
13*7be56a8fSDenis Ciocca 
14*7be56a8fSDenis Ciocca #include <linux/types.h>
15*7be56a8fSDenis Ciocca #include <linux/iio/common/st_sensors.h>
16*7be56a8fSDenis Ciocca 
17*7be56a8fSDenis Ciocca #define L3G4200D_GYRO_DEV_NAME		"l3g4200d"
18*7be56a8fSDenis Ciocca #define LSM330D_GYRO_DEV_NAME		"lsm330d_gyro"
19*7be56a8fSDenis Ciocca #define LSM330DL_GYRO_DEV_NAME		"lsm330dl_gyro"
20*7be56a8fSDenis Ciocca #define LSM330DLC_GYRO_DEV_NAME		"lsm330dlc_gyro"
21*7be56a8fSDenis Ciocca #define L3GD20_GYRO_DEV_NAME		"l3gd20"
22*7be56a8fSDenis Ciocca #define L3GD20H_GYRO_DEV_NAME		"l3gd20h"
23*7be56a8fSDenis Ciocca #define L3G4IS_GYRO_DEV_NAME		"l3g4is_ui"
24*7be56a8fSDenis Ciocca #define LSM330_GYRO_DEV_NAME		"lsm330_gyro"
25*7be56a8fSDenis Ciocca 
26*7be56a8fSDenis Ciocca int st_gyro_common_probe(struct iio_dev *indio_dev);
27*7be56a8fSDenis Ciocca void st_gyro_common_remove(struct iio_dev *indio_dev);
28*7be56a8fSDenis Ciocca 
29*7be56a8fSDenis Ciocca #ifdef CONFIG_IIO_BUFFER
30*7be56a8fSDenis Ciocca int st_gyro_allocate_ring(struct iio_dev *indio_dev);
31*7be56a8fSDenis Ciocca void st_gyro_deallocate_ring(struct iio_dev *indio_dev);
32*7be56a8fSDenis Ciocca int st_gyro_trig_set_state(struct iio_trigger *trig, bool state);
33*7be56a8fSDenis Ciocca #define ST_GYRO_TRIGGER_SET_STATE (&st_gyro_trig_set_state)
34*7be56a8fSDenis Ciocca #else /* CONFIG_IIO_BUFFER */
35*7be56a8fSDenis Ciocca static inline int st_gyro_allocate_ring(struct iio_dev *indio_dev)
36*7be56a8fSDenis Ciocca {
37*7be56a8fSDenis Ciocca 	return 0;
38*7be56a8fSDenis Ciocca }
39*7be56a8fSDenis Ciocca static inline void st_gyro_deallocate_ring(struct iio_dev *indio_dev)
40*7be56a8fSDenis Ciocca {
41*7be56a8fSDenis Ciocca }
42*7be56a8fSDenis Ciocca #define ST_GYRO_TRIGGER_SET_STATE NULL
43*7be56a8fSDenis Ciocca #endif /* CONFIG_IIO_BUFFER */
44*7be56a8fSDenis Ciocca 
45*7be56a8fSDenis Ciocca #endif /* ST_GYRO_H */
46