RE: [EXT] Re: [PATCH] spi: nxp-fspi: Add 1us delay to make controller ready for next transaction
> -Original Message- > From: U-Boot On Behalf Of Jagan Teki > Sent: Friday, April 3, 2020 8:09 PM > To: Kuldeep Singh > Cc: U-Boot-Denx > Subject: [EXT] Re: [PATCH] spi: nxp-fspi: Add 1us delay to make controller > ready for next transaction > > Caution: EXT Email > > On Mon, Feb 24, 2020 at 4:52 PM Kuldeep Singh > wrote: > > > > Board gets reset when performing burst read/write operations. On the > > other hand, no such behaviour is observed on small size operations. > > > > In Linux, readl_poll_timeout API already add delay of 1us which is > > skipped in U-boot. Since, NXP Flexspi U-boot driver is a ported > > version of Linux driver and U-boot poll_timeout API lacks delay > > functionality, add 1us delay so as to make controller ready for other > transactions. > > > > Signed-off-by: Kuldeep Singh > > --- > > drivers/spi/nxp_fspi.c | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/drivers/spi/nxp_fspi.c b/drivers/spi/nxp_fspi.c index > > 0e6c7be..9703642 100644 > > --- a/drivers/spi/nxp_fspi.c > > +++ b/drivers/spi/nxp_fspi.c > > @@ -756,6 +756,7 @@ static int nxp_fspi_exec_op(struct spi_slave *slave, > > err = fspi_readl_poll_tout(f, f->iobase + FSPI_STS0, > >FSPI_STS0_ARB_IDLE, 1, POLL_TOUT, true); > > WARN_ON(err); > > + udelay(1); > > Can you add relevant comments here, why is it for udelay(1) ? Hi Jagan, Watchdog gets triggered for large read/write/erase since this delay is not present in this API(readl_poll_timeout), add this delay here. Regards Ashish
Re: [PATCH] spi: nxp-fspi: Add 1us delay to make controller ready for next transaction
On Mon, Feb 24, 2020 at 4:52 PM Kuldeep Singh wrote: > > Board gets reset when performing burst read/write operations. On the > other hand, no such behaviour is observed on small size operations. > > In Linux, readl_poll_timeout API already add delay of 1us which is > skipped in U-boot. Since, NXP Flexspi U-boot driver is a ported version > of Linux driver and U-boot poll_timeout API lacks delay functionality, > add 1us delay so as to make controller ready for other transactions. > > Signed-off-by: Kuldeep Singh > --- > drivers/spi/nxp_fspi.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/spi/nxp_fspi.c b/drivers/spi/nxp_fspi.c > index 0e6c7be..9703642 100644 > --- a/drivers/spi/nxp_fspi.c > +++ b/drivers/spi/nxp_fspi.c > @@ -756,6 +756,7 @@ static int nxp_fspi_exec_op(struct spi_slave *slave, > err = fspi_readl_poll_tout(f, f->iobase + FSPI_STS0, >FSPI_STS0_ARB_IDLE, 1, POLL_TOUT, true); > WARN_ON(err); > + udelay(1); Can you add relevant comments here, why is it for udelay(1) ?
[PATCH] spi: nxp-fspi: Add 1us delay to make controller ready for next transaction
Board gets reset when performing burst read/write operations. On the other hand, no such behaviour is observed on small size operations. In Linux, readl_poll_timeout API already add delay of 1us which is skipped in U-boot. Since, NXP Flexspi U-boot driver is a ported version of Linux driver and U-boot poll_timeout API lacks delay functionality, add 1us delay so as to make controller ready for other transactions. Signed-off-by: Kuldeep Singh --- drivers/spi/nxp_fspi.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/spi/nxp_fspi.c b/drivers/spi/nxp_fspi.c index 0e6c7be..9703642 100644 --- a/drivers/spi/nxp_fspi.c +++ b/drivers/spi/nxp_fspi.c @@ -756,6 +756,7 @@ static int nxp_fspi_exec_op(struct spi_slave *slave, err = fspi_readl_poll_tout(f, f->iobase + FSPI_STS0, FSPI_STS0_ARB_IDLE, 1, POLL_TOUT, true); WARN_ON(err); + udelay(1); nxp_fspi_prepare_lut(f, op); /* -- 2.7.4