mirror of https://github.com/torvalds/linux.git
clk: at91: clk-master: Add check for divide by 3
A potential divider for the master clock is div/3. The register configuration for div/3 is MASTER_PRES_MAX. The current bit shifting method does not work for this case. Checking for MASTER_PRES_MAX will ensure the correct decimal value is stored in the system. Signed-off-by: Ryan Wanner <Ryan.Wanner@microchip.com> Signed-off-by: Nicolas Ferre <nicolas.ferre@microchip.com>
This commit is contained in:
parent
af98caeaa7
commit
e0237f5635
|
|
@ -580,6 +580,9 @@ clk_sama7g5_master_recalc_rate(struct clk_hw *hw,
|
||||||
{
|
{
|
||||||
struct clk_master *master = to_clk_master(hw);
|
struct clk_master *master = to_clk_master(hw);
|
||||||
|
|
||||||
|
if (master->div == MASTER_PRES_MAX)
|
||||||
|
return DIV_ROUND_CLOSEST_ULL(parent_rate, 3);
|
||||||
|
|
||||||
return DIV_ROUND_CLOSEST_ULL(parent_rate, (1 << master->div));
|
return DIV_ROUND_CLOSEST_ULL(parent_rate, (1 << master->div));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue