Subject: Re: I2C via parallel port?
To: Herb Peyerl <>
From: Dan McMahill <>
List: netbsd-users
Date: 08/18/2005 19:56:32
Herb Peyerl wrote:
> On 18-Aug-05, at 10:18 AM, John Clark wrote:
>> Dan McMahill wrote:
>>> Anyone have code they'd like to share which implements an I^2C  host 
>>> by bit-banging of the parallel port?  For that matter, anyone  know 
>>> if the parallel port drivers for i386 even support such a  thing?  
>>> I'm wanting to play around with a chip which needs to be  programmed 
>>> (via I^2C) to get it to do anything.
>> I've not tried to implment a I2C line, but I have recently used the  
>> 'standard' parallel interface to
>> perform 'general I/O'. In my case all I had to do was to set the  BIOS 
>> up to allow the
>> interface to do the simplest 'bi-directional' setup. 'General'  
>> meaning here that one can set the port
>> to either output or input, not individual bits... However, there  are 
>> some bits which allow for
>> both input and so one can have some 'bi-directionality' at the same  
>> time.
> I think Aaron Grier has a hacked lpt driver that he implements BDM  on.  
> It should be relatively trivial to munge that to do I2C.
> In reality, we really need a generic LPT driver so you can do big- 
> banging from userspace.  I long for such a thing so I can program my  
> AVR's via SPI. Such a thing needs to be integrated into NetBSD and  
> export a userland API.
> FreeBSD has such a thing if I'm not mistaken.  The scenery may have  
> changed though; I haven't looked at this in a couple years.

It looks like they have a ppbus and a lpbb which are designed for this 
sort of thing.  That would be so cool to have a supported way for doing 
this sort of thing.

I should layout a board with the open collector drivers on it to make it 
easy for people to produce such a thing.  Unlike kernel drivers, I'm 
good at that....