Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 22 Sep 2007 13:16:33 +1000
From:      Ian Smith <smithi@nimnet.asn.au>
To:        freebsd-net@freebsd.org
Subject:   how to use iic(4)
Message-ID:  <46F48911.6010106@nimnet.asn.au>

next in thread | raw e-mail | index | archive | help
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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?46F48911.6010106>