]> git.sur5r.net Git - u-boot/commitdiff
mxs_ocotp: check for errors from the OTP controller after writing
authorHector Palacios <hector.palacios@digi.com>
Fri, 21 Nov 2014 16:54:43 +0000 (17:54 +0100)
committerStefano Babic <sbabic@denx.de>
Mon, 1 Dec 2014 09:19:41 +0000 (10:19 +0100)
The write operation may fail when trying to write to a locked area. In
this case the ERROR bit is set in the CTRL register. Check for that
condition and return an error.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
Reviewed-by: Fabio Estevam <fabio.estevam@freescale.com>
drivers/misc/mxs_ocotp.c

index 09002814f2f0afba43428712c1e77453dfc5f26d..1659ee6a5eecd9d2bb6a098a230c7e03394102ef 100644 (file)
@@ -221,6 +221,13 @@ static int mxs_ocotp_write_fuse(uint32_t addr, uint32_t mask)
                goto fail;
        }
 
+       /* Check for errors */
+       if (readl(&ocotp_regs->hw_ocotp_ctrl) & OCOTP_CTRL_ERROR) {
+               puts("Failed writing fuses!\n");
+               ret = -EPERM;
+               goto fail;
+       }
+
 fail:
        mxs_ocotp_scale_vddio(0, &vddio_val);
        if (mxs_ocotp_scale_hclk(0, &hclk_val))