diff options
author | Hector Palacios <hector.palacios@digi.com> | 2014-11-21 19:54:43 +0300 |
---|---|---|
committer | Stefano Babic <sbabic@denx.de> | 2014-12-01 12:19:41 +0300 |
commit | ad5dd7ae4b0474b8e359c691cddb310940276695 (patch) | |
tree | f0ce6a8acbfd9e89162e91a43f7ac72705429689 /drivers/misc | |
parent | d8d160e4205aa2885cfe659102c9555ef0859fae (diff) | |
download | u-boot-ad5dd7ae4b0474b8e359c691cddb310940276695.tar.xz |
mxs_ocotp: check for errors from the OTP controller after writing
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>
Diffstat (limited to 'drivers/misc')
-rw-r--r-- | drivers/misc/mxs_ocotp.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/misc/mxs_ocotp.c b/drivers/misc/mxs_ocotp.c index 09002814f2..1659ee6a5e 100644 --- a/drivers/misc/mxs_ocotp.c +++ b/drivers/misc/mxs_ocotp.c @@ -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)) |