i2c: Drop reference to SYS_I2C_INIT_BOARD

This is not now used by any boards, so drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
This commit is contained in:
Simon Glass 2024-08-11 08:50:40 -06:00 committed by Heiko Schocher
parent 98dfa70f84
commit 56ec7a69d8
2 changed files with 4 additions and 17 deletions

View file

@ -31,12 +31,10 @@ Notes
!!!THIS IS AN UNDOCUMENTED I2C BUS BUG, NOT A AMCC 4xx BUG!!! !!!THIS IS AN UNDOCUMENTED I2C BUS BUG, NOT A AMCC 4xx BUG!!!
This reset edge condition could possibly be present in every I2C This reset edge condition could possibly be present in every I2C
controller and device available. For boards where a I2C bus reset controller and device available.
function can be implemented a i2c_init_board() function should be
provided and enabled by #define'ing CONFIG_SYS_I2C_INIT_BOARD in your Note that this problem does not happen when using the bit-banging I2C driver
board's config file. Note that this is NOT necessary when using the (common/soft_i2c.c) as this already includes the I2C bus reset sequence.
bit-banging I2C driver (common/soft_i2c.c) as this already includes
the I2C bus reset sequence.
Many thanks to Bill Hunter for finding this serious BUG. Many thanks to Bill Hunter for finding this serious BUG.

View file

@ -107,16 +107,13 @@ DECLARE_GLOBAL_DATA_PTR;
/*----------------------------------------------------------------------- /*-----------------------------------------------------------------------
* Local functions * Local functions
*/ */
#if !defined(CONFIG_SYS_I2C_INIT_BOARD)
static void send_reset (void); static void send_reset (void);
#endif
static void send_start (void); static void send_start (void);
static void send_stop (void); static void send_stop (void);
static void send_ack (int); static void send_ack (int);
static int write_byte (uchar byte); static int write_byte (uchar byte);
static uchar read_byte (int); static uchar read_byte (int);
#if !defined(CONFIG_SYS_I2C_INIT_BOARD)
/*----------------------------------------------------------------------- /*-----------------------------------------------------------------------
* Send a reset sequence consisting of 9 clocks with the data signal high * Send a reset sequence consisting of 9 clocks with the data signal high
* to clock any confused device back into an idle state. Also send a * to clock any confused device back into an idle state. Also send a
@ -144,7 +141,6 @@ static void send_reset(void)
send_stop(); send_stop();
I2C_TRISTATE; I2C_TRISTATE;
} }
#endif
/*----------------------------------------------------------------------- /*-----------------------------------------------------------------------
* START: High -> Low on SDA while SCL is High * START: High -> Low on SDA while SCL is High
@ -277,12 +273,6 @@ static uchar read_byte(int ack)
*/ */
static void soft_i2c_init(struct i2c_adapter *adap, int speed, int slaveaddr) static void soft_i2c_init(struct i2c_adapter *adap, int speed, int slaveaddr)
{ {
#if defined(CONFIG_SYS_I2C_INIT_BOARD)
/* call board specific i2c bus reset routine before accessing the */
/* environment, which might be in a chip on that bus. For details */
/* about this problem see doc/I2C_Edge_Conditions. */
i2c_init_board();
#else
/* /*
* WARNING: Do NOT save speed in a static variable: if the * WARNING: Do NOT save speed in a static variable: if the
* I2C routines are called before RAM is initialized (to read * I2C routines are called before RAM is initialized (to read
@ -290,7 +280,6 @@ static void soft_i2c_init(struct i2c_adapter *adap, int speed, int slaveaddr)
* system will crash. * system will crash.
*/ */
send_reset (); send_reset ();
#endif
} }
/*----------------------------------------------------------------------- /*-----------------------------------------------------------------------