arm64: rockchip: rk3399_pll: Switch to slow mode when changing the freq

Like r344578 but for RK3399.
This solve some hangs when switching between frequency.

MFC after:	1 week
This commit is contained in:
Emmanuel Vadot 2019-02-26 17:08:51 +00:00
parent df59ed0787
commit 2db22920c5

View File

@ -424,6 +424,11 @@ rk3399_clk_pll_set_freq(struct clknode *clk, uint64_t fparent, uint64_t *fout,
DEVICE_LOCK(clk); DEVICE_LOCK(clk);
/* Setting to slow mode during frequency change */
reg = RK3399_CLK_PLL_MODE_SLOW << RK3399_CLK_PLL_MODE_SHIFT;
reg |= RK3399_CLK_PLL_MODE_MASK << RK_CLK_PLL_MASK_SHIFT;
WRITE4(clk, sc->mode_reg, reg);
/* Setting fbdiv */ /* Setting fbdiv */
READ4(clk, sc->base_offset, &reg); READ4(clk, sc->base_offset, &reg);
reg &= ~RK3399_CLK_PLL_FBDIV_MASK; reg &= ~RK3399_CLK_PLL_FBDIV_MASK;