1*b0a148f8SKuninori Morimoto // SPDX-License-Identifier: GPL-2.0 236ddf31bSPaul Mundt /* 336ddf31bSPaul Mundt * arch/sh/kernel/cpu/clock.c - SuperH clock framework 436ddf31bSPaul Mundt * 5b1f6cfe4SPaul Mundt * Copyright (C) 2005 - 2009 Paul Mundt 636ddf31bSPaul Mundt * 736ddf31bSPaul Mundt * This clock framework is derived from the OMAP version by: 836ddf31bSPaul Mundt * 9b1f6cfe4SPaul Mundt * Copyright (C) 2004 - 2008 Nokia Corporation 1036ddf31bSPaul Mundt * Written by Tuukka Tikkanen <tuukka.tikkanen@elektrobit.com> 1136ddf31bSPaul Mundt * 121d118562SPaul Mundt * Modified for omap shared clock framework by Tony Lindgren <tony@atomide.com> 1336ddf31bSPaul Mundt */ 1436ddf31bSPaul Mundt #include <linux/kernel.h> 1536ddf31bSPaul Mundt #include <linux/init.h> 1651a5006aSPaul Mundt #include <linux/clk.h> 1736ddf31bSPaul Mundt #include <asm/clock.h> 18253b0887SPaul Mundt #include <asm/machvec.h> 1936ddf31bSPaul Mundt clk_init(void)2036ddf31bSPaul Mundtint __init clk_init(void) 2136ddf31bSPaul Mundt { 22253b0887SPaul Mundt int ret; 2336ddf31bSPaul Mundt 2415f0c8f2SRich Felker #ifndef CONFIG_COMMON_CLK 25253b0887SPaul Mundt ret = arch_clk_init(); 26253b0887SPaul Mundt if (unlikely(ret)) { 27253b0887SPaul Mundt pr_err("%s: CPU clock registration failed.\n", __func__); 28253b0887SPaul Mundt return ret; 2936ddf31bSPaul Mundt } 3015f0c8f2SRich Felker #endif 3136ddf31bSPaul Mundt 32253b0887SPaul Mundt if (sh_mv.mv_clk_init) { 33253b0887SPaul Mundt ret = sh_mv.mv_clk_init(); 34253b0887SPaul Mundt if (unlikely(ret)) { 35253b0887SPaul Mundt pr_err("%s: machvec clock initialization failed.\n", 36253b0887SPaul Mundt __func__); 37253b0887SPaul Mundt return ret; 38253b0887SPaul Mundt } 39253b0887SPaul Mundt } 40dfbbbe92Sdmitry pervushin 4115f0c8f2SRich Felker #ifndef CONFIG_COMMON_CLK 4236ddf31bSPaul Mundt /* Kick the child clocks.. */ 43b1f6cfe4SPaul Mundt recalculate_root_clocks(); 4436ddf31bSPaul Mundt 454ff29ff8SPaul Mundt /* Enable the necessary init clocks */ 464ff29ff8SPaul Mundt clk_enable_init_clocks(); 4715f0c8f2SRich Felker #endif 484ff29ff8SPaul Mundt 4936ddf31bSPaul Mundt return ret; 5036ddf31bSPaul Mundt } 5136ddf31bSPaul Mundt 52cedcf336SPaul Mundt 53