Lines Matching full:rate
39 struct samsung_clk_pll *pll, unsigned long rate) in samsung_get_pll_settings() argument
45 if (rate == rate_table[i].rate) in samsung_get_pll_settings()
61 if (drate >= rate_table[i].rate) in samsung_pll_round_rate()
62 return rate_table[i].rate; in samsung_pll_round_rate()
66 return rate_table[i - 1].rate; in samsung_pll_round_rate()
238 const struct samsung_pll_rate_table *rate, u32 pll_con) in samsung_pll35xx_mp_change() argument
245 return (rate->mdiv != old_mdiv || rate->pdiv != old_pdiv); in samsung_pll35xx_mp_change()
252 const struct samsung_pll_rate_table *rate; in samsung_pll35xx_set_rate() local
255 /* Get required rate settings from table */ in samsung_pll35xx_set_rate()
256 rate = samsung_get_pll_settings(pll, drate); in samsung_pll35xx_set_rate()
257 if (!rate) { in samsung_pll35xx_set_rate()
258 pr_err("%s: Invalid rate : %lu for pll clk %s\n", __func__, in samsung_pll35xx_set_rate()
265 if (!(samsung_pll35xx_mp_change(rate, tmp))) { in samsung_pll35xx_set_rate()
268 tmp |= rate->sdiv << PLL35XX_SDIV_SHIFT; in samsung_pll35xx_set_rate()
275 writel_relaxed(rate->pdiv * PLL35XX_LOCK_FACTOR, in samsung_pll35xx_set_rate()
282 tmp |= (rate->mdiv << PLL35XX_MDIV_SHIFT) | in samsung_pll35xx_set_rate()
283 (rate->pdiv << PLL35XX_PDIV_SHIFT) | in samsung_pll35xx_set_rate()
284 (rate->sdiv << PLL35XX_SDIV_SHIFT); in samsung_pll35xx_set_rate()
346 const struct samsung_pll_rate_table *rate, u32 pll_con0, u32 pll_con1) in samsung_pll36xx_mpk_change() argument
354 return (rate->mdiv != old_mdiv || rate->pdiv != old_pdiv || in samsung_pll36xx_mpk_change()
355 rate->kdiv != old_kdiv); in samsung_pll36xx_mpk_change()
363 const struct samsung_pll_rate_table *rate; in samsung_pll36xx_set_rate() local
365 rate = samsung_get_pll_settings(pll, drate); in samsung_pll36xx_set_rate()
366 if (!rate) { in samsung_pll36xx_set_rate()
367 pr_err("%s: Invalid rate : %lu for pll clk %s\n", __func__, in samsung_pll36xx_set_rate()
375 if (!(samsung_pll36xx_mpk_change(rate, pll_con0, pll_con1))) { in samsung_pll36xx_set_rate()
378 pll_con0 |= (rate->sdiv << PLL36XX_SDIV_SHIFT); in samsung_pll36xx_set_rate()
385 writel_relaxed(rate->pdiv * PLL36XX_LOCK_FACTOR, pll->lock_reg); in samsung_pll36xx_set_rate()
391 pll_con0 |= (rate->mdiv << PLL36XX_MDIV_SHIFT) | in samsung_pll36xx_set_rate()
392 (rate->pdiv << PLL36XX_PDIV_SHIFT) | in samsung_pll36xx_set_rate()
393 (rate->sdiv << PLL36XX_SDIV_SHIFT); in samsung_pll36xx_set_rate()
397 pll_con1 |= rate->kdiv << PLL36XX_KDIV_SHIFT; in samsung_pll36xx_set_rate()
458 const struct samsung_pll_rate_table *rate) in samsung_pll45xx_mp_change() argument
466 return (old_mdiv != rate->mdiv || old_pdiv != rate->pdiv in samsung_pll45xx_mp_change()
467 || old_afc != rate->afc); in samsung_pll45xx_mp_change()
474 const struct samsung_pll_rate_table *rate; in samsung_pll45xx_set_rate() local
477 /* Get required rate settings from table */ in samsung_pll45xx_set_rate()
478 rate = samsung_get_pll_settings(pll, drate); in samsung_pll45xx_set_rate()
479 if (!rate) { in samsung_pll45xx_set_rate()
480 pr_err("%s: Invalid rate : %lu for pll clk %s\n", __func__, in samsung_pll45xx_set_rate()
488 if (!(samsung_pll45xx_mp_change(con0, con1, rate))) { in samsung_pll45xx_set_rate()
491 con0 |= rate->sdiv << PLL45XX_SDIV_SHIFT; in samsung_pll45xx_set_rate()
501 con0 |= (rate->mdiv << PLL45XX_MDIV_SHIFT) | in samsung_pll45xx_set_rate()
502 (rate->pdiv << PLL45XX_PDIV_SHIFT) | in samsung_pll45xx_set_rate()
503 (rate->sdiv << PLL45XX_SDIV_SHIFT); in samsung_pll45xx_set_rate()
508 con1 |= (rate->afc << PLL45XX_AFC_SHIFT); in samsung_pll45xx_set_rate()
513 writel_relaxed(rate->pdiv * PLL4502_LOCK_FACTOR, pll->lock_reg); in samsung_pll45xx_set_rate()
516 writel_relaxed(rate->pdiv * PLL4508_LOCK_FACTOR, pll->lock_reg); in samsung_pll45xx_set_rate()
595 const struct samsung_pll_rate_table *rate) in samsung_pll46xx_mpk_change() argument
603 return (old_mdiv != rate->mdiv || old_pdiv != rate->pdiv in samsung_pll46xx_mpk_change()
604 || old_kdiv != rate->kdiv); in samsung_pll46xx_mpk_change()
611 const struct samsung_pll_rate_table *rate; in samsung_pll46xx_set_rate() local
614 /* Get required rate settings from table */ in samsung_pll46xx_set_rate()
615 rate = samsung_get_pll_settings(pll, drate); in samsung_pll46xx_set_rate()
616 if (!rate) { in samsung_pll46xx_set_rate()
617 pr_err("%s: Invalid rate : %lu for pll clk %s\n", __func__, in samsung_pll46xx_set_rate()
625 if (!(samsung_pll46xx_mpk_change(con0, con1, rate))) { in samsung_pll46xx_set_rate()
628 con0 |= rate->sdiv << PLL46XX_SDIV_SHIFT; in samsung_pll46xx_set_rate()
635 lock = rate->pdiv * PLL46XX_LOCK_FACTOR; in samsung_pll46xx_set_rate()
650 con0 |= rate->vsel << PLL46XX_VSEL_SHIFT; in samsung_pll46xx_set_rate()
653 con0 |= (rate->mdiv << PLL46XX_MDIV_SHIFT) | in samsung_pll46xx_set_rate()
654 (rate->pdiv << PLL46XX_PDIV_SHIFT) | in samsung_pll46xx_set_rate()
655 (rate->sdiv << PLL46XX_SDIV_SHIFT); in samsung_pll46xx_set_rate()
662 con1 |= (rate->kdiv << PLL46XX_KDIV_SHIFT) | in samsung_pll46xx_set_rate()
663 (rate->mfr << PLL46XX_MFR_SHIFT) | in samsung_pll46xx_set_rate()
664 (rate->mrr << PLL46XX_MRR_SHIFT); in samsung_pll46xx_set_rate()
816 const struct samsung_pll_rate_table *rate; in samsung_s3c2410_pll_set_rate() local
819 /* Get required rate settings from table */ in samsung_s3c2410_pll_set_rate()
820 rate = samsung_get_pll_settings(pll, drate); in samsung_s3c2410_pll_set_rate()
821 if (!rate) { in samsung_s3c2410_pll_set_rate()
822 pr_err("%s: Invalid rate : %lu for pll clk %s\n", __func__, in samsung_s3c2410_pll_set_rate()
833 tmp |= (rate->mdiv << PLLS3C2410_MDIV_SHIFT) | in samsung_s3c2410_pll_set_rate()
834 (rate->pdiv << PLLS3C2410_PDIV_SHIFT) | in samsung_s3c2410_pll_set_rate()
835 (rate->sdiv << PLLS3C2410_SDIV_SHIFT); in samsung_s3c2410_pll_set_rate()
1012 const struct samsung_pll_rate_table *rate; in samsung_pll2550xx_set_rate() local
1015 /* Get required rate settings from table */ in samsung_pll2550xx_set_rate()
1016 rate = samsung_get_pll_settings(pll, drate); in samsung_pll2550xx_set_rate()
1017 if (!rate) { in samsung_pll2550xx_set_rate()
1018 pr_err("%s: Invalid rate : %lu for pll clk %s\n", __func__, in samsung_pll2550xx_set_rate()
1025 if (!(samsung_pll2550xx_mp_change(rate->mdiv, rate->pdiv, tmp))) { in samsung_pll2550xx_set_rate()
1028 tmp |= rate->sdiv << PLL2550XX_S_SHIFT; in samsung_pll2550xx_set_rate()
1035 writel_relaxed(rate->pdiv * PLL2550XX_LOCK_FACTOR, pll->lock_reg); in samsung_pll2550xx_set_rate()
1041 tmp |= (rate->mdiv << PLL2550XX_M_SHIFT) | in samsung_pll2550xx_set_rate()
1042 (rate->pdiv << PLL2550XX_P_SHIFT) | in samsung_pll2550xx_set_rate()
1043 (rate->sdiv << PLL2550XX_S_SHIFT); in samsung_pll2550xx_set_rate()
1107 const struct samsung_pll_rate_table *rate; in samsung_pll2650x_set_rate() local
1110 /* Get required rate settings from table */ in samsung_pll2650x_set_rate()
1111 rate = samsung_get_pll_settings(pll, drate); in samsung_pll2650x_set_rate()
1112 if (!rate) { in samsung_pll2650x_set_rate()
1113 pr_err("%s: Invalid rate : %lu for pll clk %s\n", __func__, in samsung_pll2650x_set_rate()
1122 writel_relaxed(rate->pdiv * PLL2650X_LOCK_FACTOR, pll->lock_reg); in samsung_pll2650x_set_rate()
1128 con0 |= (rate->mdiv << PLL2650X_M_SHIFT) | in samsung_pll2650x_set_rate()
1129 (rate->pdiv << PLL2650X_P_SHIFT) | in samsung_pll2650x_set_rate()
1130 (rate->sdiv << PLL2650X_S_SHIFT); in samsung_pll2650x_set_rate()
1135 con1 |= ((rate->kdiv & PLL2650X_K_MASK) << PLL2650X_K_SHIFT); in samsung_pll2650x_set_rate()
1199 const struct samsung_pll_rate_table *rate; in samsung_pll2650xx_set_rate() local
1201 rate = samsung_get_pll_settings(pll, drate); in samsung_pll2650xx_set_rate()
1202 if (!rate) { in samsung_pll2650xx_set_rate()
1203 pr_err("%s: Invalid rate : %lu for pll clk %s\n", __func__, in samsung_pll2650xx_set_rate()
1215 pll_con0 |= rate->mdiv << PLL2650XX_MDIV_SHIFT; in samsung_pll2650xx_set_rate()
1216 pll_con0 |= rate->pdiv << PLL2650XX_PDIV_SHIFT; in samsung_pll2650xx_set_rate()
1217 pll_con0 |= rate->sdiv << PLL2650XX_SDIV_SHIFT; in samsung_pll2650xx_set_rate()
1222 pll_con2 |= ((~(rate->kdiv) + 1) & PLL2650XX_KDIV_MASK) in samsung_pll2650xx_set_rate()
1226 writel_relaxed(PLL2650XX_LOCK_FACTOR * rate->pdiv, pll->lock_reg); in samsung_pll2650xx_set_rate()
1266 for (len = 0; pll_clk->rate_table[len].rate != 0; ) in _samsung_clk_register_pll()
1275 "%s: could not allocate rate table for %s\n", in _samsung_clk_register_pll()