All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jean Delvare <khali-PUYAD+kWke1g9hUCZPvPmw@public.gmane.org>
To: Richard Rojfors
	<richard.rojfors.ext-l7gf1WXxx3uGw+nKnLezzg@public.gmane.org>
Cc: Peter Korsgaard <jacmet-OfajU3CKLf1/SzgSGea1oA@public.gmane.org>,
	Ben Dooks <ben-linux-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org>,
	linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH] I2C: ocores can add I2C devices to the bus
Date: Thu, 4 Jun 2009 15:07:52 +0200	[thread overview]
Message-ID: <20090604150752.6aa7668c@hyperion.delvare> (raw)
In-Reply-To: <4A2639F6.2010505-l7gf1WXxx3uGw+nKnLezzg@public.gmane.org>

On Wed, 03 Jun 2009 10:53:10 +0200, Richard R?öjfors wrote:
> Peter Korsgaard wrote:
> >>>>>> "Jean" == Jean Delvare <khali-PUYAD+kWke1g9hUCZPvPmw@public.gmane.org> writes:
> > 
> > Hi,
> > 
> >  Jean> I don't like the idea much either, nor the implementation.
> > 
> >  Jean> Firstly, I don't understand why this would be needed. I can understand
> >  Jean> that in some cases you don't know the I2C bus number in advance, but
> >  Jean> then some code must still instantiate the I2C bus, and the same code
> >  Jean> should be able to call i2c_new_device() directly to instantiate the
> >  Jean> devices on that bus. Richard, did you try to just do this? If it
> >  Jean> doesn't work, please explain why.
> > 
> > Indeed. Isn't it just a matter of using i2c_add_numbered_adapter -
> > E.G.:
> 
> Let say there are several PCI boards which have I2C busses, connected in let say
> a standard PC. The PCI drivers could be MFD:s which exposes some platform
> devices for the I2C busses.

This doesn't make any sense to me to start with. PCI boards have PCI
drivers, not platform drivers. If you have an I2C bus on a PCI board,
the PCI driver simply registers it using i2c_add_adapter(), there is no
platform driver or device involved.

If you happen to have a PCI device which implements an I2C adapter
compatible with i2c-ocores, then what you want is to abstract the I2C
controller logic to a separate module, and have the current i2c-ocores
driver (which would become a simple glue module, and may be renamed to
i2c-ocores-platform) depend on it. Then add your i2c-ocores-pci driver
for the PCI implementation, also using the abstracted logic module as
its backend.

It might make sense to consider ocores an "I2C algorithm" and have
i2c-algo-ocores for the abstracted implementation.

> How should those drivers know which bus numbers that are free?
> Let say there are 2 boards of one type and two of an other.
> 
> The MFD:s might register there platform devices before there are I2C bus drivers available.
> So a call to i2c_get_adapter, won't return any adapter, so AFAIK there is no
> way to check if a bus number is "free" for use(?) Should those drivers talk to each other
> and try to coordinate the bus number usage?
>
> But even if it was possible to figure out bus numbers to use, the bus drivers might
> not be available when the MFD registers the platform device, so when should it call
> i2c_new_device? Start a timer and call i2c_get_adapter until it returns something?

I don't think you need to answer these questions any longer with the
model I proposed above.

-- 
Jean Delvare

  parent reply	other threads:[~2009-06-04 13:07 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-02 17:52 [PATCH] I2C: ocores can add I2C devices to the bus Richard Ršöjfors
     [not found] ` <4A2566E8.7080404-l7gf1WXxx3uGw+nKnLezzg@public.gmane.org>
2009-06-02 22:48   ` Ben Dooks
     [not found]     ` <20090602224822.GE18453-elnMNo+KYs3pIgCt6eIbzw@public.gmane.org>
2009-06-03  8:00       ` Richard R?öjfors
2009-06-03  8:15       ` Jean Delvare
     [not found]         ` <20090603101533.599d41db-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2009-06-03  8:22           ` Peter Korsgaard
     [not found]             ` <87oct53ewh.fsf-uXGAPMMVk8amE9MCos8gUmSdvHPH+/yF@public.gmane.org>
2009-06-03  8:49               ` Jean Delvare
2009-06-03  8:53               ` Richard R?öjfors
     [not found]                 ` <4A2639F6.2010505-l7gf1WXxx3uGw+nKnLezzg@public.gmane.org>
2009-06-04 12:11                   ` Richard Ršöjfors
2009-06-04 13:07                   ` Jean Delvare [this message]
     [not found]                     ` <20090604150752.6aa7668c-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2009-06-04 14:24                       ` Richard Ršöjfors
     [not found]                         ` <4A27D91E.1000306-l7gf1WXxx3uGw+nKnLezzg@public.gmane.org>
2009-06-04 14:41                           ` Mark Brown
2009-06-04 19:02                           ` Jean Delvare
     [not found]                             ` <20090604210243.078aeb2f-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2009-06-05  7:12                               ` Richard Röjfors
     [not found]                                 ` <4A28C579.7090507-l7gf1WXxx3uGw+nKnLezzg@public.gmane.org>
2009-06-05 11:54                                   ` Jean Delvare
2009-06-13  9:38   ` Ben Dooks
     [not found]     ` <20090613093830.GD20446-elnMNo+KYs3pIgCt6eIbzw@public.gmane.org>
2009-06-13  9:39       ` Ben Dooks

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20090604150752.6aa7668c@hyperion.delvare \
    --to=khali-puyad+kwke1g9huczpvpmw@public.gmane.org \
    --cc=ben-linux-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org \
    --cc=jacmet-OfajU3CKLf1/SzgSGea1oA@public.gmane.org \
    --cc=linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=richard.rojfors.ext-l7gf1WXxx3uGw+nKnLezzg@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.