1*83d290c5STom Rini // SPDX-License-Identifier: GPL-2.0+ 2667dbcd0SMasahiro Yamada /* 3667dbcd0SMasahiro Yamada * Copyright (C) 2016 Socionext Inc. 4667dbcd0SMasahiro Yamada */ 5667dbcd0SMasahiro Yamada 6667dbcd0SMasahiro Yamada #include <common.h> 79c5313dcSMasahiro Yamada #include <spl.h> 8667dbcd0SMasahiro Yamada #include <linux/bitops.h> 9667dbcd0SMasahiro Yamada #include <linux/io.h> 10667dbcd0SMasahiro Yamada 11667dbcd0SMasahiro Yamada #include "../init.h" 1276466bd7SMasahiro Yamada #include "../sc64-regs.h" 13667dbcd0SMasahiro Yamada #include "../sg-regs.h" 14667dbcd0SMasahiro Yamada 15c21f5854SMasahiro Yamada #define SDCTRL_EMMC_HW_RESET 0x59810280 16c21f5854SMasahiro Yamada uniphier_ld11_clk_init(void)17667dbcd0SMasahiro Yamadavoid uniphier_ld11_clk_init(void) 18667dbcd0SMasahiro Yamada { 199c5313dcSMasahiro Yamada /* if booted from a device other than USB, without stand-by MPU */ 209c5313dcSMasahiro Yamada if ((readl(SG_PINMON0) & BIT(27)) && 21784548efSMasahiro Yamada uniphier_boot_device_raw() != BOOT_DEVICE_USB) { 22667dbcd0SMasahiro Yamada writel(1, SG_ETPHYPSHUT); 23667dbcd0SMasahiro Yamada writel(1, SG_ETPHYCNT); 24667dbcd0SMasahiro Yamada 25667dbcd0SMasahiro Yamada udelay(1); /* wait for regulator level 1.1V -> 2.5V */ 26667dbcd0SMasahiro Yamada 27667dbcd0SMasahiro Yamada writel(3, SG_ETPHYCNT); 28667dbcd0SMasahiro Yamada writel(3, SG_ETPHYPSHUT); 29667dbcd0SMasahiro Yamada writel(7, SG_ETPHYCNT); 30667dbcd0SMasahiro Yamada } 3176466bd7SMasahiro Yamada 32c21f5854SMasahiro Yamada /* TODO: use "mmc-pwrseq-emmc" */ 33c21f5854SMasahiro Yamada writel(1, SDCTRL_EMMC_HW_RESET); 34c21f5854SMasahiro Yamada 358850c5d5STom Rini #ifdef CONFIG_USB_EHCI_HCD 3676466bd7SMasahiro Yamada { 37395e2142SMasahiro Yamada int ch; 38395e2142SMasahiro Yamada 39395e2142SMasahiro Yamada for (ch = 0; ch < 3; ch++) { 40395e2142SMasahiro Yamada void __iomem *phyctrl = (void __iomem *)SG_USBPHYCTRL; 41395e2142SMasahiro Yamada 42395e2142SMasahiro Yamada writel(0x82280600, phyctrl + 8 * ch); 43395e2142SMasahiro Yamada writel(0x00000106, phyctrl + 8 * ch + 4); 44395e2142SMasahiro Yamada } 4576466bd7SMasahiro Yamada } 4676466bd7SMasahiro Yamada #endif 47667dbcd0SMasahiro Yamada } 48