[PATCH] clk: stm32mp1: fix CK_MPU calculation

Patrice CHOTARD patrice.chotard at st.com
Mon May 11 16:00:02 CEST 2020


On 4/24/20 3:47 PM, Patrick Delaunay wrote:
> From: Lionel Debieve <lionel.debieve at st.com>
>
> When the CK_MPU used PLL1_MPUDIV, the current rate is
> wrong. The clock must use stm32mp1_mpu_div as a shift
> value. Fix the check value used to enter PLL_MPUDIV.
>
> Signed-off-by: Lionel Debieve <lionel.debieve at st.com>
> Signed-off-by: Patrick Delaunay <patrick.delaunay at st.com>
> ---
>
>  drivers/clk/clk_stm32mp1.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/clk/clk_stm32mp1.c b/drivers/clk/clk_stm32mp1.c
> index 50df8425bf..0d0ea43fd2 100644
> --- a/drivers/clk/clk_stm32mp1.c
> +++ b/drivers/clk/clk_stm32mp1.c
> @@ -954,10 +954,11 @@ static ulong stm32mp1_clk_get(struct stm32mp1_clk_priv *priv, int p)
>  		case RCC_MPCKSELR_PLL:
>  		case RCC_MPCKSELR_PLL_MPUDIV:
>  			clock = stm32mp1_read_pll_freq(priv, _PLL1, _DIV_P);
> -			if (p == RCC_MPCKSELR_PLL_MPUDIV) {
> +			if ((reg & RCC_SELR_SRC_MASK) ==
> +			    RCC_MPCKSELR_PLL_MPUDIV) {
>  				reg = readl(priv->base + RCC_MPCKDIVR);
> -				clock /= stm32mp1_mpu_div[reg &
> -							  RCC_MPUDIV_MASK];
> +				clock >>= stm32mp1_mpu_div[reg &
> +					RCC_MPUDIV_MASK];
>  			}
>  			break;
>  		}
>
> Reviewed-by: Patrice Chotard <patrice.chotard at st.com>
>
> Thanks
>
> Patrice
>


More information about the U-Boot mailing list