xref: /freebsd/share/man/man4/led.4 (revision 74240656aa8dc96ddb8290d8b2e111b6c9275368)
174240656SPoul-Henning Kamp.\" Copyright (c) 2003 Sergey A. Osokin <osa@FreeBSD.org>
274240656SPoul-Henning Kamp.\" All rights reserved.
374240656SPoul-Henning Kamp.\"
474240656SPoul-Henning Kamp.\" Redistribution and use in source and binary forms, with or without
574240656SPoul-Henning Kamp.\" modification, are permitted provided that the following conditions
674240656SPoul-Henning Kamp.\" are met:
774240656SPoul-Henning Kamp.\" 1. Redistributions of source code must retain the above copyright
874240656SPoul-Henning Kamp.\"    notice, this list of conditions and the following disclaimer.
974240656SPoul-Henning Kamp.\" 2. Redistributions in binary form must reproduce the above copyright
1074240656SPoul-Henning Kamp.\"    notice, this list of conditions and the following disclaimer in the
1174240656SPoul-Henning Kamp.\"    documentation and/or other materials provided with the distribution.
1274240656SPoul-Henning Kamp.\"
1374240656SPoul-Henning Kamp.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND
1474240656SPoul-Henning Kamp.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
1574240656SPoul-Henning Kamp.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
1674240656SPoul-Henning Kamp.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE
1774240656SPoul-Henning Kamp.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
1874240656SPoul-Henning Kamp.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
1974240656SPoul-Henning Kamp.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2074240656SPoul-Henning Kamp.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
2174240656SPoul-Henning Kamp.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
2274240656SPoul-Henning Kamp.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
2374240656SPoul-Henning Kamp.\" SUCH DAMAGE.
2474240656SPoul-Henning Kamp.\"
2574240656SPoul-Henning Kamp.\" $FreeBSD$
2674240656SPoul-Henning Kamp.\"
2774240656SPoul-Henning Kamp.Dd November 3, 2003
2874240656SPoul-Henning Kamp.Dt LED 4
2974240656SPoul-Henning Kamp.Os
3074240656SPoul-Henning Kamp.Sh NAME
3174240656SPoul-Henning Kamp.Nm led
3274240656SPoul-Henning Kamp.Nd enable soekris hardware specific options like the error LED
3374240656SPoul-Henning Kamp.Sh SYNOPSIS
3474240656SPoul-Henning Kamp.In dev/led/led.h
3574240656SPoul-Henning Kamp.Bd -literal
3674240656SPoul-Henning Kamptypedef void led_t(void *priv, int onoff);
3774240656SPoul-Henning Kamp.Ed
3874240656SPoul-Henning Kamp.Ft dev_t
3974240656SPoul-Henning Kamp.Fn led_create "led_t *func" "void *priv" "char const *name"
4074240656SPoul-Henning Kamp.Pp
4174240656SPoul-Henning Kamp.Ft void
4274240656SPoul-Henning Kamp.Fn led_destroy "dev_t dev"
4374240656SPoul-Henning Kamp.Sh DESCRIPTION
4474240656SPoul-Henning KampThe
4574240656SPoul-Henning Kamp.Nm
4674240656SPoul-Henning Kampdriver provides generic support for handling LEDs, lamps and other
4774240656SPoul-Henning Kampannounciators.
4874240656SPoul-Henning Kamp.Pp
4974240656SPoul-Henning KampThe hardware driver must supply a function to turn the announciator on and off
5074240656SPoul-Henning Kampand the device
5174240656SPoul-Henning Kamp.Va name
5274240656SPoul-Henning Kampof the announciator relative "/dev/led/".
5374240656SPoul-Henning KampThe
5474240656SPoul-Henning Kamp.Va priv
5574240656SPoul-Henning Kampargument is passed back to this on/off function and can be used however
5674240656SPoul-Henning Kampthe hardware driver sees fit.
5774240656SPoul-Henning Kamp.Pp
5874240656SPoul-Henning KampThe lamp can be controlled by opening and writing ascii strings to the
5974240656SPoul-Henning Kamp "/dev/led/bla" device.
6074240656SPoul-Henning Kamp.Pp
6174240656SPoul-Henning KampIn the following we will use this special notation to indicate the resulting
6274240656SPoul-Henning Kampoutput of the announciator:
6374240656SPoul-Henning Kamp.Bl -tag -width Ds -offset indent -compact
6474240656SPoul-Henning Kamp.It Ic *
6574240656SPoul-Henning KampThe announciator is on for 1/10th secound.
6674240656SPoul-Henning Kamp.It Ic _
6774240656SPoul-Henning KampThe announciator is off for 1/10th secound.
6874240656SPoul-Henning Kamp.El
6974240656SPoul-Henning Kamp.Pp
7074240656SPoul-Henning KampState can be set directly, and since the change happens immediately,
7174240656SPoul-Henning Kampit is possible to flash the announciator with very short periods and
7274240656SPoul-Henning Kampsynchronize it with program events.
7374240656SPoul-Henning KampIt should be noted that there is a non-trivial overhead, so this may
7474240656SPoul-Henning Kampnot be usable for benchmarking or measuring short intervals.
7574240656SPoul-Henning Kamp.Pp
7674240656SPoul-Henning Kamp.Bl -tag -width Ds -offset indent -compact
7774240656SPoul-Henning Kamp.It Ic 0
7874240656SPoul-Henning KampTurn the announciator off immediately.
7974240656SPoul-Henning Kamp.It Ic 1
8074240656SPoul-Henning KampTurn the announciator on immediately.
8174240656SPoul-Henning Kamp.El
8274240656SPoul-Henning Kamp.Pp
8374240656SPoul-Henning KampFlashing can be set with a given period.  The pattern continues endlessly.
8474240656SPoul-Henning Kamp.Pp
8574240656SPoul-Henning Kamp.Bl -tag -width Ds -offset indent -compact
8674240656SPoul-Henning Kamp.It Ic f
8774240656SPoul-Henning Kamp_*
8874240656SPoul-Henning Kamp.It Ic f1
8974240656SPoul-Henning Kamp_*
9074240656SPoul-Henning Kamp.It Ic f2
9174240656SPoul-Henning Kamp__**
9274240656SPoul-Henning Kamp.It Ic f3
9374240656SPoul-Henning Kamp___***
9474240656SPoul-Henning Kamp.It Ic ...
9574240656SPoul-Henning Kamp.It Ic f9
9674240656SPoul-Henning Kamp_________*********
9774240656SPoul-Henning Kamp.El
9874240656SPoul-Henning Kamp.Pp
9974240656SPoul-Henning KampThree high-level commands are available:
10074240656SPoul-Henning Kamp.Pp
10174240656SPoul-Henning Kamp.Bl -tag -width Ds -offset indent -compact
10274240656SPoul-Henning Kamp.It Ic d%d
10374240656SPoul-Henning Kampnumbers.  Each digit is blinked out at 1/10th second, zero as
10474240656SPoul-Henning Kampten pulses.  Between digits a one second pause and after the last
10574240656SPoul-Henning Kampdigit a two second pause after which the sequence is repeated.
10674240656SPoul-Henning Kamp.It Ic s%s
10774240656SPoul-Henning Kampstring.
10874240656SPoul-Henning KampThis gives full control over the announciator.
10974240656SPoul-Henning KampLetters 'a' ... 'j' turns the announciator on for from 1/10th to one full
11074240656SPoul-Henning Kampsecond.
11174240656SPoul-Henning KampLetters 'A' ... 'J' turns the announciator off for 1/10th
11274240656SPoul-Henning Kampto one full second.  The sequence is immediately repeated.
11374240656SPoul-Henning Kamp.It Ic m%s
11474240656SPoul-Henning Kampmorse.
11574240656SPoul-Henning Kamp.Bl -tag -width Ds -offset indent -compact
11674240656SPoul-Henning Kamp.It Ic '.'
11774240656SPoul-Henning Kampbecomes _*
11874240656SPoul-Henning Kamp.It Ic '-'
11974240656SPoul-Henning Kampbecomes _***
12074240656SPoul-Henning Kamp.It Ic ' '
12174240656SPoul-Henning Kampbecomes __
12274240656SPoul-Henning Kamp.It Ic '\en'
12374240656SPoul-Henning Kampbecomes ____
12474240656SPoul-Henning Kamp.El
12574240656SPoul-Henning Kamp.Pp
12674240656SPoul-Henning KampThe sequence is repeated after a one second pause.
12774240656SPoul-Henning Kamp.El
12874240656SPoul-Henning Kamp.Sh EXAMPLES
12974240656SPoul-Henning KampA 'd12' flashes the lamp
13074240656SPoul-Henning Kamp.Bd -literal -offset indent
13174240656SPoul-Henning Kamp*__________*_*______________________________
13274240656SPoul-Henning Kamp.Ed
13374240656SPoul-Henning Kamp.Pp
13474240656SPoul-Henning KampA 'sAaAbBa' flashes
13574240656SPoul-Henning Kamp.Bd -literal -offset indent
13674240656SPoul-Henning Kamp_*_**__*
13774240656SPoul-Henning Kamp.Ed
13874240656SPoul-Henning Kamp.Pp
13974240656SPoul-Henning Kamp/usr/games/morse -l "Soekris rocks" > /dev/led/error
14074240656SPoul-Henning Kamp.Sh FILES
14174240656SPoul-Henning Kamp.Bl -tag -width /dev/led/*
14274240656SPoul-Henning Kamp.It Pa /dev/led/*
14374240656SPoul-Henning Kamp.El
14474240656SPoul-Henning Kamp.Sh SEE ALSO
14574240656SPoul-Henning Kamp.Xr morse 6
14674240656SPoul-Henning Kamp.Sh HISTORY
14774240656SPoul-Henning KampThe
14874240656SPoul-Henning Kamp.Nm
14974240656SPoul-Henning Kampdriver first appeared in
15074240656SPoul-Henning Kamp.Fx 5.2 .
15174240656SPoul-Henning Kamp.Sh AUTHORS
15274240656SPoul-Henning Kamp.An -nosplit
15374240656SPoul-Henning KampThis software was written by
15474240656SPoul-Henning Kamp.An Poul-Henning Kamp
15574240656SPoul-Henning Kamp.Aq phk@FreeBSD.org .
15674240656SPoul-Henning Kamp.Pp
15774240656SPoul-Henning KampThis manual page was written by
15874240656SPoul-Henning Kamp.An Sergey A. Osokin
15974240656SPoul-Henning Kamp.Aq osa@FreeBSD.org
16074240656SPoul-Henning Kampand
16174240656SPoul-Henning Kamp.An Poul-Henning Kamp
16274240656SPoul-Henning Kamp.Aq phk@FreeBSD.org .
163