linux/drivers/iio/accel/st_accel.h
<<
>>
Prefs
   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
  17enum st_accel_type {
  18        LSM303DLH,
  19        LSM303DLHC,
  20        LIS3DH,
  21        LSM330D,
  22        LSM330DL,
  23        LSM330DLC,
  24        LIS331DLH,
  25        LSM303DL,
  26        LSM303DLM,
  27        LSM330,
  28        LSM303AGR,
  29        LIS2DH12,
  30        LIS3L02DQ,
  31        LNG2DM,
  32        H3LIS331DL,
  33        LIS331DL,
  34        LIS3LV02DL,
  35        LIS2DW12,
  36        LIS3DHH,
  37        ST_ACCEL_MAX,
  38};
  39
  40#define H3LIS331DL_ACCEL_DEV_NAME       "h3lis331dl_accel"
  41#define LIS3LV02DL_ACCEL_DEV_NAME       "lis3lv02dl_accel"
  42#define LSM303DLHC_ACCEL_DEV_NAME       "lsm303dlhc_accel"
  43#define LIS3DH_ACCEL_DEV_NAME           "lis3dh"
  44#define LSM330D_ACCEL_DEV_NAME          "lsm330d_accel"
  45#define LSM330DL_ACCEL_DEV_NAME         "lsm330dl_accel"
  46#define LSM330DLC_ACCEL_DEV_NAME        "lsm330dlc_accel"
  47#define LIS331DL_ACCEL_DEV_NAME         "lis331dl_accel"
  48#define LIS331DLH_ACCEL_DEV_NAME        "lis331dlh"
  49#define LSM303DL_ACCEL_DEV_NAME         "lsm303dl_accel"
  50#define LSM303DLH_ACCEL_DEV_NAME        "lsm303dlh_accel"
  51#define LSM303DLM_ACCEL_DEV_NAME        "lsm303dlm_accel"
  52#define LSM330_ACCEL_DEV_NAME           "lsm330_accel"
  53#define LSM303AGR_ACCEL_DEV_NAME        "lsm303agr_accel"
  54#define LIS2DH12_ACCEL_DEV_NAME         "lis2dh12_accel"
  55#define LIS3L02DQ_ACCEL_DEV_NAME        "lis3l02dq"
  56#define LNG2DM_ACCEL_DEV_NAME           "lng2dm"
  57#define LIS2DW12_ACCEL_DEV_NAME         "lis2dw12"
  58#define LIS3DHH_ACCEL_DEV_NAME          "lis3dhh"
  59
  60/**
  61* struct st_sensors_platform_data - default accel platform data
  62* @drdy_int_pin: default accel DRDY is available on INT1 pin.
  63*/
  64static const struct st_sensors_platform_data default_accel_pdata = {
  65        .drdy_int_pin = 1,
  66};
  67
  68int st_accel_common_probe(struct iio_dev *indio_dev);
  69void st_accel_common_remove(struct iio_dev *indio_dev);
  70
  71#ifdef CONFIG_IIO_BUFFER
  72int st_accel_allocate_ring(struct iio_dev *indio_dev);
  73void st_accel_deallocate_ring(struct iio_dev *indio_dev);
  74int st_accel_trig_set_state(struct iio_trigger *trig, bool state);
  75#define ST_ACCEL_TRIGGER_SET_STATE (&st_accel_trig_set_state)
  76#else /* CONFIG_IIO_BUFFER */
  77static inline int st_accel_allocate_ring(struct iio_dev *indio_dev)
  78{
  79        return 0;
  80}
  81static inline void st_accel_deallocate_ring(struct iio_dev *indio_dev)
  82{
  83}
  84#define ST_ACCEL_TRIGGER_SET_STATE NULL
  85#endif /* CONFIG_IIO_BUFFER */
  86
  87#endif /* ST_ACCEL_H */
  88