summaryrefslogtreecommitdiffstats
path: root/drivers/clk
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2019-12-09 10:39:56 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2019-12-09 10:45:16 +0100
commit0483562c0abf2f65fb97a3e3979a9285641cd376 (patch)
tree835627a75eb6b08ba9e8b21ba43de7dcfa5a294f /drivers/clk
parentdf5a46f13c18d933c2bef094343a6021941586ee (diff)
downloadbarebox-0483562c0abf2f65fb97a3e3979a9285641cd376.tar.gz
barebox-0483562c0abf2f65fb97a3e3979a9285641cd376.tar.xz
clk: i.MX6ul: Disable GPMI_IO clk before reparenting
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-nand@1806000.of: probe failed: Connection timed out Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/clk')
-rw-r--r--drivers/clk/imx/clk-imx6ul.c3
1 files changed, 3 insertions, 0 deletions
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;