1/*
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
17#define LSM303DLHC_ACCEL_DEV_NAME	"lsm303dlhc_accel"
18#define LIS3DH_ACCEL_DEV_NAME		"lis3dh"
19#define LSM330D_ACCEL_DEV_NAME		"lsm330d_accel"
20#define LSM330DL_ACCEL_DEV_NAME		"lsm330dl_accel"
21#define LSM330DLC_ACCEL_DEV_NAME	"lsm330dlc_accel"
22#define LIS331DLH_ACCEL_DEV_NAME	"lis331dlh"
23#define LSM303DL_ACCEL_DEV_NAME		"lsm303dl_accel"
24#define LSM303DLH_ACCEL_DEV_NAME	"lsm303dlh_accel"
25#define LSM303DLM_ACCEL_DEV_NAME	"lsm303dlm_accel"
26#define LSM330_ACCEL_DEV_NAME		"lsm330_accel"
27
28/**
29* struct st_sensors_platform_data - default accel platform data
30* @drdy_int_pin: default accel DRDY is available on INT1 pin.
31*/
32static const struct st_sensors_platform_data default_accel_pdata = {
33	.drdy_int_pin = 1,
34};
35
36int st_accel_common_probe(struct iio_dev *indio_dev,
37					struct st_sensors_platform_data *pdata);
38void st_accel_common_remove(struct iio_dev *indio_dev);
39
40#ifdef CONFIG_IIO_BUFFER
41int st_accel_allocate_ring(struct iio_dev *indio_dev);
42void st_accel_deallocate_ring(struct iio_dev *indio_dev);
43int st_accel_trig_set_state(struct iio_trigger *trig, bool state);
44#define ST_ACCEL_TRIGGER_SET_STATE (&st_accel_trig_set_state)
45#else /* CONFIG_IIO_BUFFER */
46static inline int st_accel_allocate_ring(struct iio_dev *indio_dev)
47{
48	return 0;
49}
50static inline void st_accel_deallocate_ring(struct iio_dev *indio_dev)
51{
52}
53#define ST_ACCEL_TRIGGER_SET_STATE NULL
54#endif /* CONFIG_IIO_BUFFER */
55
56#endif /* ST_ACCEL_H */
57