Article [#5275] i2c-bfin-twi timeout during multibyte block transfers

[#5275] i2c-bfin-twi timeout during multibyte block transfers

Submitted By: Michael Hennerich

Open Date

2009-06-18 05:56:32     Close Date

2010-02-22 10:36:07

Priority:

Medium     Assignee:

Sonic Zhang

Status:

Closed     Fixed In Release:

N/A

Found In Release:

2010R1     Release:

trunk

Category:

N/A     Board:

EZKIT Lite

Processor:

BF548     Silicon Revision:

0.2

Is this bug repeatable?:

Yes     Resolution:

Fixed

Uboot version or rev.:

trunk     Toolchain version or rev.:

branch 2009R1

App binary format:

FDPIC     

Summary: i2c-bfin-twi timeout during multibyte block transfers

Details:

1) Modify i2c-bfin-twi to print a message in case a timeout occurs

2) Set SCL to 400kHz

3) Compile bf548-ezkit kernel with adxl34x i2c driver, and add user df_input from DirectFB Examples

root:~> modprobe evdev

root:~> modprobe adxl34x

input: ADXL34x accelerometer as /devices/platform/i2c-bfin-twi.1/i2c-adapter/i2c-1/1-0053/input/input1

adxl34x 1-0053: ADXL345 accelerometer, irq 140

Turn off ADXL345 Autosleep:

root:/> cd sys/class/input/input1/device/

root:/sys/devices/platform/i2c-bfin-twi.1/i2c-adapter/i2c-1/1-0053> echo 0 > autosleep

Start df_input:

root:/> df_input &

    ~~~~~~~~~~~~~~~~~~~~~~~~ DirectFB 1.2.7 |~~~~~~~~~~~~~~~~~~~~~~~~

        (c) 2001-2008  The world wide DirectFB Open Source Community

        (c) 2000-2004  Convergence (integrated media) GmbH

      ----------------------------------------------------------------

(*) DirectFB/Core: Single Application Core. (2009-05-27 15:03)

[1] 401 df_input

root:/> (*) Direct/Thread: Started 'VT Switcher' (405) [CRITICAL OTHER/OTHER 0/0] <12288>...

(*) Direct/Thread: Started 'Keyboard Input' (406) [INPUT OTHER/OTHER 0/0] <12288>...

(*) DirectFB/Input: Keyboard 0.9 (directfb.org)

(*) Direct/Thread: Started 'Linux Input' (407) [INPUT OTHER/OTHER 0/0] <12288>...

(*) DirectFB/Input: bf54x-keys (1) 0.1 (directfb.org)

(*) Direct/Thread: Started 'Linux Input' (408) [INPUT OTHER/OTHER 0/0] <12288>...

(*) DirectFB/Input: ADXL34x accelerometer (2) 0.1 (directfb.org)

(*) DirectFB/Graphics: Generic Software Rasterizer 0.6 (directfb.org)

(*) DirectFB/Core/WM: Default 0.3 (directfb.org)

(*) FBDev/Surface: Allocated 480x272 24 bit RGB24 buffer (index 0) at offset 0 and pitch 1440.

(*) FBDev/Surface: Allocated 480x272 24 bit RGB24 buffer (index 0) at offset 0 and pitch 1440.

(*) Direct/Interface: Loaded 'FT2' implementation of 'IDirectFBFont'.

(*) Direct/Interface: Loaded 'PNG' implementation of 'IDirectFBImageProvider'.

root:/>TIMEOUT!

TIMEOUT!

TIMEOUT!

TIMEOUT!

From time to time you will notice a timeout.

It is kind of interesting that when using event_test this timeout is less likely to occur.

I guess df_input influences overall software timing, but is not related to the lost interrupt directly.

Follow-ups

--- Sonic Zhang                                              2009-09-13 22:32:55

Fixed. Enlarge i2c timeout in case schedule delays.

    Files

    Changes

    Commits

    Dependencies

    Duplicates

    Associations

    Tags

File Name     File Type     File Size     Posted By

No Files Were Found

Before You Switch


Switching languages will make ADI Explorer unavailable. Resume your session by switching back to English and reopening ADI Explorer.