aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/mach-omap2/clock.c2
-rw-r--r--include/linux/clk/ti.h16
2 files changed, 13 insertions, 5 deletions
diff --git a/arch/arm/mach-omap2/clock.c b/arch/arm/mach-omap2/clock.c
index 94a4949be9b0..d6afc1291fe9 100644
--- a/arch/arm/mach-omap2/clock.c
+++ b/arch/arm/mach-omap2/clock.c
@@ -120,6 +120,8 @@ u32 omap2_clk_readl(struct clk_hw_omap *clk, void __iomem *reg)
120static struct ti_clk_ll_ops omap_clk_ll_ops = { 120static struct ti_clk_ll_ops omap_clk_ll_ops = {
121 .clk_readl = clk_memmap_readl, 121 .clk_readl = clk_memmap_readl,
122 .clk_writel = clk_memmap_writel, 122 .clk_writel = clk_memmap_writel,
123 .clkdm_clk_enable = clkdm_clk_enable,
124 .clkdm_clk_disable = clkdm_clk_disable,
123}; 125};
124 126
125/** 127/**
diff --git a/include/linux/clk/ti.h b/include/linux/clk/ti.h
index 61deace552ec..fcf91844e94b 100644
--- a/include/linux/clk/ti.h
+++ b/include/linux/clk/ti.h
@@ -238,18 +238,24 @@ struct clk_omap_reg {
238}; 238};
239 239
240/** 240/**
241 * struct ti_clk_ll_ops - low-level register access ops for a clock 241 * struct ti_clk_ll_ops - low-level ops for clocks
242 * @clk_readl: pointer to register read function 242 * @clk_readl: pointer to register read function
243 * @clk_writel: pointer to register write function 243 * @clk_writel: pointer to register write function
244 * @clkdm_clk_enable: pointer to clockdomain enable function
245 * @clkdm_clk_disable: pointer to clockdomain disable function
244 * 246 *
245 * Low-level register access ops are generally used by the basic clock types 247 * Low-level ops are generally used by the basic clock types (clk-gate,
246 * (clk-gate, clk-mux, clk-divider etc.) to provide support for various 248 * clk-mux, clk-divider etc.) to provide support for various low-level
247 * low-level hardware interfaces (direct MMIO, regmap etc.), but can also be 249 * hadrware interfaces (direct MMIO, regmap etc.), and is initialized
248 * used by other hardware-specific clock drivers if needed. 250 * by board code. Low-level ops also contain some other platform specific
251 * operations not provided directly by clock drivers.
249 */ 252 */
250struct ti_clk_ll_ops { 253struct ti_clk_ll_ops {
251 u32 (*clk_readl)(void __iomem *reg); 254 u32 (*clk_readl)(void __iomem *reg);
252 void (*clk_writel)(u32 val, void __iomem *reg); 255 void (*clk_writel)(u32 val, void __iomem *reg);
256 int (*clkdm_clk_enable)(struct clockdomain *clkdm, struct clk *clk);
257 int (*clkdm_clk_disable)(struct clockdomain *clkdm,
258 struct clk *clk);
253}; 259};
254 260
255extern struct ti_clk_ll_ops *ti_clk_ll_ops; 261extern struct ti_clk_ll_ops *ti_clk_ll_ops;