[U-Boot] [PATCH v3 2/2] fsl_i2c: add workaround for the erratum I2C A004447

Heiko Schocher hs at denx.de
Tue Aug 20 11:20:51 CEST 2013


Hello Chunhe,

Am 16.08.2013 09:10, schrieb Chunhe Lan:
> This workaround is for the erratum I2C A004447. Device reference
> manual provides a scheme that allows the I2C master controller
> to generate nine SCL pulses, which enable an I2C slave device
> that held SDA low to release SDA. However, due to this erratum,
> this scheme no longer works. In addition, when I2C is used as
> a source of the PBL, the state machine is not able to recover.
>
> At the same time, delete the reduplicative definition of SVR_VER
> and SVR_REV. The SVR_REV is the low 8 bits rather than the low 16
> bits of svr. And we use the CONFIG_SYS_FSL_A004447_SVR_REV macro
> instead of hard-code value 0x10, 0x11 and 0x20.
>
> The CONFIG_SYS_FSL_A004447_SVR_REV = 0x00 represents that one
> version of platform has this I2C errata. So enable this errata
> by IS_SVR_REV(svr, maj, min) function.
>
> Signed-off-by: Zhao Chenhui<chenhui.zhao at freescale.com>
> Signed-off-by: Chunhe Lan<Chunhe.Lan at freescale.com>
> Cc: Scott Wood<scottwood at freescale.com>
> Cc: Heiko Schocher<hs at denx.de>
> ---
> Changes for v2:
> 	- Caller directly uses CONFIG_SYS_FSL_A004447_SVR_REV
> 	  to judge whether SVR_REV is less than or equal
> 	  CONFIG_SYS_FSL_A004447_SVR_REV
> 	- SVR_REV is the low 8 bits rather than the low 16
> 	  bits of svr
> Changes for v3:
> 	- Rework codes for the newest mainline
>
>   arch/powerpc/cpu/mpc85xx/cmd_errata.c     |    5 +++++
>   arch/powerpc/include/asm/config_mpc85xx.h |   16 ++++++++++++++++
>   arch/powerpc/include/asm/fsl_i2c.h        |    1 +
>   arch/powerpc/include/asm/processor.h      |    5 +----
>   drivers/i2c/fsl_i2c.c                     |   14 +++++++++++---
>   5 files changed, 34 insertions(+), 7 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