#include <linux/module.h>
#include <linux/pci.h>
#include <linux/kernel.h>
#include <linux/stddef.h>
#include <linux/sched.h>
#include <linux/i2c.h>
#include <linux/delay.h>
#include <linux/slab.h>
#include <linux/io.h>
#include "i2c-pasemi-core.h"
#define REG_MTXFIFO …
#define REG_MRXFIFO …
#define REG_SMSTA …
#define REG_IMASK …
#define REG_CTL …
#define REG_REV …
#define MTXFIFO_READ …
#define MTXFIFO_STOP …
#define MTXFIFO_START …
#define MTXFIFO_DATA_M …
#define MRXFIFO_EMPTY …
#define MRXFIFO_DATA_M …
#define SMSTA_XEN …
#define SMSTA_MTN …
#define CTL_MRR …
#define CTL_MTR …
#define CTL_EN …
#define CTL_CLK_M …
static inline void reg_write(struct pasemi_smbus *smbus, int reg, int val)
{ … }
static inline int reg_read(struct pasemi_smbus *smbus, int reg)
{ … }
#define TXFIFO_WR(smbus, reg) …
#define RXFIFO_RD(smbus) …
static void pasemi_reset(struct pasemi_smbus *smbus)
{ … }
static void pasemi_smb_clear(struct pasemi_smbus *smbus)
{ … }
static int pasemi_smb_waitready(struct pasemi_smbus *smbus)
{ … }
static int pasemi_i2c_xfer_msg(struct i2c_adapter *adapter,
struct i2c_msg *msg, int stop)
{ … }
static int pasemi_i2c_xfer(struct i2c_adapter *adapter,
struct i2c_msg *msgs, int num)
{ … }
static int pasemi_smb_xfer(struct i2c_adapter *adapter,
u16 addr, unsigned short flags, char read_write, u8 command,
int size, union i2c_smbus_data *data)
{ … }
static u32 pasemi_smb_func(struct i2c_adapter *adapter)
{ … }
static const struct i2c_algorithm smbus_algorithm = …;
int pasemi_i2c_common_probe(struct pasemi_smbus *smbus)
{ … }
EXPORT_SYMBOL_GPL(…);
irqreturn_t pasemi_irq_handler(int irq, void *dev_id)
{ … }
EXPORT_SYMBOL_GPL(…);
MODULE_LICENSE(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;