Lines Matching full: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;
239 const struct samsung_pll_rate_table *rate, u32 pll_con)
246 return (rate->mdiv != old_mdiv || rate->pdiv != old_pdiv);
253 const struct samsung_pll_rate_table *rate;
256 /* Get required rate settings from table */
257 rate = samsung_get_pll_settings(pll, drate);
258 if (!rate) {
259 pr_err("%s: Invalid rate : %lu for pll clk %s\n", __func__,
266 if (!(samsung_pll35xx_mp_change(rate, tmp))) {
269 tmp |= rate->sdiv << PLL35XX_SDIV_SHIFT;
277 writel_relaxed(rate->pdiv * PLL142XX_LOCK_FACTOR,
280 writel_relaxed(rate->pdiv * PLL35XX_LOCK_FACTOR,
287 tmp |= (rate->mdiv << PLL35XX_MDIV_SHIFT) |
288 (rate->pdiv << PLL35XX_PDIV_SHIFT) |
289 (rate->sdiv << PLL35XX_SDIV_SHIFT);
351 const struct samsung_pll_rate_table *rate, u32 pll_con0, u32 pll_con1)
359 return (rate->mdiv != old_mdiv || rate->pdiv != old_pdiv ||
360 rate->kdiv != old_kdiv);
368 const struct samsung_pll_rate_table *rate;
370 rate = samsung_get_pll_settings(pll, drate);
371 if (!rate) {
372 pr_err("%s: Invalid rate : %lu for pll clk %s\n", __func__,
380 if (!(samsung_pll36xx_mpk_change(rate, pll_con0, pll_con1))) {
383 pll_con0 |= (rate->sdiv << PLL36XX_SDIV_SHIFT);
390 writel_relaxed(rate->pdiv * PLL36XX_LOCK_FACTOR, pll->lock_reg);
396 pll_con0 |= (rate->mdiv << PLL36XX_MDIV_SHIFT) |
397 (rate->pdiv << PLL36XX_PDIV_SHIFT) |
398 (rate->sdiv << PLL36XX_SDIV_SHIFT);
402 pll_con1 |= rate->kdiv << PLL36XX_KDIV_SHIFT;
459 const struct samsung_pll_rate_table *rate;
463 /* Get required rate settings from table */
464 rate = samsung_get_pll_settings(pll, drate);
465 if (!rate) {
466 pr_err("%s: Invalid rate : %lu for pll clk %s\n", __func__,
476 pll_con3 |= (rate->mdiv << PLL0822X_MDIV_SHIFT) |
477 (rate->pdiv << PLL0822X_PDIV_SHIFT) |
478 (rate->sdiv << PLL0822X_SDIV_SHIFT);
481 writel_relaxed(rate->pdiv * PLL0822X_LOCK_FACTOR,
548 const struct samsung_pll_rate_table *rate;
552 /* Get required rate settings from table */
553 rate = samsung_get_pll_settings(pll, drate);
554 if (!rate) {
555 pr_err("%s: Invalid rate : %lu for pll clk %s\n", __func__,
567 pll_con3 |= (rate->mdiv << PLL0831X_MDIV_SHIFT) |
568 (rate->pdiv << PLL0831X_PDIV_SHIFT) |
569 (rate->sdiv << PLL0831X_SDIV_SHIFT);
575 pll_con5 |= ((u16)rate->kdiv << PLL0831X_KDIV_SHIFT);
578 writel_relaxed(rate->pdiv * PLL0831X_LOCK_FACTOR, pll->lock_reg);
643 const struct samsung_pll_rate_table *rate)
651 return (old_mdiv != rate->mdiv || old_pdiv != rate->pdiv
652 || old_afc != rate->afc);
659 const struct samsung_pll_rate_table *rate;
662 /* Get required rate settings from table */
663 rate = samsung_get_pll_settings(pll, drate);
664 if (!rate) {
665 pr_err("%s: Invalid rate : %lu for pll clk %s\n", __func__,
673 if (!(samsung_pll45xx_mp_change(con0, con1, rate))) {
676 con0 |= rate->sdiv << PLL45XX_SDIV_SHIFT;
686 con0 |= (rate->mdiv << PLL45XX_MDIV_SHIFT) |
687 (rate->pdiv << PLL45XX_PDIV_SHIFT) |
688 (rate->sdiv << PLL45XX_SDIV_SHIFT);
693 con1 |= (rate->afc << PLL45XX_AFC_SHIFT);
698 writel_relaxed(rate->pdiv * PLL4502_LOCK_FACTOR, pll->lock_reg);
701 writel_relaxed(rate->pdiv * PLL4508_LOCK_FACTOR, pll->lock_reg);
780 const struct samsung_pll_rate_table *rate)
788 return (old_mdiv != rate->mdiv || old_pdiv != rate->pdiv
789 || old_kdiv != rate->kdiv);
796 const struct samsung_pll_rate_table *rate;
799 /* Get required rate settings from table */
800 rate = samsung_get_pll_settings(pll, drate);
801 if (!rate) {
802 pr_err("%s: Invalid rate : %lu for pll clk %s\n", __func__,
810 if (!(samsung_pll46xx_mpk_change(con0, con1, rate))) {
813 con0 |= rate->sdiv << PLL46XX_SDIV_SHIFT;
820 lock = rate->pdiv * PLL46XX_LOCK_FACTOR;
835 con0 |= rate->vsel << PLL46XX_VSEL_SHIFT;
838 con0 |= (rate->mdiv << PLL46XX_MDIV_SHIFT) |
839 (rate->pdiv << PLL46XX_PDIV_SHIFT) |
840 (rate->sdiv << PLL46XX_SDIV_SHIFT);
847 con1 |= (rate->kdiv << PLL46XX_KDIV_SHIFT) |
848 (rate->mfr << PLL46XX_MFR_SHIFT) |
849 (rate->mrr << PLL46XX_MRR_SHIFT);
1034 const struct samsung_pll_rate_table *rate;
1037 /* Get required rate settings from table */
1038 rate = samsung_get_pll_settings(pll, drate);
1039 if (!rate) {
1040 pr_err("%s: Invalid rate : %lu for pll clk %s\n", __func__,
1047 if (!(samsung_pll2550xx_mp_change(rate->mdiv, rate->pdiv, tmp))) {
1050 tmp |= rate->sdiv << PLL2550XX_S_SHIFT;
1057 writel_relaxed(rate->pdiv * PLL2550XX_LOCK_FACTOR, pll->lock_reg);
1063 tmp |= (rate->mdiv << PLL2550XX_M_SHIFT) |
1064 (rate->pdiv << PLL2550XX_P_SHIFT) |
1065 (rate->sdiv << PLL2550XX_S_SHIFT);
1129 const struct samsung_pll_rate_table *rate;
1132 /* Get required rate settings from table */
1133 rate = samsung_get_pll_settings(pll, drate);
1134 if (!rate) {
1135 pr_err("%s: Invalid rate : %lu for pll clk %s\n", __func__,
1144 writel_relaxed(rate->pdiv * PLL2650X_LOCK_FACTOR, pll->lock_reg);
1150 con0 |= (rate->mdiv << PLL2650X_M_SHIFT) |
1151 (rate->pdiv << PLL2650X_P_SHIFT) |
1152 (rate->sdiv << PLL2650X_S_SHIFT);
1157 con1 |= ((rate->kdiv & PLL2650X_K_MASK) << PLL2650X_K_SHIFT);
1221 const struct samsung_pll_rate_table *rate;
1223 rate = samsung_get_pll_settings(pll, drate);
1224 if (!rate) {
1225 pr_err("%s: Invalid rate : %lu for pll clk %s\n", __func__,
1237 pll_con0 |= rate->mdiv << PLL2650XX_MDIV_SHIFT;
1238 pll_con0 |= rate->pdiv << PLL2650XX_PDIV_SHIFT;
1239 pll_con0 |= rate->sdiv << PLL2650XX_SDIV_SHIFT;
1244 pll_con2 |= ((~(rate->kdiv) + 1) & PLL2650XX_KDIV_MASK)
1248 writel_relaxed(PLL2650XX_LOCK_FACTOR * rate->pdiv, pll->lock_reg);
1287 for (len = 0; pll_clk->rate_table[len].rate != 0; )
1296 "%s: could not allocate rate table for %s\n",