Re: [spi-devel-general] [PATCH v4 1/2] spi: implemented driver for Cirrus EP93xx SPI controller

2010-04-26 Thread H Hartley Sweeten
On Monday, April 26, 2010 7:36 AM, Martin Guy wrote: > On 4/25/10, H Hartley Sweeten wrote: >> During the 512+2+1 message that is sent when the mmc_spi driver is >> doing a block read, the 512 byte transfer goes like this: >> >> 1) 8 writes, prime the tx fifo >> SFRMOUT asserts when the

Re: [spi-devel-general] [PATCH v4 1/2] spi: implemented driver for Cirrus EP93xx SPI controller

2010-04-26 Thread H Hartley Sweeten
On Monday, April 26, 2010 3:03 AM, Mika Westerberg wrote: > > Hi, > > I just answer to this last message as it seems that continuous > transfer is really not a 100% solid solution; It makes things more > complicated than need to be and benefit for that is probably not > worth the additional complex

Re: [spi-devel-general] [PATCH v4 1/2] spi: implemented driver for Cirrus EP93xx SPI controller

2010-04-26 Thread Martin Guy
On 4/25/10, H Hartley Sweeten wrote: > During the 512+2+1 message that is sent when the mmc_spi driver is > doing a block read, the 512 byte transfer goes like this: > > 1) 8 writes, prime the tx fifo > SFRMOUT asserts when the first bit of the first byte starts > transmitting >

Re: [spi-devel-general] [PATCH v4 1/2] spi: implemented driver for Cirrus EP93xx SPI controller

2010-04-26 Thread Martin Guy
On 4/25/10, H Hartley Sweeten wrote: > > - /* clear the interrupt */ > > - ep93xx_spi_write_u8(espi, SSPICR, 0); > > > > /* > > * If we got ROR (receive overrun) interrupt we know that > something is > > * wrong. Just abort the message. > > */

Re: [spi-devel-general] [PATCH v4 1/2] spi: implemented driver for Cirrus EP93xx SPI controller

2010-04-26 Thread Mika Westerberg
On Sun, Apr 25, 2010 at 02:55:08PM -0500, H Hartley Sweeten wrote: > On Saturday, April 24, 2010 11:15 AM, Martin Guy wrote: > > static irqreturn_t ep93xx_spi_interrupt(int irq, void *dev_id) > > { > > ... > > if (!(irq_status & (SSPIIR_RORIS | SSPIIR_TIS | SSPIIR_RIS))) > >

Re: [spi-devel-general] [PATCH v4 1/2] spi: implemented driver for Cirrus EP93xx SPI controller

2010-04-26 Thread Mika Westerberg
On Sun, Apr 25, 2010 at 03:25:16PM -0500, H Hartley Sweeten wrote: > With a slow enough clock you can probably get to a point where SFRMOUT > will stay deasserted during the entire 512 byte transfer. But it would > still de-assert during the switch to the next transfer in the message. > > Regardl

Re: [spi-devel-general] [PATCH v4 1/2] spi: implemented driver for Cirrus EP93xx SPI controller

2010-04-26 Thread Mika Westerberg
Hi, I just answer to this last message as it seems that continuous transfer is really not a 100% solid solution; It makes things more complicated than need to be and benefit for that is probably not worth the additional complexity. Feel free to disagree :) On Sun, Apr 25, 2010 at 03:25:16PM -0500

Re: [spi-devel-general] [PATCH v4 1/2] spi: implemented driver for Cirrus EP93xx SPI controller

