[U-Boot] [PATCH v3 3/4] rockchip: veyron: Set vcc33_sd regulator value

Carlo Caione carlo at caione.org
Mon Jun 11 19:00:50 UTC 2018


From: Carlo Caione <carlo at endlessm.com>

On the veyron board the vcc33_sd regulator is used as vmmc-supply for
the SD card. This regulator is powered in the MMC core during power on
but its value is never actually set.

In the veyron platform the reset value for the LDO output is 1.8V while
the standard (min and max) value for this regulator defined in the DTS
is 3.3V. When the MMC core enable the regulator without setting its
value, the output is automatically set to 1.8V instead of 3.3V.

With this patch we preemptively set the value to 3.3V.

Signed-off-by: Carlo Caione <carlo at endlessm.com>
Reviewed-by: Simon Glass <sjg at chromium.org>
Reviewed-by: Philipp Tomsich <philipp.tomsich at theobroma-systems.com>
Acked-by: Philipp Tomsich <philipp.tomsich at theobroma-systems.com>
---
 arch/arm/mach-rockchip/rk3288-board.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/arch/arm/mach-rockchip/rk3288-board.c b/arch/arm/mach-rockchip/rk3288-board.c
index bf24d8e074..0e83c0a947 100644
--- a/arch/arm/mach-rockchip/rk3288-board.c
+++ b/arch/arm/mach-rockchip/rk3288-board.c
@@ -122,6 +122,16 @@ static int veyron_init(void)
 	if (IS_ERR_VALUE(ret))
 		return ret;
 
+	ret = regulator_get_by_platname("vcc33_sd", &dev);
+	if (ret) {
+		debug("Cannot get regulator name\n");
+		return ret;
+	}
+
+	ret = regulator_set_value(dev, 3300000);
+	if (ret)
+		return ret;
+
 	ret = regulators_enable_boot_on(false);
 	if (ret) {
 		debug("%s: Cannot enable boot on regulators\n", __func__);
-- 
2.17.1



More information about the U-Boot mailing list