#include <linux/i2c.h>
#include <linux/math.h>
#include <linux/module.h>
#include <linux/mutex.h>
#include <linux/regmap.h>
#include <linux/iio/iio.h>
#include <asm/unaligned.h>
#define LTR390_MAIN_CTRL …
#define LTR390_PART_ID …
#define LTR390_UVS_DATA …
#define LTR390_SW_RESET …
#define LTR390_UVS_MODE …
#define LTR390_SENSOR_ENABLE …
#define LTR390_PART_NUMBER_ID …
#define LTR390_COUNTS_PER_UVI …
#define LTR390_WINDOW_FACTOR …
struct ltr390_data { … };
static const struct regmap_config ltr390_regmap_config = …;
static int ltr390_register_read(struct ltr390_data *data, u8 register_address)
{ … }
static int ltr390_read_raw(struct iio_dev *iio_device,
struct iio_chan_spec const *chan, int *val,
int *val2, long mask)
{ … }
static const struct iio_info ltr390_info = …;
static const struct iio_chan_spec ltr390_channel = …;
static int ltr390_probe(struct i2c_client *client)
{ … }
static const struct i2c_device_id ltr390_id[] = …;
MODULE_DEVICE_TABLE(i2c, ltr390_id);
static const struct of_device_id ltr390_of_table[] = …;
MODULE_DEVICE_TABLE(of, ltr390_of_table);
static struct i2c_driver ltr390_driver = …;
module_i2c_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;