#include <linux/device.h>
#include <linux/fsi.h>
#include <linux/i2c.h>
#include <linux/module.h>
#include <linux/mod_devicetable.h>
#include <linux/mutex.h>
#include "fsi-master-i2cr.h"
#define CREATE_TRACE_POINTS
#include <trace/events/fsi_master_i2cr.h>
#define I2CR_ADDRESS_CFAM(a) …
#define I2CR_INITIAL_PARITY …
#define I2CR_STATUS_CMD …
#define I2CR_STATUS_ERR …
#define I2CR_ERROR_CMD …
#define I2CR_LOG_CMD …
static const u8 i2cr_cfam[] = …;
static bool i2cr_check_parity32(u32 v, bool parity)
{ … }
static bool i2cr_check_parity64(u64 v)
{ … }
static u32 i2cr_get_command(u32 address, bool parity)
{ … }
static int i2cr_transfer(struct i2c_client *client, u32 command, u64 *data)
{ … }
static int i2cr_check_status(struct i2c_client *client)
{ … }
int fsi_master_i2cr_read(struct fsi_master_i2cr *i2cr, u32 addr, u64 *data)
{ … }
EXPORT_SYMBOL_GPL(…);
int fsi_master_i2cr_write(struct fsi_master_i2cr *i2cr, u32 addr, u64 data)
{ … }
EXPORT_SYMBOL_GPL(…);
static int i2cr_read(struct fsi_master *master, int link, uint8_t id, uint32_t addr, void *val,
size_t size)
{ … }
static int i2cr_write(struct fsi_master *master, int link, uint8_t id, uint32_t addr,
const void *val, size_t size)
{ … }
static void i2cr_release(struct device *dev)
{ … }
static int i2cr_probe(struct i2c_client *client)
{ … }
static void i2cr_remove(struct i2c_client *client)
{ … }
static const struct of_device_id i2cr_ids[] = …;
MODULE_DEVICE_TABLE(of, i2cr_ids);
static struct i2c_driver i2cr_driver = …;
module_i2c_driver(…) …
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;