#include <linux/i2c.h>
#include <linux/rmi.h>
#include <linux/of.h>
#include <linux/delay.h>
#include <linux/regulator/consumer.h>
#include "rmi_driver.h"
#define BUFFER_SIZE_INCREMENT …
struct rmi_i2c_xport { … };
#define RMI_PAGE_SELECT_REGISTER …
#define RMI_I2C_PAGE(addr) …
static int rmi_set_page(struct rmi_i2c_xport *rmi_i2c, u8 page)
{ … }
static int rmi_i2c_write_block(struct rmi_transport_dev *xport, u16 addr,
const void *buf, size_t len)
{ … }
static int rmi_i2c_read_block(struct rmi_transport_dev *xport, u16 addr,
void *buf, size_t len)
{ … }
static const struct rmi_transport_ops rmi_i2c_ops = …;
#ifdef CONFIG_OF
static const struct of_device_id rmi_i2c_of_match[] = …;
MODULE_DEVICE_TABLE(of, rmi_i2c_of_match);
#endif
static void rmi_i2c_regulator_bulk_disable(void *data)
{ … }
static void rmi_i2c_unregister_transport(void *data)
{ … }
static int rmi_i2c_probe(struct i2c_client *client)
{ … }
static int rmi_i2c_suspend(struct device *dev)
{ … }
static int rmi_i2c_resume(struct device *dev)
{ … }
static int rmi_i2c_runtime_suspend(struct device *dev)
{ … }
static int rmi_i2c_runtime_resume(struct device *dev)
{ … }
static const struct dev_pm_ops rmi_i2c_pm = …;
static const struct i2c_device_id rmi_id[] = …;
MODULE_DEVICE_TABLE(i2c, rmi_id);
static struct i2c_driver rmi_i2c_driver = …;
module_i2c_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;