2013-03-09 17:02:48 +09:00
/*
* Copyright ( c ) 2013 Samsung Electronics Co . , Ltd .
* Copyright ( c ) 2013 Linaro Ltd .
*
* 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 .
*
* Common Clock Framework support for all PLL ' s in Samsung platforms
*/
# ifndef __SAMSUNG_CLK_PLL_H
# define __SAMSUNG_CLK_PLL_H
2013-06-11 15:01:07 +05:30
enum samsung_pll_type {
2014-02-19 09:25:41 +09:00
pll_2126 ,
pll_3000 ,
2013-06-11 15:01:07 +05:30
pll_35xx ,
pll_36xx ,
pll_2550 ,
pll_2650 ,
2013-08-26 19:09:04 +02:00
pll_4500 ,
pll_4502 ,
pll_4508 ,
2013-08-26 19:09:06 +02:00
pll_4600 ,
pll_4650 ,
pll_4650c ,
2013-08-21 02:33:21 +02:00
pll_6552 ,
2014-02-19 09:25:36 +09:00
pll_6552_s3c2416 ,
2013-08-21 02:33:21 +02:00
pll_6553 ,
2014-02-25 09:50:43 +09:00
pll_s3c2410_mpll ,
pll_s3c2410_upll ,
pll_s3c2440_mpll ,
2016-08-18 17:01:20 +02:00
pll_2550x ,
2014-03-12 20:26:45 +05:30
pll_2550xx ,
2016-09-09 10:09:05 +02:00
pll_2650x ,
2014-03-12 20:26:46 +05:30
pll_2650xx ,
2014-09-22 10:17:01 +05:30
pll_1450x ,
pll_1451x ,
pll_1452x ,
pll_1460x ,
2013-06-11 15:01:07 +05:30
} ;
2013-06-11 15:01:12 +05:30
# define PLL_35XX_RATE(_rate, _m, _p, _s) \
{ \
. rate = ( _rate ) , \
. mdiv = ( _m ) , \
. pdiv = ( _p ) , \
. sdiv = ( _s ) , \
}
# define PLL_36XX_RATE(_rate, _m, _p, _s, _k) \
{ \
. rate = ( _rate ) , \
. mdiv = ( _m ) , \
. pdiv = ( _p ) , \
. sdiv = ( _s ) , \
. kdiv = ( _k ) , \
}
2013-08-26 19:09:05 +02:00
# define PLL_45XX_RATE(_rate, _m, _p, _s, _afc) \
{ \
. rate = ( _rate ) , \
. mdiv = ( _m ) , \
. pdiv = ( _p ) , \
. sdiv = ( _s ) , \
. afc = ( _afc ) , \
}
2013-08-26 19:09:07 +02:00
# define PLL_4600_RATE(_rate, _m, _p, _s, _k, _vsel) \
{ \
. rate = ( _rate ) , \
. mdiv = ( _m ) , \
. pdiv = ( _p ) , \
. sdiv = ( _s ) , \
. kdiv = ( _k ) , \
. vsel = ( _vsel ) , \
}
# define PLL_4650_RATE(_rate, _m, _p, _s, _k, _mfr, _mrr, _vsel) \
{ \
. rate = ( _rate ) , \
. mdiv = ( _m ) , \
. pdiv = ( _p ) , \
. sdiv = ( _s ) , \
. kdiv = ( _k ) , \
. mfr = ( _mfr ) , \
. mrr = ( _mrr ) , \
. vsel = ( _vsel ) , \
}
2013-06-11 15:01:12 +05:30
/* NOTE: Rate table should be kept sorted in descending order. */
struct samsung_pll_rate_table {
unsigned int rate ;
unsigned int pdiv ;
unsigned int mdiv ;
unsigned int sdiv ;
unsigned int kdiv ;
2013-08-26 19:09:05 +02:00
unsigned int afc ;
2013-08-26 19:09:07 +02:00
unsigned int mfr ;
unsigned int mrr ;
unsigned int vsel ;
2013-06-11 15:01:12 +05:30
} ;
2013-03-09 17:02:48 +09:00
# endif /* __SAMSUNG_CLK_PLL_H */