Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/arch/sh/kernel/cpu/clock.c
26481 views
1
// SPDX-License-Identifier: GPL-2.0
2
/*
3
* arch/sh/kernel/cpu/clock.c - SuperH clock framework
4
*
5
* Copyright (C) 2005 - 2009 Paul Mundt
6
*
7
* This clock framework is derived from the OMAP version by:
8
*
9
* Copyright (C) 2004 - 2008 Nokia Corporation
10
* Written by Tuukka Tikkanen <[email protected]>
11
*
12
* Modified for omap shared clock framework by Tony Lindgren <[email protected]>
13
*/
14
#include <linux/kernel.h>
15
#include <linux/init.h>
16
#include <linux/clk.h>
17
#include <asm/clock.h>
18
#include <asm/machvec.h>
19
20
int __init clk_init(void)
21
{
22
int ret;
23
24
#ifndef CONFIG_COMMON_CLK
25
ret = arch_clk_init();
26
if (unlikely(ret)) {
27
pr_err("%s: CPU clock registration failed.\n", __func__);
28
return ret;
29
}
30
#endif
31
32
if (sh_mv.mv_clk_init) {
33
ret = sh_mv.mv_clk_init();
34
if (unlikely(ret)) {
35
pr_err("%s: machvec clock initialization failed.\n",
36
__func__);
37
return ret;
38
}
39
}
40
41
#ifndef CONFIG_COMMON_CLK
42
/* Kick the child clocks.. */
43
recalculate_root_clocks();
44
45
/* Enable the necessary init clocks */
46
clk_enable_init_clocks();
47
#endif
48
49
return ret;
50
}
51
52
53
54