Lines Matching +full:pll1 +full:- +full:refclk

7  * SPDX-License-Identifier:	GPL-2.0+
13 #include <asm/arch/imx-regs.h>
70 ((2 * (ref_clk) * (PLL_MFI_MIN - 1)) / PLL_PD_MAX)
78 clrsetbits_le32(&mxc_ccm->cscmr1, in set_usboh3_clk()
81 clrsetbits_le32(&mxc_ccm->cscdr1, in set_usboh3_clk()
92 clrsetbits_le32(&mxc_ccm->CCGR2, in enable_usboh3_clk()
108 return -EINVAL; in enable_i2c_clk()
112 setbits_le32(&mxc_ccm->CCGR1, mask); in enable_i2c_clk()
114 clrbits_le32(&mxc_ccm->CCGR1, mask); in enable_i2c_clk()
121 clrbits_le32(&mxc_ccm->cscmr1, MXC_CCM_CSCMR1_USB_PHY_CLK_SEL); in set_usb_phy_clk()
129 clrsetbits_le32(&mxc_ccm->CCGR2, in enable_usb_phy1_clk()
143 clrsetbits_le32(&mxc_ccm->CCGR4, in enable_usb_phy1_clk()
152 clrsetbits_le32(&mxc_ccm->CCGR4, in enable_usb_phy2_clk()
164 uint64_t refclk, temp; in decode_pll() local
167 ctrl = readl(&pll->ctrl); in decode_pll()
170 mfn = readl(&pll->hfs_mfn); in decode_pll()
171 mfd = readl(&pll->hfs_mfd); in decode_pll()
172 op = readl(&pll->hfs_op); in decode_pll()
174 mfn = readl(&pll->mfn); in decode_pll()
175 mfd = readl(&pll->mfd); in decode_pll()
176 op = readl(&pll->op); in decode_pll()
191 mfn_abs = -mfn; in decode_pll()
195 refclk = infreq * 2; in decode_pll()
197 refclk *= 2; in decode_pll()
199 do_div(refclk, pdf + 1); in decode_pll()
200 temp = refclk * mfn_abs; in decode_pll()
202 ret = refclk * mfi; in decode_pll()
205 ret -= temp; in decode_pll()
214 * This function returns the Frequency Pre-Multiplier clock.
219 u32 ccr = readl(&mxc_ccm->ccr); in get_fpm()
236 u32 ccsr = readl(&mxc_ccm->ccsr); in get_lp_apm()
257 reg = MXC_CCM_CACRR_ARM_PODF_RD(readl(&mxc_ccm->cacrr)); in get_mcu_main_clk()
269 reg = readl(&mxc_ccm->cbcdr); in get_periph_clk()
272 reg = readl(&mxc_ccm->cbcmr); in get_periph_clk()
295 reg = readl(&mxc_ccm->cbcdr); in get_ipg_clk()
308 if (readl(&mxc_ccm->cbcmr) & MXC_CCM_CBCMR_PERCLK_IPG_CLK_SEL) in get_ipg_per_clk()
311 if (readl(&mxc_ccm->cbcmr) & MXC_CCM_CBCMR_PERCLK_LP_APM_CLK_SEL) in get_ipg_per_clk()
315 podf = readl(&mxc_ccm->cbcdr); in get_ipg_per_clk()
352 reg = readl(&mxc_ccm->cscmr1); in get_uart_clk()
356 reg = readl(&mxc_ccm->cscdr1); in get_uart_clk()
370 u32 cscmr1 = readl(&mxc_ccm->cscmr1); in imx_get_cspiclk()
371 u32 cscdr2 = readl(&mxc_ccm->cscdr2); in imx_get_cspiclk()
387 u32 cscmr1 = readl(&mxc_ccm->cscmr1); in get_esdhc_clk()
388 u32 cscdr1 = readl(&mxc_ccm->cscdr1); in get_esdhc_clk()
421 u32 cbcdr = readl(&mxc_ccm->cbcdr); in get_axi_a_clk()
429 u32 cbcdr = readl(&mxc_ccm->cbcdr); in get_axi_b_clk()
437 u32 cbcdr = readl(&mxc_ccm->cbcdr); in get_emi_slow_clk()
450 u32 cbcmr = readl(&mxc_ccm->cbcmr); in get_ddr_clk()
453 u32 cbcdr = readl(&mxc_ccm->cbcdr); in get_ddr_clk()
519 return -EINVAL; in mxc_get_clock()
541 m -= n; in gcd()
565 "within [%d - %d]\n", in calc_pll_params()
568 return -EINVAL; in calc_pll_params()
579 return -EINVAL; in calc_pll_params()
587 return -EINVAL; in calc_pll_params()
595 * mfn = (((n_target * pd) / 4 - n_ref * mfi) * mfd) / n_ref; in calc_pll_params()
599 t1 -= n_ref * mfi; in calc_pll_params()
608 pll->pd = (u32)pd; in calc_pll_params()
609 pll->mfi = (u32)mfi; in calc_pll_params()
611 pll->mfn = (u32)mfn; in calc_pll_params()
613 pll->mfd = (u32)mfd; in calc_pll_params()
626 (v - 1); \
631 writel(0x1232, &pll->ctrl); \
632 writel(0x2, &pll->config); \
633 writel((((pd) - 1) << 0) | ((fi) << 4), \
634 &pll->op); \
635 writel(fn, &(pll->mfn)); \
636 writel((fd) - 1, &pll->mfd); \
637 writel((((pd) - 1) << 0) | ((fi) << 4), \
638 &pll->hfs_op); \
639 writel(fn, &pll->hfs_mfn); \
640 writel((fd) - 1, &pll->hfs_mfd); \
641 writel(0x1232, &pll->ctrl); \
642 while (!readl(&pll->ctrl) & 0x1) \
648 u32 ccsr = readl(&mxc_ccm->ccsr); in config_pll_clk()
655 &mxc_ccm->ccsr); in config_pll_clk()
656 CHANGE_PLL_SETTINGS(pll, pll_param->pd, in config_pll_clk()
657 pll_param->mfi, pll_param->mfn, in config_pll_clk()
658 pll_param->mfd); in config_pll_clk()
661 &mxc_ccm->ccsr); in config_pll_clk()
666 &mxc_ccm->ccsr); in config_pll_clk()
667 CHANGE_PLL_SETTINGS(pll, pll_param->pd, in config_pll_clk()
668 pll_param->mfi, pll_param->mfn, in config_pll_clk()
669 pll_param->mfd); in config_pll_clk()
672 &mxc_ccm->ccsr); in config_pll_clk()
677 &mxc_ccm->ccsr); in config_pll_clk()
678 CHANGE_PLL_SETTINGS(pll, pll_param->pd, in config_pll_clk()
679 pll_param->mfi, pll_param->mfn, in config_pll_clk()
680 pll_param->mfd); in config_pll_clk()
683 &mxc_ccm->ccsr); in config_pll_clk()
689 &mxc_ccm->ccsr); in config_pll_clk()
690 CHANGE_PLL_SETTINGS(pll, pll_param->pd, in config_pll_clk()
691 pll_param->mfi, pll_param->mfn, in config_pll_clk()
692 pll_param->mfd); in config_pll_clk()
695 &mxc_ccm->ccsr); in config_pll_clk()
699 return -EINVAL; in config_pll_clk()
713 /* The case that periph uses PLL1 is not considered here */ in config_core_clk()
729 return -EINVAL; in config_nfc_clk()
735 clrsetbits_le32(&mxc_ccm->cbcdr, in config_nfc_clk()
737 MXC_CCM_CBCDR_NFC_PODF(div - 1)); in config_nfc_clk()
738 while (readl(&mxc_ccm->cdhipr) != 0) in config_nfc_clk()
747 clrsetbits_le32(&mxc_ccm->CCGR5, in enable_nfc_clk()
756 setbits_le32(&mxc_ccm->cgpr, in enable_efuse_prog_supply()
759 clrbits_le32(&mxc_ccm->cgpr, in enable_efuse_prog_supply()
772 if (readl(&mxc_ccm->cbcdr) & MXC_CCM_CBCDR_PERIPH_CLK_SEL) { in config_periph_clk()
780 readl(&mxc_ccm->cbcmr))) { in config_periph_clk()
788 return -EINVAL; in config_periph_clk()
799 u32 cbcmr = readl(&mxc_ccm->cbcmr); in config_ddr_clk()
824 return -EINVAL; in config_ddr_clk()
834 clrsetbits_le32(&mxc_ccm->cbcdr, 0x7 << shift, (div - 1) << shift); in config_ddr_clk()
835 while (readl(&mxc_ccm->cdhipr) != 0) in config_ddr_clk()
837 writel(0x0, &mxc_ccm->ccdr); in config_ddr_clk()
852 * Note 1) There is no value checking for the passed-in divider values
869 return -EINVAL; in mxc_set_clock()
873 return -EINVAL; in mxc_set_clock()
877 return -EINVAL; in mxc_set_clock()
881 return -EINVAL; in mxc_set_clock()
898 * '00' - 100MHz (External)
899 * '01' - 50MHz (External)
900 * '10' - 120MHz, internal (USB PHY)
901 * '11' - Reserved
922 printf("PLL1 %8d MHz\n", freq / 1000000); in do_mx5_showclocks()