Subject: Re: LEDs, LCDs and so on (was Re: More SPARCbook insanity )
To: Jonathan Perkin <jonathan@perkin.org.uk>
From: Michael <macallan18@earthlink.net>
List: tech-kern
Date: 04/18/2005 07:50:29
--Signature_Mon__18_Apr_2005_07_50_29_-0400_52fU4QQmBggv+bf=
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

Hello,

> > 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...
>=20
> 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=
ro
                   as ten pulses.  Between digits a one second pause and af=
ter
                   the last digit a two second pause after which the sequen=
ce
                   is repeated.

           s%s     String.  This gives full control over the annunciator.
                   Letters `A' ... `J' turn the annunciator on for from 1/1=
0th
                   to one full second.  Letters `a' ... `j' turn the annunc=
ia-
                   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
Michael

--Signature_Mon__18_Apr_2005_07_50_29_-0400_52fU4QQmBggv+bf=
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (NetBSD)

iQEVAwUBQmOfBcpnzkX8Yg2nAQKm8gf+LCgNCmnh9itRL5/nxPB4EJKUtkth2Any
NFB606i3CylgS60nGPVZZdm5zdDHH49MRmF7WbMHYGH1PYWjl3lCd0V7YZKd/PfG
k270RArlpUqOfgGt93Un6avUt2nwAQ+ldF2MKOiichpNWmwQAwx/Fhqafz9ooNvN
VngtQp6F5ly+a+SzWJIFePFiN1oUhVY354UsERvsReltwXPjo3m3dSM+bwkumxh6
ghEJwrIHFUQvHMjkJhXzjwWKrrGZ6NalOp4ipvuxOFka9jKGstQL4xFv15vIB/b0
qd+jq/0dqD8aKdm3h/IeCoPVPPRW6NDAz0KO6mob9ae6mmUaRkZzUg==
=rGlj
-----END PGP SIGNATURE-----

--Signature_Mon__18_Apr_2005_07_50_29_-0400_52fU4QQmBggv+bf=--