From: Scott Wood <scottwood@freescale.com>
To: Jon Smirl <jonsmirl@gmail.com>
Cc: Tjernlund <tjernlund@tjernlund.se>,
linuxppc-dev@ozlabs.org, Jean Delvare <khali@linux-fr.org>,
i2c@lm-sensors.org
Subject: Re: [RFC] Rework of i2c-mpc.c - Freescale i2c driver
Date: Mon, 05 Nov 2007 14:51:51 -0600 [thread overview]
Message-ID: <472F8267.8070106@freescale.com> (raw)
In-Reply-To: <9e4733910711051230w2d90a710idec3dcfc2e0f5c16@mail.gmail.com>
Jon Smirl wrote:
> On 11/5/07, Scott Wood <scottwood@freescale.com> wrote:
>> Jon Smirl wrote:
>>> This is my first pass at reworking the Freescale i2c driver. It
>>> switches the driver from being a platform driver to an open firmware
>>> one. I've checked it out on my hardware and it is working.
>> We may want to hold off on this until arch/ppc goes away (or at least
>> all users of this driver in arch/ppc).
>
> How about renaming the old driver file and leaving it hooked to ppc?
> Then it would get deleted when ppc goes away. That would let work
> progress on the powerpc version.
Or we could have one driver that has two probe methods. I don't like
forking the driver.
> I'm working on this because I'm adding codecs under powerpc that use
> i2c and I want consistent device tree use.
We already support i2c clients in the device tree, via the code in
fsl_soc.c.
>>> cell-index = <1>;
>> What is cell-index for?
>
> I was using it to control the bus number, is that the wrong attribute?
It shouldn't be specified at all -- the hardware has no concept of a
device number.
>>> rtc@32 {
>>> device_type = "rtc";
>> This isn't really necessary.
>
> Code doesn't access it. I copied it from a pre-existing device tree.
I'm just trying to keep the damage from spreading. :-)
>>> One side effect is that legacy style i2c drivers won't work anymore.
>> If you mean legacy-style client drivers, why not?
>
> i2c_new_device() doesn't work with legacy-style client drivers.
No, but they should still work the old way.
>>> Or push these strings into the chip drivers and modify
>>> i2c-core to also match on the device tree style names.
>> That would be ideal; it just hasn't been done yet.
>
> This is not hard to do but the i2c people will have to agree. I need
> to change the i2c_driver structure to include the additional names.
I got a fair bit of resistance from them on the topic of multiple match
names for i2c clients.
>> Most of this code should be made generic and placed in drivers/of.
>
> How so, it is specific to adding i2c drivers.
I meant generic with respect to the type of i2c controller, not generic
to all device types. :-)
It could be drivers/of/i2c.c, or drivers/i2c/of.c, etc.
>> We might as well just use i2c_new_device() instead of messing around
>> with bus numbers. Note that this is technically no longer platform
>> code, so it's harder to justify claiming the static numberspace.
>
> I was allowing control of the bus number with "cell-index" and
> i2c_add_numbered_adapter().
> Should I get rid of this and switch to i2c_add_adapter()?
Yes.
>>> + i2c->base = ioremap((phys_addr_t)mem.start, MPC_I2C_REGION);
>>> if (!i2c->base) {
>>> printk(KERN_ERR "i2c-mpc - failed to map controller\n");
>> Use of_iomap().
>
> I didn't write this, how should it be done? MPC_I2C_REGION can be
> eliminated by using mem.start - mem.end.
i2c->base = of_iomap(op->node, 0);
of_address_to_resource() and ioremap() are combined into one.
>> Let's take this opportunity to stop matching on device_type here
>> (including updating booting-without-of.txt).
>
> Remove the .type line and leave .compatible?
Yes.
>>> +static struct of_platform_driver mpc_i2c_driver = {
>>> + .owner = THIS_MODULE,
>>> + .name = DRV_NAME,
>>> + .match_table = mpc_i2c_of_match,
>>> + .probe = mpc_i2c_probe,
>>> + .remove = __devexit_p(mpc_i2c_remove),
>>> + .driver = {
>>> + .name = DRV_NAME,
>>> },
>>> };
>> Do we still need .name if we have .driver.name?
>
> Yes, i2c-core is matching on mpc_i2c_driver.name, i2c-core would need
> to be changed to use mpc_i2c_driver.driver.name.
How can i2c-core be matching on a field in an OF-specific struct?
-Scott
next prev parent reply other threads:[~2007-11-05 21:00 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-11-05 15:14 [RFC] Rework of i2c-mpc.c - Freescale i2c driver Jon Smirl
2007-11-05 19:22 ` Matt Sealey
2007-11-05 19:51 ` Jon Smirl
2007-11-05 19:55 ` Scott Wood
2007-11-05 20:04 ` Jon Smirl
2007-11-05 20:06 ` Scott Wood
2007-11-05 20:11 ` Grant Likely
2007-11-05 19:43 ` Scott Wood
2007-11-05 20:30 ` Jon Smirl
2007-11-05 20:51 ` Scott Wood [this message]
2007-11-05 21:52 ` Matt Sealey
2007-11-05 21:55 ` Scott Wood
2007-11-05 23:03 ` Grant Likely
2007-11-06 17:32 ` Jean Delvare
2007-11-06 18:53 ` Matt Sealey
2007-11-06 20:31 ` Jean Delvare
2007-11-06 21:06 ` Matt Sealey
2007-11-05 22:46 ` Grant Likely
2007-11-06 0:33 ` Jon Smirl
2007-11-06 22:20 ` David Gibson
2007-11-06 0:41 ` Jon Smirl
2007-11-06 17:02 ` Scott Wood
2007-11-06 4:25 ` Jon Smirl
2007-11-06 4:40 ` Stephen Rothwell
2007-11-06 19:02 ` Jon Smirl
2007-11-06 22:22 ` David Gibson
2007-11-06 17:29 ` Jean Delvare
2007-11-06 17:36 ` Scott Wood
2007-11-06 18:10 ` Jean Delvare
2007-11-06 18:26 ` Grant Likely
2007-11-06 18:26 ` Grant Likely
2007-11-06 19:34 ` Jean Delvare
2007-11-06 18:29 ` Scott Wood
2007-11-06 17:45 ` Jon Smirl
2007-11-06 18:17 ` Jean Delvare
2007-11-06 19:07 ` Jon Smirl
2007-11-06 1:34 ` Jon Smirl
2007-11-06 2:28 ` Stephen Rothwell
2007-11-05 20:03 ` Grant Likely
2007-11-05 20:41 ` Jon Smirl
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=472F8267.8070106@freescale.com \
--to=scottwood@freescale.com \
--cc=i2c@lm-sensors.org \
--cc=jonsmirl@gmail.com \
--cc=khali@linux-fr.org \
--cc=linuxppc-dev@ozlabs.org \
--cc=tjernlund@tjernlund.se \
/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.