The following commit:

dm: i2c: Make i2c_get_chip_for_busnum() fail if the chip is not detected
i2c_get_chip_for_busnum() really should check the presence of the chip on
    the bus. Most of the users of this function assume that this is done.

... causes a boot failure on NVIDIA Jetson TX2:

U-Boot 2019.01-rc1-00220-g7ff485c68b7e (Dec 10 2018 - 11:20:41 -0700)

TEGRA186
Model: NVIDIA P2771-0000-500
DRAM:  7.8 GiB
tegra_ivc_read_get_next_frame() timed out (-12)
tegra_board_init: Cannot find MAX77620 I2C chip
initcall sequence 00000000fffa95a8 failed at call 0000000080083480 (err=-110)
### ERROR ### Please RESET the board ###

This may be due to the fact the bus in question is implemented by RPC to a separate CPU, and that mechanism hasn't been used with probing before. In general though, there's not guarantee that probing will work even on a local/native I2C bus, since different chips don't support all probe methods (see i2c-detect in Linux, which supports various different probing methods due to this), so I'm rather surprised this change was implemented. Is it really necessary? I believe we should revert it.

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

Reply via email to