#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/mutex.h>
#include <linux/interrupt.h>
#include <linux/sysfs.h>
#include <linux/iio/iio.h>
#include <linux/iio/sysfs.h>
#include <linux/iio/trigger.h>
#include <linux/iio/common/st_sensors.h>
#include "st_gyro.h"
#define ST_GYRO_NUMBER_DATA_CHANNELS …
#define ST_GYRO_DEFAULT_OUT_X_L_ADDR …
#define ST_GYRO_DEFAULT_OUT_Y_L_ADDR …
#define ST_GYRO_DEFAULT_OUT_Z_L_ADDR …
#define ST_GYRO_FS_AVL_245DPS …
#define ST_GYRO_FS_AVL_250DPS …
#define ST_GYRO_FS_AVL_500DPS …
#define ST_GYRO_FS_AVL_2000DPS …
static const struct iio_mount_matrix *
st_gyro_get_mount_matrix(const struct iio_dev *indio_dev,
const struct iio_chan_spec *chan)
{ … }
static const struct iio_chan_spec_ext_info st_gyro_mount_matrix_ext_info[] = …;
static const struct iio_chan_spec st_gyro_16bit_channels[] = …;
static const struct st_sensor_settings st_gyro_sensors_settings[] = …;
static const struct st_sensors_platform_data gyro_pdata = …;
static int st_gyro_read_raw(struct iio_dev *indio_dev,
struct iio_chan_spec const *ch, int *val,
int *val2, long mask)
{ … }
static int st_gyro_write_raw(struct iio_dev *indio_dev,
struct iio_chan_spec const *chan, int val, int val2, long mask)
{ … }
static ST_SENSORS_DEV_ATTR_SAMP_FREQ_AVAIL();
static ST_SENSORS_DEV_ATTR_SCALE_AVAIL(in_anglvel_scale_available);
static struct attribute *st_gyro_attributes[] = …;
static const struct attribute_group st_gyro_attribute_group = …;
static const struct iio_info gyro_info = …;
#ifdef CONFIG_IIO_TRIGGER
static const struct iio_trigger_ops st_gyro_trigger_ops = …;
#define ST_GYRO_TRIGGER_OPS …
#else
#define ST_GYRO_TRIGGER_OPS …
#endif
const struct st_sensor_settings *st_gyro_get_settings(const char *name)
{ … }
EXPORT_SYMBOL_NS(…);
int st_gyro_common_probe(struct iio_dev *indio_dev)
{ … }
EXPORT_SYMBOL_NS(…);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_IMPORT_NS(…);