From: Ned Forrester <nforrester-/d+BM93fTQY@public.gmane.org>
To: David Brownell <david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
Cc: spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org,
Eric Miao <eric.y.miao-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
Russell King - ARM Linux
<linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org>
Subject: Re: [PATCH] spi: pxa2xx_spi introduce chip select gpio to simplify the common cases
Date: Thu, 11 Sep 2008 09:32:45 -0400 [thread overview]
Message-ID: <48C91DFD.5020308@whoi.edu> (raw)
In-Reply-To: <200809102308.31675.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
David Brownell wrote:
> On Tuesday 09 September 2008, Jonathan Cameron wrote:
>>> - It's probably worth removing support for the SSFRM
>>> mechanism and requiring gpio_cs or (at least as a
>>> transitional scheme) the cs_control() thing.
>> I disagree strongly with this.
>>
>> By all means issue a warning that cs_change will be
>> effectively 1 in all cases. However, with many real setups
>> this is absolutely fine. Leave getting this right to a
>> combination of the board config writers and some good
>> documentation!
>
> My logic is as follows:
>
> (a) it's superfluous given that the pin used for
> SSFRM can be managed as a GPIO;
> (b) it's less capable than managing it as a GPIO,
> examples being lack of SPI_CS_HIGH support
> and broken cs_change;
> (c) given (b) and what you noted, it's error prone;
> (d) given (a-c) it's confusing
>
> In short, removing this mechanism would improve quality
> and maintainability. Needing *more* documentation for
> core functionality is a red flag.
>
> Notice I'm not saying it can't (or doesn't) work, within
> its constraints (b). I'm just saying that if it's removed,
> the driver will be better and won't lose *ANY* functionality.
I'm puzzled. What is there about the pxa2xx_spi.c that would be
simplified by doing anything with respect to SSPFRM? As I said in a
previous email: there is no "support" for SSPFRM in the driver, other
than quietly doing nothing if no CS action has been specified. Maybe
you are thinking simplification elsewhere, like in board init code.
I agree that SSPFRM can be controlled as a GPIO line via the gpio_cs or
cs_control methods, but I don't see any "cost" associated with leaving
things as they are. If use of gpio_cs were enforced, an existing
application that uses the SSPFRM function of the PXA2xx chip would have
to be carefully checked for proper use of cs_change (cs_change would
have been previously ineffective). Like I said recently, I have a
narrow view of all this, so likely I am missing something obvious. :-)
On a related aspect:
By "broken" cs_change, are you referring to the lack of support for
SPI_CS_HIGH? That could easily be handled the same way that Eric is
proposing for cs_assert/cs_deassert: by passing SPI_CS_HIGH, either
directly or indirectly, to cs_control (or, to avoid breaking existing
cs_control routines, to a new routine that users would be encouraged to
use).
I see little difference between the proposed gpio_cs and the existing
cs_control mechanisms, except that gpio_cs constrains the user to using
a gpio pin, while the cs_control callback allows the user to implement
any scheme for chip select. While I know of no one doing this, it is
quite conceivable that a board could use an external expansion chip to
provide the physical pins used for chip select; in that case, cs_control
allows whatever code is required to to be executed to effect a CS
change, while the gpio_cs scheme does not.
Certainly, the gpio_cs mechanism reduces the burden of GPIO setup to
passing a single integer (the pin number, I assume), and this will be
sufficient for most boards, but it seems unnecessarily restrictive, if
it is the only mechanism.
--
Ned Forrester nforrester-/d+BM93fTQY@public.gmane.org
Oceanographic Systems Lab 508-289-2226
Applied Ocean Physics and Engineering Dept.
Woods Hole Oceanographic Institution Woods Hole, MA 02543, USA
http://www.whoi.edu/sbl/liteSite.do?litesiteid=7212
http://www.whoi.edu/hpb/Site.do?id=1532
http://www.whoi.edu/page.do?pid=10079
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
next prev parent reply other threads:[~2008-09-11 13:32 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <f17812d70809040221y477ec4x5c05460650266be8@mail.gmail.com>
[not found] ` <f17812d70809040403u4c33e376vd8b3a2c5f034081c@mail.gmail.com>
[not found] ` <f17812d70809040403u4c33e376vd8b3a2c5f034081c-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-09-09 0:04 ` [PATCH] spi: pxa2xx_spi introduce chip select gpio to simplify the common cases David Brownell
[not found] ` <200809081704.43404.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2008-09-09 1:22 ` Ned Forrester
[not found] ` <48C5CFEE.6070601-/d+BM93fTQY@public.gmane.org>
2008-09-09 1:42 ` Eric Miao
[not found] ` <f17812d70809081842l703fa346k139cc14dc033d877-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-09-09 2:42 ` Eric Miao
[not found] ` <f17812d70809081942t718aa081p23f4711ee53d8019-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-09-09 2:52 ` Ned Forrester
2008-09-09 2:50 ` Ned Forrester
[not found] ` <48C5E47F.7070705-/d+BM93fTQY@public.gmane.org>
2008-09-09 3:02 ` Eric Miao
[not found] ` <f17812d70809082002w4b7e3cd1n948ad39fd6cd7833-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-09-09 17:49 ` David Brownell
2008-09-09 17:49 ` David Brownell
[not found] ` <200809091049.49327.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2008-09-10 1:25 ` Eric Miao
2008-09-09 10:23 ` Jonathan Cameron
[not found] ` <48C64EBE.6090003-KWPb1pKIrIJaa/9Udqfwiw@public.gmane.org>
2008-09-11 6:08 ` David Brownell
[not found] ` <200809102308.31675.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2008-09-11 13:32 ` Ned Forrester [this message]
[not found] ` <48C91DFD.5020308-/d+BM93fTQY@public.gmane.org>
2008-09-11 18:35 ` David Brownell
[not found] ` <200809111135.44364.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2008-09-12 18:18 ` Jonathan Cameron
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=48C91DFD.5020308@whoi.edu \
--to=nforrester-/d+bm93ftqy@public.gmane.org \
--cc=david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org \
--cc=eric.y.miao-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org \
--cc=spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@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 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.