[U-Boot] [PATCH v2] I2C: OMAP: detect more devices when probing an i2c bus

Heiko Schocher hs at denx.de
Thu Apr 14 08:38:35 CEST 2011


Hello Nick,

Nick Thompson wrote:
> The omap24xx driver only seems to support devices that have a single subaddress
> byte. With these types of devices, the first access in a bus transaction is
> usually a write (writes the subaddress) followed by either a read or write to
> access the devices registers.
> 
> Many such devices will respond to a read as the first access, but there are at
> least some that will NACK such a read. (e.g. ADV7180.)
> 
> The probe function attempts to detect a devices ACK to a read access only and
> fails to find devices that NACK a read.
> 
> This commit modifies the probe function to start a write instead. This detects
> devices that respond to reads (since they must also respond to writes) as well
> as those that only respond to writes. The bus is immediately set to idle after a
> (N)ACK avoiding actually writing anything to the device.
> 
> Signed-off-by: Nick Thompson <nick.thompson at ge.com>
> ---
> Tested on OMAP3530 with an ADV7180 video ADC.
> 
> Detection of a device takes the same time as failing to find a device, so the
> probe is slightly faster.
> 
> V2 Changes:
> Removed two checkpatch errors (space prohibited between function name and open
> 	parenthesis)
> 
>  drivers/i2c/omap24xx_i2c.c |   42 +++++++++++-------------------------------
>  1 files changed, 11 insertions(+), 31 deletions(-)

Applied to u-boot-i2c.git, thanks.

bye,
Heiko
-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany


More information about the U-Boot mailing list