mfd: Support 88pm8606 in 860x driver
authorHaojian Zhuang <haojian.zhuang@marvell.com>
Fri, 8 Jan 2010 11:01:24 +0000 (06:01 -0500)
committerSamuel Ortiz <sameo@linux.intel.com>
Sun, 7 Mar 2010 21:17:01 +0000 (22:17 +0100)
commit53dbab7af9ca13fa95605e9a5c31bb803dcba363
tree652214fb5b3cee8195e253e56314b913ed78cf88
parentbbd51b1ff1bf57b9ed7f062486a415509968d4d9
mfd: Support 88pm8606 in 860x driver

88PM8606 and 88PM8607 are two discrete chips used for power management.
Hardware designer can use them together or only one of them according to
requirement.

There's some logic tightly linked between these two chips. For example, USB
charger driver needs to access both chips by I2C interface.

Now share one driver to these two devices. Only one I2C client is identified
in platform init data. If another chip is also used, user should mark it in
companion_addr field of platform init data. Then driver could create another
I2C client for the companion chip.

All I2C operations are accessed by 860x-i2c driver. In order to support both
I2C client address, the read/write API is changed in below.

reg_read(client, offset)
reg_write(client, offset, data)

The benefit is that client drivers only need one kind of read/write API. I2C
and MFD driver can be shared in both 8606 and 8607.

Since API is changed, update API in 8607 regulator driver.

Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
drivers/mfd/88pm860x-core.c
drivers/mfd/88pm860x-i2c.c
drivers/regulator/88pm8607.c
include/linux/mfd/88pm860x.h [moved from include/linux/mfd/88pm8607.h with 82% similarity]