Reset i2c slave devices during init on mpc5xxx cpus

Reset any i2c devices that may have been interrupted during a system reset.
Normally this would be accomplished by clocking the line until SCL and SDA
are released and then sending a start condtiion (From an Atmel datasheet).
There is no direct access to the i2c pins so instead create start commands
through the i2c interface.  Send a start command then delay for the SDA Hold
time, repeat this by disabling/enabling the bus a total of 9 times.

Signed-off-by: Eric Millbrandt <emillbrandt@dekaresearch.com>
This commit is contained in:
Eric Millbrandt
2009-09-03 08:09:44 -05:00
committed by Heiko Schocher
parent 9f23ca42b3
commit 5da71efa18
3 changed files with 57 additions and 0 deletions

View File

@@ -110,6 +110,7 @@
#define CONFIG_SYS_I2C_MODULE 2 /* Select I2C module #1 or #2 */
#define CONFIG_SYS_I2C_SPEED 100000 /* 100 kHz */
#define CONFIG_SYS_I2C_SLAVE 0x7F
#define CONFIG_SYS_I2C_INIT_MPC5XXX /* Reset devices on i2c bus */
/*
* EEPROM CAT24WC32 configuration