From: "Florian Vallée" <fvallee@eukrea.fr>
To: Trent Piepho <tpiepho@kymetacorp.com>
Cc: "barebox@lists.infradead.org" <barebox@lists.infradead.org>
Subject: Re: [PATCH v2] GPIO: add Microchip MCP23017 / MCP23008 GPIO driver
Date: Mon, 21 Dec 2015 12:19:59 +0100 [thread overview]
Message-ID: <CADgCO28bA+FbpaTGij_0VE4wY+QiCOSKf-D3bSYECxcuL1QFvA@mail.gmail.com> (raw)
In-Reply-To: <1450206947.26955.174.camel@rtred1test09.kymeta.local>
On 15 December 2015 at 20:15, Trent Piepho <tpiepho@kymetacorp.com> wrote:
> On Tue, 2015-12-15 at 18:28 +0100, Florian Vallee wrote:
>> +
>> +/* A given spi_device can represent up to eight mcp23sxx chips
>> + * sharing the same chipselect but using different addresses
>> + * (e.g. chips #0 and #3 might be populated, but not #1 or $2).
>> + * Driver data holds all the per-chip data.
>> + */
>> +struct mcp23s08_driver_data {
>> + unsigned ngpio;
>> + struct mcp23s08 *mcp[8];
>> + struct mcp23s08 chip[];
>> +};
>
> It doesn't look like anything uses this struct.
>
>> +static int
>> +mcp23008_read_regs(struct mcp23s08 *mcp, unsigned reg, u16 *vals, unsigned n)
>> +{
>> + while (n--) {
>> + int ret = mcp23008_read(mcp, reg++);
>
> This could use mcp->ops->read(mcp, reg++) instead of mcp23008_read().
> Which would make it exactly the same as this function:
>
>> +static int
>> +mcp23017_read_regs(struct mcp23s08 *mcp, unsigned reg, u16 *vals, unsigned n)
>> +{
>> + while (n--) {
>> + int ret = mcp23017_read(mcp, reg++);
>> + if (ret < 0)
>> + return ret;
>> + *vals++ = ret;
>> + }
>> +
>> + return 0;
>> +}
>
> So just one read_regs fuction is needed. Which also would allow
> read_regs to be removed from the ops struct since it's the same for both
> chips.
>
Should we go as far as removing the read_regs ops ? Doing so will
specialize "mcp23s08_probe_one" for the i2c version of the chip. If we
ever want to integrate back the SPI part of the linux driver, leaving
the op has a minimal cost while enabling us to keep mcp23s08_probe_one
in sync with the linux's version.
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
prev parent reply other threads:[~2015-12-21 11:20 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-15 17:28 Florian Vallee
2015-12-15 18:16 ` Antony Pavlov
2015-12-15 19:15 ` Trent Piepho
2015-12-21 11:19 ` Florian Vallée [this message]
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=CADgCO28bA+FbpaTGij_0VE4wY+QiCOSKf-D3bSYECxcuL1QFvA@mail.gmail.com \
--to=fvallee@eukrea.fr \
--cc=barebox@lists.infradead.org \
--cc=tpiepho@kymetacorp.com \
/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