From: Peng Fan <peng....@nxp.com>

Same to i.MX8MN/i.MX8MM, pll BYPASS bit should be kept inside pll
driver for glitchless freq setting following spec. If exposing the
bit, that means pll driver and clk driver has two paths to touch
this bit, which is wrong.

So use EXT_BYPASS bit here.

Reviewed-by: Dong Aisheng <aisheng.d...@nxp.com>
Reviewed-by: Leonard Crestez <leonard.cres...@nxp.com>
Signed-off-by: Peng Fan <peng....@nxp.com>
---
 drivers/clk/imx/clk-imx8mp.c | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/drivers/clk/imx/clk-imx8mp.c b/drivers/clk/imx/clk-imx8mp.c
index e05ec56df285..e9ed8a188031 100644
--- a/drivers/clk/imx/clk-imx8mp.c
+++ b/drivers/clk/imx/clk-imx8mp.c
@@ -486,16 +486,16 @@ static int imx8mp_clocks_probe(struct platform_device 
*pdev)
        hws[IMX8MP_SYS_PLL2] = imx_clk_hw_pll14xx("sys_pll2", 
"sys_pll2_ref_sel", anatop_base + 0x104, &imx_1416x_pll);
        hws[IMX8MP_SYS_PLL3] = imx_clk_hw_pll14xx("sys_pll3", 
"sys_pll3_ref_sel", anatop_base + 0x114, &imx_1416x_pll);
 
