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()
239 const struct samsung_pll_rate_table *rate, u32 pll_con) in samsung_pll35xx_mp_change() argument
246 return (rate->mdiv != old_mdiv || rate->pdiv != old_pdiv); in samsung_pll35xx_mp_change()
253 const struct samsung_pll_rate_table *rate; in samsung_pll35xx_set_rate() local
256 /* Get required rate settings from table */ in samsung_pll35xx_set_rate()
257 rate = samsung_get_pll_settings(pll, drate); in samsung_pll35xx_set_rate()
258 if (!rate) { in samsung_pll35xx_set_rate()
259 pr_err("%s: Invalid rate : %lu for pll clk %s\n", __func__, in samsung_pll35xx_set_rate()
266 if (!(samsung_pll35xx_mp_change(rate, tmp))) { in samsung_pll35xx_set_rate()
269 tmp |= rate->sdiv << PLL35XX_SDIV_SHIFT; in samsung_pll35xx_set_rate()
277 writel_relaxed(rate->pdiv * PLL142XX_LOCK_FACTOR, in samsung_pll35xx_set_rate()
280 writel_relaxed(rate->pdiv * PLL35XX_LOCK_FACTOR, in samsung_pll35xx_set_rate()
287 tmp |= (rate->mdiv << PLL35XX_MDIV_SHIFT) | in samsung_pll35xx_set_rate()
288 (rate->pdiv << PLL35XX_PDIV_SHIFT) | in samsung_pll35xx_set_rate()
289 (rate->sdiv << PLL35XX_SDIV_SHIFT); in samsung_pll35xx_set_rate()
351 const struct samsung_pll_rate_table *rate, u32 pll_con0, u32 pll_con1) in samsung_pll36xx_mpk_change() argument
359 return (rate->mdiv != old_mdiv || rate->pdiv != old_pdiv || in samsung_pll36xx_mpk_change()
360 rate->kdiv != old_kdiv); in samsung_pll36xx_mpk_change()
368 const struct samsung_pll_rate_table *rate; in samsung_pll36xx_set_rate() local
370 rate = samsung_get_pll_settings(pll, drate); in samsung_pll36xx_set_rate()
371 if (!rate) { in samsung_pll36xx_set_rate()
372 pr_err("%s: Invalid rate : %lu for pll clk %s\n", __func__, in samsung_pll36xx_set_rate()
380 if (!(samsung_pll36xx_mpk_change(rate, pll_con0, pll_con1))) { in samsung_pll36xx_set_rate()
383 pll_con0 |= (rate->sdiv << PLL36XX_SDIV_SHIFT); in samsung_pll36xx_set_rate()
390 writel_relaxed(rate->pdiv * PLL36XX_LOCK_FACTOR, pll->lock_reg); in samsung_pll36xx_set_rate()
396 pll_con0 |= (rate->mdiv << PLL36XX_MDIV_SHIFT) | in samsung_pll36xx_set_rate()
397 (rate->pdiv << PLL36XX_PDIV_SHIFT) | in samsung_pll36xx_set_rate()
398 (rate->sdiv << PLL36XX_SDIV_SHIFT); in samsung_pll36xx_set_rate()
402 pll_con1 |= rate->kdiv << PLL36XX_KDIV_SHIFT; in samsung_pll36xx_set_rate()
475 const struct samsung_pll_rate_table *rate; in samsung_pll0822x_set_rate() local
484 /* Get required rate settings from table */ in samsung_pll0822x_set_rate()
485 rate = samsung_get_pll_settings(pll, drate); in samsung_pll0822x_set_rate()
486 if (!rate) { in samsung_pll0822x_set_rate()
487 pr_err("%s: Invalid rate : %lu for pll clk %s\n", __func__, in samsung_pll0822x_set_rate()
497 pll_con3 |= (rate->mdiv << PLL0822X_MDIV_SHIFT) | in samsung_pll0822x_set_rate()
498 (rate->pdiv << PLL0822X_PDIV_SHIFT) | in samsung_pll0822x_set_rate()
499 (rate->sdiv << PLL0822X_SDIV_SHIFT); in samsung_pll0822x_set_rate()
502 writel_relaxed(rate->pdiv * PLL0822X_LOCK_FACTOR, in samsung_pll0822x_set_rate()
569 const struct samsung_pll_rate_table *rate; in samsung_pll0831x_set_rate() local
573 /* Get required rate settings from table */ in samsung_pll0831x_set_rate()
574 rate = samsung_get_pll_settings(pll, drate); in samsung_pll0831x_set_rate()
575 if (!rate) { in samsung_pll0831x_set_rate()
576 pr_err("%s: Invalid rate : %lu for pll clk %s\n", __func__, in samsung_pll0831x_set_rate()
588 pll_con3 |= (rate->mdiv << PLL0831X_MDIV_SHIFT) | in samsung_pll0831x_set_rate()
589 (rate->pdiv << PLL0831X_PDIV_SHIFT) | in samsung_pll0831x_set_rate()
590 (rate->sdiv << PLL0831X_SDIV_SHIFT); in samsung_pll0831x_set_rate()
596 pll_con5 |= ((u16)rate->kdiv << PLL0831X_KDIV_SHIFT); in samsung_pll0831x_set_rate()
599 writel_relaxed(rate->pdiv * PLL0831X_LOCK_FACTOR, pll->lock_reg); in samsung_pll0831x_set_rate()
664 const struct samsung_pll_rate_table *rate) in samsung_pll45xx_mp_change() argument
672 return (old_mdiv != rate->mdiv || old_pdiv != rate->pdiv in samsung_pll45xx_mp_change()
673 || old_afc != rate->afc); in samsung_pll45xx_mp_change()
680 const struct samsung_pll_rate_table *rate; in samsung_pll45xx_set_rate() local
683 /* Get required rate settings from table */ in samsung_pll45xx_set_rate()
684 rate = samsung_get_pll_settings(pll, drate); in samsung_pll45xx_set_rate()
685 if (!rate) { in samsung_pll45xx_set_rate()
686 pr_err("%s: Invalid rate : %lu for pll clk %s\n", __func__, in samsung_pll45xx_set_rate()
694 if (!(samsung_pll45xx_mp_change(con0, con1, rate))) { in samsung_pll45xx_set_rate()
697 con0 |= rate->sdiv << PLL45XX_SDIV_SHIFT; in samsung_pll45xx_set_rate()
707 con0 |= (rate->mdiv << PLL45XX_MDIV_SHIFT) | in samsung_pll45xx_set_rate()
708 (rate->pdiv << PLL45XX_PDIV_SHIFT) | in samsung_pll45xx_set_rate()
709 (rate->sdiv << PLL45XX_SDIV_SHIFT); in samsung_pll45xx_set_rate()
714 con1 |= (rate->afc << PLL45XX_AFC_SHIFT); in samsung_pll45xx_set_rate()
719 writel_relaxed(rate->pdiv * PLL4502_LOCK_FACTOR, pll->lock_reg); in samsung_pll45xx_set_rate()
722 writel_relaxed(rate->pdiv * PLL4508_LOCK_FACTOR, pll->lock_reg); in samsung_pll45xx_set_rate()
801 const struct samsung_pll_rate_table *rate) in samsung_pll46xx_mpk_change() argument
809 return (old_mdiv != rate->mdiv || old_pdiv != rate->pdiv in samsung_pll46xx_mpk_change()
810 || old_kdiv != rate->kdiv); in samsung_pll46xx_mpk_change()
817 const struct samsung_pll_rate_table *rate; in samsung_pll46xx_set_rate() local
820 /* Get required rate settings from table */ in samsung_pll46xx_set_rate()
821 rate = samsung_get_pll_settings(pll, drate); in samsung_pll46xx_set_rate()
822 if (!rate) { in samsung_pll46xx_set_rate()
823 pr_err("%s: Invalid rate : %lu for pll clk %s\n", __func__, in samsung_pll46xx_set_rate()
831 if (!(samsung_pll46xx_mpk_change(con0, con1, rate))) { in samsung_pll46xx_set_rate()
834 con0 |= rate->sdiv << PLL46XX_SDIV_SHIFT; in samsung_pll46xx_set_rate()
841 lock = rate->pdiv * PLL46XX_LOCK_FACTOR; in samsung_pll46xx_set_rate()
856 con0 |= rate->vsel << PLL46XX_VSEL_SHIFT; in samsung_pll46xx_set_rate()
859 con0 |= (rate->mdiv << PLL46XX_MDIV_SHIFT) | in samsung_pll46xx_set_rate()
860 (rate->pdiv << PLL46XX_PDIV_SHIFT) | in samsung_pll46xx_set_rate()
861 (rate->sdiv << PLL46XX_SDIV_SHIFT); in samsung_pll46xx_set_rate()
868 con1 |= (rate->kdiv << PLL46XX_KDIV_SHIFT) | in samsung_pll46xx_set_rate()
869 (rate->mfr << PLL46XX_MFR_SHIFT) | in samsung_pll46xx_set_rate()
870 (rate->mrr << PLL46XX_MRR_SHIFT); in samsung_pll46xx_set_rate()
1055 const struct samsung_pll_rate_table *rate; in samsung_pll2550xx_set_rate() local
1058 /* Get required rate settings from table */ in samsung_pll2550xx_set_rate()
1059 rate = samsung_get_pll_settings(pll, drate); in samsung_pll2550xx_set_rate()
1060 if (!rate) { in samsung_pll2550xx_set_rate()
1061 pr_err("%s: Invalid rate : %lu for pll clk %s\n", __func__, in samsung_pll2550xx_set_rate()
1068 if (!(samsung_pll2550xx_mp_change(rate->mdiv, rate->pdiv, tmp))) { in samsung_pll2550xx_set_rate()
1071 tmp |= rate->sdiv << PLL2550XX_S_SHIFT; in samsung_pll2550xx_set_rate()
1078 writel_relaxed(rate->pdiv * PLL2550XX_LOCK_FACTOR, pll->lock_reg); in samsung_pll2550xx_set_rate()
1084 tmp |= (rate->mdiv << PLL2550XX_M_SHIFT) | in samsung_pll2550xx_set_rate()
1085 (rate->pdiv << PLL2550XX_P_SHIFT) | in samsung_pll2550xx_set_rate()
1086 (rate->sdiv << PLL2550XX_S_SHIFT); in samsung_pll2550xx_set_rate()
1150 const struct samsung_pll_rate_table *rate; in samsung_pll2650x_set_rate() local
1153 /* Get required rate settings from table */ in samsung_pll2650x_set_rate()
1154 rate = samsung_get_pll_settings(pll, drate); in samsung_pll2650x_set_rate()
1155 if (!rate) { in samsung_pll2650x_set_rate()
1156 pr_err("%s: Invalid rate : %lu for pll clk %s\n", __func__, in samsung_pll2650x_set_rate()
1165 writel_relaxed(rate->pdiv * PLL2650X_LOCK_FACTOR, pll->lock_reg); in samsung_pll2650x_set_rate()
1171 con0 |= (rate->mdiv << PLL2650X_M_SHIFT) | in samsung_pll2650x_set_rate()
1172 (rate->pdiv << PLL2650X_P_SHIFT) | in samsung_pll2650x_set_rate()
1173 (rate->sdiv << PLL2650X_S_SHIFT); in samsung_pll2650x_set_rate()
1178 con1 |= ((rate->kdiv & PLL2650X_K_MASK) << PLL2650X_K_SHIFT); in samsung_pll2650x_set_rate()
1242 const struct samsung_pll_rate_table *rate; in samsung_pll2650xx_set_rate() local
1244 rate = samsung_get_pll_settings(pll, drate); in samsung_pll2650xx_set_rate()
1245 if (!rate) { in samsung_pll2650xx_set_rate()
1246 pr_err("%s: Invalid rate : %lu for pll clk %s\n", __func__, in samsung_pll2650xx_set_rate()
1258 pll_con0 |= rate->mdiv << PLL2650XX_MDIV_SHIFT; in samsung_pll2650xx_set_rate()
1259 pll_con0 |= rate->pdiv << PLL2650XX_PDIV_SHIFT; in samsung_pll2650xx_set_rate()
1260 pll_con0 |= rate->sdiv << PLL2650XX_SDIV_SHIFT; in samsung_pll2650xx_set_rate()
1265 pll_con2 |= ((~(rate->kdiv) + 1) & PLL2650XX_KDIV_MASK) in samsung_pll2650xx_set_rate()
1269 writel_relaxed(PLL2650XX_LOCK_FACTOR * rate->pdiv, pll->lock_reg); in samsung_pll2650xx_set_rate()
1349 for (len = 0; pll_clk->rate_table[len].rate != 0; ) in _samsung_clk_register_pll()
1358 "%s: could not allocate rate table for %s\n", in _samsung_clk_register_pll()