[PATCH 5/8] powerpc: i2c-mpc: make I2C bus speed configurable
Wolfgang Grandegger
wg at grandegger.com
Thu Apr 2 00:55:07 EST 2009
Wolfgang Grandegger wrote:
> Grant Likely wrote:
>> On Wed, Apr 1, 2009 at 1:51 AM, Wolfgang Grandegger <wg at grandegger.com> wrote:
>>> Grant Likely wrote:
>>>> The table definition is more verbose this way, but I think it results
>>>> in more understandable and easier to extend code. It also adds lets
>>>> the compiler do more type checking for you.
>>> OK but I don't like the callback function to do the settings. We need
>>> backward compatibility with old DTS files including the ugly "dfsrr"
>>> property, right? Then it seems consequent to continue using i2c->flags
>>> for that purpose and not to introduce another method. If we don't need
>>> backward compatibility, we could drop the flags completely and just use
>>> callback functions.
>> I don't understand why you don't like it. It's an elegant solution
>> and it simplifies the code somewhat. After grabbing the callback
>> pointer the compatibility code can simply override it. But I won't
>> belabor the point or oppose the patch if you stick with the flags
>> pointer.
>
> I changed my mind ;-). Have a look to PATCH v2 I sent out a few minutes ago.
>
>>>>> --- linux-2.6.orig/arch/powerpc/platforms/52xx/mpc52xx_common.c 2009-03-31 13:25:08.000000000 +0200
>>>>> +++ linux-2.6/arch/powerpc/platforms/52xx/mpc52xx_common.c 2009-03-31 13:28:54.309718526 +0200
>>>>> +int fsl_i2c_get_fdr(struct device_node *node, u32 i2c_clock, u32 i2c_flags)
>>>>> +{
>>>>> [...]
>>>>> +}
>>>>> +EXPORT_SYMBOL(fsl_i2c_get_fdr);
>>>> does not work on a multiplatform kernel. Both 8xxx and 52xx support
>>>> can be selected at the same time.
>>> OK, then we need different functions including stubs.
>> I've been thinking about this more. These tables are only ever going
>> to be used by the i2c_mpc driver and so really they are a part of the
>> i2c_mpc driver itself. Putting them into common code doesn't make any
>> sense because it is not common code. I will not merge a patch that
>> puts them into mpc5200 common code.
>
> It's not common code, I agree. How about putting it into mpc52xx_i2c.c
> and use:
>
> $ cat Makefile
> obj-$(CONFIG_I2C_MPC) += mpc52xx_i2c.o
That not a good idea either. I just checked the I2C interface of the
MPC512x and it can use the same table then the MPC5200B.
Wolfgang.
More information about the Linuxppc-dev
mailing list