diff mbox series

clk: imx6sl: ensure MMDC CH0 handshake is bypassed

Message ID 1543562288-28638-1-git-send-email-Anson.Huang@nxp.com (mailing list archive)
State New, archived
Headers show
Series clk: imx6sl: ensure MMDC CH0 handshake is bypassed | expand

Commit Message

Anson Huang Nov. 30, 2018, 7:23 a.m. UTC
Same as other i.MX6 SoCs, ensure unused MMDC channel's
handshake is bypassed, this is to make sure no request
signal will be generated when periphe_clk_sel is changed
or SRC warm reset is triggered.

Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
---
 drivers/clk/imx/clk-imx6sl.c | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Stephen Boyd Nov. 30, 2018, 7:25 a.m. UTC | #1
Quoting Anson Huang (2018-11-29 23:23:47)
> Same as other i.MX6 SoCs, ensure unused MMDC channel's
> handshake is bypassed, this is to make sure no request
> signal will be generated when periphe_clk_sel is changed
> or SRC warm reset is triggered.
> 
> Signed-off-by: Anson Huang <Anson.Huang@nxp.com>

Does this need a fixes tag?
Anson Huang Nov. 30, 2018, 7:37 a.m. UTC | #2
Hi, Stephen

Best Regards!
Anson Huang

> -----Original Message-----
> From: Stephen Boyd [mailto:sboyd@kernel.org]
> Sent: 2018年11月30日 15:25
> To: kernel@pengutronix.de; linux-arm-kernel@lists.infradead.org;
> linux-clk@vger.kernel.org; linux-kernel@vger.kernel.org;
> mturquette@baylibre.com; s.hauer@pengutronix.de; shawnguo@kernel.org;
> Anson Huang <anson.huang@nxp.com>; Fabio Estevam
> <fabio.estevam@nxp.com>
> Cc: dl-linux-imx <linux-imx@nxp.com>
> Subject: Re: [PATCH] clk: imx6sl: ensure MMDC CH0 handshake is bypassed
> 
> Quoting Anson Huang (2018-11-29 23:23:47)
> > Same as other i.MX6 SoCs, ensure unused MMDC channel's handshake is
> > bypassed, this is to make sure no request signal will be generated
> > when periphe_clk_sel is changed or SRC warm reset is triggered.
> >
> > Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
> 
> Does this need a fixes tag?

Normally this bit is 1b'1 by reset, but during our development, it used to be
overwritten in u-boot and lead to some clock operation fail in Linux kernel, that is why we ensure it
in clock driver early phase. IMO, it should be OK to not add a fix tag, since it is just
to make sure the setting is correct and NOT depends on the hardware reset value which
could be changed in u-boot.

Anson.
Stephen Boyd Nov. 30, 2018, 8:10 a.m. UTC | #3
Quoting Anson Huang (2018-11-29 23:37:14)
> Hi, Stephen
> 
> Best Regards!
> Anson Huang
> 
> > -----Original Message-----
> > From: Stephen Boyd [mailto:sboyd@kernel.org]
> > Sent: 2018年11月30日 15:25
> > To: kernel@pengutronix.de; linux-arm-kernel@lists.infradead.org;
> > linux-clk@vger.kernel.org; linux-kernel@vger.kernel.org;
> > mturquette@baylibre.com; s.hauer@pengutronix.de; shawnguo@kernel.org;
> > Anson Huang <anson.huang@nxp.com>; Fabio Estevam
> > <fabio.estevam@nxp.com>
> > Cc: dl-linux-imx <linux-imx@nxp.com>
> > Subject: Re: [PATCH] clk: imx6sl: ensure MMDC CH0 handshake is bypassed
> > 
> > Quoting Anson Huang (2018-11-29 23:23:47)
> > > Same as other i.MX6 SoCs, ensure unused MMDC channel's handshake is
> > > bypassed, this is to make sure no request signal will be generated
> > > when periphe_clk_sel is changed or SRC warm reset is triggered.
> > >
> > > Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
> > 
> > Does this need a fixes tag?
> 
> Normally this bit is 1b'1 by reset, but during our development, it used to be
> overwritten in u-boot and lead to some clock operation fail in Linux kernel, that is why we ensure it
> in clock driver early phase. IMO, it should be OK to not add a fix tag, since it is just
> to make sure the setting is correct and NOT depends on the hardware reset value which
> could be changed in u-boot.
> 
> 

Hmm ok.
Stephen Boyd Dec. 10, 2018, 7:34 p.m. UTC | #4
Quoting Anson Huang (2018-11-29 23:23:47)
> Same as other i.MX6 SoCs, ensure unused MMDC channel's
> handshake is bypassed, this is to make sure no request
> signal will be generated when periphe_clk_sel is changed
> or SRC warm reset is triggered.
> 
> Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
> ---

Applied to clk-next
diff mbox series

Patch

diff --git a/drivers/clk/imx/clk-imx6sl.c b/drivers/clk/imx/clk-imx6sl.c
index 6fcfbbd..e13d881 100644
--- a/drivers/clk/imx/clk-imx6sl.c
+++ b/drivers/clk/imx/clk-imx6sl.c
@@ -17,6 +17,8 @@ 
 
 #include "clk.h"
 
+#define CCDR				0x4
+#define BM_CCM_CCDR_MMDC_CH0_MASK	(1 << 17)
 #define CCSR			0xc
 #define BM_CCSR_PLL1_SW_CLK_SEL	(1 << 2)
 #define CACRR			0x10
@@ -411,6 +413,10 @@  static void __init imx6sl_clocks_init(struct device_node *ccm_node)
 	clks[IMX6SL_CLK_USDHC3]       = imx_clk_gate2("usdhc3",       "usdhc3_podf",       base + 0x80, 6);
 	clks[IMX6SL_CLK_USDHC4]       = imx_clk_gate2("usdhc4",       "usdhc4_podf",       base + 0x80, 8);
 
+	/* Ensure the MMDC CH0 handshake is bypassed */
+	writel_relaxed(readl_relaxed(base + CCDR) |
+		BM_CCM_CCDR_MMDC_CH0_MASK, base + CCDR);
+
 	imx_check_clocks(clks, ARRAY_SIZE(clks));
 
 	clk_data.clks = clks;