Skip to content
Snippets Groups Projects
Commit 4df24f2c authored by Alexander Stein's avatar Alexander Stein Committed by York Sun
Browse files

spi: fsl_qspi: Pet watchdog even more


Pet the watchdog once upon each command call (qspi_xfer) and during
each loop iteration in several commands.

This fixes a watchdog reset especially during erase command.

Signed-off-by: default avatarAlexander Stein <alexander.stein@systec-electronic.com>
Reviewed-by: default avatarYork Sun <york.sun@nxp.com>
parent a65d7408
No related branches found
No related tags found
No related merge requests found
...@@ -493,6 +493,8 @@ static void qspi_op_rdbank(struct fsl_qspi_priv *priv, u8 *rxbuf, u32 len) ...@@ -493,6 +493,8 @@ static void qspi_op_rdbank(struct fsl_qspi_priv *priv, u8 *rxbuf, u32 len)
; ;
while (1) { while (1) {
WATCHDOG_RESET();
reg = qspi_read32(priv->flags, &regs->rbsr); reg = qspi_read32(priv->flags, &regs->rbsr);
if (reg & QSPI_RBSR_RDBFL_MASK) { if (reg & QSPI_RBSR_RDBFL_MASK) {
data = qspi_read32(priv->flags, &regs->rbdr[0]); data = qspi_read32(priv->flags, &regs->rbdr[0]);
...@@ -530,6 +532,8 @@ static void qspi_op_rdid(struct fsl_qspi_priv *priv, u32 *rxbuf, u32 len) ...@@ -530,6 +532,8 @@ static void qspi_op_rdid(struct fsl_qspi_priv *priv, u32 *rxbuf, u32 len)
i = 0; i = 0;
while ((RX_BUFFER_SIZE >= len) && (len > 0)) { while ((RX_BUFFER_SIZE >= len) && (len > 0)) {
WATCHDOG_RESET();
rbsr_reg = qspi_read32(priv->flags, &regs->rbsr); rbsr_reg = qspi_read32(priv->flags, &regs->rbsr);
if (rbsr_reg & QSPI_RBSR_RDBFL_MASK) { if (rbsr_reg & QSPI_RBSR_RDBFL_MASK) {
data = qspi_read32(priv->flags, &regs->rbdr[i]); data = qspi_read32(priv->flags, &regs->rbdr[i]);
...@@ -702,6 +706,8 @@ static void qspi_op_rdsr(struct fsl_qspi_priv *priv, void *rxbuf, u32 len) ...@@ -702,6 +706,8 @@ static void qspi_op_rdsr(struct fsl_qspi_priv *priv, void *rxbuf, u32 len)
; ;
while (1) { while (1) {
WATCHDOG_RESET();
reg = qspi_read32(priv->flags, &regs->rbsr); reg = qspi_read32(priv->flags, &regs->rbsr);
if (reg & QSPI_RBSR_RDBFL_MASK) { if (reg & QSPI_RBSR_RDBFL_MASK) {
data = qspi_read32(priv->flags, &regs->rbdr[0]); data = qspi_read32(priv->flags, &regs->rbdr[0]);
...@@ -757,6 +763,8 @@ int qspi_xfer(struct fsl_qspi_priv *priv, unsigned int bitlen, ...@@ -757,6 +763,8 @@ int qspi_xfer(struct fsl_qspi_priv *priv, unsigned int bitlen,
static u32 wr_sfaddr; static u32 wr_sfaddr;
u32 txbuf; u32 txbuf;
WATCHDOG_RESET();
if (dout) { if (dout) {
if (flags & SPI_XFER_BEGIN) { if (flags & SPI_XFER_BEGIN) {
priv->cur_seqid = *(u8 *)dout; priv->cur_seqid = *(u8 *)dout;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment