I have misconfigured pins on my hardware. I was using i2c-2 on different
balls.

2015-01-13 15:02 GMT+01:00 <[email protected]>:

>
>
> On Thursday, April 3, 2014 at 10:37:49 AM UTC+3, [email protected]
> wrote:
>>
>>
>>
>> W dniu sobota, 22 marca 2014 01:19:58 UTC+1 użytkownik Joshua Datko
>> napisał:
>>>
>>> I am trying to enable the i2c-2 bus in mainline uBoot and having
>>> problems.  I am building a cape that has a Trusted Platform Module (TPM) on
>>> pins P9_19/20, i2c-2.  Using some creative wiring, when I connect the cape
>>> to i2c-1, everything works fine.
>>>
>>> I added this in /board/ti/am225x/mux.c:
>>>
>>> static struct module_pin_mux i2c2_pin_mux[] = {
>>>     {OFFSET(uart1_ctsn), (MODE(3) | RXACTIVE |
>>>                        PULLUDEN | SLEWCTRL)}, /* I2C_DATA */
>>>     {OFFSET(uart1_rtsn), (MODE(3) | RXACTIVE |
>>> PULLUDEN | SLEWCTRL)}, /* I2C_SCLK */
>>>     {-1},
>>> };
>>>
>>> In enable_board_pin_mux, I put the following before any of the ifs:
>>>
>>> configure_module_pin_mux(i2c2_pin_mux);
>>>
>>> and added a puts after to ensure it was getting hit.
>>>
>>> When I break in uboot and try to switch to i2c-2, the BBB resets as
>>> follows:
>>>
>>> U-Boot# i2c dev 2
>>> Setting bus to 2
>>> data abort
>>> pc : [<9f7745c4>]          lr : [<9f7745bc>]
>>> sp : 9f637dc0  ip : 00000000     fp : 9f638598
>>> r10: 9f7a7680  r9 : 9f637f28     r8 : 000186a0
>>> r7 : 00000001  r6 : 9f7a47d4     r5 : 000186a0  r4 : 00000001
>>> r3 : 0000002c  r2 : 00000001     r1 : 00000002  r0 : 4819c000
>>> Flags: nZCv  IRQs off  FIQs on  Mode SVC_32
>>> Resetting CPU ...
>>>
>>> I'm not quite sure where to go from here.  It appears, to me, that uBoot
>>> has an issue with i2c-2 and any help would be appreciated.  I *could*
>>> switch the TPM over to i2c-1 but I'd rather not change the hardware unless
>>> using i2c-2 is impossible for some reason in uBoot.
>>>
>>
>> You should also enable clock for i2c-2 bus. I have done this by adding:
>> writel(PRCM_MOD_EN, &cmper->i2c2clkctrl);
>> while (readl(&cmper->i2c2clkctrl) != PRCM_MOD_EN) ;
>>
>> And I have used spi0_sclk and spi0_d0 for my i2c2 bus.
>>
>> But on my beaglebone black based board I keep getting:
>> timed out in wait_for_pin: I2C_STAT=0
>> error all the time for i2c probe command. The same bootloader works
>> correctly with original BBB,
>> The only difference on my board is missing EEPROM.
>>
>>
>>> Josh
>>>
>>
>> Robert Kmiec
>>
>
>
> Have you guys resolved the problem?
> I have time out/bus busy problem with Josh's cryptocape and BBB A5C -rev
> (A335BNLT0A5C) -device.
> It works fine in Debian on both of busses (i2c1 and i2c2). But with u-boot
> I have the problem.
> I have added i2c2 pin muxing and enabled clock on u-boot (HEAD (92fa7)
> from denx.de). I also tried u-boot-sboot.
>
> When it's physically configured to i2c2 (cryptocape default):
> U-Boot# i2c dev 2
> Setting bus to 2
> Timed out in wait_for_bb: status=1000
> Timed out in wait_for_bb: status=1000
> U-Boot# i2c probe
> Valid chip addresses:Timed out in wait_for_bb: status=1000
> Timed out in wait_for_bb: status=1000
> Timed out in wait_for_bb: status=1000
> ...and lot of same error message...
>
> And on bus i2c1 (fly wiring)
> U-Boot# i2c dev 1
> Setting bus to 1
> Timed out in wait_for_bb: status=1000
> Timed out in wait_for_bb: status=1000
> U-Boot# i2c probe
> Valid chip addresses:Timed out in wait_for_bb: status=1000
> Timed out in wait_for_bb: status=1000
> Timed out in wait_for_bb: status=1000
> ...and lot of same error message...
>
> Internal i2c0 bus works correctly:
> U-Boot# i2c dev 0
> Setting bus to 0
> U-Boot# i2c probe
> Valid chip addresses: 24 34 50
>
> I have used this pin muxing for i2c2: (board/ti/am335x/mux.c*)*
>
> static struct module_pin_mux i2c2_pin_mux[] = {
>
>   {OFFSET(uart1_ctsn), (MODE(3) | RXACTIVE |
>
>                      PULLUDEN | SLEWCTRL)},/* I2C_DATA */
>
>   {OFFSET(uart1_rtsn), (MODE(3) | RXACTIVE |
>
>                        PULLUDEN | SLEWCTRL)},/* I2C_SCLK */
>
>   {-1},
>
> };
>
> And called configure_module_pin_mux(i2c2_pin_mux); on
> enable_board_pin_mux() (board/ti/am335x/mux.c*)*
>
> And enabled clock for i2c2 on arch/arm/cpu/armv7/am33xx/clock_am33xx.c by
> adding line
>
>                &cmper->i2c2clkctrl,
>
> Thanks
> Jussi
>

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to