imx: i.MX8MQ: clear ocotp error bit
authorPeng Fan <peng.fan@nxp.com>
Wed, 17 Apr 2019 09:41:16 +0000 (09:41 +0000)
committerStefano Babic <sbabic@denx.de>
Thu, 25 Apr 2019 17:16:24 +0000 (19:16 +0200)
In case ocotp error bit is set, clear it.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
arch/arm/mach-imx/imx8m/soc.c

index 11251c5f9ad98184bd415513c4917c2006d4a621..7ec39b3e4741fb85fe4fd8fb8b199f54ea85d99d 100644 (file)
@@ -169,6 +169,7 @@ static void imx_set_wdog_powerdown(bool enable)
 
 int arch_cpu_init(void)
 {
+       struct ocotp_regs *ocotp = (struct ocotp_regs *)OCOTP_BASE_ADDR;
        /*
         * Init timer at very early state, because sscg pll setting
         * will use it
@@ -180,6 +181,12 @@ int arch_cpu_init(void)
                imx_set_wdog_powerdown(false);
        }
 
+       if (is_imx8mq()) {
+               clock_enable(CCGR_OCOTP, 1);
+               if (readl(&ocotp->ctrl) & 0x200)
+                       writel(0x200, &ocotp->ctrl_clr);
+       }
+
        return 0;
 }