diff mbox

[U-Boot,5/5] am43xx: add delay before xfer

Message ID 1384443573-1545-6-git-send-email-sourav.poddar@ti.com
State Superseded
Delegated to: Jagannadha Sutradharudu Teki
Headers show

Commit Message

Poddar, Sourav Nov. 14, 2013, 3:39 p.m. UTC
Without this delay, write/read is failing.
Looks like, the WIP always remain set and hence a timeout
occurs leading to the error.

Signed-off-by: Sourav Poddar <sourav.poddar@ti.com>
---
Hi Jagan,
This patch seems to be necessary for read/write.
I tested by changing few timing variables, but it did not help.
The same driver works on J6 with a differnet flash(S25FL256S).
Is any one tested macronix flash at uboot?

 drivers/spi/ti_qspi.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

Comments

Jagan Teki Dec. 18, 2013, 6:47 p.m. UTC | #1
On Thu, Nov 14, 2013 at 9:09 PM, Sourav Poddar <sourav.poddar@ti.com> wrote:
> Without this delay, write/read is failing.
> Looks like, the WIP always remain set and hence a timeout
> occurs leading to the error.
>
> Signed-off-by: Sourav Poddar <sourav.poddar@ti.com>
> ---
> Hi Jagan,
> This patch seems to be necessary for read/write.
> I tested by changing few timing variables, but it did not help.
> The same driver works on J6 with a differnet flash(S25FL256S).
> Is any one tested macronix flash at uboot?

Delay must be for macronix?
or common for all flashes.

I haven't tested macronix

