This page introduces how you can interface your I2C devices to ODROID-C series.

I2CA (/dev/i2c-1)

Pin NumberNet NameExport Number

I2CB (/dev/i2c-2)

Pin NumberNet NameExport Number

Dedicated pins for I2C are configured for GPIO, these pins can be configured as I2C bus while change the pin configuration. In order to change the configuration, you must load the driver.

$ modprobe aml_i2c

If you have to load the driver every time whenever your ODROID-C starts, simply you can register the driver into /etc/modules.

$ echo "aml_i2c" | sudo tee /etc/modules

This adds one line at end of the file, /etc/modules, and load the driver on boot automatically.

To change the I2C clock speed, you need to modify the DT(Device Tree) file.

Install required packages.

sudo apt-get install device-tree-compiler i2c-tools

Make a backup of DTB file.

cp /media/boot/meson64_odroidc2.dtb /media/boot/meson64_odroidc2.dtb.org

Change the DTB file for i2c-1 (i2c channel #1)

fdtput -t i /media/boot/meson64_odroidc2.dtb /i2c@c1108500 master_i2c_speed "100000"

Change the DTB file for i2c-2 (i2c channel #2)

dtput -t i /media/boot/meson64_odroidc2.dtb /i2c@c11087c0 master_i2c_speed "100000"

If you want to go back to original 300Khz mode, change “100000” to “300000”.

Actual I2C clock speed (Measured with an oscilloscope)
In 300Khz mode : 270Khz
In 100Khz mode : 80Khz

Default I2C clock speed
100Khz mode