Using regmap is required for isolating the actual memory access from the clock code. Now, the driver providing the support for the clock IP block can provide a regmap for this purpose.
Signed-off-by: Tero Kristo <t-kri...@ti.com> --- arch/arm/mach-omap2/clock.c | 20 ++++++++++++++++++++ arch/arm/mach-omap2/clock.h | 3 +++ 2 files changed, 23 insertions(+) diff --git a/arch/arm/mach-omap2/clock.c b/arch/arm/mach-omap2/clock.c index 223f432b..560c49b 100644 --- a/arch/arm/mach-omap2/clock.c +++ b/arch/arm/mach-omap2/clock.c @@ -57,6 +57,26 @@ static bool clkdm_control = true; static LIST_HEAD(clk_hw_omap_clocks); +void omap2_clk_writel(u32 val, struct clk_hw_omap *clk, void __iomem *reg) +{ + if (clk->regmap) + regmap_write(clk->regmap, (u32)reg, val); + else + __raw_writel(val, reg); +} + +u32 omap2_clk_readl(struct clk_hw_omap *clk, void __iomem *reg) +{ + u32 val; + + if (clk->regmap) + regmap_read(clk->regmap, (u32)reg, &val); + else + val = __raw_readl(reg); + + return val; +} + /* * Used for clocks that have the same value as the parent clock, * divided by some factor diff --git a/arch/arm/mach-omap2/clock.h b/arch/arm/mach-omap2/clock.h index d1b227e..a166683 100644 --- a/arch/arm/mach-omap2/clock.h +++ b/arch/arm/mach-omap2/clock.h @@ -252,6 +252,9 @@ void omap2_clk_print_new_rates(const char *hfclkin_ck_name, const char *core_ck_name, const char *mpu_ck_name); +u32 omap2_clk_readl(struct clk_hw_omap *clk, void __iomem *reg); +void omap2_clk_writel(u32 val, struct clk_hw_omap *clk, void __iomem *reg); + extern u16 cpu_mask; extern const struct clkops clkops_omap2_dflt_wait; -- 1.7.9.5 -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html