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> 89c5313dcSMasahiro Yamada #include <spl.h> 9667dbcd0SMasahiro Yamada #include <linux/bitops.h> 10667dbcd0SMasahiro Yamada #include <linux/io.h> 11667dbcd0SMasahiro Yamada 12667dbcd0SMasahiro Yamada #include "../init.h" 1376466bd7SMasahiro Yamada #include "../sc64-regs.h" 14667dbcd0SMasahiro Yamada #include "../sg-regs.h" 15667dbcd0SMasahiro Yamada 16667dbcd0SMasahiro Yamada void uniphier_ld11_clk_init(void) 17667dbcd0SMasahiro Yamada { 189c5313dcSMasahiro Yamada /* if booted from a device other than USB, without stand-by MPU */ 199c5313dcSMasahiro Yamada if ((readl(SG_PINMON0) & BIT(27)) && 20*784548efSMasahiro Yamada uniphier_boot_device_raw() != BOOT_DEVICE_USB) { 21667dbcd0SMasahiro Yamada writel(1, SG_ETPHYPSHUT); 22667dbcd0SMasahiro Yamada writel(1, SG_ETPHYCNT); 23667dbcd0SMasahiro Yamada 24667dbcd0SMasahiro Yamada udelay(1); /* wait for regulator level 1.1V -> 2.5V */ 25667dbcd0SMasahiro Yamada 26667dbcd0SMasahiro Yamada writel(3, SG_ETPHYCNT); 27667dbcd0SMasahiro Yamada writel(3, SG_ETPHYPSHUT); 28667dbcd0SMasahiro Yamada writel(7, SG_ETPHYCNT); 29667dbcd0SMasahiro Yamada } 3076466bd7SMasahiro Yamada 3176466bd7SMasahiro Yamada #ifdef CONFIG_USB_EHCI 3276466bd7SMasahiro Yamada { 3376466bd7SMasahiro Yamada /* FIXME: the current clk driver can not handle parents */ 3476466bd7SMasahiro Yamada u32 tmp; 3576466bd7SMasahiro Yamada tmp = readl(SC_CLKCTRL4); 3676466bd7SMasahiro Yamada tmp |= SC_CLKCTRL4_MIO | SC_CLKCTRL4_STDMAC; 3776466bd7SMasahiro Yamada writel(tmp, SC_CLKCTRL4); 3876466bd7SMasahiro Yamada } 3976466bd7SMasahiro Yamada #endif 40667dbcd0SMasahiro Yamada } 41