Skip to content
Snippets Groups Projects
Commit 3b1b0f40 authored by Ye Li's avatar Ye Li
Browse files

MLK-14483 mx7ulp: Fix SPLL/APLL clock rate calculation issue


The num/denom is a float value, but in the calculation it is convert
to integer 0, and cause the result wrong.

Signed-off-by: default avatarYe Li <ye.li@nxp.com>
(cherry picked from commit 4a8f5149)
parent eaa82759
No related branches found
No related tags found
No related merge requests found
...@@ -498,7 +498,9 @@ u32 decode_pll(enum pll_clocks pll) ...@@ -498,7 +498,9 @@ u32 decode_pll(enum pll_clocks pll)
num = readl(&scg1_regs->spllnum); num = readl(&scg1_regs->spllnum);
denom = readl(&scg1_regs->splldenom); denom = readl(&scg1_regs->splldenom);
return (infreq / pre_div) * (mult + num / denom); infreq = infreq / pre_div;
return infreq * mult + infreq * num / denom;
case PLL_A7_APLL: case PLL_A7_APLL:
reg = readl(&scg1_regs->apllcsr); reg = readl(&scg1_regs->apllcsr);
...@@ -525,7 +527,9 @@ u32 decode_pll(enum pll_clocks pll) ...@@ -525,7 +527,9 @@ u32 decode_pll(enum pll_clocks pll)
num = readl(&scg1_regs->apllnum); num = readl(&scg1_regs->apllnum);
denom = readl(&scg1_regs->aplldenom); denom = readl(&scg1_regs->aplldenom);
return (infreq / pre_div) * (mult + num / denom); infreq = infreq / pre_div;
return infreq * mult + infreq * num / denom;
case PLL_USB: case PLL_USB:
reg = readl(&scg1_regs->upllcsr); reg = readl(&scg1_regs->upllcsr);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment