diff options
author | Tom Rini <trini@konsulko.com> | 2018-01-15 16:44:18 -0500 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2018-01-15 16:44:18 -0500 |
commit | 8e9801c283c0e5a7ccd5c04f5ba09003d01f1591 (patch) | |
tree | ae79033993ae3f06b581a3bd0fcd8dc36a3528eb /drivers/misc/mxc_ocotp.c | |
parent | a970ee22578dce3d7596280351d3dbade561ed8c (diff) | |
parent | 9587b0d61133c025d48ebf480aa021fc2fdd53a7 (diff) |
Merge git://git.denx.de/u-boot-imx
Diffstat (limited to 'drivers/misc/mxc_ocotp.c')
-rw-r--r-- | drivers/misc/mxc_ocotp.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/misc/mxc_ocotp.c b/drivers/misc/mxc_ocotp.c index 8986bb4ad0..18a2730909 100644 --- a/drivers/misc/mxc_ocotp.c +++ b/drivers/misc/mxc_ocotp.c @@ -342,6 +342,23 @@ int fuse_sense(u32 bank, u32 word, u32 *val) static int prepare_write(struct ocotp_regs **regs, u32 bank, u32 word, const char *caller) { +#ifdef CONFIG_MX7ULP + u32 val; + int ret; + + /* Only bank 0 and 1 are redundancy mode, others are ECC mode */ + if (bank != 0 && bank != 1) { + ret = fuse_sense(bank, word, &val); + if (ret) + return ret; + + if (val != 0) { + printf("mxc_ocotp: The word has been programmed, no more write\n"); + return -EPERM; + } + } +#endif + return prepare_access(regs, bank, word, true, caller); } |