early-clk-ld11.c 643 B

1234567891011121314151617181920212223242526272829303132
  1. /*
  2. * Copyright (C) 2016 Socionext Inc.
  3. * Author: Masahiro Yamada <yamada.masahiro@socionext.com>
  4. *
  5. * SPDX-License-Identifier: GPL-2.0+
  6. */
  7. #include <linux/io.h>
  8. #include "../init.h"
  9. #include "../sc64-regs.h"
  10. int uniphier_ld11_early_clk_init(const struct uniphier_board_data *bd)
  11. {
  12. u32 tmp;
  13. /* deassert reset */
  14. tmp = readl(SC_RSTCTRL7);
  15. tmp |= SC_RSTCTRL7_UMC31 | SC_RSTCTRL7_UMC30;
  16. writel(tmp, SC_RSTCTRL7);
  17. /* provide clocks */
  18. tmp = readl(SC_CLKCTRL4);
  19. tmp |= SC_CLKCTRL4_PERI;
  20. writel(tmp, SC_CLKCTRL4);
  21. tmp = readl(SC_CLKCTRL7);
  22. tmp |= SC_CLKCTRL7_UMC31 | SC_CLKCTRL7_UMC30;
  23. writel(tmp, SC_CLKCTRL7);
  24. return 0;
  25. }