Files
build/patch/u-boot/v2024.10/board_longanpi-3h/0007-lpi3h-drivers-emmc-add-emmc-boot-support.patch
2024-12-09 14:12:16 +01:00

64 lines
1.7 KiB
Diff

From 6b011e0bf404a7ebed07c535213ae54035544171 Mon Sep 17 00:00:00 2001
From: Tiandi Zhou <zhoutiandi@sipeed.com>
Date: Fri, 19 Jan 2024 11:57:49 +0800
Subject: [PATCH 7/8] lpi3h: drivers: emmc: add emmc boot support
---
arch/arm/dts/sun50i-h618-longanpi-3h.dts | 1 -
drivers/mmc/sunxi_mmc.c | 11 ++++++++++-
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/arch/arm/dts/sun50i-h618-longanpi-3h.dts b/arch/arm/dts/sun50i-h618-longanpi-3h.dts
index b0ff07ce72..4965cbd345 100644
--- a/arch/arm/dts/sun50i-h618-longanpi-3h.dts
+++ b/arch/arm/dts/sun50i-h618-longanpi-3h.dts
@@ -100,7 +100,6 @@
cap-mmc-hw-reset;
mmc-ddr-1_8v;
mmc-hs200-1_8v;
- mmc-hs400-1_8v;
status = "okay";
};
diff --git a/drivers/mmc/sunxi_mmc.c b/drivers/mmc/sunxi_mmc.c
index 4d6351bf27..074b08ac5d 100644
--- a/drivers/mmc/sunxi_mmc.c
+++ b/drivers/mmc/sunxi_mmc.c
@@ -540,6 +540,10 @@ struct mmc *sunxi_mmc_init(int sdc_no)
cfg->f_min = 400000;
cfg->f_max = 52000000;
+ if(sdc_no==2) {
+ cfg->f_max = 20000000;
+ }
+
if (mmc_resource_init(sdc_no) != 0)
return NULL;
@@ -636,9 +640,10 @@ static int sunxi_mmc_probe(struct udevice *dev)
struct mmc_config *cfg = &plat->cfg;
struct ofnode_phandle_args args;
u32 *ccu_reg;
- int ret;
+ int bus_width, ret;
cfg->name = dev->name;
+ bus_width = dev_read_u32_default(dev, "bus-width", 1);
cfg->voltages = MMC_VDD_32_33 | MMC_VDD_33_34;
cfg->host_caps = MMC_MODE_HS_52MHz | MMC_MODE_HS;
@@ -651,6 +656,10 @@ static int sunxi_mmc_probe(struct udevice *dev)
if (ret)
return ret;
+ if (bus_width == 8) {
+ cfg->f_max = 20000000;
+ }
+
priv->reg = dev_read_addr_ptr(dev);
/* We don't have a sunxi clock driver so find the clock address here */
--
2.34.1