#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/types.h>
#include <linux/slab.h>
#include <linux/i2c.h>
#include <linux/platform_device.h>
#include <linux/mfd/dln2.h>
#include <linux/acpi.h>
#define DLN2_I2C_MODULE_ID …
#define DLN2_I2C_CMD(cmd) …
#define DLN2_I2C_GET_PORT_COUNT …
#define DLN2_I2C_ENABLE …
#define DLN2_I2C_DISABLE …
#define DLN2_I2C_IS_ENABLED …
#define DLN2_I2C_WRITE …
#define DLN2_I2C_READ …
#define DLN2_I2C_SCAN_DEVICES …
#define DLN2_I2C_PULLUP_ENABLE …
#define DLN2_I2C_PULLUP_DISABLE …
#define DLN2_I2C_PULLUP_IS_ENABLED …
#define DLN2_I2C_TRANSFER …
#define DLN2_I2C_SET_MAX_REPLY_COUNT …
#define DLN2_I2C_GET_MAX_REPLY_COUNT …
#define DLN2_I2C_MAX_XFER_SIZE …
#define DLN2_I2C_BUF_SIZE …
struct dln2_i2c { … };
static int dln2_i2c_enable(struct dln2_i2c *dln2, bool enable)
{ … }
static int dln2_i2c_write(struct dln2_i2c *dln2, u8 addr,
u8 *data, u16 data_len)
{ … }
static int dln2_i2c_read(struct dln2_i2c *dln2, u16 addr, u8 *data,
u16 data_len)
{ … }
static int dln2_i2c_xfer(struct i2c_adapter *adapter,
struct i2c_msg *msgs, int num)
{ … }
static u32 dln2_i2c_func(struct i2c_adapter *a)
{ … }
static const struct i2c_algorithm dln2_i2c_usb_algorithm = …;
static const struct i2c_adapter_quirks dln2_i2c_quirks = …;
static int dln2_i2c_probe(struct platform_device *pdev)
{ … }
static void dln2_i2c_remove(struct platform_device *pdev)
{ … }
static struct platform_driver dln2_i2c_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_ALIAS(…) …;