Skip to content

Commit

Permalink
[ARM] MXC: add clkdev support
Browse files Browse the repository at this point in the history
This patch only adds general clkdev support without actually switching
any MXC architecture to clkdev.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
  • Loading branch information
Sascha Hauer committed Mar 13, 2009
1 parent e65fb00 commit d1755e3
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 0 deletions.
10 changes: 10 additions & 0 deletions arch/arm/plat-mxc/clock.c
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,11 @@ static DEFINE_MUTEX(clocks_mutex);
* Standard clock functions defined in include/linux/clk.h
*-------------------------------------------------------------------------*/

/*
* All the code inside #ifndef CONFIG_COMMON_CLKDEV can be removed once all
* MXC architectures have switched to using clkdev.
*/
#ifndef CONFIG_COMMON_CLKDEV
/*
* Retrieve a clock by name.
*
Expand Down Expand Up @@ -110,6 +115,7 @@ struct clk *clk_get(struct device *dev, const char *id)
return clk;
}
EXPORT_SYMBOL(clk_get);
#endif

static void __clk_disable(struct clk *clk)
{
Expand Down Expand Up @@ -187,13 +193,15 @@ unsigned long clk_get_rate(struct clk *clk)
}
EXPORT_SYMBOL(clk_get_rate);

#ifndef CONFIG_COMMON_CLKDEV
/* Decrement the clock's module reference count */
void clk_put(struct clk *clk)
{
if (clk && !IS_ERR(clk))
module_put(clk->owner);
}
EXPORT_SYMBOL(clk_put);
#endif

/* Round the requested clock rate to the nearest supported
* rate that is less than or equal to the requested rate.
Expand Down Expand Up @@ -257,6 +265,7 @@ struct clk *clk_get_parent(struct clk *clk)
}
EXPORT_SYMBOL(clk_get_parent);

#ifndef CONFIG_COMMON_CLKDEV
/*
* Add a new clock to the clock tree.
*/
Expand Down Expand Up @@ -327,6 +336,7 @@ static int __init mxc_setup_proc_entry(void)
}

late_initcall(mxc_setup_proc_entry);
#endif /* CONFIG_PROC_FS */
#endif

/*
Expand Down
7 changes: 7 additions & 0 deletions arch/arm/plat-mxc/include/mach/clkdev.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#ifndef __ASM_MACH_CLKDEV_H
#define __ASM_MACH_CLKDEV_H

#define __clk_get(clk) ({ 1; })
#define __clk_put(clk) do { } while (0)

#endif
4 changes: 4 additions & 0 deletions arch/arm/plat-mxc/include/mach/clock.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,13 @@
struct module;

struct clk {
#ifndef CONFIG_COMMON_CLKDEV
/* As soon as i.MX1 and i.MX31 switched to clkdev, this
* block can go away */
struct list_head node;
struct module *owner;
const char *name;
#endif
int id;
/* Source clock this clk depends on */
struct clk *parent;
Expand Down

0 comments on commit d1755e3

Please sign in to comment.