blob: 46cace77e54127ccda9dda0bcbecfa862864d82f [file] [log] [blame]
Masahiro Yamadabb2ff9d2014-10-03 19:21:06 +09001/*
Masahiro Yamada663a23f2015-05-29 17:30:00 +09002 * Copyright (C) 2011-2015 Masahiro Yamada <yamada.masahiro@socionext.com>
Masahiro Yamadabb2ff9d2014-10-03 19:21:06 +09003 *
4 * SPDX-License-Identifier: GPL-2.0+
5 */
6
Masahiro Yamada663a23f2015-05-29 17:30:00 +09007#include <linux/io.h>
Masahiro Yamada95387e22015-02-27 02:26:44 +09008#include <mach/sc-regs.h>
Masahiro Yamadabb2ff9d2014-10-03 19:21:06 +09009
10void clkrst_init(void)
11{
12 u32 tmp;
13
14 /* deassert reset */
15 tmp = readl(SC_RSTCTRL);
Masahiro Yamada046d8fd2015-02-27 02:26:58 +090016#ifdef CONFIG_USB_XHCI_UNIPHIER
17 tmp |= SC_RSTCTRL_NRST_USB3B0 | SC_RSTCTRL_NRST_USB3C0 |
18 SC_RSTCTRL_NRST_GIO;
19#endif
Masahiro Yamadac04368f2015-02-27 02:26:51 +090020#ifdef CONFIG_UNIPHIER_ETH
21 tmp |= SC_RSTCTRL_NRST_ETHER;
22#endif
Masahiro Yamada36563e62015-02-27 02:26:53 +090023#ifdef CONFIG_USB_EHCI_UNIPHIER
24 tmp |= SC_RSTCTRL_NRST_STDMAC;
25#endif
Masahiro Yamadac04368f2015-02-27 02:26:51 +090026#ifdef CONFIG_NAND_DENALI
27 tmp |= SC_RSTCTRL_NRST_NAND;
28#endif
Masahiro Yamadabb2ff9d2014-10-03 19:21:06 +090029 writel(tmp, SC_RSTCTRL);
30 readl(SC_RSTCTRL); /* dummy read */
31
Masahiro Yamada046d8fd2015-02-27 02:26:58 +090032#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
Masahiro Yamadabb2ff9d2014-10-03 19:21:06 +090039 /* privide clocks */
40 tmp = readl(SC_CLKCTRL);
Masahiro Yamada046d8fd2015-02-27 02:26:58 +090041#ifdef CONFIG_USB_XHCI_UNIPHIER
42 tmp |= SC_CLKCTRL_CEN_USB31 | SC_CLKCTRL_CEN_USB30 |
43 SC_CLKCTRL_CEN_GIO;
44#endif
Masahiro Yamadac04368f2015-02-27 02:26:51 +090045#ifdef CONFIG_UNIPHIER_ETH
46 tmp |= SC_CLKCTRL_CEN_ETHER;
47#endif
48#ifdef CONFIG_USB_EHCI_UNIPHIER
Masahiro Yamada36563e62015-02-27 02:26:53 +090049 tmp |= SC_CLKCTRL_CEN_MIO | SC_CLKCTRL_CEN_STDMAC;
Masahiro Yamadac04368f2015-02-27 02:26:51 +090050#endif
51#ifdef CONFIG_NAND_DENALI
52 tmp |= SC_CLKCTRL_CEN_NAND;
53#endif
Masahiro Yamadabb2ff9d2014-10-03 19:21:06 +090054 writel(tmp, SC_CLKCTRL);
55 readl(SC_CLKCTRL); /* dummy read */
56}