From: Priyanka Jain Date: Thu, 11 Oct 2018 05:11:23 +0000 (+0000) Subject: board/freescale/vid: Add correction for ltc3882 read error. X-Git-Tag: v2019.01-rc2~11^2~4 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=df182a42a45a1db76a4e0a3346947e31f70dc26a;p=oweals%2Fu-boot.git board/freescale/vid: Add correction for ltc3882 read error. Voltage regulator LTC3882 device has 0.5% voltage read error. So for NXP SoC devices this generally equates to 2mV Update set_voltage_to_LTC for below: 1.Add coorection of upto 2mV in voltage comparison to take care of voltage read error of voltage regulator 2.Add loop max count kept as 100 to avoid infinte loop. Signed-off-by: Priyanka Jain Reviewed-by: York Sun --- diff --git a/board/freescale/common/vid.c b/board/freescale/common/vid.c index eb5cf88dd2..db158cb2c2 100644 --- a/board/freescale/common/vid.c +++ b/board/freescale/common/vid.c @@ -318,6 +318,7 @@ static int set_voltage_to_IR(int i2caddress, int vdd) static int set_voltage_to_LTC(int i2caddress, int vdd) { int ret, vdd_last, vdd_target = vdd; + int count = 100, temp = 0; /* Scale up to the LTC resolution is 1/4096V */ vdd = (vdd * 4096) / 1000; @@ -343,7 +344,9 @@ static int set_voltage_to_LTC(int i2caddress, int vdd) printf("VID: Couldn't read sensor abort VID adjust\n"); return -1; } - } while (vdd_last != vdd_target); + count--; + temp = vdd_last - vdd_target; + } while ((abs(temp) > 2) && (count > 0)); return vdd_last; }