mfd: Split 88pm8607 driver

Create 88pm8607-i2c driver to support all I2C operation of 88PM8607.

Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
This commit is contained in:
Haojian Zhuang 2010-01-06 17:04:18 -05:00 committed by Samuel Ortiz
commit bbd51b1ff1
5 changed files with 346 additions and 306 deletions

View file

@ -33,8 +33,8 @@ enum {
PM8607_ID_RG_MAX,
};
#define CHIP_ID (0x40)
#define CHIP_ID_MASK (0xF8)
#define PM8607_ID (0x40) /* 8607 chip ID */
#define PM8607_ID_MASK (0xF8) /* 8607 chip ID mask */
/* Interrupt Registers */
#define PM8607_STATUS_1 (0x01)
@ -185,6 +185,7 @@ struct pm8607_chip {
struct device *dev;
struct mutex io_lock;
struct i2c_client *client;
struct i2c_device_id id;
int (*read)(struct pm8607_chip *chip, int reg, int bytes, void *dest);
int (*write)(struct pm8607_chip *chip, int reg, int bytes, void *src);
@ -214,4 +215,9 @@ extern int pm8607_bulk_write(struct pm8607_chip *, int, int,
unsigned char *);
extern int pm8607_set_bits(struct pm8607_chip *, int, unsigned char,
unsigned char);
#endif /* __LINUX_MFD_88PM8607_H */
extern int pm860x_device_init(struct pm8607_chip *chip,
struct pm8607_platform_data *pdata);
extern void pm860x_device_exit(struct pm8607_chip *chip);
#endif /* __LINUX_MFD_88PM860X_H */