Difference between revisions of "How to use I2C"

From IGEP - ISEE Wiki

Jump to: navigation, search
Line 1: Line 1:
 
= Overview  =
 
= 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. For this how-to i do a program that reads and decodes EDID information from EEPROM display. This program was tested in [http://releases.linaro.org/platform/linaro-m/headless/final/linaro-m-headless-tar-20101108-2.tar.gz Linaro Headless] with [[Linux Kernel 2.6.35.y|Kernel 2.6.35.y]] and [[How to get the Poky Linux distribution|Poky Linux distribution.]]<br>  
+
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 [http://releases.linaro.org/platform/linaro-m/headless/final/linaro-m-headless-tar-20101108-2.tar.gz Linaro Headless] with [[Linux Kernel 2.6.35.y|Kernel 2.6.35.y]] and [[How to get the Poky Linux distribution|Poky Linux distribution]].<br>  
  
More information about [http://en.wikipedia.org/wiki/Extended_display_identification_data EDID].<br>  
+
NOTE: This program is a beta version, it decodes E-EDID follow Standard Release A-1 using i2c-dev driver. There are some functionalitise that are not implemented (see code comments) and other new ones that appear in other revisions. Besides it only parse the first EDID 128 bytes block. But this code is only a sample to learnt use I2C.<br>
 +
 
 +
More information about [http://en.wikipedia.org/wiki/Extended_display_identification_data EDID].<br>
  
 
= Feedback and Contributing  =
 
= Feedback and Contributing  =

Revision as of 18:18, 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 E-EDID follow Standard Release A-1 using i2c-dev driver. There are some functionalitise that are not implemented (see code comments) and other new ones that appear in other revisions. Besides it only parse 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):

sudo apt-get install  i2c-tools
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 is enable, because it connect by default to DVI-D.

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.



NOTE: This program is a beta version, it decodes E-EDID Standard Release A, Revision 1 using i2c-dev driver. There are some functionalitise that are not implemented (see code comments) and other new ones that appear in other revisions. Besides it only parse the first EDID 128 bytes. (put this in overview)not pretends educational purpouse.

Results

Under construction