EMAC I²C Programming
Background Information
I²C is a low-speed (400 kHz max.) two wire serial interface used to connect to a variety of sensor and I/O devices. The interface uses two bi-directional open-drain I/Os, SDA and SCL, to communicate to devices based on an address encoded within the data transmission. SDA is a data signal which sends and receives serially transmitted data. SCL is a clock signal which is used to determine when to latch data from the SDA line.
For more information about the protocol see the following page:
http://en.wikipedia.org/wiki/I²C
This page specifically covers the usage of the Linux I²C i2c-dev driver.
For more information about the Linux I²C subsystem:
https://i2c.wiki.kernel.org/index.php/Main_Page