[U-Boot] [PATCH v2 11/40] i2c: Initialize the correct bus
Heiko Schocher
hs at denx.de
Wed Aug 27 06:52:16 CEST 2014
Hello Thierry,
Am 26.08.2014 17:33, schrieb Thierry Reding:
> From: Thierry Reding<treding at nvidia.com>
>
> i2c_bus_init() takes a bus number but relies on the currently selected
> bus to determine which adapter to initialize. Make the function use the
> bus passed in as parameter rather than the currently selected bus. While
> at it, keep a pointer to the specified bus to avoid having to look it up
> repeatedly.
>
> Signed-off-by: Thierry Reding<treding at nvidia.com>
> ---
> drivers/i2c/i2c_core.c | 15 +++++++++------
> 1 file changed, 9 insertions(+), 6 deletions(-)
Why you could not use the current CONFIG_SYS_I2C API and init a bus with
i2c_set_bus_num()?
i2c_init_bus() is deprecated and should be removed if all i2c drivers are
ported to the CONFIG_SYS_I2C framework ...
bye,
Heiko
> diff --git a/drivers/i2c/i2c_core.c b/drivers/i2c/i2c_core.c
> index 18d6736601c1..cca455bc9c63 100644
> --- a/drivers/i2c/i2c_core.c
> +++ b/drivers/i2c/i2c_core.c
> @@ -214,17 +214,20 @@ static int i2c_mux_disconnet_all(void)
> * Initializes one bus. Will initialize the parent adapter. No current bus
> * changes, no mux (if any) setup.
> */
> -static void i2c_init_bus(unsigned int bus_no, int speed, int slaveaddr)
> +static void i2c_init_bus(unsigned int bus, int speed, int slaveaddr)
> {
> - if (bus_no>= CONFIG_SYS_NUM_I2C_BUSES)
> + struct i2c_adapter *adapter;
> +
> + if (bus>= CONFIG_SYS_NUM_I2C_BUSES)
> return;
>
> - I2C_ADAP->init(I2C_ADAP, speed, slaveaddr);
> + adapter = i2c_get_adapter(I2C_ADAPTER(bus));
> + adapter->init(adapter, speed, slaveaddr);
>
> if (gd->flags& GD_FLG_RELOC) {
> - I2C_ADAP->init_done = 1;
> - I2C_ADAP->speed = speed;
> - I2C_ADAP->slaveaddr = slaveaddr;
> + adapter->init_done = 1;
> + adapter->speed = speed;
> + adapter->slaveaddr = slaveaddr;
> }
> }
>
--
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