#include <linux/crc8.h>
#include <linux/device.h>
#include <linux/errno.h>
#include <linux/i2c.h>
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/types.h>
#include <linux/unaligned.h>
#include "scd30.h"
#define SCD30_I2C_MAX_BUF_SIZE …
#define SCD30_I2C_CRC8_POLYNOMIAL …
static u16 scd30_i2c_cmd_lookup_tbl[] = …;
DECLARE_CRC8_TABLE(scd30_i2c_crc8_tbl);
static int scd30_i2c_xfer(struct scd30_state *state, char *txbuf, int txsize,
char *rxbuf, int rxsize)
{ … }
static int scd30_i2c_command(struct scd30_state *state, enum scd30_cmd cmd, u16 arg,
void *response, int size)
{ … }
static int scd30_i2c_probe(struct i2c_client *client)
{ … }
static const struct of_device_id scd30_i2c_of_match[] = …;
MODULE_DEVICE_TABLE(of, scd30_i2c_of_match);
static struct i2c_driver scd30_i2c_driver = …;
module_i2c_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_IMPORT_NS(…);