Message ID | 20180611190051.6897-4-carlo@caione.org |
---|---|
State | Accepted |
Delegated to: | Philipp Tomsich |
Headers | show |
Series | rk3288: veyron: Enable SDMMC when booting from SPI | expand |
> From: Carlo Caione <carlo@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@endlessm.com> > Reviewed-by: Simon Glass <sjg@chromium.org> > Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> > Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> > --- > arch/arm/mach-rockchip/rk3288-board.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > Applied to u-boot-rockchip, thanks!
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__);