2010-05-12 14:21:24 +00:00
/*
2010-08-16 10:40:49 +00:00
* SH - Mobile Clock Framework
2010-05-12 14:21:24 +00:00
*
* Copyright ( C ) 2010 Magnus Damm
*
2010-08-16 10:40:49 +00:00
* Used together with arch / arm / common / clkdev . c and drivers / sh / clk . c .
*
2010-05-12 14:21:24 +00:00
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation ; version 2 of the License .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
*/
2014-10-26 15:07:32 +02:00
# include <linux/export.h>
2010-05-12 14:21:24 +00:00
# include <linux/kernel.h>
# include <linux/init.h>
# include <linux/sh_clk.h>
2014-10-26 15:07:32 +02:00
2014-06-17 16:47:21 +09:00
# include "clock.h"
2014-06-17 16:47:37 +09:00
# include "common.h"
2013-03-27 00:55:41 -07:00
unsigned long shmobile_fixed_ratio_clk_recalc ( struct clk * clk )
{
struct clk_ratio * p = clk - > priv ;
return clk - > parent - > rate / p - > div * p - > mul ;
} ;
struct sh_clk_ops shmobile_fixed_ratio_clk_ops = {
. recalc = shmobile_fixed_ratio_clk_recalc ,
} ;
2010-05-12 14:21:24 +00:00
2012-02-29 21:41:30 +09:00
int __init shmobile_clk_init ( void )
2010-05-12 14:21:24 +00:00
{
/* Kick the child clocks.. */
recalculate_root_clocks ( ) ;
/* Enable the necessary init clocks */
clk_enable_init_clocks ( ) ;
return 0 ;
}
int __clk_get ( struct clk * clk )
{
return 1 ;
}
EXPORT_SYMBOL ( __clk_get ) ;
void __clk_put ( struct clk * clk )
{
}
EXPORT_SYMBOL ( __clk_put ) ;