Khadas Docs

Amazing Khadas, always amazes you!

User Tools

Site Tools


Sidebar

products:sbc:common:applications:gpio:i2c

This is an old revision of the document!


I2C

Introduction

This page introduces the usage of I2C bus on 40-Pin Header.

I2C Information

I2C PIN GPIO Name GPIO Number DT Overlays Node Bus Number Device Node
VIM1/2 I2C A 22(SCL) GPIODV_25 474 i2c0 0 /dev/i2c-0
23(SDA) GPIODV_24 473
I2C B 25(SCL) GPIODV_27 476 - 1 /dev/i2c-1
26(SDA) GPIODV_26 475
VIM3/3L I2CM 3 22(SCL) GPIOA_15 475 i2c3 3 /dev/i2c-3
23(SDA) GPIOA_14 474
I2C AO 25(SCL) GPIOAO_2 498 - 4 /dev/i2c-4
26(SDA) GPIOAO_3 499
VIM4 I2CM F 22(SCL) GPIOY_17 501 i2cm_f 5 /dev/i2c-5
23(SDA) GPIOY_18 502
I2CM A 25(SCL) GPIOT_20 466 i2cm_a 0 /dev/i2c-0
26(SDA) GPIOT_21 467

Enable I2C

In order to use the I2C, you need to enable the I2C function via Device Tree Overlay.

VIM1/2/3/3L/Edge1

Edit /boot/env.txt to add the i2c node to overlays node if it doesn't exist.

Take VIM3 as an example to enable I2CM 3, you need to add i2c3 node to overlays node if it doesn't exist.

overlays=uart4 pwm_ao_a pwm_f i2c3

After reboot, you will see the I2C device node.

$ ls /dev/i2c-3
/dev/i2c-3

VIM4

Edit /boot/dtb/amlogic/kvim4.dtb.overlay.env to add i2c node to fdt_overlays node if it doesn't exist.

e.g. To enable I2CM A, you need to add i2cm_a to node fdt_overlays if it doesn't exist.

fdt_overlays=i2cm_a

After reboot, you will see the I2C device node.

$ ls /dev/i2c-0
/dev/i2c-0

Disable I2C to Use GPIO

If you want to use normal GPIO instead of I2C, you can remove the I2C node in Device Tree Overlay.

Last modified: 2022/08/07 22:41 by olivia