Subject: The user-controllable LEDs on an Intel ISP1100
To: NetBSD i386 port <>
From: Al Snell <>
List: port-i386
Date: 11/06/2000 16:19:34
The technical manual specifies what ports to write to to:

Switch the power LEDs between off, on (green) or fault (orange)

Control the two user-controlled LEDs, U1 and U2

Now, it occurs to me that a NetBSD driver for these babies would come in
pretty handy. Does anyone have one in the pipeline, or ought I to dive
into kernel space myself?

If the latter, does anyone have anything to say about the following

We design the front panel interface to be later extensible to handle all
sorts of things - LCDs, extra buttons, etc. This means we use /dev/panel
to talk to the front panel.

/dev/panel works on ioctls. There should be an ioctl to get the hardware

1) A list of buttons, with their names as text strings
2) A list of switches, with their names as text strings, and their
positions as text strings (eg, "Standard", "Turbo")
3) A list of LEDs, with their names as text strings, and a list of their
states (be they "On","Off" or "Off","Fault","On" or whatever)
4) Whether there is a dot matrix display available, and how many rows/cols
it does

...and ioctls to get the statuses of switches, set the statuses of LEDs,
do a normal write to /dev/panel to put text on the dot matrix... how to
set things up so that a userland process can be notified of buttons being
pressed? The obvious answer is to have them open /dev/panel for read and
block on reads, but is it possible to write a driver that will support
multiple "listeners" if different processes use different buttons?

There would need to be a "panelctl" utility to handle this. I propose that
it live in /sbin rather than /usr/sbin, since the fault light would be a
good way to signal an inability to mount /usr!

Of course, the i386/isp1100 driver wouldn't implement anything apart from
the LEDs - I just want to make sure I set a good solid base on which to
develop other front panel drivers :-)


                       Alaric B. Snell BEng ACGI  http://RF.Cx/
   Any sufficiently advanced technology can be emulated in software