linux/drivers/iio/pressure/st_pressure.h
<<
>>
Prefs
   1/*
   2 * STMicroelectronics pressures driver
   3 *
   4 * Copyright 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_PRESS_H
  12#define ST_PRESS_H
  13
  14#include <linux/types.h>
  15#include <linux/iio/common/st_sensors.h>
  16
  17enum st_press_type {
  18        LPS001WP,
  19        LPS25H,
  20        LPS331AP,
  21        LPS22HB,
  22        LPS33HW,
  23        LPS35HW,
  24        ST_PRESS_MAX,
  25};
  26
  27#define LPS001WP_PRESS_DEV_NAME         "lps001wp"
  28#define LPS25H_PRESS_DEV_NAME           "lps25h"
  29#define LPS331AP_PRESS_DEV_NAME         "lps331ap"
  30#define LPS22HB_PRESS_DEV_NAME          "lps22hb"
  31#define LPS33HW_PRESS_DEV_NAME          "lps33hw"
  32#define LPS35HW_PRESS_DEV_NAME          "lps35hw"
  33
  34/**
  35 * struct st_sensors_platform_data - default press platform data
  36 * @drdy_int_pin: default press DRDY is available on INT1 pin.
  37 */
  38static const struct st_sensors_platform_data default_press_pdata = {
  39        .drdy_int_pin = 1,
  40};
  41
  42int st_press_common_probe(struct iio_dev *indio_dev);
  43void st_press_common_remove(struct iio_dev *indio_dev);
  44
  45#ifdef CONFIG_IIO_BUFFER
  46int st_press_allocate_ring(struct iio_dev *indio_dev);
  47void st_press_deallocate_ring(struct iio_dev *indio_dev);
  48int st_press_trig_set_state(struct iio_trigger *trig, bool state);
  49#define ST_PRESS_TRIGGER_SET_STATE (&st_press_trig_set_state)
  50#else /* CONFIG_IIO_BUFFER */
  51static inline int st_press_allocate_ring(struct iio_dev *indio_dev)
  52{
  53        return 0;
  54}
  55
  56static inline void st_press_deallocate_ring(struct iio_dev *indio_dev)
  57{
  58}
  59#define ST_PRESS_TRIGGER_SET_STATE NULL
  60#endif /* CONFIG_IIO_BUFFER */
  61
  62#endif /* ST_PRESS_H */
  63