-       hws[IMX8MP_AUDIO_PLL1_BYPASS] = 
imx_clk_hw_mux_flags("audio_pll1_bypass", anatop_base, 4, 1, 
audio_pll1_bypass_sels, ARRAY_SIZE(audio_pll1_bypass_sels), 
CLK_SET_RATE_PARENT);
-       hws[IMX8MP_AUDIO_PLL2_BYPASS] = 
imx_clk_hw_mux_flags("audio_pll2_bypass", anatop_base + 0x14, 4, 1, 
audio_pll2_bypass_sels, ARRAY_SIZE(audio_pll2_bypass_sels), 
CLK_SET_RATE_PARENT);
-       hws[IMX8MP_VIDEO_PLL1_BYPASS] = 
imx_clk_hw_mux_flags("video_pll1_bypass", anatop_base + 0x28, 4, 1, 
video_pll1_bypass_sels, ARRAY_SIZE(video_pll1_bypass_sels), 
CLK_SET_RATE_PARENT);
-       hws[IMX8MP_DRAM_PLL_BYPASS] = imx_clk_hw_mux_flags("dram_pll_bypass", 
anatop_base + 0x50, 4, 1, dram_pll_bypass_sels, 
ARRAY_SIZE(dram_pll_bypass_sels), CLK_SET_RATE_PARENT);
-       hws[IMX8MP_GPU_PLL_BYPASS] = imx_clk_hw_mux_flags("gpu_pll_bypass", 
anatop_base + 0x64, 4, 1, gpu_pll_bypass_sels, ARRAY_SIZE(gpu_pll_bypass_sels), 
CLK_SET_RATE_PARENT);
-       hws[IMX8MP_VPU_PLL_BYPASS] = imx_clk_hw_mux_flags("vpu_pll_bypass", 
anatop_base + 0x74, 4, 1, vpu_pll_bypass_sels, ARRAY_SIZE(vpu_pll_bypass_sels), 
CLK_SET_RATE_PARENT);
-       hws[IMX8MP_ARM_PLL_BYPASS] = imx_clk_hw_mux_flags("arm_pll_bypass", 
anatop_base + 0x84, 4, 1, arm_pll_bypass_sels, ARRAY_SIZE(arm_pll_bypass_sels), 
CLK_SET_RATE_PARENT);
-       hws[IMX8MP_SYS_PLL1_BYPASS] = imx_clk_hw_mux_flags("sys_pll1_bypass", 
anatop_base + 0x94, 4, 1, sys_pll1_bypass_sels, 
ARRAY_SIZE(sys_pll1_bypass_sels), CLK_SET_RATE_PARENT);
-       hws[IMX8MP_SYS_PLL2_BYPASS] = imx_clk_hw_mux_flags("sys_pll2_bypass", 
anatop_base + 0x104, 4, 1, sys_pll2_bypass_sels, 
ARRAY_SIZE(sys_pll2_bypass_sels), CLK_SET_RATE_PARENT);
-       hws[IMX8MP_SYS_PLL3_BYPASS] = imx_clk_hw_mux_flags("sys_pll3_bypass", 
anatop_base + 0x114, 4, 1, sys_pll3_bypass_sels, 
ARRAY_SIZE(sys_pll3_bypass_sels), CLK_SET_RATE_PARENT);
+       hws[IMX8MP_AUDIO_PLL1_BYPASS] = 
imx_clk_hw_mux_flags("audio_pll1_bypass", anatop_base, 16, 1, 
audio_pll1_bypass_sels, ARRAY_SIZE(audio_pll1_bypass_sels), 
CLK_SET_RATE_PARENT);
+       hws[IMX8MP_AUDIO_PLL2_BYPASS] = 
imx_clk_hw_mux_flags("audio_pll2_bypass", anatop_base + 0x14, 16, 1, 
audio_pll2_bypass_sels, ARRAY_SIZE(audio_pll2_bypass_sels), 
CLK_SET_RATE_PARENT);
+       hws[IMX8MP_VIDEO_PLL1_BYPASS] = 
imx_clk_hw_mux_flags("video_pll1_bypass", anatop_base + 0x28, 16, 1, 
video_pll1_bypass_sels, ARRAY_SIZE(video_pll1_bypass_sels), 
CLK_SET_RATE_PARENT);
+       hws[IMX8MP_DRAM_PLL_BYPASS] = imx_clk_hw_mux_flags("dram_pll_bypass", 
anatop_base + 0x50, 16, 1, dram_pll_bypass_sels, 
ARRAY_SIZE(dram_pll_bypass_sels), CLK_SET_RATE_PARENT);
+       hws[IMX8MP_GPU_PLL_BYPASS] = imx_clk_hw_mux_flags("gpu_pll_bypass", 
anatop_base + 0x64, 28, 1, gpu_pll_bypass_sels, 
ARRAY_SIZE(gpu_pll_bypass_sels), CLK_SET_RATE_PARENT);
+       hws[IMX8MP_VPU_PLL_BYPASS] = imx_clk_hw_mux_flags("vpu_pll_bypass", 
anatop_base + 0x74, 28, 1, vpu_pll_bypass_sels, 
ARRAY_SIZE(vpu_pll_bypass_sels), CLK_SET_RATE_PARENT);
+       hws[IMX8MP_ARM_PLL_BYPASS] = imx_clk_hw_mux_flags("arm_pll_bypass", 
anatop_base + 0x84, 28, 1, arm_pll_bypass_sels, 
ARRAY_SIZE(arm_pll_bypass_sels), CLK_SET_RATE_PARENT);
+       hws[IMX8MP_SYS_PLL1_BYPASS] = imx_clk_hw_mux_flags("sys_pll1_bypass", 
anatop_base + 0x94, 28, 1, sys_pll1_bypass_sels, 
ARRAY_SIZE(sys_pll1_bypass_sels), CLK_SET_RATE_PARENT);
+       hws[IMX8MP_SYS_PLL2_BYPASS] = imx_clk_hw_mux_flags("sys_pll2_bypass", 
anatop_base + 0x104, 28, 1, sys_pll2_bypass_sels, 
ARRAY_SIZE(sys_pll2_bypass_sels), CLK_SET_RATE_PARENT);
+       hws[IMX8MP_SYS_PLL3_BYPASS] = imx_clk_hw_mux_flags("sys_pll3_bypass", 
anatop_base + 0x114, 28, 1, sys_pll3_bypass_sels, 
ARRAY_SIZE(sys_pll3_bypass_sels), CLK_SET_RATE_PARENT);
 
        hws[IMX8MP_AUDIO_PLL1_OUT] = imx_clk_hw_gate("audio_pll1_out", 
"audio_pll1_bypass", anatop_base, 13);
        hws[IMX8MP_AUDIO_PLL2_OUT] = imx_clk_hw_gate("audio_pll2_out", 
"audio_pll2_bypass", anatop_base + 0x14, 13);
-- 
2.16.4

Reply via email to