[U-Boot] i2c: mxc: refactor i2c driver and support dm

Jagan Teki jagan at openedev.com
Tue Oct 18 13:30:25 CEST 2016


On Mon, Oct 17, 2016 at 4:47 PM, Jagan Teki <jagan at 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 at 021a0000
> Bus 1:  i2c at 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 at 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 at 02100000
 eth         [ + ]              |-- FEC
 mmc         [ + ]            |-- usdhc at 02190000
 i2c         [   ]               |-- i2c at 021a0000
 i2c         [   ]               |-- i2c at 021a4000
 i2c         [   ]            `-- i2c at 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!
-- 
Jagan Teki
Free Software Engineer | www.openedev.com
U-Boot, Linux | Upstream Maintainer
Hyderabad, India.


More information about the U-Boot mailing list