From: Grant Likely <grant.likely@secretlab.ca>
To: Ben Gamari <bgamari.foss@gmail.com>
Cc: beagleboard <beagleboard@googlegroups.com>,
linux-omap <linux-omap@vger.kernel.org>,
David Brownell <dbrownell@users.sourceforge.net>,
Michael Hennerich <michael.hennerich@analog.com>,
spi-devel-general <spi-devel-general@lists.sourceforge.net>,
Eric Miao <eric.miao@canonical.com>
Subject: Re: [PATCH] mcspi: Add support for GPIO chip select lines
Date: Sat, 12 Feb 2011 01:33:24 -0700 [thread overview]
Message-ID: <20110212083324.GA17755@angua.secretlab.ca> (raw)
In-Reply-To: <878vzfr9h7.fsf@gmail.com>
On Fri, Dec 24, 2010 at 01:05:56AM -0500, Ben Gamari wrote:
> On Thu, 23 Dec 2010 20:28:19 -0700, Grant Likely <grant.likely@secretlab.ca> wrote:
> > On Thu, Dec 23, 2010 at 09:27:20PM -0500, Ben Gamari wrote:
> > > I understand your concerns, but I'm not sure how to satisfy them without
> > > crippling the design's ability to accomodate my use-case. I can't pass a
> > > GPIO line per spi_board_info since in my case of a multiplexed CS
> > > configuration a single pin's state does not uniquely determine the
> > > desired CS. The only other option I can think of is that we somehow
> > > provide a list of GPIOs for each bus and map the CS numbers to
> > > permutations of GPIO states. Unfortunately, I don't know of any suitable
> > > structure to put this GPIO list in. Perhaps I'm missing something obvious?
> >
> > Close, but not quite. Assign one gpio number to each cs state, and
> > write a gpio controller driver that maps the linux-gpio number to the
> > physical gpio state permutation. The mapping from gpio# to ss# is
> > 1:1, but the driver behind the gpio# can do whatever you need it to
> > do.
> >
> I see. I'm still not convinced that this is the route to take,
> however. It seems like this virtual gpio interface is not only pretty
> clunky (simple board file glue turns into an entire gpio chip driver),
> it seems like this is a very inaccurate and not very useful way to
> expose a multiplexed CS configuration; e.g. what is this chip driver to
> do if the user tries to set two CS pins at once?
(Sorry for the really laggy reply)
I don't see it being that big a deal. gpio drivers are pretty
lightweight and it is fine to have domain-specific limitations on how
gpios for a particular "gpio controller" behave. In your example, if
the hardware doesn't support enabling 2 CS pins at once, then you make
a choice, either setting one when the other is already set simply does
not work; or it could reset the other state. Either choice would be
fine. The SPI driver must do the right thing regardless and deselect
the previous CS line before enabling a new one.
The other alternative would be to implement a new SPI chipselect
common infrastructure, but IMO, that would just end up looking like a
duplication of the gpio infrastructure.
Regardless, my point still stands, platform callbacks for what amounts
to gpio manipulations doesn't make a whole lot of sense.
> Is there precedent for
> using the GPIO subsystem in this way?
Yes, in drivers/spi look at mpc52xx_spi.c, davinci_spi.c, ath79_spi.c,
atmel_spi.c, and many more. Grep for gpio in drivers/spi.
g.
next prev parent reply other threads:[~2011-02-12 8:33 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-01-20 19:47 (no subject) Ben Gamari
2010-01-21 0:04 ` Ben Dooks
2010-01-21 0:04 ` (no subject) Ben Dooks
2010-01-21 0:04 ` Ben Dooks
2010-01-22 15:53 ` Re: Ben Gamari
2010-01-28 4:10 ` McSPI questions pertaining to GPIO chip select support Ben Gamari
[not found] ` <1264651770-sup-5197@ben-laptop>
2010-01-28 4:15 ` Bill Gatliff
2010-01-28 4:25 ` Ben Gamari
2010-01-28 4:27 ` Bill Gatliff
2010-01-28 4:33 ` jassi brar
[not found] ` <1b68c6791001272033q60dd31dbif4de285cd9bac83d-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-01-29 0:32 ` Ben Gamari
2010-01-29 1:09 ` jassi brar
[not found] ` <1b68c6791001281709l7d11da30lee486632e85b99cb-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-01-29 1:58 ` Ben Gamari
2010-12-21 17:56 ` [RFC PATCH] GPIO chip select support for McSPI Ben Gamari
2010-12-21 17:56 ` [PATCH] mcspi: Add support for GPIO chip select lines Ben Gamari
[not found] ` <1292954195-20204-2-git-send-email-bgamari.foss@gmail.com>
2010-12-23 19:59 ` Tony Lindgren
2010-12-23 21:38 ` Grant Likely
2010-12-23 23:09 ` Ben Gamari
2010-12-24 0:37 ` Grant Likely
2010-12-24 2:27 ` Ben Gamari
2010-12-24 3:28 ` Grant Likely
2010-12-24 6:05 ` Ben Gamari
2011-02-12 8:33 ` Grant Likely [this message]
2011-02-13 22:07 ` Ben Gamari
2011-08-30 10:14 ` McSPI questions pertaining to GPIO chip select support Raju Sana
2011-08-30 13:50 ` Ben Gamari
2011-08-30 13:50 ` [PATCH] mcspi: Add support for GPIO chip select lines Ben Gamari
2011-08-30 13:52 ` [PATCH] beagledaq: Hack in cs_gpios Ben Gamari
[not found] ` <1314712343-27367-1-git-send-email-bgamari.foss-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2011-09-05 12:42 ` Raju Sana
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=20110212083324.GA17755@angua.secretlab.ca \
--to=grant.likely@secretlab.ca \
--cc=beagleboard@googlegroups.com \
--cc=bgamari.foss@gmail.com \
--cc=dbrownell@users.sourceforge.net \
--cc=eric.miao@canonical.com \
--cc=linux-omap@vger.kernel.org \
--cc=michael.hennerich@analog.com \
--cc=spi-devel-general@lists.sourceforge.net \
/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).