Subject: Re: I2C via parallel port?
To: John Clark <>
From: Herb Peyerl <>
List: netbsd-users
Date: 08/18/2005 10:42:43
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.