[U-Boot] [PATCH 4/9 v3] 83xx, i2c: add mux support for fsl_i2c

Heiko Schocher hs at denx.de
Wed Feb 25 09:00:39 CET 2009


Hello Kim,

Kim Phillips wrote:
> On Tue, 24 Feb 2009 08:53:33 +0100
> Heiko Schocher <hs at denx.de> wrote:
> 
>> Hello Kim,
>>
>> Kim Phillips wrote:
>>> On Thu, 19 Feb 2009 17:24:09 +0100
>>> Heiko Schocher <hs at denx.de> wrote:
>> [...]
>>>>  unsigned int i2c_get_bus_num(void)
>>>>  {
>>>> +#if defined(CONFIG_I2C_MUX)
>>>> +	return i2c_bus_num_mux;
>>>> +#else
>>>>  	return i2c_bus_num;
>>>> +#endif
>>>>  }
>>> I don't get this mux variant - why aren't we reusing i2c_bus_num in the
>>> mux case?
>> Because i2c_bus_num is used as an index which hardware i2c controller
>> is used (0 or 1). In CONFIG_I2C_MUX case, you have more than 2 i2c
>> busses -> i2c_bus_num would be greater than 1, so you must have a
>> variable, where you store which hardware adapter you use, and one
>> which stores on which i2c bus you are.
> 
> so instead of naming it "i2c_bus_num_mux" it should be renamed
> "i2c_adapter_num"?, or does i2c_get_bus_num() still imply that it will

No, i2c_adapter_num should be 0 or 1 for Controller 0 or 1, I think,
and i2c_bus_num_mux can be greater then 1.

If we would do a rename, we should rename "i2c_bus_num" to "i2c_adapter_num".
In case, we don;t use i2c mux, i2c_bus_num = i2c_adapter_num.
else i2c_bus_num >= i2c_adapter_num (=0 or 1)

> return the /bus/ number?  Perhaps we should we have a separate function

Yes, i2c_get_bus_num() returns the bus number.

> altogether?

We should rework this "i2c multibus" instead complete, so we can remove
all this instances from i2c_get_bus_num()/i2c_set_bus_num() in every
i2c driver ... such an attempt was in discussion, but unfortunately
failed ... but I hope I can retrigger it.

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