Prepare v2023.10
[platform/kernel/u-boot.git] / arch / arm / mach-uniphier / clk / clk-pro5.c
1 // SPDX-License-Identifier: GPL-2.0+
2 /*
3  * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com>
4  */
5
6 #include <linux/io.h>
7
8 #include "../init.h"
9 #include "../sc-regs.h"
10
11 void uniphier_pro5_clk_init(void)
12 {
13 #ifdef CONFIG_USB_DWC3_UNIPHIER
14         u32 tmp;
15
16         /* deassert reset */
17         tmp = readl(sc_base + SC_RSTCTRL);
18         tmp |= SC_RSTCTRL_NRST_USB3B0 | SC_RSTCTRL_NRST_GIO;
19         writel(tmp, sc_base + SC_RSTCTRL);
20         readl(sc_base + SC_RSTCTRL); /* dummy read */
21
22         tmp = readl(sc_base + SC_RSTCTRL2);
23         tmp |= SC_RSTCTRL2_NRST_USB3B1;
24         writel(tmp, sc_base + SC_RSTCTRL2);
25         readl(sc_base + SC_RSTCTRL2); /* dummy read */
26
27         /* provide clocks */
28         tmp = readl(sc_base + SC_CLKCTRL);
29         tmp |= SC_CLKCTRL_CEN_USB31 | SC_CLKCTRL_CEN_USB30 |
30                 SC_CLKCTRL_CEN_GIO;
31         writel(tmp, sc_base + SC_CLKCTRL);
32         readl(sc_base + SC_CLKCTRL); /* dummy read */
33 #endif
34 }