[U-Boot] i2c_set_bus_num freeze

Ran Shalit ranshalit at gmail.com
Fri Jan 27 08:08:53 CET 2017


On Fri, Jan 27, 2017 at 8:46 AM, Heiko Schocher <hs at denx.de> wrote:

> Hello Ran,
>
> Am 26.01.2017 um 18:42 schrieb Ran Shalit:
>
>> Hello,
>>
>> I have some issue in u-boot trying to access bus #1.
>>
>
> On which hardware? Is the board in mainline?


Yes, it's TI's dm8148 (ti81xx, ti814x)

>
>
> I can access bus #0, #2 with i2c dev 0/2
>>
>> I can also access bus #0,1,2 from linux.
>>
>> But on trying to access i2c #1 in u-boot in hangs:
>>
>> The function i2c_set_bus_num get stuck .
>>
>>
>> ret = i2c_set_bus_num(1);
>>
>> <<------- never gets here .........
>>   if (ret)
>>       printf("Failure changing bus number (%d)\n", ret);
>>
>> It hangs in i2c_set_bus_num->i2c_init->
>>
>> ......
>>
>>      printf("i2c_init 8\n");
>>
>
> You see this printf?


Yes, it seems to get stuck here:

if (readw (I2C_CON) & I2C_CON_EN) {
<<--------- we never gets here !!!!!!!!!!!!!!!!!!!!!!!!!!!
writew (0, I2C_CON);



>
>
> bus_initialized[current_bus] = 1;
>> if (readw (I2C_CON) & I2C_CON_EN) {
>> writew (0, I2C_CON);
>> udelay (50000);
>> }
>>
>> writew(psc, I2C_PSC);
>> writew(scll, I2C_SCLL);
>> writew(sclh, I2C_SCLH);
>>
>> /* own address */
>> writew (slaveadd, I2C_OA);
>> writew (I2C_CON_EN, I2C_CON);
>>
>>      printf("i2c_init 9\n");  <<------ never get printed
>> ..................
>>
>> I have seen a similar question, yet I am doing this access after u-boot
>> complete, and command prompt.
>>
>> Is anyone familiar with this ?
>>
>
> Hmm.. no reason, why the last printf should not come ...
>
> As I do not know, on which hw ... I just can speculate ...
>
> Is the clock for the i2c subsystem 1 in the SoC enabled?
>

TI's DM8148.
I remember that I once used that code and it works, so I quite amazed that
it stopped working now.
The board had some changes from that time when I tried the code, and the sw
too some minor changes (i2c eerom added in bus #0),  but I really don't
understand why it doesn't work any more :(

It might be clock issue, I'll check.


>
> bye,
> Heiko
>
>
>> Regards,
>>
>> Ran
>> _______________________________________________
>> U-Boot mailing list
>> U-Boot at lists.denx.de
>> http://lists.denx.de/mailman/listinfo/u-boot
>>
>>
> --
> DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
>


More information about the U-Boot mailing list