Hello Ran,

Am 27.01.2017 um 08:08 schrieb Ran Shalit:


On Fri, Jan 27, 2017 at 8:46 AM, Heiko Schocher <h...@denx.de 
<mailto:h...@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@lists.denx.de <mailto:U-Boot@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
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to