[U-Boot] [PATCH v2 0/7] Align U-Boot I2C DM bus ID handling with Linux

Heiko Schocher hs at denx.de
Fri Feb 8 09:57:57 UTC 2019


Hello Michael,

Am 31.01.2019 um 16:30 schrieb Michal Simek:
> U-Boot with I2C_DM enabled is not capable to list i2c busses connected
> to i2c mux. For getting this work there is a need to find out highest
> alias ID and use this uniq number for new buses connected to I2C mux.
> This series is making this happen.
> 
> There is only one missing piece which is that also i2c controllers which
> are not listed in DT are not using this feature.
> 
> Removing setting up aliases from i2c mux code and unifying it in the
> same code ensures that numbering schema is proper if no alias is
> specified.
> 
> ZynqMP> i2c bus
> Bus 0:	i2c at ff020000
>     20: gpio at 20, offset len 1, flags 0
>     21: gpio at 21, offset len 1, flags 0
>     75: i2c-mux at 75, offset len 1, flags 0
> Bus 1:	i2c at ff020000->i2c-mux at 75->i2c at 0
> Bus 2:	i2c at ff020000->i2c-mux at 75->i2c at 1
> Bus 3:	i2c at ff020000->i2c-mux at 75->i2c at 2
> Bus 4:	i2c at ff030000  (active 4)
>     74: i2c-mux at 74, offset len 1, flags 0
>     75: i2c-mux at 75, offset len 1, flags 0
> Bus 5:	i2c at ff030000->i2c-mux at 74->i2c at 0  (active 5)
>     54: eeprom at 54, offset len 1, flags 0
> Bus 6:	i2c at ff030000->i2c-mux at 74->i2c at 1
> Bus 7:	i2c at ff030000->i2c-mux at 74->i2c at 2
> Bus 8:	i2c at ff030000->i2c-mux at 74->i2c at 3
> Bus 9:	i2c at ff030000->i2c-mux at 74->i2c at 4
> Bus 10:	i2c at ff030000->i2c-mux at 75->i2c at 0
> Bus 11:	i2c at ff030000->i2c-mux at 75->i2c at 1
> Bus 12:	i2c at ff030000->i2c-mux at 75->i2c at 2
> Bus 13:	i2c at ff030000->i2c-mux at 75->i2c at 3
> Bus 14:	i2c at ff030000->i2c-mux at 75->i2c at 4
> Bus 15:	i2c at ff030000->i2c-mux at 75->i2c at 5
> Bus 16:	i2c at ff030000->i2c-mux at 75->i2c at 6
> Bus 17:	i2c at ff030000->i2c-mux at 75->i2c at 7
> 
> Thanks,
> Michal
> 
> Changes in v2:
> - Update kernel-doc binding
> - Return -1 in case of error. -1 means that the next free alias is 0.
> - New patch
> - New patch
> - Use dev_read_alias_highest_id()
> - Use uclass private data
> - Use private uclass data
> - Fix headers
> - Change patch description to focus only on bus name
> 
> Michal Simek (7):
>    dm: core: Add of_alias_get_highest_id()
>    fdt: Introduce fdtdec_get_alias_highest_id()
>    dm: core: Introduce dev_read_alias_highest_id()
>    dm: core: Add tests for dev_read_alias_highest_id()
>    i2c: dm: Record maximum id of devices before probing devices
>    i2c: Fill req_seq in i2c_post_bind()
>    i2c: mux: Generate longer i2c mux name
> 
>   drivers/core/of_access.c           | 18 ++++++++++++++
>   drivers/core/read.c                |  8 ++++++
>   drivers/i2c/i2c-uclass.c           | 50 +++++++++++++++++++++++++++++++++++---
>   drivers/i2c/muxes/i2c-mux-uclass.c | 29 +++++++++++++++++++---
>   include/dm/of_access.h             | 10 ++++++++
>   include/dm/read.h                  | 16 ++++++++++++
>   include/fdtdec.h                   | 13 ++++++++++
>   lib/fdtdec.c                       | 33 +++++++++++++++++++++++++
>   test/dm/test-fdt.c                 | 23 ++++++++++++++++++
>   9 files changed, 194 insertions(+), 6 deletions(-)
> 

I just applied your patches and triggered a build on travis:

It shows error for omap boards:

https://travis-ci.org/hsdenx/u-boot-i2c/jobs/490393822

I try to find time to look into it, but may you have time too?

Thanks!

bye,
Heiko
-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-52   Fax: +49-8142-66989-80   Email: hs at denx.de


More information about the U-Boot mailing list