2008-11-08 23:25:21 +03:00
# include <asm/clkdev.h>
2007-08-20 13:18:02 +04:00
struct clkops {
void ( * enable ) ( struct clk * ) ;
void ( * disable ) ( struct clk * ) ;
unsigned long ( * getrate ) ( struct clk * ) ;
} ;
struct clk {
const struct clkops * ops ;
unsigned long rate ;
unsigned int cken ;
unsigned int delay ;
unsigned int enabled ;
} ;
2008-11-08 23:25:21 +03:00
# define INIT_CLKREG(_clk,_devname,_conname) \
2007-08-20 13:18:02 +04:00
{ \
2008-11-08 23:25:21 +03:00
. clk = _clk , \
. dev_id = _devname , \
. con_id = _conname , \
}
# define DEFINE_CKEN(_name, _cken, _rate, _delay) \
struct clk clk_ # # _name = { \
2007-08-20 13:18:02 +04:00
. ops = & clk_cken_ops , \
. rate = _rate , \
. cken = CKEN_ # # _cken , \
. delay = _delay , \
}
2008-11-08 23:25:21 +03:00
# define DEFINE_CK(_name, _cken, _ops) \
struct clk clk_ # # _name = { \
2007-08-20 13:18:02 +04:00
. ops = _ops , \
. cken = CKEN_ # # _cken , \
}
2008-11-08 23:25:21 +03:00
# define DEFINE_CLK(_name, _ops, _rate, _delay) \
struct clk clk_ # # _name = { \
. ops = _ops , \
. rate = _rate , \
2008-07-08 13:32:08 +04:00
. delay = _delay , \
}
2007-08-20 13:18:02 +04:00
extern const struct clkops clk_cken_ops ;
void clk_cken_enable ( struct clk * clk ) ;
void clk_cken_disable ( struct clk * clk ) ;
2008-02-19 06:13:31 +03:00
# ifdef CONFIG_PXA3xx
2008-11-08 23:25:21 +03:00
# define DEFINE_PXA3_CKEN(_name, _cken, _rate, _delay) \
struct clk clk_ # # _name = { \
2008-02-19 06:13:31 +03:00
. ops = & clk_pxa3xx_cken_ops , \
. rate = _rate , \
. cken = CKEN_ # # _cken , \
. delay = _delay , \
}
2008-11-08 23:25:21 +03:00
# define DEFINE_PXA3_CK(_name, _cken, _ops) \
struct clk clk_ # # _name = { \
2008-02-19 06:13:31 +03:00
. ops = _ops , \
. cken = CKEN_ # # _cken , \
}
extern const struct clkops clk_pxa3xx_cken_ops ;
extern void clk_pxa3xx_cken_enable ( struct clk * ) ;
extern void clk_pxa3xx_cken_disable ( struct clk * ) ;
# endif
2008-11-08 23:25:21 +03:00
void clks_register ( struct clk_lookup * clks , size_t num ) ;
2009-03-05 18:17:53 +03:00
int clk_add_alias ( const char * alias , const char * alias_name , char * id ,
2008-07-25 15:02:31 +04:00
struct device * dev ) ;