diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2019-12-09 10:39:56 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2019-12-09 10:45:16 +0100 |
commit | 0483562c0abf2f65fb97a3e3979a9285641cd376 (patch) | |
tree | 835627a75eb6b08ba9e8b21ba43de7dcfa5a294f | |
parent | df5a46f13c18d933c2bef094343a6021941586ee (diff) | |
download | barebox-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>
-rw-r--r-- | drivers/clk/imx/clk-imx6ul.c | 3 |
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; |