#include <linux/module.h>
#include <linux/delay.h>
#include <linux/i2c.h>
#include <linux/pci.h>
#include <linux/acpi.h>
#define ALI1563_MAX_TIMEOUT …
#define ALI1563_SMBBA …
#define ALI1563_SMB_IOEN …
#define ALI1563_SMB_HOSTEN …
#define ALI1563_SMB_IOSIZE …
#define SMB_HST_STS …
#define SMB_HST_CNTL1 …
#define SMB_HST_CNTL2 …
#define SMB_HST_CMD …
#define SMB_HST_ADD …
#define SMB_HST_DAT0 …
#define SMB_HST_DAT1 …
#define SMB_BLK_DAT …
#define HST_STS_BUSY …
#define HST_STS_INTR …
#define HST_STS_DEVERR …
#define HST_STS_BUSERR …
#define HST_STS_FAIL …
#define HST_STS_DONE …
#define HST_STS_BAD …
#define HST_CNTL1_TIMEOUT …
#define HST_CNTL1_LAST …
#define HST_CNTL2_KILL …
#define HST_CNTL2_START …
#define HST_CNTL2_QUICK …
#define HST_CNTL2_BYTE …
#define HST_CNTL2_BYTE_DATA …
#define HST_CNTL2_WORD_DATA …
#define HST_CNTL2_BLOCK …
#define HST_CNTL2_SIZEMASK …
static struct pci_driver ali1563_pci_driver;
static unsigned short ali1563_smba;
static int ali1563_transaction(struct i2c_adapter *a, int size)
{ … }
static int ali1563_block_start(struct i2c_adapter *a)
{ … }
static int ali1563_block(struct i2c_adapter *a,
union i2c_smbus_data *data, u8 rw)
{ … }
static s32 ali1563_access(struct i2c_adapter *a, u16 addr,
unsigned short flags, char rw, u8 cmd,
int size, union i2c_smbus_data *data)
{ … }
static u32 ali1563_func(struct i2c_adapter *a)
{ … }
static int ali1563_setup(struct pci_dev *dev)
{ … }
static void ali1563_shutdown(struct pci_dev *dev)
{ … }
static const struct i2c_algorithm ali1563_algorithm = …;
static struct i2c_adapter ali1563_adapter = …;
static int ali1563_probe(struct pci_dev *dev,
const struct pci_device_id *id_table)
{ … }
static void ali1563_remove(struct pci_dev *dev)
{ … }
static const struct pci_device_id ali1563_id_table[] = …;
MODULE_DEVICE_TABLE(pci, ali1563_id_table);
static struct pci_driver ali1563_pci_driver = …;
module_pci_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;