clk: versatile/icst: add Integrator core module clocks
authorLinus Walleij <linus.walleij@linaro.org>
Mon, 22 Aug 2016 09:19:33 +0000 (11:19 +0200)
committerStephen Boyd <sboyd@codeaurora.org>
Thu, 25 Aug 2016 20:03:52 +0000 (13:03 -0700)
commit5e23c593057520db45b089644863989d4b21e31f
tree3add6d733e30531e73e756a55584901abe85016b
parent50581cc4f14f0f704b967cd4664a34d7644be816
clk: versatile/icst: add Integrator core module clocks

The Integrator/AP and Integrator/CP have special derivatives
of the ICST525 control registers, where some bits have been
hardwired but others are possible to adjust, resulting in a
control register that makes it possible to set an even,
desired megahertz value.

The Integrator/AP and Integrator/CP have slightly different
layout so we support them using different compatible
strings.

After adding these clocks, the Integrator-specific cpufreq
driver can be switched over to use the generic operating
point device tree cpufreq driver.

Instead of simply writing a value to the oscillator control
register we switch to the more elaborate method of providing
a bitmask and use regmap_update_bits() to poke the right bits
for the desired frequency, this is needed since these control
registers sometimes control more than one clock.

Cc: Russell King <linux@armlinux.org.uk>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
drivers/clk/versatile/clk-icst.c