Skip to content

Commit

Permalink
[ARM] omap: add default .ops to all remaining OMAP2 clocks
Browse files Browse the repository at this point in the history
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  • Loading branch information
Russell King authored and Russell King committed Feb 8, 2009
1 parent 5713718 commit b36ee72
Show file tree
Hide file tree
Showing 4 changed files with 271 additions and 14 deletions.
35 changes: 21 additions & 14 deletions arch/arm/mach-omap2/clock.c
Original file line number Diff line number Diff line change
Expand Up @@ -264,16 +264,10 @@ static void omap2_clk_wait_ready(struct clk *clk)
omap2_wait_clock_ready(st_reg, bit, clk->name);
}

/* Enables clock without considering parent dependencies or use count
* REVISIT: Maybe change this to use clk->enable like on omap1?
*/
int _omap2_clk_enable(struct clk *clk)
static int omap2_dflt_clk_enable_wait(struct clk *clk)
{
u32 regval32;

if (clk->ops && clk->ops->enable)
return clk->ops->enable(clk);

if (unlikely(clk->enable_reg == NULL)) {
printk(KERN_ERR "clock.c: Enable for %s without enable code\n",
clk->name);
Expand All @@ -293,16 +287,10 @@ int _omap2_clk_enable(struct clk *clk)
return 0;
}

/* Disables clock without considering parent dependencies or use count */
void _omap2_clk_disable(struct clk *clk)
static void omap2_dflt_clk_disable(struct clk *clk)
{
u32 regval32;

if (clk->ops && clk->ops->disable) {
clk->ops->disable(clk);
return;
}

if (clk->enable_reg == NULL) {
/*
* 'Independent' here refers to a clock which is not
Expand All @@ -322,6 +310,25 @@ void _omap2_clk_disable(struct clk *clk)
wmb();
}

const struct clkops clkops_omap2_dflt_wait = {
.enable = omap2_dflt_clk_enable_wait,
.disable = omap2_dflt_clk_disable,
};

/* Enables clock without considering parent dependencies or use count
* REVISIT: Maybe change this to use clk->enable like on omap1?
*/
static int _omap2_clk_enable(struct clk *clk)
{
return clk->ops->enable(clk);
}

/* Disables clock without considering parent dependencies or use count */
static void _omap2_clk_disable(struct clk *clk)
{
clk->ops->disable(clk);
}

void omap2_clk_disable(struct clk *clk)
{
if (clk->usecount > 0 && !(--clk->usecount)) {
Expand Down
2 changes: 2 additions & 0 deletions arch/arm/mach-omap2/clock.h
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,8 @@ u32 omap2_get_dpll_rate(struct clk *clk);
int omap2_wait_clock_ready(void __iomem *reg, u32 cval, const char *name);
void omap2_clk_prepare_for_reboot(void);

extern const struct clkops clkops_omap2_dflt_wait;

extern u8 cpu_mask;

/* clksel_rate data common to 24xx/343x */
Expand Down
Loading

0 comments on commit b36ee72

Please sign in to comment.