>
>  drivers/spi/ti_qspi.c |    3 +++
>  1 files changed, 3 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/spi/ti_qspi.c b/drivers/spi/ti_qspi.c
> index 5666250..aa7b6ae 100644
> --- a/drivers/spi/ti_qspi.c
> +++ b/drivers/spi/ti_qspi.c
> @@ -285,6 +285,9 @@ int spi_xfer(struct spi_slave *slave, unsigned int bitlen, const void *dout,
>                 qslave->cmd |= QSPI_3_PIN;
>         qslave->cmd |= 0xfff;
>
> +#ifdef CONFIG_AM43XX
> +       udelay(100);
> +#endif
>         while (words--) {
>                 if (txp) {
>                         debug("tx cmd %08x dc %08x data %02x\n",
> --
> 1.7.1
>
> _______________________________________________
> U-Boot mailing list
> U-Boot@lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
Poddar, Sourav Dec. 19, 2013, 5:05 a.m. UTC | #2
On Thursday 19 December 2013 12:17 AM, Jagan Teki wrote:
> On Thu, Nov 14, 2013 at 9:09 PM, Sourav Poddar<sourav.poddar@ti.com>  wrote:
>> Without this delay, write/read is failing.
>> Looks like, the WIP always remain set and hence a timeout
>> occurs leading to the error.
>>
>> Signed-off-by: Sourav Poddar<sourav.poddar@ti.com>
>> ---
>> Hi Jagan,
>> This patch seems to be necessary for read/write.
>> I tested by changing few timing variables, but it did not help.
>> The same driver works on J6 with a differnet flash(S25FL256S).
>> Is any one tested macronix flash at uboot?
> Delay must be for macronix?
> or common for all flashes.
>
For macronix.
> I haven't tested macronix
>
>>   drivers/spi/ti_qspi.c |    3 +++
>>   1 files changed, 3 insertions(+), 0 deletions(-)
>>
>> diff --git a/drivers/spi/ti_qspi.c b/drivers/spi/ti_qspi.c
>> index 5666250..aa7b6ae 100644
>> --- a/drivers/spi/ti_qspi.c
>> +++ b/drivers/spi/ti_qspi.c
>> @@ -285,6 +285,9 @@ int spi_xfer(struct spi_slave *slave, unsigned int bitlen, const void *dout,
>>                  qslave->cmd |= QSPI_3_PIN;
>>          qslave->cmd |= 0xfff;
>>
>> +#ifdef CONFIG_AM43XX
>> +       udelay(100);
>> +#endif
>>          while (words--) {
>>                  if (txp) {
>>                          debug("tx cmd %08x dc %08x data %02x\n",
>> --
>> 1.7.1
>>
>> _______________________________________________
>> U-Boot mailing list
>> U-Boot@lists.denx.de
>> http://lists.denx.de/mailman/listinfo/u-boot
>
>
Jagan Teki Dec. 19, 2013, 5:54 a.m. UTC | #3
On Thu, Dec 19, 2013 at 10:35 AM, Sourav Poddar <sourav.poddar@ti.com> wrote:
> On Thursday 19 December 2013 12:17 AM, Jagan Teki wrote:
>>
>> On Thu, Nov 14, 2013 at 9:09 PM, Sourav Poddar<sourav.poddar@ti.com>
>> wrote:
>>>
>>> Without this delay, write/read is failing.
>>> Looks like, the WIP always remain set and hence a timeout
>>> occurs leading to the error.
>>>
>>> Signed-off-by: Sourav Poddar<sourav.poddar@ti.com>
>>> ---
>>> Hi Jagan,
>>> This patch seems to be necessary for read/write.
>>> I tested by changing few timing variables, but it did not help.
>>> The same driver works on J6 with a differnet flash(S25FL256S).
>>> Is any one tested macronix flash at uboot?
>>
>> Delay must be for macronix?
>> or common for all flashes.
>>
> For macronix.
All kind of micron parts or any specific..
bcz this delay seems to be not- a reasonable.

>
>> I haven't tested macronix
>>
>>>   drivers/spi/ti_qspi.c |    3 +++
>>>   1 files changed, 3 insertions(+), 0 deletions(-)
>>>
>>> diff --git a/drivers/spi/ti_qspi.c b/drivers/spi/ti_qspi.c
>>> index 5666250..aa7b6ae 100644
>>> --- a/drivers/spi/ti_qspi.c
>>> +++ b/drivers/spi/ti_qspi.c
>>> @@ -285,6 +285,9 @@ int spi_xfer(struct spi_slave *slave, unsigned int
>>> bitlen, const void *dout,
>>>                  qslave->cmd |= QSPI_3_PIN;
>>>          qslave->cmd |= 0xfff;
>>>
>>> +#ifdef CONFIG_AM43XX
>>> +       udelay(100);
>>> +#endif
Poddar, Sourav Dec. 19, 2013, 5:54 a.m. UTC | #4
On Thursday 19 December 2013 11:24 AM, Jagan Teki wrote:
> On Thu, Dec 19, 2013 at 10:35 AM, Sourav Poddar<sourav.poddar@ti.com>  wrote:
>> On Thursday 19 December 2013 12:17 AM, Jagan Teki wrote:
>>> On Thu, Nov 14, 2013 at 9:09 PM, Sourav Poddar<sourav.poddar@ti.com>
>>> wrote:
>>>> Without this delay, write/read is failing.
>>>> Looks like, the WIP always remain set and hence a timeout
>>>> occurs leading to the error.
>>>>
>>>> Signed-off-by: Sourav Poddar<sourav.poddar@ti.com>
>>>> ---
>>>> Hi Jagan,
>>>> This patch seems to be necessary for read/write.
>>>> I tested by changing few timing variables, but it did not help.
>>>> The same driver works on J6 with a differnet flash(S25FL256S).
>>>> Is any one tested macronix flash at uboot?
>>> Delay must be for macronix?
>>> or common for all flashes.
>>>
>> For macronix.
> All kind of micron parts or any specific..
> bcz this delay seems to be not- a reasonable.
>
that I am not sure as I have only one macronix
flash to test with
>>> I haven't tested macronix
>>>
>>>>    drivers/spi/ti_qspi.c |    3 +++
>>>>    1 files changed, 3 insertions(+), 0 deletions(-)
>>>>
>>>> diff --git a/drivers/spi/ti_qspi.c b/drivers/spi/ti_qspi.c
>>>> index 5666250..aa7b6ae 100644
>>>> --- a/drivers/spi/ti_qspi.c
>>>> +++ b/drivers/spi/ti_qspi.c
>>>> @@ -285,6 +285,9 @@ int spi_xfer(struct spi_slave *slave, unsigned int
>>>> bitlen, const void *dout,
>>>>                   qslave->cmd |= QSPI_3_PIN;
>>>>           qslave->cmd |= 0xfff;
>>>>
>>>> +#ifdef CONFIG_AM43XX
>>>> +       udelay(100);
>>>> +#endif
Jagan Teki Dec. 19, 2013, 6:07 a.m. UTC | #5
On Thu, Dec 19, 2013 at 11:24 AM, Sourav Poddar <sourav.poddar@ti.com> wrote:
> On Thursday 19 December 2013 11:24 AM, Jagan Teki wrote:
>>
>> On Thu, Dec 19, 2013 at 10:35 AM, Sourav Poddar<sourav.poddar@ti.com>
>> wrote:
>>>
>>> On Thursday 19 December 2013 12:17 AM, Jagan Teki wrote:
>>>>
>>>> On Thu, Nov 14, 2013 at 9:09 PM, Sourav Poddar<sourav.poddar@ti.com>
>>>> wrote:
>>>>>
>>>>> Without this delay, write/read is failing.
>>>>> Looks like, the WIP always remain set and hence a timeout
>>>>> occurs leading to the error.
>>>>>
>>>>> Signed-off-by: Sourav Poddar<sourav.poddar@ti.com>
>>>>> ---
>>>>> Hi Jagan,
>>>>> This patch seems to be necessary for read/write.
>>>>> I tested by changing few timing variables, but it did not help.
>>>>> The same driver works on J6 with a differnet flash(S25FL256S).
>>>>> Is any one tested macronix flash at uboot?
>>>>
>>>> Delay must be for macronix?
>>>> or common for all flashes.
>>>>
>>> For macronix.
>>
>> All kind of micron parts or any specific..
>> bcz this delay seems to be not- a reasonable.
>>
> that I am not sure as I have only one macronix
> flash to test with

Honestly, I don't recommend to use standalone delay with works for
specific to flash part.
That even harm your driver as well...
Please try to identify the fix - can you send the data-sheet link you
referred to this part...

Also please try to post the bug log w/o delay..if possible.

>
>>>> I haven't tested macronix
>>>>
>>>>>    drivers/spi/ti_qspi.c |    3 +++
>>>>>    1 files changed, 3 insertions(+), 0 deletions(-)
>>>>>
>>>>> diff --git a/drivers/spi/ti_qspi.c b/drivers/spi/ti_qspi.c
>>>>> index 5666250..aa7b6ae 100644
>>>>> --- a/drivers/spi/ti_qspi.c
>>>>> +++ b/drivers/spi/ti_qspi.c
>>>>> @@ -285,6 +285,9 @@ int spi_xfer(struct spi_slave *slave, unsigned int
>>>>> bitlen, const void *dout,
>>>>>                   qslave->cmd |= QSPI_3_PIN;
>>>>>           qslave->cmd |= 0xfff;
>>>>>
>>>>> +#ifdef CONFIG_AM43XX
>>>>> +       udelay(100);
>>>>> +#endif
>
>
diff mbox

Patch

diff --git a/drivers/spi/ti_qspi.c b/drivers/spi/ti_qspi.c
index 5666250..aa7b6ae 100644
--- a/drivers/spi/ti_qspi.c
+++ b/drivers/spi/ti_qspi.c
@@ -285,6 +285,9 @@  int spi_xfer(struct spi_slave *slave, unsigned int bitlen, const void *dout,
 		qslave->cmd |= QSPI_3_PIN;
 	qslave->cmd |= 0xfff;
 
+#ifdef CONFIG_AM43XX
+	udelay(100);
+#endif
 	while (words--) {
 		if (txp) {
 			debug("tx cmd %08x dc %08x data %02x\n",