Merge branch 'omap4-i2c-init' into omap-for-linus
[pandora-kernel.git] / arch / sh / kernel / cpu / clock.c
1 /*
2  * arch/sh/kernel/cpu/clock.c - SuperH clock framework
3  *
4  *  Copyright (C) 2005 - 2009  Paul Mundt
5  *
6  * This clock framework is derived from the OMAP version by:
7  *
8  *      Copyright (C) 2004 - 2008 Nokia Corporation
9  *      Written by Tuukka Tikkanen <tuukka.tikkanen@elektrobit.com>
10  *
11  *  Modified for omap shared clock framework by Tony Lindgren <tony@atomide.com>
12  *
13  * This file is subject to the terms and conditions of the GNU General Public
14  * License.  See the file "COPYING" in the main directory of this archive
15  * for more details.
16  */
17 #include <linux/kernel.h>
18 #include <linux/init.h>
19 #include <linux/clk.h>
20 #include <asm/clock.h>
21 #include <asm/machvec.h>
22
23 int __init clk_init(void)
24 {
25         int ret;
26
27         ret = arch_clk_init();
28         if (unlikely(ret)) {
29                 pr_err("%s: CPU clock registration failed.\n", __func__);
30                 return ret;
31         }
32
33         if (sh_mv.mv_clk_init) {
34                 ret = sh_mv.mv_clk_init();
35                 if (unlikely(ret)) {
36                         pr_err("%s: machvec clock initialization failed.\n",
37                                __func__);
38                         return ret;
39                 }
40         }
41
42         /* Kick the child clocks.. */
43         recalculate_root_clocks();
44
45         /* Enable the necessary init clocks */
46         clk_enable_init_clocks();
47
48         return ret;
49 }
50
51 /*
52  * Returns a clock. Note that we first try to use device id on the bus
53  * and clock name. If this fails, we try to use clock name only.
54  */
55 struct clk *clk_get(struct device *dev, const char *con_id)
56 {
57         const char *dev_id = dev ? dev_name(dev) : NULL;
58
59         return clk_get_sys(dev_id, con_id);
60 }
61 EXPORT_SYMBOL_GPL(clk_get);
62
63 void clk_put(struct clk *clk)
64 {
65 }
66 EXPORT_SYMBOL_GPL(clk_put);
67