1667dbcd0SMasahiro Yamada /* 2667dbcd0SMasahiro Yamada * Copyright (C) 2016 Socionext Inc. 3667dbcd0SMasahiro Yamada * 4667dbcd0SMasahiro Yamada * SPDX-License-Identifier: GPL-2.0+ 5667dbcd0SMasahiro Yamada */ 6667dbcd0SMasahiro Yamada 7667dbcd0SMasahiro Yamada #include <common.h> 8667dbcd0SMasahiro Yamada #include <linux/bitops.h> 9667dbcd0SMasahiro Yamada #include <linux/io.h> 10667dbcd0SMasahiro Yamada 11667dbcd0SMasahiro Yamada #include "../init.h" 12*76466bd7SMasahiro Yamada #include "../sc64-regs.h" 13667dbcd0SMasahiro Yamada #include "../sg-regs.h" 14667dbcd0SMasahiro Yamada 15667dbcd0SMasahiro Yamada void uniphier_ld11_clk_init(void) 16667dbcd0SMasahiro Yamada { 17667dbcd0SMasahiro Yamada if (readl(SG_PINMON0) & BIT(27)) { 18667dbcd0SMasahiro Yamada /* if booted without stand-by MPU */ 19667dbcd0SMasahiro Yamada 20667dbcd0SMasahiro Yamada writel(1, SG_ETPHYPSHUT); 21667dbcd0SMasahiro Yamada writel(1, SG_ETPHYCNT); 22667dbcd0SMasahiro Yamada 23667dbcd0SMasahiro Yamada udelay(1); /* wait for regulator level 1.1V -> 2.5V */ 24667dbcd0SMasahiro Yamada 25667dbcd0SMasahiro Yamada writel(3, SG_ETPHYCNT); 26667dbcd0SMasahiro Yamada writel(3, SG_ETPHYPSHUT); 27667dbcd0SMasahiro Yamada writel(7, SG_ETPHYCNT); 28667dbcd0SMasahiro Yamada } 29*76466bd7SMasahiro Yamada 30*76466bd7SMasahiro Yamada #ifdef CONFIG_USB_EHCI 31*76466bd7SMasahiro Yamada { 32*76466bd7SMasahiro Yamada /* FIXME: the current clk driver can not handle parents */ 33*76466bd7SMasahiro Yamada u32 tmp; 34*76466bd7SMasahiro Yamada tmp = readl(SC_CLKCTRL4); 35*76466bd7SMasahiro Yamada tmp |= SC_CLKCTRL4_MIO | SC_CLKCTRL4_STDMAC; 36*76466bd7SMasahiro Yamada writel(tmp, SC_CLKCTRL4); 37*76466bd7SMasahiro Yamada } 38*76466bd7SMasahiro Yamada #endif 39667dbcd0SMasahiro Yamada } 40