Lines Matching refs:rate

39 				struct samsung_clk_pll *pll, unsigned long rate)
45 if (rate == rate_table[i].rate)
61 if (drate >= rate_table[i].rate)
62 return rate_table[i].rate;
66 return rate_table[i - 1].rate;
238 const struct samsung_pll_rate_table *rate, u32 pll_con)
245 return (rate->mdiv != old_mdiv || rate->pdiv != old_pdiv);
252 const struct samsung_pll_rate_table *rate;
255 /* Get required rate settings from table */
256 rate = samsung_get_pll_settings(pll, drate);
257 if (!rate) {
258 pr_err("%s: Invalid rate : %lu for pll clk %s\n", __func__,
265 if (!(samsung_pll35xx_mp_change(rate, tmp))) {
268 tmp |= rate->sdiv << PLL35XX_SDIV_SHIFT;
275 writel_relaxed(rate->pdiv * PLL35XX_LOCK_FACTOR,
282 tmp |= (rate->mdiv << PLL35XX_MDIV_SHIFT) |
283 (rate->pdiv << PLL35XX_PDIV_SHIFT) |
284 (rate->sdiv << PLL35XX_SDIV_SHIFT);
346 const struct samsung_pll_rate_table *rate, u32 pll_con0, u32 pll_con1)
354 return (rate->mdiv != old_mdiv || rate->pdiv != old_pdiv ||
355 rate->kdiv != old_kdiv);
363 const struct samsung_pll_rate_table *rate;
365 rate = samsung_get_pll_settings(pll, drate);
366 if (!rate) {
367 pr_err("%s: Invalid rate : %lu for pll clk %s\n", __func__,
375 if (!(samsung_pll36xx_mpk_change(rate, pll_con0, pll_con1))) {
378 pll_con0 |= (rate->sdiv << PLL36XX_SDIV_SHIFT);
385 writel_relaxed(rate->pdiv * PLL36XX_LOCK_FACTOR, pll->lock_reg);
391 pll_con0 |= (rate->mdiv << PLL36XX_MDIV_SHIFT) |
392 (rate->pdiv << PLL36XX_PDIV_SHIFT) |
393 (rate->sdiv << PLL36XX_SDIV_SHIFT);
397 pll_con1 |= rate->kdiv << PLL36XX_KDIV_SHIFT;
454 const struct samsung_pll_rate_table *rate;
458 /* Get required rate settings from table */
459 rate = samsung_get_pll_settings(pll, drate);
460 if (!rate) {
461 pr_err("%s: Invalid rate : %lu for pll clk %s\n", __func__,
471 pll_con3 |= (rate->mdiv << PLL0822X_MDIV_SHIFT) |
472 (rate->pdiv << PLL0822X_PDIV_SHIFT) |
473 (rate->sdiv << PLL0822X_SDIV_SHIFT);
476 writel_relaxed(rate->pdiv * PLL0822X_LOCK_FACTOR,
543 const struct samsung_pll_rate_table *rate;
547 /* Get required rate settings from table */
548 rate = samsung_get_pll_settings(pll, drate);
549 if (!rate) {
550 pr_err("%s: Invalid rate : %lu for pll clk %s\n", __func__,
562 pll_con3 |= (rate->mdiv << PLL0831X_MDIV_SHIFT) |
563 (rate->pdiv << PLL0831X_PDIV_SHIFT) |
564 (rate->sdiv << PLL0831X_SDIV_SHIFT);
570 pll_con5 |= ((u16)rate->kdiv << PLL0831X_KDIV_SHIFT);
573 writel_relaxed(rate->pdiv * PLL0831X_LOCK_FACTOR, pll->lock_reg);
638 const struct samsung_pll_rate_table *rate)
646 return (old_mdiv != rate->mdiv || old_pdiv != rate->pdiv
647 || old_afc != rate->afc);
654 const struct samsung_pll_rate_table *rate;
657 /* Get required rate settings from table */
658 rate = samsung_get_pll_settings(pll, drate);
659 if (!rate) {
660 pr_err("%s: Invalid rate : %lu for pll clk %s\n", __func__,
668 if (!(samsung_pll45xx_mp_change(con0, con1, rate))) {
671 con0 |= rate->sdiv << PLL45XX_SDIV_SHIFT;
681 con0 |= (rate->mdiv << PLL45XX_MDIV_SHIFT) |
682 (rate->pdiv << PLL45XX_PDIV_SHIFT) |
683 (rate->sdiv << PLL45XX_SDIV_SHIFT);
688 con1 |= (rate->afc << PLL45XX_AFC_SHIFT);
693 writel_relaxed(rate->pdiv * PLL4502_LOCK_FACTOR, pll->lock_reg);
696 writel_relaxed(rate->pdiv * PLL4508_LOCK_FACTOR, pll->lock_reg);
775 const struct samsung_pll_rate_table *rate)
783 return (old_mdiv != rate->mdiv || old_pdiv != rate->pdiv
784 || old_kdiv != rate->kdiv);
791 const struct samsung_pll_rate_table *rate;
794 /* Get required rate settings from table */
795 rate = samsung_get_pll_settings(pll, drate);
796 if (!rate) {
797 pr_err("%s: Invalid rate : %lu for pll clk %s\n", __func__,
805 if (!(samsung_pll46xx_mpk_change(con0, con1, rate))) {
808 con0 |= rate->sdiv << PLL46XX_SDIV_SHIFT;
815 lock = rate->pdiv * PLL46XX_LOCK_FACTOR;
830 con0 |= rate->vsel << PLL46XX_VSEL_SHIFT;
833 con0 |= (rate->mdiv << PLL46XX_MDIV_SHIFT) |
834 (rate->pdiv << PLL46XX_PDIV_SHIFT) |
835 (rate->sdiv << PLL46XX_SDIV_SHIFT);
842 con1 |= (rate->kdiv << PLL46XX_KDIV_SHIFT) |
843 (rate->mfr << PLL46XX_MFR_SHIFT) |
844 (rate->mrr << PLL46XX_MRR_SHIFT);
1029 const struct samsung_pll_rate_table *rate;
1032 /* Get required rate settings from table */
1033 rate = samsung_get_pll_settings(pll, drate);
1034 if (!rate) {
1035 pr_err("%s: Invalid rate : %lu for pll clk %s\n", __func__,
1042 if (!(samsung_pll2550xx_mp_change(rate->mdiv, rate->pdiv, tmp))) {
1045 tmp |= rate->sdiv << PLL2550XX_S_SHIFT;
1052 writel_relaxed(rate->pdiv * PLL2550XX_LOCK_FACTOR, pll->lock_reg);
1058 tmp |= (rate->mdiv << PLL2550XX_M_SHIFT) |
1059 (rate->pdiv << PLL2550XX_P_SHIFT) |
1060 (rate->sdiv << PLL2550XX_S_SHIFT);
1124 const struct samsung_pll_rate_table *rate;
1127 /* Get required rate settings from table */
1128 rate = samsung_get_pll_settings(pll, drate);
1129 if (!rate) {
1130 pr_err("%s: Invalid rate : %lu for pll clk %s\n", __func__,
1139 writel_relaxed(rate->pdiv * PLL2650X_LOCK_FACTOR, pll->lock_reg);
1145 con0 |= (rate->mdiv << PLL2650X_M_SHIFT) |
1146 (rate->pdiv << PLL2650X_P_SHIFT) |
1147 (rate->sdiv << PLL2650X_S_SHIFT);
1152 con1 |= ((rate->kdiv & PLL2650X_K_MASK) << PLL2650X_K_SHIFT);
1216 const struct samsung_pll_rate_table *rate;
1218 rate = samsung_get_pll_settings(pll, drate);
1219 if (!rate) {
1220 pr_err("%s: Invalid rate : %lu for pll clk %s\n", __func__,
1232 pll_con0 |= rate->mdiv << PLL2650XX_MDIV_SHIFT;
1233 pll_con0 |= rate->pdiv << PLL2650XX_PDIV_SHIFT;
1234 pll_con0 |= rate->sdiv << PLL2650XX_SDIV_SHIFT;
1239 pll_con2 |= ((~(rate->kdiv) + 1) & PLL2650XX_KDIV_MASK)
1243 writel_relaxed(PLL2650XX_LOCK_FACTOR * rate->pdiv, pll->lock_reg);
1282 for (len = 0; pll_clk->rate_table[len].rate != 0; )
1291 "%s: could not allocate rate table for %s\n",