#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/interrupt.h>
#include <linux/platform_device.h>
#include <linux/i2c.h>
#include <linux/mfd/da903x.h>
#include <linux/slab.h>
#define DA9030_CHIP_ID …
#define DA9030_EVENT_A …
#define DA9030_EVENT_B …
#define DA9030_EVENT_C …
#define DA9030_STATUS …
#define DA9030_IRQ_MASK_A …
#define DA9030_IRQ_MASK_B …
#define DA9030_IRQ_MASK_C …
#define DA9030_SYS_CTRL_A …
#define DA9030_SYS_CTRL_B …
#define DA9030_FAULT_LOG …
#define DA9034_CHIP_ID …
#define DA9034_EVENT_A …
#define DA9034_EVENT_B …
#define DA9034_EVENT_C …
#define DA9034_EVENT_D …
#define DA9034_STATUS_A …
#define DA9034_STATUS_B …
#define DA9034_IRQ_MASK_A …
#define DA9034_IRQ_MASK_B …
#define DA9034_IRQ_MASK_C …
#define DA9034_IRQ_MASK_D …
#define DA9034_SYS_CTRL_A …
#define DA9034_SYS_CTRL_B …
#define DA9034_FAULT_LOG …
struct da903x_chip;
struct da903x_chip_ops { … };
struct da903x_chip { … };
static inline int __da903x_read(struct i2c_client *client,
int reg, uint8_t *val)
{ … }
static inline int __da903x_reads(struct i2c_client *client, int reg,
int len, uint8_t *val)
{ … }
static inline int __da903x_write(struct i2c_client *client,
int reg, uint8_t val)
{ … }
static inline int __da903x_writes(struct i2c_client *client, int reg,
int len, uint8_t *val)
{ … }
int da903x_register_notifier(struct device *dev, struct notifier_block *nb,
unsigned int events)
{ … }
EXPORT_SYMBOL_GPL(…);
int da903x_unregister_notifier(struct device *dev, struct notifier_block *nb,
unsigned int events)
{ … }
EXPORT_SYMBOL_GPL(…);
int da903x_write(struct device *dev, int reg, uint8_t val)
{ … }
EXPORT_SYMBOL_GPL(…);
int da903x_writes(struct device *dev, int reg, int len, uint8_t *val)
{ … }
EXPORT_SYMBOL_GPL(…);
int da903x_read(struct device *dev, int reg, uint8_t *val)
{ … }
EXPORT_SYMBOL_GPL(…);
int da903x_reads(struct device *dev, int reg, int len, uint8_t *val)
{ … }
EXPORT_SYMBOL_GPL(…);
int da903x_set_bits(struct device *dev, int reg, uint8_t bit_mask)
{ … }
EXPORT_SYMBOL_GPL(…);
int da903x_clr_bits(struct device *dev, int reg, uint8_t bit_mask)
{ … }
EXPORT_SYMBOL_GPL(…);
int da903x_update(struct device *dev, int reg, uint8_t val, uint8_t mask)
{ … }
EXPORT_SYMBOL_GPL(…);
int da903x_query_status(struct device *dev, unsigned int sbits)
{ … }
EXPORT_SYMBOL(…);
static int da9030_init_chip(struct da903x_chip *chip)
{ … }
static int da9030_unmask_events(struct da903x_chip *chip, unsigned int events)
{ … }
static int da9030_mask_events(struct da903x_chip *chip, unsigned int events)
{ … }
static int da9030_read_events(struct da903x_chip *chip, unsigned int *events)
{ … }
static int da9030_read_status(struct da903x_chip *chip, unsigned int *status)
{ … }
static int da9034_init_chip(struct da903x_chip *chip)
{ … }
static int da9034_unmask_events(struct da903x_chip *chip, unsigned int events)
{ … }
static int da9034_mask_events(struct da903x_chip *chip, unsigned int events)
{ … }
static int da9034_read_events(struct da903x_chip *chip, unsigned int *events)
{ … }
static int da9034_read_status(struct da903x_chip *chip, unsigned int *status)
{ … }
static void da903x_irq_work(struct work_struct *work)
{ … }
static irqreturn_t da903x_irq_handler(int irq, void *data)
{ … }
static const struct da903x_chip_ops da903x_ops[] = …;
static const struct i2c_device_id da903x_id_table[] = …;
MODULE_DEVICE_TABLE(i2c, da903x_id_table);
static int __remove_subdev(struct device *dev, void *unused)
{ … }
static int da903x_remove_subdevs(struct da903x_chip *chip)
{ … }
static int da903x_add_subdevs(struct da903x_chip *chip,
struct da903x_platform_data *pdata)
{ … }
static int da903x_probe(struct i2c_client *client)
{ … }
static void da903x_remove(struct i2c_client *client)
{ … }
static struct i2c_driver da903x_driver = …;
static int __init da903x_init(void)
{ … }
subsys_initcall(da903x_init);
static void __exit da903x_exit(void)
{ … }
module_exit(da903x_exit);
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_AUTHOR(…) …;