Subject: Re: LEDs, LCDs and so on (was Re: More SPARCbook insanity )
To: Jonathan Perkin <>
From: Michael <>
List: tech-kern
Date: 04/18/2005 07:50:29
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable


> > Hmm, we'd have to come up with a generic interface to CPU-controlled
> > LCDs, LEDs and do on found on various hardware - we don't want
> > anything Tadpole-specific in - say - sd...
> FreeBSD 5.2 has led(4) which may or may not be useful to you.

Having a look at it can't hurt :)
Wow, funky userland interface:

The lamp can be controlled by opening and writing ASCII strings to the /dev=
/led/bla device.
Three high-level commands are available:

           d%d     Numbers.  Each digit is blinked out at 1/10th second, ze=
                   as ten pulses.  Between digits a one second pause and af=
                   the last digit a two second pause after which the sequen=
                   is repeated.

           s%s     String.  This gives full control over the annunciator.
                   Letters `A' ... `J' turn the annunciator on for from 1/1=
                   to one full second.  Letters `a' ... `j' turn the annunc=
                   tor off for 1/10th to one full second.  Unless terminated
                   with a `.', the sequence is immediately repeated.

           m%s     Morse.

                         `.'     becomes `_*'
                         `-'     becomes `_***'
                         ` '     becomes `__'
                         `\n'    becomes `____'

     The sequence is repeated after a one second pause.

I didn't think about supporting morse code, but imagine a kernel panic on a=
 box without serial interface(s) or any other way to get a 2nd console, the=
 display taken over by XFree which decides to panic. Flashing the panic mes=
sage suddenly sounds like a good idea.
Not /quite/ what I was thinking about ( low-overhead but still generic inte=
rface for internal use by the kernel ) but why not give it a userland inter=
face too. We'd probably need a few ioctl()s to gather information about a g=
iven indicator, like type, label ( well, most of the time we /will/ know th=
e original purpose. Doesn't necessary mean we'd stick to it though ), statu=
s ( on/off, in use by some kernel driver or not... )
PCish Port 80 cards would also be something we could (ab)use, even on non-P=
C hardware.

have fun

Content-Type: application/pgp-signature

Version: GnuPG v1.4.0 (NetBSD)