Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
clock.c
Go to the documentation of this file.
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 <[email protected]>
10  *
11  * Modified for omap shared clock framework by Tony Lindgren <[email protected]>
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.. */
44 
45  /* Enable the necessary init clocks */
47 
48  return ret;
49 }
50 
51