From: David Brownell <david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
To: Guennadi Liakhovetski
<g.liakhovetski-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
Cc: video4linux-list-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
i2c-GZX6beZjE8VD60Wz+7aTrA@public.gmane.org
Subject: Re: [RFC PATCH 3/8] Add PCA9536 4 bit I2C GPIO extender support to the pca9539 GPIO driver
Date: Thu, 31 Jan 2008 02:48:40 -0800 [thread overview]
Message-ID: <200801310248.41076.david-b@pacbell.net> (raw)
In-Reply-To: <Pine.LNX.4.64.0801311025210.6494-0199iw4Nj15frtckUFj5Ag@public.gmane.org>
On Thursday 31 January 2008, Guennadi Liakhovetski wrote:
> Thanks for all the comments, I'm going to address them in the next version
> of the patch. A couple of small clarifications first:
>
> On Wed, 30 Jan 2008, David Brownell wrote:
>
> > I'd split this patch into two parts (feature addition, and renaming),
>
> Would you prefer
>
> ...
>
> patch-1: git-mv
> patch-2: sed -e "s/pca9539/pca953x/"
> patch-3: pca953[678]
>
> ?
I think that last would be clearest in terms of GIT history
and patch reviewability... that's why you listed it, right? :)
So that one, given my druthers.
>
> > > > depends on I2C
> > > > help
> > > > - Say yes here to support the PCA9539 16-bit I/O port. These
> > > > - parts are made by NXP and TI.
> > > > + Say yes here to support PCA9539 16-bit and PCA9536 4-bit I/O ports.
> >
> > This should IMO list the '38 (8-bit) and '37 (4-bit) parts too.
> > Same register layout as the '36 (4-bit). Otherwise the "x" seems
> > misleading...
>
> Ok, I don't want to look through all datasheets ATM, so, I'll just trust
> you, ok?
OK by me. The NXP website makes them easy enough to find, but
it's another one of those sites that tries to be too clever by
overusing JavaScript.
> > What I'd do is save those four offsets directly in pca953x_chip,
> > initialized near when gpio_chip.ngpio is set up and with no need
> > for a separate "desc" type or table. Eventually there'd be:
> >
> > struct i2c_device_id chips [] = {
> > { "pca9536", 4, },
> > { "pca9537", 4, },
> > { "pca9538", 8, },
> > { "pca9539", 16, },
> > };
> > MODULE_DEVICE_TABLE(i2c, chips);
> >
> > Meanwhile, the equivalent of that table can come from a few strcmp()
> > tests in the probe() logic -- like what you already have, except
> > not using a "desc" type.
>
> I introduced the descriptor array, to contain _constant_ chip
> descriptions, much like your "struct i2c_device_id chips []" array above.
> So, actually, using my descriptor array is nearer to what it eventually
> should become, I think. Under 2.6.26 you'd also, probably, just have a
> "struct i2c_device_id *" member in your pca953x_chip.
Well, I was also pointing out that all you need is the number of GPIOs;
no need to save any ID struct at all. These chips are VERY similar.
> I can change the
> descriptor table to look exactly like the i2c_device_id, and then in probe
> just walk it in a loop, comparing the name? Or would you be getting a
> pointer to "struct i2c_device_id" in the probe()?
The probe() would get handed the ID, not unlike how USB or PCI work:
http://marc.info/?l=i2c&m=120091221712826&w=2
> > > > +#ifndef NO_GPIO
> > > > +#define NO_GPIO ((unsigned int)-1)
> > > > +#endif
> > > > +
> > >
> > > I don't understand this.
> >
> > Me either; *ANY* negative number is invalid as a GPIO number,
> > not just "-1"...
>
> Ok, this one should rather go into a separate patch. I'd like to have such
> a macro to check whether the platform is using a GPIO with this specific
> camera or not. Similar to NO_IRQ.
Then maybe there should be an is_valid_gpio() predicate.
Anything not between 0..MAX_INT would fail. And there
should be a Documentation/gpio.txt update to match.
- Dave
_______________________________________________
i2c mailing list
i2c-GZX6beZjE8VD60Wz+7aTrA@public.gmane.org
http://lists.lm-sensors.org/mailman/listinfo/i2c
next prev parent reply other threads:[~2008-01-31 10:48 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <Pine.LNX.4.64.0801231646090.4932@axis700.grange>
2008-01-23 17:41 ` [RFC PATCH 3/8] Philips PCA9536 4 bit I2C GPIO extender driver Guennadi Liakhovetski
[not found] ` <Pine.LNX.4.64.0801231820060.4932-0199iw4Nj15frtckUFj5Ag@public.gmane.org>
2008-01-27 21:45 ` Jean Delvare
2008-01-27 22:27 ` [i2c] " Guennadi Liakhovetski
[not found] ` <20080127224559.4eed7cea-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2008-01-28 6:18 ` David Brownell
2008-01-30 16:48 ` [i2c] [RFC PATCH 3/8] Add PCA9536 4 bit I2C GPIO extender support to the pca9539 GPIO driver Guennadi Liakhovetski
2008-01-31 1:31 ` eric miao
[not found] ` <f17812d70801301731n62597f12kc151d01c320e3dec-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-01-31 4:52 ` David Brownell
2008-01-31 10:13 ` [i2c] " Guennadi Liakhovetski
[not found] ` <Pine.LNX.4.64.0801311025210.6494-0199iw4Nj15frtckUFj5Ag@public.gmane.org>
2008-01-31 10:48 ` David Brownell [this message]
2008-01-31 11:30 ` Guennadi Liakhovetski
[not found] ` <Pine.LNX.4.64.0801311204280.6494-0199iw4Nj15frtckUFj5Ag@public.gmane.org>
2008-01-31 11:46 ` David Brownell
2008-01-31 11:49 ` David Brownell
2008-01-31 13:30 ` [i2c] " Guennadi Liakhovetski
[not found] ` <Pine.LNX.4.64.0801311425300.6494-0199iw4Nj15frtckUFj5Ag@public.gmane.org>
2008-01-31 23:56 ` David Brownell
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=200801310248.41076.david-b@pacbell.net \
--to=david-b-ybekhbn/0ldr7s880joybq@public.gmane.org \
--cc=g.liakhovetski-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org \
--cc=i2c-GZX6beZjE8VD60Wz+7aTrA@public.gmane.org \
--cc=video4linux-list-H+wXaHxf7aLQT0dZR+AlfA@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox