[PLUG] I2C: kernel & userspace drivers : using i2c-stub

Sagar Padhye sgr.m.pdy at gmail.com
Mon Apr 22 17:11:17 IST 2013


[USING : Ubuntu 12.04 LTS]

I am trying to learn I2C subsystem. I havent found much of well documented
things that can help a newbie on google. I just chose to read the linux
kernel documentation txts.

I read the way kernel can interact with i2c through both SMBus calls & raw
file op calls (ioctl, read, write). It looks good till that point.

The doc also tells about i2c stub. which can be used as follows:
1. load the i2c module
2. use i2cset (from the i2c-tools project) to pre-load some data
3. load the target chip driver module
4. observe its behavior in the kernel log

I was able to achieve just the 1st step here. I loaded the module
$ sudo modprobe i2c-stub chip_addr=0x023

I got following Kern msg
[658.071706]   i2c-stub: Virtual chip at 0x23

So I believe that step 1 is clear.

in second step I have no idea how to provide needed inputs to command
Usage : i2cset [-f] [-y] [-m mask] I2CBUS CHIP-ADDRESS DATA-ADDRESS [VALUE]
I tried to give I2CBUS = 0, Chip addr = 0x23 & data addr=0 but it gives
Error : Could not open file '/dev/i2c-0' or '/dev/i2c/0' : No such file or

There is no file at all created in /dev corrosponding to this device.

Any idea how to use i2c properly? Is this an ubuntu only problem? Can
anybody provide a good tutorial like thing to learn about i2c kernel &
userspace driver programming?

Thanks and Regards,

More information about the Plug-mail mailing list