Message ID | 20180607123918.15245-4-carlo@caione.org |
---|---|
State | Superseded |
Headers | show |
Series | rk3288: veyron: Enable SDMMC when booting from SPI | expand |
On 7 June 2018 at 04:39, Carlo Caione <carlo@caione.org> wrote: > 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> > --- > arch/arm/mach-rockchip/rk3288-board.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) Reviewed-by: Simon Glass <sjg@chromium.org>
diff --git a/arch/arm/mach-rockchip/rk3288-board.c b/arch/arm/mach-rockchip/rk3288-board.c index 7499201b73..2e95249bbe 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 set 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__);