linux/arch/sh/kernel/cpu/clock.c
<<
>>
Prefs
   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
  23int __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