i.MX51 EVK Linux Reference Manual
Freescale Semiconductor
24-1
Chapter 24
Inter-IC (I
2
C) Driver
I
2
C is a two-wire, bidirectional serial bus that provides a simple, efficient method of data exchange,
minimizing the interconnection between devices. The I
2
C driver for Linux has two parts:
•
I
2
C bus driver—low level interface that is used to talk to the I
2
C bus
•
I
2
C chip driver—acts as an interface between other device drivers and the I
2
C bus driver
24.1
I
2
C Bus Driver Overview
The I
2
C bus driver is invoked only by the I
2
C chip driver and is not exposed to the user space. The standard
Linux kernel contains a core I
2
C module that is used by the chip driver to access the I
2
C bus driver to
transfer data over the I
2
C bus. The chip driver uses a standard kernel space API that is provided in the
Linux kernel to access the core I
2
C module. The standard I
2
C kernel functions are documented in the files
available under
Documentation/i2c
in the kernel source tree. This bus driver supports the following
features:
•
Compatible with the I
2
C bus standard
•
Bit rates up to 400 Kbps
•
Starts and stops signal generation/detection
•
Acknowledge bit generation/detection
•
Interrupt-driven, byte-by-byte data transfer
•
Standard I
2
C master mode
24.2
I
2
C Device Driver Overview
The I
2
C device driver implements all the Linux I
2
C data structures that are required to communicate with
the I
2
C bus driver. It exposes a custom kernel space API to the other device drivers to transfer data to the
device that is connected to the I
2
C bus. Internally, these API functions use the standard I
2
C kernel space
API to call the I
2
C core module. The I
2
C core module looks up the I
2
C bus driver and calls the appropriate
function in the I
2
C bus driver to transfer data. This driver provides the following functions to other device
drivers:
•
Read function to read the device registers
•
Write function to write to the device registers
The camera driver uses the APIs provided by this driver to interact with the camera.
Summary of Contents for i.MX51 EVK
Page 1: ...Part Number 924 76374 Rev 10 11 01 11 2010 i MX51 EVK Linux Reference Manual...
Page 14: ...i MX51 EVK Linux Reference Manual xiv Freescale Semiconductor...
Page 18: ...i MX51 EVK Linux Reference Manual xviii Freescale Semiconductor...
Page 24: ...i MX51 EVK Linux Reference Manual xxiv Freescale Semiconductor...
Page 38: ...Machine Specific Layer MSL i MX51 EVK Linux Reference Manual 2 8 Freescale Semiconductor...
Page 52: ...MC13892 Digitizer Driver i MX51 EVK Linux Reference Manual 5 4 Freescale Semiconductor...
Page 64: ...TV Encoder TVE Driver i MX51 EVK Linux Reference Manual 10 4 Freescale Semiconductor...
Page 82: ...Video for Linux Two V4L2 Driver i MX51 EVK Linux Reference Manual 12 8 Freescale Semiconductor...
Page 86: ...i MX5 Dual Display i MX51 EVK Linux Reference Manual 13 4 Freescale Semiconductor...
Page 100: ...X Windows Acceleration i MX51 EVK Linux Reference Manual 16 6 Freescale Semiconductor...
Page 118: ...Low Level Keypad Driver i MX51 EVK Linux Reference Manual 20 6 Freescale Semiconductor...
Page 134: ...Security Drivers i MX51 EVK Linux Reference Manual 22 10 Freescale Semiconductor...
Page 148: ...Inter IC I2C Driver i MX51 EVK Linux Reference Manual 24 4 Freescale Semiconductor...
Page 178: ...ARC USB Driver i MX51 EVK Linux Reference Manual 29 10 Freescale Semiconductor...
Page 194: ...OProfile i MX51 EVK Linux Reference Manual 33 6 Freescale Semiconductor...