i2c on RPI-B not working
Winston Smith
smith.winston.101 at gmail.com
Wed Apr 30 23:49:27 UTC 2014
On Tue, Apr 29, 2014 at 1:07 PM, Rui Paulo <rpaulo at freebsd.org> wrote:
> This is because the controller doesn't support scanning. You need to write your own C program to issue iic ioctls for reading / writing to the i2c bus.
I'm in the same process except on a BeagleBone Black (currently
running 11-CURRENT). Running `i2c -sv` under `ktrace -t+`, it's
returning:
956 i2c CALL ioctl(0x3,I2CRSTCARD,0xbffffcc8)
956 i2c RET ioctl 0
956 i2c CALL ioctl(0x3,I2CSTART,0xbffffcc8)
956 i2c RET ioctl -1 errno 6 Device not configured
956 i2c CALL ioctl(0x3,I2CSTOP,0xbffffcc8)
956 i2c RET ioctl -1 errno 22 Invalid argument
I know from Linux on the BBB, that when you run `i2cdetect`, you need
to specify the `-r` to use "read byte" commands to probe the i2c bus
and indeed I've written i2c code previously using ioctl() with
I2CRDWR.
So I cobbled together a I2C bus scanner, i2cscan.c:
http://pastebin.com/RxpRCyJU
root at beaglebone:~ # ./i2cscan /dev/iic0
Checking device: /dev/iic0
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Hmmm ... on the BBB it's still not detecting anything; in fact
according to `ktrace`, it seems to still return ENXIO (Device not
configured):
988 i2cscan CALL ioctl(0x3,I2CRDWR,0xbffffc58)
988 i2cscan RET ioctl -1 errno 6 Device not configured
Not entirely sure why it's not detecting anything since I *know* the
BBB has an EEPROM at 0x50 on bus 0 (I2C0 @ 44e0b000), which according
to ofwdump should be iic0:
root at beaglebone:~ # ofwdump -a
Node 0x38:
Node 0xc4: am335x
...
Node 0x1504: i2c at 44e0b000
Node 0x1590: pmic at 24
...
So:
1) Hopefully, you'll have more luck with the i2cscan.c tool I wrote than I did!
2) Does anyone know why I'm not detecting any i2c devices on the BBB?
Thanks!
-W
More information about the freebsd-arm
mailing list