Lines Matching refs:pll
34 struct samsung_clk_pll *pll, unsigned long rate) in samsung_get_pll_settings() argument
36 const struct samsung_pll_rate_table *rate_table = pll->rate_table; in samsung_get_pll_settings()
39 for (i = 0; i < pll->rate_count; i++) { in samsung_get_pll_settings()
50 struct samsung_clk_pll *pll = to_clk_pll(hw); in samsung_pll_round_rate() local
51 const struct samsung_pll_rate_table *rate_table = pll->rate_table; in samsung_pll_round_rate()
55 for (i = 0; i < pll->rate_count; i++) { in samsung_pll_round_rate()
78 struct samsung_clk_pll *pll = to_clk_pll(hw); in samsung_pll2126_recalc_rate() local
82 pll_con = __raw_readl(pll->con_reg); in samsung_pll2126_recalc_rate()
111 struct samsung_clk_pll *pll = to_clk_pll(hw); in samsung_pll3000_recalc_rate() local
115 pll_con = __raw_readl(pll->con_reg); in samsung_pll3000_recalc_rate()
148 struct samsung_clk_pll *pll = to_clk_pll(hw); in samsung_pll35xx_recalc_rate() local
152 pll_con = __raw_readl(pll->con_reg); in samsung_pll35xx_recalc_rate()
177 struct samsung_clk_pll *pll = to_clk_pll(hw); in samsung_pll35xx_set_rate() local
182 rate = samsung_get_pll_settings(pll, drate); in samsung_pll35xx_set_rate()
189 tmp = __raw_readl(pll->con_reg); in samsung_pll35xx_set_rate()
195 __raw_writel(tmp, pll->con_reg); in samsung_pll35xx_set_rate()
202 pll->lock_reg); in samsung_pll35xx_set_rate()
211 __raw_writel(tmp, pll->con_reg); in samsung_pll35xx_set_rate()
216 tmp = __raw_readl(pll->con_reg); in samsung_pll35xx_set_rate()
251 struct samsung_clk_pll *pll = to_clk_pll(hw); in samsung_pll36xx_recalc_rate() local
256 pll_con0 = __raw_readl(pll->con_reg); in samsung_pll36xx_recalc_rate()
257 pll_con1 = __raw_readl(pll->con_reg + 4); in samsung_pll36xx_recalc_rate()
286 struct samsung_clk_pll *pll = to_clk_pll(hw); in samsung_pll36xx_set_rate() local
290 rate = samsung_get_pll_settings(pll, drate); in samsung_pll36xx_set_rate()
297 pll_con0 = __raw_readl(pll->con_reg); in samsung_pll36xx_set_rate()
298 pll_con1 = __raw_readl(pll->con_reg + 4); in samsung_pll36xx_set_rate()
304 __raw_writel(pll_con0, pll->con_reg); in samsung_pll36xx_set_rate()
310 __raw_writel(rate->pdiv * PLL36XX_LOCK_FACTOR, pll->lock_reg); in samsung_pll36xx_set_rate()
319 __raw_writel(pll_con0, pll->con_reg); in samsung_pll36xx_set_rate()
323 __raw_writel(pll_con1, pll->con_reg + 4); in samsung_pll36xx_set_rate()
328 tmp = __raw_readl(pll->con_reg); in samsung_pll36xx_set_rate()
365 struct samsung_clk_pll *pll = to_clk_pll(hw); in samsung_pll45xx_recalc_rate() local
369 pll_con = __raw_readl(pll->con_reg); in samsung_pll45xx_recalc_rate()
374 if (pll->type == pll_4508) in samsung_pll45xx_recalc_rate()
399 struct samsung_clk_pll *pll = to_clk_pll(hw); in samsung_pll45xx_set_rate() local
405 rate = samsung_get_pll_settings(pll, drate); in samsung_pll45xx_set_rate()
412 con0 = __raw_readl(pll->con_reg); in samsung_pll45xx_set_rate()
413 con1 = __raw_readl(pll->con_reg + 0x4); in samsung_pll45xx_set_rate()
419 __raw_writel(con0, pll->con_reg); in samsung_pll45xx_set_rate()
433 con1 = __raw_readl(pll->con_reg + 0x4); in samsung_pll45xx_set_rate()
438 switch (pll->type) { in samsung_pll45xx_set_rate()
440 __raw_writel(rate->pdiv * PLL4502_LOCK_FACTOR, pll->lock_reg); in samsung_pll45xx_set_rate()
443 __raw_writel(rate->pdiv * PLL4508_LOCK_FACTOR, pll->lock_reg); in samsung_pll45xx_set_rate()
450 __raw_writel(con1, pll->con_reg + 0x4); in samsung_pll45xx_set_rate()
451 __raw_writel(con0, pll->con_reg); in samsung_pll45xx_set_rate()
455 while (!(__raw_readl(pll->con_reg) & PLL45XX_LOCKED)) { in samsung_pll45xx_set_rate()
512 struct samsung_clk_pll *pll = to_clk_pll(hw); in samsung_pll46xx_recalc_rate() local
516 pll_con0 = __raw_readl(pll->con_reg); in samsung_pll46xx_recalc_rate()
517 pll_con1 = __raw_readl(pll->con_reg + 4); in samsung_pll46xx_recalc_rate()
518 mdiv = (pll_con0 >> PLL46XX_MDIV_SHIFT) & ((pll->type == pll_1460x) ? in samsung_pll46xx_recalc_rate()
522 kdiv = pll->type == pll_4650c ? pll_con1 & PLL4650C_KDIV_MASK : in samsung_pll46xx_recalc_rate()
525 shift = ((pll->type == pll_4600) || (pll->type == pll_1460x)) ? 16 : 10; in samsung_pll46xx_recalc_rate()
550 struct samsung_clk_pll *pll = to_clk_pll(hw); in samsung_pll46xx_set_rate() local
556 rate = samsung_get_pll_settings(pll, drate); in samsung_pll46xx_set_rate()
563 con0 = __raw_readl(pll->con_reg); in samsung_pll46xx_set_rate()
564 con1 = __raw_readl(pll->con_reg + 0x4); in samsung_pll46xx_set_rate()
570 __raw_writel(con0, pll->con_reg); in samsung_pll46xx_set_rate()
582 if (pll->type == pll_1460x) { in samsung_pll46xx_set_rate()
599 con1 = __raw_readl(pll->con_reg + 0x4); in samsung_pll46xx_set_rate()
608 __raw_writel(lock, pll->lock_reg); in samsung_pll46xx_set_rate()
609 __raw_writel(con0, pll->con_reg); in samsung_pll46xx_set_rate()
610 __raw_writel(con1, pll->con_reg + 0x4); in samsung_pll46xx_set_rate()
614 while (!(__raw_readl(pll->con_reg) & PLL46XX_LOCKED)) { in samsung_pll46xx_set_rate()
655 struct samsung_clk_pll *pll = to_clk_pll(hw); in samsung_pll6552_recalc_rate() local
659 pll_con = __raw_readl(pll->con_reg); in samsung_pll6552_recalc_rate()
660 if (pll->type == pll_6552_s3c2416) { in samsung_pll6552_recalc_rate()
695 struct samsung_clk_pll *pll = to_clk_pll(hw); in samsung_pll6553_recalc_rate() local
699 pll_con0 = __raw_readl(pll->con_reg); in samsung_pll6553_recalc_rate()
700 pll_con1 = __raw_readl(pll->con_reg + 0x4); in samsung_pll6553_recalc_rate()
733 struct samsung_clk_pll *pll = to_clk_pll(hw); in samsung_s3c2410_pll_recalc_rate() local
737 pll_con = __raw_readl(pll->con_reg); in samsung_s3c2410_pll_recalc_rate()
751 struct samsung_clk_pll *pll = to_clk_pll(hw); in samsung_s3c2440_mpll_recalc_rate() local
755 pll_con = __raw_readl(pll->con_reg); in samsung_s3c2440_mpll_recalc_rate()
769 struct samsung_clk_pll *pll = to_clk_pll(hw); in samsung_s3c2410_pll_set_rate() local
774 rate = samsung_get_pll_settings(pll, drate); in samsung_s3c2410_pll_set_rate()
781 tmp = __raw_readl(pll->con_reg); in samsung_s3c2410_pll_set_rate()
790 __raw_writel(tmp, pll->con_reg); in samsung_s3c2410_pll_set_rate()
800 struct samsung_clk_pll *pll = to_clk_pll(hw); in samsung_s3c2410_pll_enable() local
801 u32 pll_en = __raw_readl(pll->lock_reg + PLLS3C2410_ENABLE_REG_OFFSET); in samsung_s3c2410_pll_enable()
809 __raw_writel(pll_en, pll->lock_reg + PLLS3C2410_ENABLE_REG_OFFSET); in samsung_s3c2410_pll_enable()
904 struct samsung_clk_pll2550x *pll = to_clk_pll2550x(hw); in samsung_pll2550x_recalc_rate() local
908 pll_stat = __raw_readl(pll->reg_base + pll->offset * 3); in samsung_pll2550x_recalc_rate()
930 struct samsung_clk_pll2550x *pll; in samsung_clk_register_pll2550x() local
934 pll = kzalloc(sizeof(*pll), GFP_KERNEL); in samsung_clk_register_pll2550x()
935 if (!pll) { in samsung_clk_register_pll2550x()
946 pll->hw.init = &init; in samsung_clk_register_pll2550x()
947 pll->reg_base = reg_base; in samsung_clk_register_pll2550x()
948 pll->offset = offset; in samsung_clk_register_pll2550x()
950 clk = clk_register(NULL, &pll->hw); in samsung_clk_register_pll2550x()
954 kfree(pll); in samsung_clk_register_pll2550x()
982 struct samsung_clk_pll *pll = to_clk_pll(hw); in samsung_pll2550xx_recalc_rate() local
986 pll_con = __raw_readl(pll->con_reg); in samsung_pll2550xx_recalc_rate()
1010 struct samsung_clk_pll *pll = to_clk_pll(hw); in samsung_pll2550xx_set_rate() local
1015 rate = samsung_get_pll_settings(pll, drate); in samsung_pll2550xx_set_rate()
1022 tmp = __raw_readl(pll->con_reg); in samsung_pll2550xx_set_rate()
1028 __raw_writel(tmp, pll->con_reg); in samsung_pll2550xx_set_rate()
1034 __raw_writel(rate->pdiv * PLL2550XX_LOCK_FACTOR, pll->lock_reg); in samsung_pll2550xx_set_rate()
1043 __raw_writel(tmp, pll->con_reg); in samsung_pll2550xx_set_rate()
1048 tmp = __raw_readl(pll->con_reg); in samsung_pll2550xx_set_rate()
1087 struct samsung_clk_pll *pll = to_clk_pll(hw); in samsung_pll2650xx_recalc_rate() local
1092 pll_con0 = __raw_readl(pll->con_reg); in samsung_pll2650xx_recalc_rate()
1093 pll_con2 = __raw_readl(pll->con_reg + 8); in samsung_pll2650xx_recalc_rate()
1109 struct samsung_clk_pll *pll = to_clk_pll(hw); in samsung_pll2650xx_set_rate() local
1113 rate = samsung_get_pll_settings(pll, drate); in samsung_pll2650xx_set_rate()
1120 pll_con0 = __raw_readl(pll->con_reg); in samsung_pll2650xx_set_rate()
1121 pll_con2 = __raw_readl(pll->con_reg + 8); in samsung_pll2650xx_set_rate()
1138 __raw_writel(PLL2650XX_LOCK_FACTOR * rate->pdiv, pll->lock_reg); in samsung_pll2650xx_set_rate()
1140 __raw_writel(pll_con0, pll->con_reg); in samsung_pll2650xx_set_rate()
1141 __raw_writel(pll_con2, pll->con_reg + 8); in samsung_pll2650xx_set_rate()
1144 tmp = __raw_readl(pll->con_reg); in samsung_pll2650xx_set_rate()
1164 struct samsung_clk_pll *pll; in _samsung_clk_register_pll() local
1169 pll = kzalloc(sizeof(*pll), GFP_KERNEL); in _samsung_clk_register_pll()
1170 if (!pll) { in _samsung_clk_register_pll()
1186 pll->rate_count = len; in _samsung_clk_register_pll()
1187 pll->rate_table = kmemdup(pll_clk->rate_table, in _samsung_clk_register_pll()
1188 pll->rate_count * in _samsung_clk_register_pll()
1191 WARN(!pll->rate_table, in _samsung_clk_register_pll()
1209 if (!pll->rate_table) in _samsung_clk_register_pll()
1219 if (!pll->rate_table) in _samsung_clk_register_pll()
1227 if (!pll->rate_table) in _samsung_clk_register_pll()
1243 if (!pll->rate_table) in _samsung_clk_register_pll()
1249 if (!pll->rate_table) in _samsung_clk_register_pll()
1255 if (!pll->rate_table) in _samsung_clk_register_pll()
1261 if (!pll->rate_table) in _samsung_clk_register_pll()
1267 if (!pll->rate_table) in _samsung_clk_register_pll()
1273 if (!pll->rate_table) in _samsung_clk_register_pll()
1283 pll->hw.init = &init; in _samsung_clk_register_pll()
1284 pll->type = pll_clk->type; in _samsung_clk_register_pll()
1285 pll->lock_reg = base + pll_clk->lock_offset; in _samsung_clk_register_pll()
1286 pll->con_reg = base + pll_clk->con_offset; in _samsung_clk_register_pll()
1288 clk = clk_register(NULL, &pll->hw); in _samsung_clk_register_pll()
1292 kfree(pll); in _samsung_clk_register_pll()