]>
Commit | Line | Data |
---|---|---|
5894ca00 | 1 | /* |
70dda1b1 MY |
2 | * Copyright (C) 2011-2015 Panasonic Corporation |
3 | * Copyright (C) 2015-2016 Socionext Inc. | |
4 | * Author: Masahiro Yamada <yamada.masahiro@socionext.com> | |
5894ca00 MY |
5 | * |
6 | * SPDX-License-Identifier: GPL-2.0+ | |
7 | */ | |
8 | ||
f6e7f07c | 9 | #include <linux/io.h> |
107b3fb4 MY |
10 | |
11 | #include "../init.h" | |
12 | #include "../sc-regs.h" | |
5894ca00 | 13 | |
5b660066 | 14 | void uniphier_pro4_clk_init(void) |
5894ca00 MY |
15 | { |
16 | u32 tmp; | |
17 | ||
18 | /* deassert reset */ | |
19 | tmp = readl(SC_RSTCTRL); | |
1535163a MY |
20 | #ifdef CONFIG_USB_XHCI_UNIPHIER |
21 | tmp |= SC_RSTCTRL_NRST_USB3B0 | SC_RSTCTRL_NRST_USB3C0 | | |
22 | SC_RSTCTRL_NRST_GIO; | |
23 | #endif | |
198a97a6 MY |
24 | #ifdef CONFIG_UNIPHIER_ETH |
25 | tmp |= SC_RSTCTRL_NRST_ETHER; | |
26 | #endif | |
27 | #ifdef CONFIG_NAND_DENALI | |
28 | tmp |= SC_RSTCTRL_NRST_NAND; | |
29 | #endif | |
5894ca00 MY |
30 | writel(tmp, SC_RSTCTRL); |
31 | readl(SC_RSTCTRL); /* dummy read */ | |
32 | ||
1535163a MY |
33 | #ifdef CONFIG_USB_XHCI_UNIPHIER |
34 | tmp = readl(SC_RSTCTRL2); | |
35 | tmp |= SC_RSTCTRL2_NRST_USB3B1 | SC_RSTCTRL2_NRST_USB3C1; | |
36 | writel(tmp, SC_RSTCTRL2); | |
37 | readl(SC_RSTCTRL2); /* dummy read */ | |
38 | #endif | |
39 | ||
67976306 | 40 | /* provide clocks */ |
5894ca00 | 41 | tmp = readl(SC_CLKCTRL); |
1535163a MY |
42 | #ifdef CONFIG_USB_XHCI_UNIPHIER |
43 | tmp |= SC_CLKCTRL_CEN_USB31 | SC_CLKCTRL_CEN_USB30 | | |
44 | SC_CLKCTRL_CEN_GIO; | |
45 | #endif | |
198a97a6 MY |
46 | #ifdef CONFIG_UNIPHIER_ETH |
47 | tmp |= SC_CLKCTRL_CEN_ETHER; | |
48 | #endif | |
8850c5d5 | 49 | #ifdef CONFIG_USB_EHCI_HCD |
42ca6982 | 50 | tmp |= SC_CLKCTRL_CEN_MIO | SC_CLKCTRL_CEN_STDMAC; |
198a97a6 MY |
51 | #endif |
52 | #ifdef CONFIG_NAND_DENALI | |
53 | tmp |= SC_CLKCTRL_CEN_NAND; | |
54 | #endif | |
5894ca00 MY |
55 | writel(tmp, SC_CLKCTRL); |
56 | readl(SC_CLKCTRL); /* dummy read */ | |
57 | } |