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.