#include <linux/i2c.h>
#include <linux/crc8.h>
#include <linux/iio/iio.h>
#include <linux/mod_devicetable.h>
#include <linux/regulator/consumer.h>
#include <linux/unaligned.h>
#define SDP500_CRC8_POLYNOMIAL …
#define SDP500_READ_SIZE …
#define SDP500_I2C_START_MEAS …
struct sdp500_data { … };
DECLARE_CRC8_TABLE(sdp500_crc8_table);
static int sdp500_start_measurement(struct sdp500_data *data)
{ … }
static const struct iio_chan_spec sdp500_channels[] = …;
static int sdp500_read_raw(struct iio_dev *indio_dev,
struct iio_chan_spec const *chan,
int *val, int *val2, long mask)
{ … }
static const struct iio_info sdp500_info = …;
static int sdp500_probe(struct i2c_client *client)
{ … }
static const struct i2c_device_id sdp500_id[] = …;
MODULE_DEVICE_TABLE(i2c, sdp500_id);
static const struct of_device_id sdp500_of_match[] = …;
MODULE_DEVICE_TABLE(of, sdp500_of_match);
static struct i2c_driver sdp500_driver = …;
module_i2c_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;