Merge tag 'efi-2020-07-rc6' of https://gitlab.denx.de/u-boot/custodians/u-boot-efi
[oweals/u-boot.git] / arch / arm / mach-uniphier / clk / clk-pxs2.c
1 // SPDX-License-Identifier: GPL-2.0+
2 /*
3  * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com>
4  */
5
6 #include <linux/bitops.h>
7 #include <linux/io.h>
8
9 #include "../init.h"
10 #include "../sc-regs.h"
11
12 void uniphier_pxs2_clk_init(void)
13 {
14 #ifdef CONFIG_USB_DWC3_UNIPHIER
15         u32 tmp;
16
17         /* deassert reset */
18         tmp = readl(sc_base + SC_RSTCTRL);
19         tmp |= SC_RSTCTRL_NRST_USB3B0 | SC_RSTCTRL_NRST_GIO;
20         writel(tmp, sc_base + SC_RSTCTRL);
21         readl(sc_base + SC_RSTCTRL); /* dummy read */
22
23         tmp = readl(sc_base + SC_RSTCTRL2);
24         tmp |= SC_RSTCTRL2_NRST_USB3B1;
25         writel(tmp, sc_base + SC_RSTCTRL2);
26         readl(sc_base + SC_RSTCTRL2); /* dummy read */
27
28         tmp = readl(sc_base + SC_RSTCTRL6);
29         tmp |= 0x37;
30         writel(tmp, sc_base + SC_RSTCTRL6);
31
32         /* provide clocks */
33         tmp = readl(sc_base + SC_CLKCTRL);
34         tmp |= BIT(20) | BIT(19) | SC_CLKCTRL_CEN_USB31 | SC_CLKCTRL_CEN_USB30 |
35                 SC_CLKCTRL_CEN_GIO;
36         writel(tmp, sc_base + SC_CLKCTRL);
37         readl(sc_base + SC_CLKCTRL); /* dummy read */
38 #endif
39 }