Sorry about the incomplete message. Finger trouble.

On 4/25/10, Martin Guy <martinw...@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

------------------------------------------------------------------------------
_______________________________________________
spi-devel-general mailing list
spi-devel-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/spi-devel-general

Reply via email to