From: Jean Delvare <khali-PUYAD+kWke1g9hUCZPvPmw@public.gmane.org>
To: "Richard Röjfors"
<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 21:02:43 +0200 [thread overview]
Message-ID: <20090604210243.078aeb2f@hyperion.delvare> (raw)
In-Reply-To: <4A27D91E.1000306-l7gf1WXxx3uGw+nKnLezzg@public.gmane.org>
On Thu, 04 Jun 2009 16:24:30 +0200, Richard Röjfors wrote:
Please do all of us a favor and stop using non-ASCII characters in your
e-mail address.
> >> 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.
>
> We have a PCIe device, actually a FPGA with a lot of different IP:s in it.
> For instance an UART, I2C, SPI controller, ethernet controller,
> radio tuner, video grabber, SDHCI, etc etc. And we only get one single
> interrupt from the device.
>
> The PCI driver for this device implements an MFD
> (multi function device, check drivers/mfd). The idea of MFD:s is to
> register platform devices for all cells. And to multiplex IRQ:s to the
> platform devices. And by doing this all existing platform drivers
> can be reused.
OK, I understand your design now.
> > 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.
>
> Problem here is that our PCI device implements _a lot_ of stuff,
> not only I2C.
> That's what the MFD is all about, split it into multiple
> platform devices. So in my case the MFD driver has to call the algo
> directly.
>
> I don't see the bad thing about my idea. I mean the MFD driver knows
> that it have an ocores I2C hardware, and that there are a couple of
> devices on the I2C bus.
> Why not pass a table of devices when registering the I2C platform device?
> I think that's nicer than having the MFD register a lot of platform
> devices, but when it comes I2C it has to implement it by itself.
> This more or less breaks the whole MFD idea :-(
I am now convinced your proposed implementation makes sense for your
specific need (which is relatively rare, which is why i2c-core doesn't
handle it.) And contrary to what I first wrote, this doesn't need to be
moved to i2c-core: this is specific enough that I'd rather let the code
live in the bus driver (i2c-ocores) for now, and only if at least two
other bus drivers need the same, consider moving it to i2c-core.
So if you fix the minor objection Ben had about your patch and resend
it, I think we can merge that. Oh, and I also believe your driver
should call i2c_unregister_device() on removal, for symmetry.
> Btw SPI does something like I do, some of the SPI drivers calls
> of_register_spi_devices, which registers devices to the newly created
> master.
We have of_register_i2c_devices() which works exactly the same, but I
can't see the relation between Open Firmware and the problem at hand.
--
Jean Delvare
next prev parent reply other threads:[~2009-06-04 19:02 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
[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 [this message]
[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=20090604210243.078aeb2f@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.