
On Mon, Oct 17, 2016 at 4:47 PM, Jagan Teki jagan@openedev.com wrote:
Hi Peng/all,
Observed an issue while setting the bus on mxc_i2c driver addr = dev_get_addr(bus); is getting failed to get invalid address.
Commit details: "i2c: mxc: refactor i2c driver and support dm" (sha1: 71204e95ce13228a0c742cce137c3238f64581d8)
Log: icorem6qdl> i2c bus Bus 0: i2c@021a0000 Bus 1: i2c@021a4000 icorem6qdl> i2c dev 0 Setting bus to 0 cmd_i2c_set_bus_num: Trying bus 0 mxc_i2c_probe 0. mxc_i2c_probe dev_get_addr_index: OF_TRANSLATE dev_get_addr_index: i2c@021a0000 - 0xffffffff cmd_i2c_set_bus_num: No bus 0 Failure changing bus number (-19)
Seen like some issue on my dts or fdt_get_patch (lib/libfdt/fdt_ro.c) it is returning FDT_ERR_BADSTRUCTURE
U-Boot> dm tree ... simple_bus [ + ] `-- aips-bus@02100000 eth [ + ] |-- FEC mmc [ + ] |-- usdhc@02190000 i2c [ ] |-- i2c@021a0000 i2c [ ] |-- i2c@021a4000 i2c [ ] `-- i2c@021a8000
So when I uncomment the "phy-mode" on the dts file [1] I was able to get the proper i2c addr. Couldn't find why the phy-mode node as a corrupt block based on comment from include/libfdt.h about FDT_ERR_BADSTRUCTURE.
Simon, any help?
[1] https://patchwork.ozlabs.org/patch/678825/
thanks!