#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/device.h>
#include <linux/iio/sysfs.h>
#include <linux/delay.h>
#include <linux/pm.h>
#include <linux/interrupt.h>
#include <linux/irqreturn.h>
#include <linux/iio/trigger.h>
#include <linux/iio/trigger_consumer.h>
#include <linux/iio/triggered_buffer.h>
#include <linux/iio/buffer.h>
#include <linux/regmap.h>
#include "st_uvis25.h"
#define ST_UVIS25_REG_WHOAMI_ADDR …
#define ST_UVIS25_REG_WHOAMI_VAL …
#define ST_UVIS25_REG_CTRL1_ADDR …
#define ST_UVIS25_REG_ODR_MASK …
#define ST_UVIS25_REG_BDU_MASK …
#define ST_UVIS25_REG_CTRL2_ADDR …
#define ST_UVIS25_REG_BOOT_MASK …
#define ST_UVIS25_REG_CTRL3_ADDR …
#define ST_UVIS25_REG_HL_MASK …
#define ST_UVIS25_REG_STATUS_ADDR …
#define ST_UVIS25_REG_UV_DA_MASK …
#define ST_UVIS25_REG_OUT_ADDR …
static const struct iio_chan_spec st_uvis25_channels[] = …;
static int st_uvis25_check_whoami(struct st_uvis25_hw *hw)
{ … }
static int st_uvis25_set_enable(struct st_uvis25_hw *hw, bool enable)
{ … }
static int st_uvis25_read_oneshot(struct st_uvis25_hw *hw, u8 addr, int *val)
{ … }
static int st_uvis25_read_raw(struct iio_dev *iio_dev,
struct iio_chan_spec const *ch,
int *val, int *val2, long mask)
{ … }
static irqreturn_t st_uvis25_trigger_handler_thread(int irq, void *private)
{ … }
static int st_uvis25_allocate_trigger(struct iio_dev *iio_dev)
{ … }
static int st_uvis25_buffer_preenable(struct iio_dev *iio_dev)
{ … }
static int st_uvis25_buffer_postdisable(struct iio_dev *iio_dev)
{ … }
static const struct iio_buffer_setup_ops st_uvis25_buffer_ops = …;
static irqreturn_t st_uvis25_buffer_handler_thread(int irq, void *p)
{ … }
static int st_uvis25_allocate_buffer(struct iio_dev *iio_dev)
{ … }
static const struct iio_info st_uvis25_info = …;
static int st_uvis25_init_sensor(struct st_uvis25_hw *hw)
{ … }
int st_uvis25_probe(struct device *dev, int irq, struct regmap *regmap)
{ … }
EXPORT_SYMBOL_NS(…);
static int st_uvis25_suspend(struct device *dev)
{ … }
static int st_uvis25_resume(struct device *dev)
{ … }
EXPORT_NS_SIMPLE_DEV_PM_OPS(st_uvis25_pm_ops, st_uvis25_suspend, st_uvis25_resume, IIO_UVIS25);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;