From: Jamie Iles <jamie@jamieiles.com>
To: viresh kumar <viresh.kumar@st.com>
Cc: Dinesh Kumar SHARMA <dinesh.sharma@st.com>,
"linus.walleij@stericsson.com" <linus.walleij@stericsson.com>,
Armando VISCONTI <armando.visconti@st.com>,
Shiraz HASHIM <shiraz.hashim@st.com>,
spi-devel-general@lists.sourceforge.net,
Vikas MANOCHA <vikas.manocha@st.com>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>
Subject: Re: [QUERY] Behavior of spi slave memories w.r.t chip select signal.
Date: Wed, 11 May 2011 08:17:54 +0100 [thread overview]
Message-ID: <20110511071754.GN26703@pulham.picochip.com> (raw)
In-Reply-To: <4DCA0B77.8060700@st.com>
On Wed, May 11, 2011 at 09:37:19AM +0530, viresh kumar wrote:
> Following is what i understood after reading m25p80 driver and spi
> master drivers in drivers/spi folder.
>
> "chip_select signal controls start and end of transfer. For ex: if we have to read
> status reg of spi memory, then we use write_and_then_read() routine. which writes
> 0x9F in one spi transfer and writes dummy bytes and reads rx reg in other transfer.
> And these two transfers are part of single spi_message.
>
> Now, it is controllable to handle cs, and if we send cs_change == 0, then chip select
> is activated at start of message and deactivated at end of message, instead at end
> of every transfer.
>
> Which means, even if there is a delay between command and dummy bytes received at
> spi memory, current transfer will not be terminated by memory as cs is low."
>
> Is this correct??
>
> Actually i am seeing a different behavior by some of the spi memories, like m25p10.
> If there is a delay between read_sts_reg command and dummy bytes, then 0xFFFFFF is
> returned in response. If there is no delay then transfer always passes.
What SPI controller are you using? I've seen a similar issue with the
Synopsys DesignWare SPI controller where the controller manages the chip
select itself, and once the FIFO is emptied the CS goes away, but the
flash chip requires it to stay high for the whole transaction. In this
case the workaround is to use a GPIO as a chip select and there are
other controllers that do the same thing for the same reason (I think
that pxa2xx_spi is one of them).
Jamie
next prev parent reply other threads:[~2011-05-11 7:17 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-11 4:07 [QUERY] Behavior of spi slave memories w.r.t chip select signal viresh kumar
2011-05-11 7:17 ` Jamie Iles [this message]
2011-05-11 7:19 ` viresh kumar
[not found] ` <4DCA0B77.8060700-qxv4g6HH51o@public.gmane.org>
2011-05-13 3:52 ` viresh kumar
[not found] ` <4DCCAB19.2020302-qxv4g6HH51o@public.gmane.org>
2011-05-13 6:54 ` Linus Walleij
[not found] ` <BANLkTik2OxGdQ7z1JBAsE+=gc5UCgx3wEA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-05-13 9:20 ` viresh kumar
2011-05-13 9:04 ` Jamie Iles
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=20110511071754.GN26703@pulham.picochip.com \
--to=jamie@jamieiles.com \
--cc=armando.visconti@st.com \
--cc=dinesh.sharma@st.com \
--cc=linus.walleij@stericsson.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=shiraz.hashim@st.com \
--cc=spi-devel-general@lists.sourceforge.net \
--cc=vikas.manocha@st.com \
--cc=viresh.kumar@st.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;
as well as URLs for NNTP newsgroup(s).