clk-dram-pro5.c 783 B

12345678910111213141516171819202122232425262728293031323334
  1. // SPDX-License-Identifier: GPL-2.0+
  2. /*
  3. * Copyright (C) 2015-2017 Socionext Inc.
  4. */
  5. #include <linux/io.h>
  6. #include "../init.h"
  7. #include "../sc-regs.h"
  8. void uniphier_pro5_dram_clk_init(void)
  9. {
  10. u32 tmp;
  11. /*
  12. * deassert reset
  13. * UMCA2: Ch1 (DDR3)
  14. * UMCA1, UMC31: Ch0 (WIO1)
  15. * UMCA0, UMC30: Ch0 (WIO0)
  16. */
  17. tmp = readl(SC_RSTCTRL4);
  18. tmp |= SC_RSTCTRL4_NRST_UMCSB | SC_RSTCTRL4_NRST_UMCA2 |
  19. SC_RSTCTRL4_NRST_UMCA1 | SC_RSTCTRL4_NRST_UMCA0 |
  20. SC_RSTCTRL4_NRST_UMC31 | SC_RSTCTRL4_NRST_UMC30;
  21. writel(tmp, SC_RSTCTRL4);
  22. readl(SC_RSTCTRL4); /* dummy read */
  23. /* provide clocks */
  24. tmp = readl(SC_CLKCTRL4);
  25. tmp |= SC_CLKCTRL4_CEN_UMCSB | SC_CLKCTRL4_CEN_UMC1 |
  26. SC_CLKCTRL4_CEN_UMC0;
  27. writel(tmp, SC_CLKCTRL4);
  28. readl(SC_CLKCTRL4); /* dummy read */
  29. }