]> git.ipfire.org Git - thirdparty/u-boot.git/commit
board: ge: bx50v3: fix initialization of i2c bus0
authorDan Cimpoca <dan.I.cimpoca@ge.com>
Mon, 15 Oct 2018 10:09:56 +0000 (12:09 +0200)
committerStefano Babic <sbabic@denx.de>
Mon, 22 Oct 2018 12:32:40 +0000 (14:32 +0200)
commitf767a4e82e37a41414764e619607e424c6d3bc71
treec3556d2ed06a5a30c4d43bd8162a4091394de379
parent9aa7c157edfc08ce6ee70d8e44a7f162a657a329
board: ge: bx50v3: fix initialization of i2c bus0

I2C bus 0 was not initialized correctly. There is an offset between i2c
index and the structure number of pad info. So i2c bus 0 can be in an
inconsistent state.

This problem become visible on B{4,6}50v3 with the CPUC HW watchdog enabled.
Sometimes when the CPUC HW watchdog interrupted the boot process, U-Boot was
not able to read VPD from I2C/EEPROM and the system failed to boot up again,
because a device connected to that bus was stuck in data transfer state (from
previous boot attempt) and there was no method to recover (struct
mxc_i2c_bus::idle_bus_fn was not set) courtesy of incorrect initialization.

Signed-off-by: Dan Cimpoca <dan.I.cimpoca@ge.com>
Signed-off-by: Fabien Lahoudere <fabien.lahoudere@collabora.com>
board/ge/bx50v3/bx50v3.c