clk-dram-pxs2.c 790 B

1234567891011121314151617181920212223242526272829303132
  1. // SPDX-License-Identifier: GPL-2.0+
  2. /*
  3. * Copyright (C) 2016-2017 Socionext Inc.
  4. */
  5. #include <common.h>
  6. #include <spl.h>
  7. #include <linux/io.h>
  8. #include "../init.h"
  9. #include "../sc-regs.h"
  10. void uniphier_pxs2_dram_clk_init(void)
  11. {
  12. u32 tmp;
  13. /* deassert reset */
  14. tmp = readl(SC_RSTCTRL4);
  15. tmp |= SC_RSTCTRL4_NRST_UMCSB | SC_RSTCTRL4_NRST_UMCA2 |
  16. SC_RSTCTRL4_NRST_UMCA1 | SC_RSTCTRL4_NRST_UMCA0 |
  17. SC_RSTCTRL4_NRST_UMC32 | SC_RSTCTRL4_NRST_UMC31 |
  18. SC_RSTCTRL4_NRST_UMC30;
  19. writel(tmp, SC_RSTCTRL4);
  20. readl(SC_RSTCTRL4); /* dummy read */
  21. /* provide clocks */
  22. tmp = readl(SC_CLKCTRL4);
  23. tmp |= SC_CLKCTRL4_CEN_UMCSB | SC_CLKCTRL4_CEN_UMC2 |
  24. SC_CLKCTRL4_CEN_UMC1 | SC_CLKCTRL4_CEN_UMC0;
  25. writel(tmp, SC_CLKCTRL4);
  26. readl(SC_CLKCTRL4); /* dummy read */
  27. }