summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorDirk Eibach <dirk.eibach@gdsys.cc>2014-10-29 15:56:44 +0100
committerHeiko Schocher <hs@denx.de>2014-11-10 06:44:30 +0100
commitb97cd6814ec08be56225975a050ee486bfa7c13a (patch)
treed62bf2d70db726db65020427cbcb793c5bd2f5aa /arch
parent7e78f7ad7f7f666598bc2ff115ea7a35f8e059f1 (diff)
downloadblackbird-obmc-uboot-b97cd6814ec08be56225975a050ee486bfa7c13a.tar.gz
blackbird-obmc-uboot-b97cd6814ec08be56225975a050ee486bfa7c13a.zip
ppc4xx: Handle i2c stuck on combined xfer
ppc4xx i2c master gets stuck on errors while repeated start is active. Can be easily reproduced by "i2c md" on an unpopulated i2c address. There is not stop condition given, scl remains pulled low. The only way out seems to be doing a stop manually and then a soft reset. Signed-off-by: Dirk Eibach <dirk.eibach@gdsys.cc> Reviewed-by: Stefan Roese <sr@denx.de>
Diffstat (limited to 'arch')
-rw-r--r--arch/powerpc/include/asm/ppc4xx-i2c.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/powerpc/include/asm/ppc4xx-i2c.h b/arch/powerpc/include/asm/ppc4xx-i2c.h
index 09189cf19b..df97f175b3 100644
--- a/arch/powerpc/include/asm/ppc4xx-i2c.h
+++ b/arch/powerpc/include/asm/ppc4xx-i2c.h
@@ -72,6 +72,8 @@ struct ppc4xx_i2c {
#define IIC_EXTSTS_XFRA 0x01
#define IIC_EXTSTS_ICT 0x02
#define IIC_EXTSTS_LA 0x04
+#define IIC_EXTSTS_BCS_MASK 0x70
+#define IIC_EXTSTS_BCS_FREE 0x40
/* XTCNTLSS Register Bit definition */
#define IIC_XTCNTLSS_SRST 0x01
OpenPOWER on IntegriCloud