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

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. Regardless,

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))) return

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 hartl...@visionengravers.com 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 Martin Guy
On 4/25/10, H Hartley Sweeten hartl...@visionengravers.com 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

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 hartl...@visionengravers.com 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

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 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

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 martinw...@gmail.com wrote: ... SFRMOUT will have gone high: if (espi-tx 0 espi-tx t-len !(ep93xx_spi_read_u16(espi, SSPSR)

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 of

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 your driver to

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 driver.

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 hartl...@visionengravers.com 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

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 hartl...@visionengravers.com 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

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 hartl...@visionengravers.com wrote: First, every spi transaction, including a single byte transfer, is going to generate at least two interrupts. One

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. The

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 hartl...@visionengravers.com 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

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 returns 0 as

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 there is

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 starts and

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 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). Signed-off-by:

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 read-only

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-off-by:

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 transfers

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); It can be seen from

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 chips (EP9301,

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 to

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,

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

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 been

[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 mika.westerb...@iki.fi --- arch/arm/mach-ep93xx/include/mach/ep93xx_spi.h | 32 + drivers/spi/Kconfig

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.westerb...@iki.fi Mika, I'm still looking this over

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.westerb...@iki.fi Mika, I discovered one gotcha with

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 hartl...@visionengravers.com 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

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 hartl...@visionengravers.com 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,

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 hartl...@visionengravers.com wrote: On Tuesday, April 20, 2010 4:55 PM, Martin Guy wrote: On 4/20/10, H Hartley Sweeten hartl...@visionengravers.com wrote: So, since each transfer does a wait_for_completion, all the data is transmitted which causes the

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 hartl...@visionengravers.com wrote: On Tuesday, April 20, 2010 4:55 PM, Martin Guy wrote: On 4/20/10, H Hartley Sweeten hartl...@visionengravers.com wrote: So, since each transfer does a wait_for_completion,