From 68163e8f4974545a33de236139b5995883df7a17 Mon Sep 17 00:00:00 2001 From: Amaury Pouly Date: Mon, 10 Feb 2014 22:34:18 +0100 Subject: imx233: don"t be smart when waiting for voltage stabilisation Unfortunately the hardware is not very helpful when changing voltage: in DCDC mode we have the DC_OK_IRQ but in linear regulator mode, the only available bit doesn't work when lowering the voltages. At the moment, simply sleep for a little while before a better solution is found. Change-Id: I89335873e9e42e5c6e9131f40db7839b008c021c --- firmware/target/arm/imx233/power-imx233.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) (limited to 'firmware/target/arm/imx233') diff --git a/firmware/target/arm/imx233/power-imx233.c b/firmware/target/arm/imx233/power-imx233.c index 9ad8734823..0a4482fa08 100644 --- a/firmware/target/arm/imx233/power-imx233.c +++ b/firmware/target/arm/imx233/power-imx233.c @@ -383,13 +383,7 @@ void imx233_power_set_regulator(enum imx233_regulator_t reg, unsigned value_mv, * Otherwise it is unreliable (doesn't work when lowering voltage on linregs) * It usually takes between 0.5ms and 2.5ms */ #if IMX233_SUBTARGET >= 3700 - if(!BF_RD(POWER_5VCTRL, ENABLE_DCDC)) - panicf("regulator %d: wait for voltage stabilize in linreg mode !", reg); - unsigned timeout = current_tick + (HZ * 20) / 1000; - while(!BF_RD(POWER_CTRL, DC_OK_IRQ) || !TIME_AFTER(current_tick, timeout)) - yield(); - if(!BF_RD(POWER_CTRL, DC_OK_IRQ)) - panicf("regulator %d: failed to stabilize", reg); + sleep(1); #else if(!BF_RD(POWER_5VCTRL, EN_DCDC1) || !BF_RD(POWER_5VCTRL, EN_DCDC2)) panicf("regulator %d: wait for voltage stabilize in linreg mode !", reg); -- cgit v1.2.3