aboutsummaryrefslogtreecommitdiff
path: root/drivers/misc/mxc_ocotp.c
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2018-01-15 16:44:18 -0500
committerTom Rini <trini@konsulko.com>2018-01-15 16:44:18 -0500
commit8e9801c283c0e5a7ccd5c04f5ba09003d01f1591 (patch)
treeae79033993ae3f06b581a3bd0fcd8dc36a3528eb /drivers/misc/mxc_ocotp.c
parenta970ee22578dce3d7596280351d3dbade561ed8c (diff)
parent9587b0d61133c025d48ebf480aa021fc2fdd53a7 (diff)
Merge git://git.denx.de/u-boot-imx
Diffstat (limited to 'drivers/misc/mxc_ocotp.c')
-rw-r--r--drivers/misc/mxc_ocotp.c17
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);
}