Difference between revisions of "How to use I2C"

From IGEP - ISEE Wiki

Jump to: navigation, search
Line 13: Line 13:
 
= Check I2C Devices  =
 
= Check I2C Devices  =
  
In this How-to i used pre-compiled modules, because: it's quick and it works. All versions of Linux are supported, as long as I2C support is included in the kernel.  
+
In this How-to, I used pre-compiled modules, because: it's quick and it works. All versions of Linux are supported, as long as I2C support is included in the kernel. <br>
  
To make sure that I2C driver works well, follow the next steps (tested in [http://releases.linaro.org/platform/linaro-m/headless/final/linaro-m-headless-tar-20101108-2.tar.gz Linaro Headless]):  
+
To make sure that I2C driver works well, follow the next steps (tested in [http://releases.linaro.org/platform/linaro-m/headless/final/linaro-m-headless-tar-20101108-2.tar.gz Linaro Headless]), install i2c-tools:  
 
<pre>sudo apt-get install  i2c-tools
 
<pre>sudo apt-get install  i2c-tools
i2cdetect -l</pre>  
+
</pre>
 +
Parse I2C busses:
 +
<pre>i2cdetect -l</pre>  
 
The result will be similar at that:  
 
The result will be similar at that:  
 
<pre>i2c-1 i2c      OMAP I2C adapter                I2C adapter
 
<pre>i2c-1 i2c      OMAP I2C adapter                I2C adapter
 
i2c-3 i2c      OMAP I2C adapter                I2C adapter
 
i2c-3 i2c      OMAP I2C adapter                I2C adapter
 
</pre>  
 
</pre>  
It's important than i2c-3 is enable, because it connect by default to DVI-D.  
+
It's important than i2c-3 was enabled, because it connects to DVI-D by default.
  
 
= Compile and Run<br>  =
 
= Compile and Run<br>  =

Revision as of 18:32, 16 January 2012

Overview

This How-To is meant to be a starting point for people to learn use I2C for IGEP v2 devices as quickly and easily as possible. In this how-to, we use a program that reads and decodes EDID information from display. This program was tested in Linaro Headless with Kernel 2.6.35.y and Poky Linux distribution.

NOTE: This program is a beta version, it decodes EDID following E-EDID Standard Release A-1 from VESA using i2c-dev driver. There are some functionalities that are not implemented (see code comments) and other new ones that appear in other revisions. Besides, this program only parses the first EDID 128 bytes block. But this code is only a sample to learnt use I2C.

More information about EDID.

Feedback and Contributing

At any point, if you see a mistake you can contribute to this How-To.

Check I2C Devices

In this How-to, I used pre-compiled modules, because: it's quick and it works. All versions of Linux are supported, as long as I2C support is included in the kernel.

To make sure that I2C driver works well, follow the next steps (tested in Linaro Headless), install i2c-tools:

sudo apt-get install  i2c-tools

Parse I2C busses:

i2cdetect -l

The result will be similar at that:

i2c-1	i2c       	OMAP I2C adapter                	I2C adapter
i2c-3	i2c       	OMAP I2C adapter                	I2C adapter

It's important than i2c-3 was enabled, because it connects to DVI-D by default.

Compile and Run

Download (upload source code) and extract it.

There are a some interesting things that it interesting know, open source program:

//1==enabled 0==disable
#define FORCE 1

//Address DVI Standard: 0x50
#define ADDRESS 0x50

Compile program using your Cross Compiler, i used arm-linux-gnueabi-:

arm-linux-gnueabi-gcc parse-edid-beta2.c -o parse-edid-beta2

Make sure that i2c.dev.h has the same path as parse-edid-beta2.c.
Run program as root.

Results

Under construction