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