2010-04-25 Thread H Hartley Sweeten
On Sunday, April 25, 2010 2:39 AM, Martin Guy wrote: > > Sorry about the incomplete message. Finger trouble. > > On 4/25/10, Martin Guy wrote: > ... >> SFRMOUT will have gone high: > >> if (espi->tx >0 && espi->tx < t->len >> && !(ep93xx_spi_read_u16(espi, SSPSR) & SSPSR_BS

Re: [spi-devel-general] [PATCH v4 1/2] spi: implemented driver for Cirrus EP93xx SPI controller

2010-04-25 Thread H Hartley Sweeten
On Saturday, April 24, 2010 11:15 AM, Martin Guy wrote: > Hi, another little fix: > > EP93xx User's Manual -> Synchronous Serial Port -> Registers > > SSPIIR description: > "Read Only > Note: A write to this register clears the receive overrun interrupt, > regardless of the data > value wri

Re: [spi-devel-general] [PATCH v4 1/2] spi: implemented driver for Cirrus EP93xx SPI controller

2010-04-25 Thread Martin Guy
Sorry about the incomplete message. Finger trouble. On 4/25/10, Martin Guy 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 idl

Re: [spi-devel-general] [PATCH v4 1/2] spi: implemented driver for Cirrus EP93xx SPI controller

2010-04-25 Thread Martin Guy
On 4/24/10, H Hartley Sweeten wrote: > On Friday, April 23, 2010 10:24 AM, H Hartley Sweeten wrote: > > I was able to hack your driver to keep the continuous transfer going in a > > multi-transaction message. > I modified my hack a bit so that the message transactions are dumped at > the end

Re: [spi-devel-general] [PATCH v4 1/2] spi: implemented driver for Cirrus EP93xx SPI controller

2010-04-24 Thread Martin Guy
Hi, another little fix: EP93xx User's Manual -> Synchronous Serial Port -> Registers SSPIIR description: "Read Only Note: A write to this register clears the receive overrun interrupt, regardless of the data value written." It doesn't affect the RIS/TIS ones, which are caused by the state

Re: [spi-devel-general] [PATCH v4 1/2] spi: implemented driver for Cirrus EP93xx SPI controller

2010-04-23 Thread H Hartley Sweeten
On Friday, April 23, 2010 10:24 AM, H Hartley Sweeten wrote: > I was able to hack your driver to keep the continuous transfer going in a > multi-transaction message. Unfortunately I don't have an easy way to > generate a diff to send the necessary patch. The hack does work with the > sst25l drive

Re: [spi-devel-general] [PATCH v4 1/2] spi: implemented driver for Cirrus EP93xx SPI controller

2010-04-23 Thread H Hartley Sweeten
On Thursday, April 22, 2010 10:20 PM, Mika Westerberg wrote: > On Thu, Apr 22, 2010 at 03:43:24PM -0500, H Hartley Sweeten wrote: >> On Thursday, April 22, 2010 10:55 AM, Mika Westerberg wrote: >>> Could you test this in your setup? >> >> Same results. > > OK. thanks for testing. > >> I hacked you

Re: [spi-devel-general] [PATCH v4 1/2] spi: implemented driver for Cirrus EP93xx SPI controller

2010-04-22 Thread Mika Westerberg
On Thu, Apr 22, 2010 at 03:43:24PM -0500, H Hartley Sweeten wrote: > On Thursday, April 22, 2010 10:55 AM, Mika Westerberg wrote: > > Could you test this in your setup? > > Same results. OK. thanks for testing. > I hacked your driver to allow me to toggle a gpio when the interrupt routine > star

Re: [spi-devel-general] [PATCH v4 1/2] spi: implemented driver for Cirrus EP93xx SPI controller

2010-04-22 Thread Ryan Mallon
Mika Westerberg wrote: > On Wed, Apr 21, 2010 at 01:00:56PM -0500, H Hartley Sweeten wrote: >> Same results are your v4 driver. But, I think your on the right track. > > Thanks for testing. > >> I think the problem is in the ep93xx_spi_read_write routine. That function >> returns 0 as long as t

Re: [spi-devel-general] [PATCH v4 1/2] spi: implemented driver for Cirrus EP93xx SPI controller

2010-04-22 Thread H Hartley Sweeten
On Thursday, April 22, 2010 10:55 AM, Mika Westerberg wrote: > On Wed, Apr 21, 2010 at 01:00:56PM -0500, H Hartley Sweeten wrote: >> >> Same results are your v4 driver. But, I think your on the right track. >> >> I think the problem is in the ep93xx_spi_read_write routine. That function >> ret

Re: [spi-devel-general] [PATCH v4 1/2] spi: implemented driver for Cirrus EP93xx SPI controller

2010-04-22 Thread Martin Guy
On 4/22/10, H Hartley Sweeten wrote: > > Further, on a suspicion about the silliness of the per-transfer > > bits_per_word being checked right down the bottom of the lowest lever > > byte-read/writing routine instead of once per transfer, I split > > ep93xx_spi_read and _write into 8 and 16-bi

Re: [spi-devel-general] [PATCH v4 1/2] spi: implemented driver for Cirrus EP93xx SPI controller

2010-04-22 Thread Mika Westerberg
On Wed, Apr 21, 2010 at 01:00:56PM -0500, H Hartley Sweeten wrote: > > Same results are your v4 driver. But, I think your on the right track. > > I think the problem is in the ep93xx_spi_read_write routine. That function > returns 0 as long as there is still data left in the current transfer.

Re: [spi-devel-general] [PATCH v4 1/2] spi: implemented driver for Cirrus EP93xx SPI controller

2010-04-22 Thread H Hartley Sweeten
Martin, I'm replying to both of your previous messages. On Thursday, April 22, 2010 7:28 AM, Martin Guy wrote: > On 4/22/10, H Hartley Sweeten wrote: >> First, every spi transaction, including a single byte transfer, is >> going to generate at least two interrupts. One when the interrupts >>

Re: [spi-devel-general] [PATCH v4 1/2] spi: implemented driver for Cirrus EP93xx SPI controller

2010-04-22 Thread Martin Guy
On 4/22/10, H Hartley Sweeten wrote: > First, every spi transaction, including a single byte transfer, is > going to generate at least two interrupts. One when the interrupts > are first enabled because the TX FIFO is empty. And a second when > that byte has been transferred and the TX FIFO

Re: [spi-devel-general] [PATCH v4 1/2] spi: implemented driver for Cirrus EP93xx SPI controller

2010-04-22 Thread Martin Guy
On 4/22/10, H Hartley Sweeten wrote: > I have added some debug messages to the driver trying to figure out > how to chain the transfers in a message together in order to keep > the SFRM signal asserted for the entire message. I still haven't > worked out a good solution but I did notice somet

Re: [spi-devel-general] [PATCH v4 1/2] spi: implemented driver for Cirrus EP93xx SPI controller

2010-04-21 Thread Mika Westerberg
On Wed, Apr 21, 2010 at 09:47:14PM -0500, H Hartley Sweeten wrote: [...] > First, every spi transaction, including a single byte transfer, is > going to generate at least two interrupts. One when the interrupts > are first enabled because the TX FIFO is empty. And a second when > that byte has be

Re: [spi-devel-general] [PATCH v4 1/2] spi: implemented driver for Cirrus EP93xx SPI controller

2010-04-21 Thread Mika Westerberg
On Wed, Apr 21, 2010 at 01:00:56PM -0500, H Hartley Sweeten wrote: > Same results are your v4 driver. But, I think your on the right track. Thanks for testing. > I think the problem is in the ep93xx_spi_read_write routine. That function > returns 0 as long as there is still data left in the cur

Re: [spi-devel-general] [PATCH v4 1/2] spi: implemented driver for Cirrus EP93xx SPI controller

2010-04-21 Thread H Hartley Sweeten
Mika, I have added some debug messages to the driver trying to figure out how to chain the transfers in a message together in order to keep the SFRM signal asserted for the entire message. I still haven't worked out a good solution but I did notice something else. First, every spi transaction, i

Re: [spi-devel-general] [PATCH v4 1/2] spi: implemented driver for Cirrus EP93xx SPI controller

2010-04-21 Thread H Hartley Sweeten
On Wednesday, April 21, 2010 3:47 AM, Mika Westerberg wrote: > On Tue, Apr 20, 2010 at 08:52:26PM -0500, H Hartley Sweeten wrote: >> On Tuesday, April 20, 2010 6:10 PM, Martin Guy wrote: >>> Not easily, but it seems a likely cause. >>> To prevent card deselection mid-message I think we would need t

Re: [spi-devel-general] [PATCH v4 1/2] spi: implemented driver for Cirrus EP93xx SPI controller

2010-04-21 Thread H Hartley Sweeten
On Tuesday, April 20, 2010 11:37 PM, Mika Westerberg wrote: > On Tue, Apr 20, 2010 at 05:16:10PM -0500, H Hartley Sweeten wrote: >> On Tuesday, April 20, 2010 8:12 AM, Mika Westerberg wrote: >>> >>> This patch adds an SPI master driver for the Cirrus EP93xx SPI controller >>> found >>> in EP93xx c

Re: [spi-devel-general] [PATCH v4 1/2] spi: implemented driver for Cirrus EP93xx SPI controller

2010-04-21 Thread Mika Westerberg
On Wed, Apr 21, 2010 at 11:47:13AM -0500, H Hartley Sweeten wrote: > On Wednesday, April 21, 2010 12:16 AM, Mika Westerberg wrote: > > I think it is more readable to do: > > > > ep93xx_spi_select_device(espi, msg->spi); > > > > and > > > > ep93xx_spi_deselect_device(espi, msg->spi); > > > >

Re: [spi-devel-general] [PATCH v4 1/2] spi: implemented driver for Cirrus EP93xx SPI controller

2010-04-21 Thread H Hartley Sweeten
On Wednesday, April 21, 2010 12:16 AM, Mika Westerberg wrote: >> >> These two functions can be combined. >> >> /** >> * ep93xx_spi_chip_select() - select/deselect a given SPI device >> * @espi: ep93xx SPI controller struct >> * @spi: SPI device to select >> * @assert: flag to assert the chip

Re: [spi-devel-general] [PATCH v4 1/2] spi: implemented driver for Cirrus EP93xx SPI controller

2010-04-21 Thread Mika Westerberg
On Tue, Apr 20, 2010 at 08:52:26PM -0500, H Hartley Sweeten wrote: > On Tuesday, April 20, 2010 6:10 PM, Martin Guy wrote: > > Not easily, but it seems a likely cause. > > To prevent card deselection mid-message I think we would need to > > handle multi-transfer messages by making the start of tran

Re: [spi-devel-general] [PATCH v4 1/2] spi: implemented driver for Cirrus EP93xx SPI controller

2010-04-21 Thread Mika Westerberg
On Tue, Apr 20, 2010 at 12:24:26PM -0500, H Hartley Sweeten wrote: > On Tuesday, April 20, 2010 8:12 AM, Mika Westerberg wrote: > > This patch adds an SPI master driver for the Cirrus EP93xx SPI controller > > found > > in EP93xx chips (EP9301, EP9302, EP9307, EP9312 and EP9315). > > > > Signed-o

Re: [spi-devel-general] [PATCH v4 1/2] spi: implemented driver for Cirrus EP93xx SPI controller

2010-04-21 Thread Mika Westerberg
On Tue, Apr 20, 2010 at 08:52:26PM -0500, H Hartley Sweeten wrote: > On Tuesday, April 20, 2010 6:10 PM, Martin Guy wrote: > > I have noticed on card insertion, the last line of: > > > > mmc0: problem reading switch capabilities, performance might suffer. > > mmc0: host does not support reading re

Re: [spi-devel-general] [PATCH v4 1/2] spi: implemented driver for Cirrus EP93xx SPI controller

2010-04-20 Thread Mika Westerberg
On Tue, Apr 20, 2010 at 05:16:10PM -0500, H Hartley Sweeten wrote: > On Tuesday, April 20, 2010 8:12 AM, Mika Westerberg wrote: > > > > This patch adds an SPI master driver for the Cirrus EP93xx SPI controller > > found > > in EP93xx chips (EP9301, EP9302, EP9307, EP9312 and EP9315). > > > > Sign

Re: [spi-devel-general] [PATCH v4 1/2] spi: implemented driver for Cirrus EP93xx SPI controller

2010-04-20 Thread H Hartley Sweeten
On Tuesday, April 20, 2010 6:10 PM, Martin Guy wrote: > On 4/21/10, H Hartley Sweeten wrote: >> On Tuesday, April 20, 2010 4:55 PM, Martin Guy wrote: >>> On 4/20/10, H Hartley Sweeten wrote: So, since each transfer does a wait_for_completion, all the data is transmitted which caus

Re: [spi-devel-general] [PATCH v4 1/2] spi: implemented driver for Cirrus EP93xx SPI controller

2010-04-20 Thread Martin Guy
On 4/21/10, H Hartley Sweeten wrote: > On Tuesday, April 20, 2010 4:55 PM, Martin Guy wrote: > > On 4/20/10, H Hartley Sweeten wrote: > >> So, since each transfer does a wait_for_completion, all the data is > transmitted > >> which causes the SFRMOUT pin to go HIGH between each transfer in th

Re: [spi-devel-general] [PATCH v4 1/2] spi: implemented driver for Cirrus EP93xx SPI controller

2010-04-20 Thread H Hartley Sweeten
On Tuesday, April 20, 2010 5:11 PM, H Hartley Sweeten wrote: > On Tuesday, April 20, 2010 4:55 PM, Martin Guy wrote: >> On 4/20/10, H Hartley Sweeten wrote: [snip] >>> Is there anyway to keep the transfers going in a muiltipart message? >> >> I just changed the SPI mode selection, which is in th

Re: [spi-devel-general] [PATCH v4 1/2] spi: implemented driver for Cirrus EP93xx SPI controller

2010-04-20 Thread H Hartley Sweeten
On Tuesday, April 20, 2010 4:55 PM, Martin Guy wrote: > On 4/20/10, H Hartley Sweeten wrote: >> On Tuesday, April 20, 2010 8:12 AM, Mika Westerberg wrote: >>> This patch adds an SPI master driver for the Cirrus EP93xx SPI controller >>> found >>> in EP93xx chips (EP9301, EP9302, EP9307, EP9312 an

Re: [spi-devel-general] [PATCH v4 1/2] spi: implemented driver for Cirrus EP93xx SPI controller

2010-04-20 Thread Martin Guy
On 4/20/10, H Hartley Sweeten wrote: > On Tuesday, April 20, 2010 8:12 AM, Mika Westerberg wrote: > > This patch adds an SPI master driver for the Cirrus EP93xx SPI controller > > found > > in EP93xx chips (EP9301, EP9302, EP9307, EP9312 and EP9315). > > I discovered one gotcha with this driver

Re: [spi-devel-general] [PATCH v4 1/2] spi: implemented driver for Cirrus EP93xx SPI controller

2010-04-20 Thread H Hartley Sweeten
On Tuesday, April 20, 2010 8:12 AM, Mika Westerberg wrote: > > This patch adds an SPI master driver for the Cirrus EP93xx SPI controller > found > in EP93xx chips (EP9301, EP9302, EP9307, EP9312 and EP9315). > > Signed-off-by: Mika Westerberg Mika, I discovered one gotcha with this driver. Be

Re: [spi-devel-general] [PATCH v4 1/2] spi: implemented driver for Cirrus EP93xx SPI controller

2010-04-20 Thread H Hartley Sweeten
On Tuesday, April 20, 2010 8:12 AM, Mika Westerberg wrote: > This patch adds an SPI master driver for the Cirrus EP93xx SPI controller > found > in EP93xx chips (EP9301, EP9302, EP9307, EP9312 and EP9315). > > Signed-off-by: Mika Westerberg Mika, I'm still looking this over but I have one quic

[spi-devel-general] [PATCH v4 1/2] spi: implemented driver for Cirrus EP93xx SPI controller

2010-04-20 Thread Mika Westerberg
This patch adds an SPI master driver for the Cirrus EP93xx SPI controller found in EP93xx chips (EP9301, EP9302, EP9307, EP9312 and EP9315). Signed-off-by: Mika Westerberg --- arch/arm/mach-ep93xx/include/mach/ep93xx_spi.h | 32 + drivers/spi/Kconfig| 11 + driver