public inbox for linux-i2c@vger.kernel.org
 help / color / mirror / Atom feed
* Re: [PATCH 5/8] powerpc: i2c-mpc: make I2C bus speed configurable
       [not found]           ` <49D36F1F.2050107-5Yr1BZd7O62+XT7JhA+gdA@public.gmane.org>
@ 2009-04-01 13:55             ` Grant Likely
       [not found]               ` <fa686aa40904010655i73819214m795939e784889267-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
  0 siblings, 1 reply; 2+ messages in thread
From: Grant Likely @ 2009-04-01 13:55 UTC (permalink / raw)
  To: Wolfgang Grandegger
  Cc: linuxppc-dev-mnsaURCQ41sdnm+yROfE0A,
	devicetree-discuss-mnsaURCQ41sdnm+yROfE0A,
	linux-i2c-u79uwXL29TY76Z2rM5mHXA, Ben Dooks

On Wed, Apr 1, 2009 at 7:41 AM, Wolfgang Grandegger <wg-5Yr1BZd7O62+XT7JhA+gdA@public.gmane.org> wrote:
> Grant Likely wrote:
>> On Wed, Apr 1, 2009 at 1:51 AM, Wolfgang Grandegger <wg@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.

I saw and I like.  :-)

>> 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
>
> Or it could be moved back to the i2c_mpc driver and we add stubs for the
> functions to get the bus frequency, or use #ifdef's.

I'm happy with either as long as it lives in the same directory as the
i2c_mpc driver, and as long as the i2c maintainers are okay with it.
Oh, and if you use a separate file it should be statically linked into
the i2c_mpc module using the i2c_mpc-$(CONFIG_WHATEVER) trick.  No
EXPORT_SYMBOLS should be needed.

g.

-- 
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH 5/8] powerpc: i2c-mpc: make I2C bus speed configurable
       [not found]               ` <fa686aa40904010655i73819214m795939e784889267-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
@ 2009-04-02  6:55                 ` Wolfgang Grandegger
  0 siblings, 0 replies; 2+ messages in thread
From: Wolfgang Grandegger @ 2009-04-02  6:55 UTC (permalink / raw)
  To: Grant Likely
  Cc: linuxppc-dev-mnsaURCQ41sdnm+yROfE0A,
	devicetree-discuss-mnsaURCQ41sdnm+yROfE0A,
	linux-i2c-u79uwXL29TY76Z2rM5mHXA, Ben Dooks

Grant Likely wrote:
> On Wed, Apr 1, 2009 at 7:41 AM, Wolfgang Grandegger <wg-5Yr1BZd7O62+XT7JhA+gdA@public.gmane.org> wrote:
>> Grant Likely wrote:
>>> On Wed, Apr 1, 2009 at 1:51 AM, Wolfgang Grandegger <wg-5Yr1BZd7O62+XT7JhA+gdA@public.gmane.org> 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.
> 
> I saw and I like.  :-)
> 
>>> 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
>>
>> Or it could be moved back to the i2c_mpc driver and we add stubs for the
>> functions to get the bus frequency, or use #ifdef's.
> 
> I'm happy with either as long as it lives in the same directory as the
> i2c_mpc driver, and as long as the i2c maintainers are okay with it.

Ben, any preference here? See also below.

> Oh, and if you use a separate file it should be statically linked into
> the i2c_mpc module using the i2c_mpc-$(CONFIG_WHATEVER) trick.  No
> EXPORT_SYMBOLS should be needed.

Yep, then we would have in "drivers/i2c/busses/Makefile"

  obj-$(CONFIG_I2C_MPC)           += i2c-mpc.o
    i2c-mpc-y = i2c-mpc.o
    i2c-mpc-$(CONFIG_FSL_SOC) += i2c-mpc-8xxx.o
    i2c-mpc-$(CONFIG_PPC_52xx) += i2c-mpc-52xx.o

And a common include file i2c-mpc.h including the stubs for the arch
dependent functions. But we may get in trouble when we need support for
the MPC512x. I currently tend to add the FDR related code to an extra
file i2c-mpc-fdr.c, plus i2c-mpc.h and use the good old #ifdef's to
select the relevant code.

Wolfgang.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2009-04-02  6:55 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20090331123727.853787299@denx.de>
     [not found] ` <20090331124035.908249543@denx.de>
     [not found]   ` <fa686aa40903310841x42876819rafe3e8bf24b8646e@mail.gmail.com>
     [not found]     ` <49D31D1D.6020004@grandegger.com>
     [not found]       ` <fa686aa40904010630l798528efh465a7543a15f50e5@mail.gmail.com>
     [not found]         ` <49D36F1F.2050107@grandegger.com>
     [not found]           ` <49D36F1F.2050107-5Yr1BZd7O62+XT7JhA+gdA@public.gmane.org>
2009-04-01 13:55             ` [PATCH 5/8] powerpc: i2c-mpc: make I2C bus speed configurable Grant Likely
     [not found]               ` <fa686aa40904010655i73819214m795939e784889267-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-04-02  6:55                 ` Wolfgang Grandegger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox