2005-04-16 15:20:36 -07:00
/*
2010-01-14 12:48:06 +00:00
* linux / arch / arm / plat - versatile / clock . c
2005-04-16 15:20:36 -07:00
*
* Copyright ( C ) 2004 ARM Limited .
* Written by Deep Blue Solutions Limited .
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation .
*/
# include <linux/module.h>
# include <linux/kernel.h>
# include <linux/errno.h>
2006-01-07 16:15:52 +00:00
# include <linux/clk.h>
2006-01-12 18:42:23 +00:00
# include <linux/mutex.h>
2005-04-16 15:20:36 -07:00
2010-01-16 20:16:10 +00:00
# include <asm/hardware/icst.h>
2010-01-14 12:48:06 +00:00
2008-11-08 20:08:08 +00:00
# include <mach/clkdev.h>
2005-04-16 15:20:36 -07:00
int clk_enable ( struct clk * clk )
{
return 0 ;
}
EXPORT_SYMBOL ( clk_enable ) ;
void clk_disable ( struct clk * clk )
{
}
EXPORT_SYMBOL ( clk_disable ) ;
unsigned long clk_get_rate ( struct clk * clk )
{
return clk - > rate ;
}
EXPORT_SYMBOL ( clk_get_rate ) ;
long clk_round_rate ( struct clk * clk , unsigned long rate )
{
2010-03-01 16:18:39 +00:00
long ret = - EIO ;
if ( clk - > ops & & clk - > ops - > round )
ret = clk - > ops - > round ( clk , rate ) ;
return ret ;
2005-04-16 15:20:36 -07:00
}
EXPORT_SYMBOL ( clk_round_rate ) ;
int clk_set_rate ( struct clk * clk , unsigned long rate )
{
int ret = - EIO ;
2010-03-01 16:18:39 +00:00
if ( clk - > ops & & clk - > ops - > set )
ret = clk - > ops - > set ( clk , rate ) ;
2008-11-08 20:08:08 +00:00
return ret ;
2005-04-16 15:20:36 -07:00
}
EXPORT_SYMBOL ( clk_set_rate ) ;
2010-03-01 16:18:39 +00:00
long icst_clk_round ( struct clk * clk , unsigned long rate )
{
struct icst_vco vco ;
vco = icst_hz_to_vco ( clk - > params , rate ) ;
return icst_hz ( clk - > params , vco ) ;
}
EXPORT_SYMBOL ( icst_clk_round ) ;
int icst_clk_set ( struct clk * clk , unsigned long rate )
{
struct icst_vco vco ;
vco = icst_hz_to_vco ( clk - > params , rate ) ;
clk - > rate = icst_hz ( clk - > params , vco ) ;
clk - > ops - > setvco ( clk , vco ) ;
return 0 ;
}
EXPORT_SYMBOL ( icst_clk_set ) ;