clk: mvebu: Fix clk frequency value if SSCG is enabled
authorGregory CLEMENT <gregory.clement@free-electrons.com>
Tue, 2 Sep 2014 08:15:16 +0000 (10:15 +0200)
committerJason Cooper <jason@lakedaemon.net>
Tue, 9 Sep 2014 15:14:47 +0000 (15:14 +0000)
commit15917b16022427c53755abff4dc7051f3076dd7a
tree8912ac27e630e208a38e5c0bf2873db0c6522efb
parent7d1311b93e58ed55f3a31cc8f94c4b8fe988a2b9
clk: mvebu: Fix clk frequency value if SSCG is enabled

When the SSCG (Spread Spectrum Clock Generator) is enabled, it shifts
the frequency of the clock. The percentage is no more than 1% but when
the clock is used for a timer it leads to a clock drift.

This patch allows to correct the affected clock when the SSCG is
enabled. The check is done in an new optional function related to each
SoC: is_sscg_enabled(). The fix is done with the other new optional
function related to each SoC: fix_sscg_deviation. If one these
functions are not present then no correction is done on the clock
frequency.

Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Tested-by: Leigh Brown <leigh@solinno.co.uk>
Link: https://lkml.kernel.org/r/1409645719-20003-2-git-send-email-gregory.clement@free-electrons.com
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
drivers/clk/mvebu/common.c
drivers/clk/mvebu/common.h