clk-proxstream2.c 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. /*
  2. * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com>
  3. *
  4. * SPDX-License-Identifier: GPL-2.0+
  5. */
  6. #include <linux/io.h>
  7. #include "../init.h"
  8. #include "../sc-regs.h"
  9. void proxstream2_clk_init(void)
  10. {
  11. u32 tmp;
  12. /* deassert reset */
  13. tmp = readl(SC_RSTCTRL);
  14. #ifdef CONFIG_USB_XHCI_UNIPHIER
  15. tmp |= SC_RSTCTRL_NRST_USB3B0 | SC_RSTCTRL_NRST_GIO;
  16. #endif
  17. #ifdef CONFIG_UNIPHIER_ETH
  18. tmp |= SC_RSTCTRL_NRST_ETHER;
  19. #endif
  20. #ifdef CONFIG_NAND_DENALI
  21. tmp |= SC_RSTCTRL_NRST_NAND;
  22. #endif
  23. writel(tmp, SC_RSTCTRL);
  24. readl(SC_RSTCTRL); /* dummy read */
  25. #ifdef CONFIG_USB_XHCI_UNIPHIER
  26. tmp = readl(SC_RSTCTRL2);
  27. tmp |= SC_RSTCTRL2_NRST_USB3B1;
  28. writel(tmp, SC_RSTCTRL2);
  29. readl(SC_RSTCTRL2); /* dummy read */
  30. #endif
  31. /* privide clocks */
  32. tmp = readl(SC_CLKCTRL);
  33. #ifdef CONFIG_USB_XHCI_UNIPHIER
  34. tmp |= SC_CLKCTRL_CEN_USB31 | SC_CLKCTRL_CEN_USB30 |
  35. SC_CLKCTRL_CEN_GIO;
  36. #endif
  37. #ifdef CONFIG_UNIPHIER_ETH
  38. tmp |= SC_CLKCTRL_CEN_ETHER;
  39. #endif
  40. #ifdef CONFIG_NAND_DENALI
  41. tmp |= SC_CLKCTRL_CEN_NAND;
  42. #endif
  43. writel(tmp, SC_CLKCTRL);
  44. readl(SC_CLKCTRL); /* dummy read */
  45. }