soc/mediatek/mt8195: Disable UFS reference clock
UFS reference clock (refclk) is enabled by default, which will cause the UFSHCI to hold the SPM signal and lead to suspend failure. Since UFS kernel driver is not built-in, disable refclk in coreboot stage. Change UFSHCI base register to 0x11270000. Signed-off-by: Yidi Lin <yidi.lin@mediatek.com> Change-Id: I1386e59f802a9e3c938a7e8dbeea547fbcb02709 Reviewed-on: https://review.coreboot.org/c/coreboot/+/54011 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Yu-Ping Wu <yupingso@google.com>
This commit is contained in:
parent
9a05601341
commit
be8621d785
3 changed files with 4 additions and 1 deletions
|
@ -47,6 +47,7 @@ ramstage-$(CONFIG_SPI_FLASH) += ../common/spi.c spi.c
|
||||||
ramstage-y += soc.c
|
ramstage-y += soc.c
|
||||||
ramstage-y += ../common/timer.c timer.c
|
ramstage-y += ../common/timer.c timer.c
|
||||||
ramstage-y += ../common/uart.c
|
ramstage-y += ../common/uart.c
|
||||||
|
ramstage-y += ../common/ufs.c
|
||||||
ramstage-y += ../common/usb.c usb.c
|
ramstage-y += ../common/usb.c usb.c
|
||||||
ramstage-y += ../common/wdt.c
|
ramstage-y += ../common/wdt.c
|
||||||
ramstage-y += mt6360.c
|
ramstage-y += mt6360.c
|
||||||
|
|
|
@ -61,6 +61,7 @@ enum {
|
||||||
SPIS1_BASE = IO_PHYS + 0x0101E000,
|
SPIS1_BASE = IO_PHYS + 0x0101E000,
|
||||||
SSUSB_IPPC_BASE = IO_PHYS + 0x01203E00,
|
SSUSB_IPPC_BASE = IO_PHYS + 0x01203E00,
|
||||||
MSDC0_BASE = IO_PHYS + 0x01230000,
|
MSDC0_BASE = IO_PHYS + 0x01230000,
|
||||||
|
UFSHCI_BASE = IO_PHYS + 0x01270000,
|
||||||
SFLASH_REG_BASE = IO_PHYS + 0x0132C000,
|
SFLASH_REG_BASE = IO_PHYS + 0x0132C000,
|
||||||
EFUSEC_BASE = IO_PHYS + 0x01C10000,
|
EFUSEC_BASE = IO_PHYS + 0x01C10000,
|
||||||
MIPITX_BASE = IO_PHYS + 0x01C80000,
|
MIPITX_BASE = IO_PHYS + 0x01C80000,
|
||||||
|
@ -73,7 +74,6 @@ enum {
|
||||||
IOCFG_RB_BASE = IO_PHYS + 0x01EB0000,
|
IOCFG_RB_BASE = IO_PHYS + 0x01EB0000,
|
||||||
IOCFG_TL_BASE = IO_PHYS + 0x01F40000,
|
IOCFG_TL_BASE = IO_PHYS + 0x01F40000,
|
||||||
MSDC0_TOP_BASE = IO_PHYS + 0x01F50000,
|
MSDC0_TOP_BASE = IO_PHYS + 0x01F50000,
|
||||||
UFSHCI_BASE = IO_PHYS + 0x01FA0000,
|
|
||||||
DISP_OVL0_BASE = IO_PHYS + 0x0C000000,
|
DISP_OVL0_BASE = IO_PHYS + 0x0C000000,
|
||||||
DISP_RDMA0_BASE = IO_PHYS + 0x0C002000,
|
DISP_RDMA0_BASE = IO_PHYS + 0x0C002000,
|
||||||
DISP_COLOR0_BASE = IO_PHYS + 0x0C003000,
|
DISP_COLOR0_BASE = IO_PHYS + 0x0C003000,
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
#include <device/device.h>
|
#include <device/device.h>
|
||||||
#include <soc/emi.h>
|
#include <soc/emi.h>
|
||||||
#include <soc/mmu_operations.h>
|
#include <soc/mmu_operations.h>
|
||||||
|
#include <soc/ufs.h>
|
||||||
#include <symbols.h>
|
#include <symbols.h>
|
||||||
|
|
||||||
static void soc_read_resources(struct device *dev)
|
static void soc_read_resources(struct device *dev)
|
||||||
|
@ -13,6 +14,7 @@ static void soc_read_resources(struct device *dev)
|
||||||
static void soc_init(struct device *dev)
|
static void soc_init(struct device *dev)
|
||||||
{
|
{
|
||||||
mtk_mmu_disable_l2c_sram();
|
mtk_mmu_disable_l2c_sram();
|
||||||
|
ufs_disable_refclk();
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct device_operations soc_ops = {
|
static struct device_operations soc_ops = {
|
||||||
|
|
Loading…
Reference in a new issue