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 uniphier_pro5_clk_init(void)11void 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 } 35