[U-Boot] [PATCH 4/9 v3] 83xx, i2c: add mux support for fsl_i2c
Heiko Schocher
hs at denx.de
Tue Feb 24 08:00:55 CET 2009
Hello Kim,
Kim Phillips wrote:
> On Thu, 19 Feb 2009 17:24:09 +0100
> Heiko Schocher <hs at denx.de> wrote:
>
>> @@ -369,6 +370,23 @@ i2c_probe(uchar chip)
>>
>> int i2c_set_bus_num(unsigned int bus)
>> {
>> +#if defined(CONFIG_I2C_MUX)
>> + if (bus < CONFIG_SYS_MAX_I2C_BUS) {
>> + i2c_bus_num = bus;
>> + } else {
>
> [1]
>
>> + int ret;
>> +
>> + ret = i2x_mux_select_mux(bus);
>> + if (ret == 0) {
>> + /* with CONFIG_I2C_MUX only I2C Controller 1
>> + * is usable
>> + */
>> + i2c_bus_num = 0;
>> + i2c_bus_num_mux = bus;
>> + } else
>> + return ret;
>> + }
>
> how about
>
> ret = i2x_...
> if (ret)
> return ret;
> /* with...
>
>> +#else
>> #ifdef CONFIG_SYS_I2C2_OFFSET
>> if (bus > 1) {
>> #else
>> @@ -378,7 +396,7 @@ int i2c_set_bus_num(unsigned int bus)
>> }
>>
>> i2c_bus_num = bus;
>> -
>> +#endif
>
> reuse code and moved the ifdef up, then [1] would just be:
Ok.
> if (bus >= CONFIG_SYS_MAX_I2C_BUS) {
>
>> return 0;
>> }
>>
>> @@ -396,7 +414,11 @@ int i2c_set_bus_speed(unsigned int speed)
>>
>> 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?
Good question, have to think about 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