]> git.kernelconcepts.de Git - karo-tx-uboot.git/blob - arch/arm/mach-uniphier/ph1-pro4/clkrst_init.c
karo: cleanup after merge of v2015.10-rc2
[karo-tx-uboot.git] / arch / arm / mach-uniphier / ph1-pro4 / clkrst_init.c
1 /*
2  * Copyright (C) 2011-2015 Masahiro Yamada <yamada.masahiro@socionext.com>
3  *
4  * SPDX-License-Identifier:     GPL-2.0+
5  */
6
7 #include <linux/io.h>
8 #include <mach/sc-regs.h>
9
10 void clkrst_init(void)
11 {
12         u32 tmp;
13
14         /* deassert reset */
15         tmp = readl(SC_RSTCTRL);
16 #ifdef CONFIG_USB_XHCI_UNIPHIER
17         tmp |= SC_RSTCTRL_NRST_USB3B0 | SC_RSTCTRL_NRST_USB3C0 |
18                 SC_RSTCTRL_NRST_GIO;
19 #endif
20 #ifdef CONFIG_UNIPHIER_ETH
21         tmp |= SC_RSTCTRL_NRST_ETHER;
22 #endif
23 #ifdef CONFIG_USB_EHCI_UNIPHIER
24         tmp |= SC_RSTCTRL_NRST_STDMAC;
25 #endif
26 #ifdef CONFIG_NAND_DENALI
27         tmp |= SC_RSTCTRL_NRST_NAND;
28 #endif
29         writel(tmp, SC_RSTCTRL);
30         readl(SC_RSTCTRL); /* dummy read */
31
32 #ifdef CONFIG_USB_XHCI_UNIPHIER
33         tmp = readl(SC_RSTCTRL2);
34         tmp |= SC_RSTCTRL2_NRST_USB3B1 | SC_RSTCTRL2_NRST_USB3C1;
35         writel(tmp, SC_RSTCTRL2);
36         readl(SC_RSTCTRL2); /* dummy read */
37 #endif
38
39         /* privide clocks */
40         tmp = readl(SC_CLKCTRL);
41 #ifdef CONFIG_USB_XHCI_UNIPHIER
42         tmp |= SC_CLKCTRL_CEN_USB31 | SC_CLKCTRL_CEN_USB30 |
43                 SC_CLKCTRL_CEN_GIO;
44 #endif
45 #ifdef CONFIG_UNIPHIER_ETH
46         tmp |= SC_CLKCTRL_CEN_ETHER;
47 #endif
48 #ifdef CONFIG_USB_EHCI_UNIPHIER
49         tmp |= SC_CLKCTRL_CEN_MIO | SC_CLKCTRL_CEN_STDMAC;
50 #endif
51 #ifdef CONFIG_NAND_DENALI
52         tmp |= SC_CLKCTRL_CEN_NAND;
53 #endif
54         writel(tmp, SC_CLKCTRL);
55         readl(SC_CLKCTRL); /* dummy read */
56 }