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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).