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 .
*
* You should have received a copy of the GNU General Public License
* along with this program ; if not , write to the Free Software
* Foundation , Inc . , 51 Franklin St , Fifth Floor , Boston , MA 02110 - 1301 USA
*
*/
# include <linux/kernel.h>
# include <linux/init.h>
# include <linux/sh_clk.h>
2011-07-31 16:17:29 -04:00
# include <linux/export.h>
2013-03-27 00:55:41 -07:00
# include <mach/clock.h>
# include <mach/common.h>
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 ) ;