3

I'm attempting to get the i2c bus to work from a raspberry pi image created from yocto. I have looked at other peoples solutions but they are all o do with raspbian or some other flavour of os.

My /boot/config.txt looks like this:

    root@raspberrypi2:~# cat /boot/config.txt 
    dtparam=i2c_arm=on
    dtparam=i2c_vc=on
    bcm2708.vc_i2c_override=1

lsmod gives me:

root@raspberrypi2:~# lsmod
    Not tainted
ipv6 340199 18 [permanent], Live 0x7f02c000
i2c_bcm2708 4932 0 - Live 0x7f027000
i2c_dev 5810 0 - Live 0x7f022000
bcm2835_gpiomem 2852 0 - Live 0x7f01e000
uio_pdrv_genirq 2924 0 - Live 0x7f012000
uio 8039 1 uio_pdrv_genirq, Live 0x7f000000

dmesg has the following in it:

root@raspberrypi2:~# cat /var/log/dmesg | grep i2c
[    3.645233] i2c /dev entries driver

looking in /proc/device-tree gives me:

root@raspberrypi2:~# find /proc/device-tree/ | grep i2c
/proc/device-tree/soc/i2c@7e205000
/proc/device-tree/soc/i2c@7e205000/reg
/proc/device-tree/soc/i2c@7e205000/name
/proc/device-tree/soc/i2c@7e205000/interrupts
/proc/device-tree/soc/i2c@7e205000/pinctrl-0
/proc/device-tree/soc/i2c@7e205000/compatible
/proc/device-tree/soc/i2c@7e205000/clock-frequency
/proc/device-tree/soc/i2c@7e205000/clocks
/proc/device-tree/soc/i2c@7e205000/status
/proc/device-tree/soc/i2c@7e205000/#address-cells
/proc/device-tree/soc/i2c@7e205000/phandle
/proc/device-tree/soc/i2c@7e205000/#size-cells
/proc/device-tree/soc/i2c@7e205000/pinctrl-names
/proc/device-tree/soc/i2c@7e205000/linux,phandle
/proc/device-tree/soc/i2c@7e804000
/proc/device-tree/soc/i2c@7e804000/reg
/proc/device-tree/soc/i2c@7e804000/name
/proc/device-tree/soc/i2c@7e804000/interrupts
/proc/device-tree/soc/i2c@7e804000/pinctrl-0
/proc/device-tree/soc/i2c@7e804000/compatible
/proc/device-tree/soc/i2c@7e804000/clock-frequency
/proc/device-tree/soc/i2c@7e804000/clocks
/proc/device-tree/soc/i2c@7e804000/status
/proc/device-tree/soc/i2c@7e804000/#address-cells
/proc/device-tree/soc/i2c@7e804000/phandle
/proc/device-tree/soc/i2c@7e804000/#size-cells
/proc/device-tree/soc/i2c@7e804000/pinctrl-names
/proc/device-tree/soc/i2c@7e804000/linux,phandle
/proc/device-tree/soc/i2c@7e805000
/proc/device-tree/soc/i2c@7e805000/reg
/proc/device-tree/soc/i2c@7e805000/name
/proc/device-tree/soc/i2c@7e805000/interrupts
/proc/device-tree/soc/i2c@7e805000/compatible
/proc/device-tree/soc/i2c@7e805000/clock-frequency
/proc/device-tree/soc/i2c@7e805000/clocks
/proc/device-tree/soc/i2c@7e805000/status
/proc/device-tree/soc/i2c@7e805000/#address-cells
/proc/device-tree/soc/i2c@7e805000/phandle
/proc/device-tree/soc/i2c@7e805000/#size-cells
/proc/device-tree/soc/i2c@7e805000/linux,phandle
/proc/device-tree/soc/gpio@7e200000/i2c0
/proc/device-tree/soc/gpio@7e200000/i2c0/name
/proc/device-tree/soc/gpio@7e200000/i2c0/phandle
/proc/device-tree/soc/gpio@7e200000/i2c0/brcm,function
/proc/device-tree/soc/gpio@7e200000/i2c0/brcm,pins
/proc/device-tree/soc/gpio@7e200000/i2c0/linux,phandle
/proc/device-tree/soc/gpio@7e200000/i2c1
/proc/device-tree/soc/gpio@7e200000/i2c1/name
/proc/device-tree/soc/gpio@7e200000/i2c1/phandle
/proc/device-tree/soc/gpio@7e200000/i2c1/brcm,function
/proc/device-tree/soc/gpio@7e200000/i2c1/brcm,pins
/proc/device-tree/soc/gpio@7e200000/i2c1/linux,phandle
/proc/device-tree/__symbols__/i2c
/proc/device-tree/__symbols__/i2c0
/proc/device-tree/__symbols__/i2c1
/proc/device-tree/__symbols__/i2c2
/proc/device-tree/__symbols__/i2c_arm
/proc/device-tree/__symbols__/i2c_vc
/proc/device-tree/__symbols__/i2c0_pins
/proc/device-tree/__symbols__/i2c1_pins
/proc/device-tree/__symbols__/clk_i2c
/proc/device-tree/aliases/i2c
/proc/device-tree/aliases/i2c0
/proc/device-tree/aliases/i2c1
/proc/device-tree/aliases/i2c2
/proc/device-tree/aliases/i2c_arm
/proc/device-tree/aliases/i2c_vc
/proc/device-tree/__overrides__/i2c
/proc/device-tree/__overrides__/i2c0
/proc/device-tree/__overrides__/i2c1
/proc/device-tree/__overrides__/i2c_arm
/proc/device-tree/__overrides__/i2c2_iknowwhatimdoing
/proc/device-tree/__overrides__/i2c0_baudrate
/proc/device-tree/__overrides__/i2c_vc_baudrate
/proc/device-tree/__overrides__/i2c_vc
/proc/device-tree/__overrides__/i2c1_baudrate
/proc/device-tree/__overrides__/i2c_baudrate
/proc/device-tree/__overrides__/i2c2_baudrate
/proc/device-tree/__overrides__/i2c_arm_baudrate

but if I 'ls /dev/i2*' I get no /dev/i2c devices. I'm expecting /dev/i2c-0 or an equivalent alias, does anyone know what is happening?

1

Device tree does not create the I2C devices (just to be contrary device tree does create the similar SPI devices).

Add the following line to /etc/modules and reboot.

i2c_dev

For a quick test you could just modprobe i2c_dev.


EDITED TO ADD

I'm confused now as your lsmod does show i2c_dev.

  • Yeah it's just not showing /dev/i2c I installed udev rules and it should show up but it doesn't I've triedeverything – Chris May 12 '16 at 18:05
  • @Chris Did you resolve the issue? If yes, please share. – mk.. Oct 2 '17 at 0:40
  • No I didn't resolve this but it was a personal project so didn't end up finishing it. I'll get back to it at some stage and will write an answer when I get to solving it. – Chris Jan 15 '18 at 10:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.