[spi-devel-general] [PATCH v4 1/2] spi: implemented driver for Cirrus EP93xx SPI controller
Martin Guy
martinwguy at gmail.com
Sun Apr 25 05:38:32 EDT 2010
Sorry about the incomplete message. Finger trouble.
On 4/25/10, Martin Guy <martinwguy at gmail.com> wrote:
...
> SFRMOUT will have gone high:
> if (espi->tx >0 && espi->tx < t->len
&& !(ep93xx_spi_read_u16(espi, SSPSR) & SSPSR_BSY)) {
> /* More to transmit but device has gone idle means that
> * SFRMOUT will have gone high */
> printk("ep93xx-spi: Underrun\n");
> }
I've also done a version that doesn't printk() in the middle of it,
which affects timing, but counts the underruns and reports at end of
transfer. The result is that every 512-byte block underruns at least
once, sometimes twice.
I'll run a few more tests, e.g. dropping the clock rate, but at this
point I'd be inclined to declare it impossible to keep SFRMOUT low
during a transfer, and just use the simple non-continuous code with a
comment at the top of the file that explains why you can't use SFRMOUT
as a chip select for devices that require CS to remain asserted for
the duration of a transfer.
M
More information about the linux-arm-kernel
mailing list