On Fri, 2013-07-05 at 14:37 +0100, Mark Brown wrote:
On Fri, Jul 05, 2013 at 07:05:06PM +0530, Ashish Chavan wrote:
On Fri, 2013-07-05 at 12:44 +0100, Mark Brown wrote:
static const struct i2c_device_id da9055_i2c_id[] = {
- { "da9055", 0 },
- { "da9055-codec", 0 }, { }
};
I can't believe that you've tested this.
Yes, I have tested this today only. But with 3.6.0-rc4 kernel. That is the newest kernel for which I have board and other required support available.
Your testing seems like it's not very good then - you do undersand that the problem that this is supposed to be fixing is that this is a multi function device? Please look at how other MFDs in the kernel work.
I feel that some info is missing from your view. DA9055 is CODEC + PMIC but with two different I2C addresses. Actually it is a case of two different chips enclosed in a single die. There is NO interconnection between CODEC and PMIC inside DA9055. To me, this seems enough reason to make two drivers independent from each other and not let one part know about the existence of other. Actually in near future, there may be three variants of this chip,
DA9055 - PMIC + CODEC DA9055 - PMIC only DA9055 - CODEC only
In my opinion, keeping the drivers independent will also help in re-using existing drivers "as it is" for any of the above combination.
Let me know if you have a different opinion.