aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libflash/libflash.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/libflash/libflash.c b/libflash/libflash.c
index 5b8a0ac..b5eaff5 100644
--- a/libflash/libflash.c
+++ b/libflash/libflash.c
@@ -92,6 +92,10 @@ int fl_wren(struct spi_flash_ctrl *ct)
int i, rc;
uint8_t stat;
+ /* If lower level interface not implmented, just return */
+ if (!ct->cmd_wr)
+ return 0;
+
/* Some flashes need it to be hammered */
for (i = 0; i < 1000; i++) {
rc = ct->cmd_wr(ct, CMD_WREN, false, 0, NULL, 0);
@@ -675,6 +679,11 @@ static int flash_set_4b(struct flash_chip *c, bool enable)
/* Ignore the error & move on (could be wrprotect chip) */
}
+ /* Don't have low level interface, assume all is well */
+ if (!ct->cmd_wr)
+ return 0;
+
+
/* Ignore error in case chip is write protected */
return ct->cmd_wr(ct, enable ? CMD_EN4B : CMD_EX4B, false, 0, NULL, 0);
@@ -758,7 +767,6 @@ static int flash_configure(struct flash_chip *c)
return rc;
}
}
-
/* Set controller to 3b mode if mode switch is supported */
if (ct->set_4b) {
FL_DBG("LIBFLASH: Disabling controller 4B mode...\n");