[U-Boot] i2c_set_bus_num freeze
Heiko Schocher
hs at denx.de
Fri Jan 27 08:24:03 CET 2017
Hello Ran,
Am 27.01.2017 um 08:08 schrieb Ran Shalit:
>
>
> On Fri, Jan 27, 2017 at 8:46 AM, Heiko Schocher <hs at denx.de <mailto: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)
Which defconfig do you use?
> 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) {
Hmm... if I search for "bus_initialized" in mainline code:
$ grep -lr bus_initialized drivers/i2c/
drivers/i2c/mv_i2c.c
I only find the mv_i2c driver ... do you use current mainline code?
> 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.
Thanks!
bye,
Heiko
>
>
> bye,
> Heiko
>
>
> Regards,
>
> Ran
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de <mailto:U-Boot at lists.denx.de>
> http://lists.denx.de/mailman/listinfo/u-boot <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
>
>
--
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