how to use iic(4)
Ian Smith
smithi at nimnet.asn.au
Fri Sep 21 20:48:46 PDT 2007
This drew a blank in -questions. I don't know where else to post it, so
I'm hoping someone here might be able to spare me a clue.
We're building a small board with two AVR Tiny MCUs chatting to each
other over an opto-isolated I2C-compatible bus, hopefully at 400kbps.
Hoping to use the iicbb(4) on lpbb(4) parallel port interface to talk
with either of these MCUs for debugging, control and data acquisition.
iic(4) says:
=======
The iic character device driver provides generic i/o to any iicbus(4)
instance. In order to control I2C devices, use /dev/iic? with the fol-
lowing ioctls:
Ioctl Description
I2CSTART send start condition to the specified device (with 7-bit
address) on the bus
I2CSTOP send stop condition to the bus
I2CRSTCARD reset the bus
You may also use read/write routines, then I2C start/stop handshake is
managed by the iicbus system.
=======
Does the latter statement suggest that ordinary reads from or writes to
/dev/iic? could be performed by redirection of say echo and read from a
script? Or is the device only accessible by ioctl from eg a C program?
Secondly, how does /dev/iic? come to exist? This 5.5-STABLE system
seems to have all the requisite drivers, but there's no /dev/iic*:
paqi% kldstat -v | egrep 'iic|lpbb'
29 iicbus/ic
30 iicbus/iic
31 bktr/iicbb
32 lpbb/iicbb
33 viapm/iicbb
34 pcf/iicbus
35 envctrl/iicbus
36 iicbb/iicbus
37 bti2c/iicbus
38 iicbus/iicsmb
86 iicsmb/smbus
12 1 0xc2456000 3000 lpbb.ko
247 ppbus/lpbb
Also, iicbb(4) is said to be a master-only interface. I can work with
that, but if anyone knows of any iicbus slave-mode code I'm all eyes ..
Cheers, Ian
More information about the freebsd-net
mailing list