Before reparenting the ENFC_SEL mux we have to make sure the GPMI_IO clk
is disabled as recommended in the reference manual. Otherwise glitches
may occur on the GPMI clk which result in a later NAND failure:

MXS: Timeout resetting block via register 0x01806000
mxs_nand 1806000.gpmi-n...@1806000.of: probe failed: Connection timed out

Signed-off-by: Sascha Hauer <s.ha...@pengutronix.de>
---
 drivers/clk/imx/clk-imx6ul.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/clk/imx/clk-imx6ul.c b/drivers/clk/imx/clk-imx6ul.c
index b0a6bb0e8d..35483efde6 100644
--- a/drivers/clk/imx/clk-imx6ul.c
+++ b/drivers/clk/imx/clk-imx6ul.c
@@ -450,6 +450,9 @@ static int imx6_ccm_probe(struct device_d *dev)
                clk_set_parent(clks[IMX6ULL_CLK_EPDC_PRE_SEL],
                                clks[IMX6UL_CLK_PLL3_PFD2]);
 
+       /* Disable GPMI_IO clk before reparenting to avoid glitches */
+       clks[IMX6UL_CLK_GPMI_IO]->ops->disable(clks[IMX6UL_CLK_GPMI_IO]);
+
        clk_set_parent(clks[IMX6UL_CLK_ENFC_SEL], clks[IMX6UL_CLK_PLL2_PFD2]);
 
        return 0;
-- 
2.24.0


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to