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