summaryrefslogtreecommitdiff
path: root/plat/imx/common/imx8m/clock.c
diff options
context:
space:
mode:
Diffstat (limited to 'plat/imx/common/imx8m/clock.c')
-rw-r--r--plat/imx/common/imx8m/clock.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/plat/imx/common/imx8m/clock.c b/plat/imx/common/imx8m/clock.c
index fee68218..86ebd9a9 100644
--- a/plat/imx/common/imx8m/clock.c
+++ b/plat/imx/common/imx8m/clock.c
@@ -61,3 +61,30 @@ void dram_clock_switch(unsigned int target_freq)
ddr_pll_bypass_dis();
}
}
+
+#if defined(PLAT_IMX8M)
+void dram_pll_init(unsigned int drate)
+{
+ /* bypass the PLL */
+ mmio_setbits_32(HW_DRAM_PLL_CFG0, 0x30);
+
+ switch (drate) {
+ case 3200:
+ mmio_write_32(HW_DRAM_PLL_CFG2, 0x00ece580);
+ break;
+ case 1600:
+ mmio_write_32(HW_DRAM_PLL_CFG2, 0x00ec6984);
+ break;
+ case 667:
+ mmio_write_32(HW_DRAM_PLL_CFG2, 0x00f5a406);
+ break;
+ default:
+ break;
+ }
+
+ /* bypass the PLL */
+ mmio_clrbits_32(HW_DRAM_PLL_CFG0, 0x30);
+ while(!(mmio_read_32(HW_DRAM_PLL_CFG0) &(1 << 31)))
+ ;
+}
+#endif