[U-Boot] [PATCH V5] ARM: OMAP: I2C: New read, write and probe functions
Heiko Schocher
hs at denx.de
Sun Jun 2 07:20:50 CEST 2013
Hello Lubomir,
Am 01.06.2013 18:44, schrieb Lubomir Popov:
> New i2c_read, i2c_write and i2c_probe functions, tested on OMAP4
> (4430/60/70), OMAP5 (5430) and AM335X (3359); should work on older
> OMAPs and derivatives as well. The only anticipated exception would
> be the OMAP2420, which shall require driver modification.
> - Rewritten i2c_read to operate correctly with all types of chips
> (old function could not read consistent data from some I2C slaves).
> - Optimised i2c_write.
> - New i2c_probe, performs write access vs read. The old probe could
> hang the system under certain conditions (e.g. unconfigured pads).
> - The read/write/probe functions try to identify unconfigured bus.
> - Status functions now read irqstatus_raw as per TRM guidelines
> (except for OMAP243X and OMAP34XX).
> - Driver now supports up to I2C5 (OMAP5).
>
> Signed-off-by: Lubomir Popov <lpopov at mm-sol.com>
> ---
> V5 changes:
> - Replaced some printf() with puts().
> - Minor formatting touches, checkpatch-clean.
> V4 changes:
> - New i2c_probe is built unconditionally, old code is removed.
> CONFIG_I2C_PROBE_WRITE is no longer needed.
> - Added a small delay to work around breakage in AM335X SPL.
> - Some whitespace and general formatting cleanup.
> V3 changes:
> - Removed old functions and conditional compilation. New functions
> are now built unconditionally for all SoCs using this driver. The
> only chip that should break is the OMAP2420 dinosaur.
> - Interrupts are enabled for OMAP243X and OMAP34XX only (where we
> don't have an irqstatus_raw register).
> V2 changes:
> - Probe tries to identify misconfigured pads as well.
> - Status is retrieved from irqstatus_raw rather than from stat.
> - Some minor style & format changes.
>
> drivers/i2c/omap24xx_i2c.c | 490 +++++++++++++++++++++++++++------------------
> 1 file changed, 299 insertions(+), 191 deletions(-)
Tested on 3 arm335x based boards, which one uses i2c in SPL
code for getting ram parameters, so:
Tested-by: Heiko Schocher <hs at denx.de>
Just one comment:
Your patch has 9 checkpatch warnings which are all lines
(printf strings) over 80 chars ... some with lines > 110
characters ... I know, tom gave you a OK for this ... I am
also unhappy with splitting a printf-string over 2 or more lines ...
but we have this 80 characters rule ... Wolfgang, what do you
think? Should we loosen this rule for printf-strings?
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