If the IR chip is connected to one of the channel of I2C-bus
multiplexer, Set to the default channel after accessing the IR chip.

Signed-off-by: Wenbin Song <wenbin.s...@nxp.com>
---
 board/freescale/common/vid.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/board/freescale/common/vid.c b/board/freescale/common/vid.c
index 1bd65a8..a6a132a 100644
--- a/board/freescale/common/vid.c
+++ b/board/freescale/common/vid.c
@@ -454,6 +454,9 @@ int adjust_vdd(ulong vdd_override)
 exit:
        if (re_enable)
                enable_interrupts();
+
+       i2c_multiplexer_select_vid_channel(I2C_MUX_CH_DEFAULT);
+
        return ret;
 }
 
@@ -469,7 +472,7 @@ static int print_vdd(void)
        ret = find_ir_chip_on_i2c();
        if (ret < 0) {
                printf("VID: Could not find voltage regulator on I2C.\n");
-               return -1;
+               goto exit;
        } else {
                i2caddress = ret;
                debug("VID: IR Chip found on I2C address 0x%02x\n", i2caddress);
@@ -481,11 +484,14 @@ static int print_vdd(void)
        vdd_last = read_voltage(i2caddress);
        if (vdd_last < 0) {
                printf("VID: Couldn't read sensor abort VID adjustment\n");
-               return -1;
+               goto exit;
        }
        printf("VID: Core voltage is at %d mV\n", vdd_last);
+exit:
+       i2c_multiplexer_select_vid_channel(I2C_MUX_CH_DEFAULT);
+
+       return ret < 0 ? -1 : 0;
 
-       return 0;
 }
 
 static int do_vdd_override(cmd_tbl_t *cmdtp,
-- 
2.1.0.27.g96db324

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to