999d5a34e7
MFC after: 2 weeks
163 lines
4.0 KiB
Groff
163 lines
4.0 KiB
Groff
.\" Copyright (c) 2013, Luiz Otavio O Souza <loos@FreeBSD.org>
|
|
.\" All rights reserved.
|
|
.\"
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
.\" modification, are permitted provided that the following conditions
|
|
.\" are met:
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
.\" SUCH DAMAGE.
|
|
.\"
|
|
.\" $FreeBSD$
|
|
.\"
|
|
.Dd May 23, 2019
|
|
.Dt GPIOLED 4
|
|
.Os
|
|
.Sh NAME
|
|
.Nm gpioled
|
|
.Nd GPIO LED generic device driver
|
|
.Sh SYNOPSIS
|
|
To compile this driver into the kernel,
|
|
place the following lines in your
|
|
kernel configuration file:
|
|
.Bd -ragged -offset indent
|
|
.Cd "device gpio"
|
|
.Cd "device gpioled"
|
|
.Ed
|
|
.Sh DESCRIPTION
|
|
The
|
|
.Nm
|
|
driver provides glue to attach a
|
|
.Xr led 4
|
|
compatible device to a GPIO pin.
|
|
Each LED in the system has a
|
|
.Pa name
|
|
which is used to export a device as
|
|
.Pa /dev/led/<name> .
|
|
The GPIO pin can then be controlled by writing to this device as described
|
|
in
|
|
.Xr led 4 .
|
|
.Pp
|
|
On a
|
|
.Xr device.hints 5
|
|
based system, like
|
|
.Li MIPS ,
|
|
these values are configurable for
|
|
.Nm :
|
|
.Bl -tag -width ".Va hint.gpioiic.%d.atXXX"
|
|
.It Va hint.gpioled.%d.at
|
|
The gpiobus you are attaching to.
|
|
Normally assigned to gpiobus0.
|
|
.It Va hint.gpioled.%d.name
|
|
Arbitrary name of device in
|
|
.Pa /dev/led/
|
|
to create for
|
|
.Xr led 4 .
|
|
.It Va hint.gpioled.%d.pins
|
|
Which pin on the GPIO interface to map to this instance.
|
|
Please note that this mask should only ever have one bit set
|
|
(any other bits - i.e., pins - will be ignored).
|
|
.It Va hint.gpioled.%d.invert
|
|
If set to 1, the pin will be set to 0 to light the LED, and 1 to clear it.
|
|
.It Va hint.gpioled.%d.state
|
|
The initial state of the LED when the driver takes control over it.
|
|
If set to 1 or 0, the LED will be on or off correspondingly.
|
|
If set to -1, the LED will be kept in its original state.
|
|
.El
|
|
.Pp
|
|
On a
|
|
.Xr FDT 4
|
|
based system, like
|
|
.Li ARM ,
|
|
the DTS part for a
|
|
.Nm gpioled
|
|
device usually looks like:
|
|
.Bd -literal
|
|
gpio: gpio {
|
|
|
|
gpio-controller;
|
|
...
|
|
|
|
led0 {
|
|
compatible = "gpioled";
|
|
gpios = <&gpio 16 2 0>; /* GPIO pin 16. */
|
|
name = "ok";
|
|
};
|
|
|
|
led1 {
|
|
compatible = "gpioled";
|
|
gpios = <&gpio 17 2 0>; /* GPIO pin 17. */
|
|
name = "user-led1";
|
|
};
|
|
};
|
|
.Ed
|
|
.Pp
|
|
Optionally, you can choose to combine all the LEDs under a single
|
|
.Dq gpio-leds
|
|
compatible node:
|
|
.Bd -literal
|
|
simplebus0 {
|
|
|
|
...
|
|
|
|
leds {
|
|
compatible = "gpio-leds";
|
|
|
|
led0 {
|
|
gpios = <&gpio 16 2 0>;
|
|
name = "ok"
|
|
};
|
|
|
|
led1 {
|
|
gpios = <&gpio 17 2 0>;
|
|
name = "user-led1"
|
|
};
|
|
};
|
|
};
|
|
.Ed
|
|
.Pp
|
|
Both methods are equally supported and it is possible to have the LEDs
|
|
defined with any sort of mix between the methods.
|
|
The only restriction is that a GPIO pin cannot be mapped by two different
|
|
(gpio)leds.
|
|
.Pp
|
|
For more details about the
|
|
.Va gpios
|
|
property, please consult
|
|
.Pa /usr/src/sys/dts/bindings-gpio.txt .
|
|
.Pp
|
|
The property
|
|
.Va name
|
|
is the arbitrary name of the device in
|
|
.Pa /dev/led/
|
|
to create for
|
|
.Xr led 4 .
|
|
.Sh SEE ALSO
|
|
.Xr fdt 4 ,
|
|
.Xr gpio 4 ,
|
|
.Xr gpioiic 4 ,
|
|
.Xr led 4
|
|
.Sh HISTORY
|
|
The
|
|
.Nm
|
|
manual page first appeared in
|
|
.Fx 10.1 .
|
|
.Sh AUTHORS
|
|
This
|
|
manual page was written by
|
|
.An Luiz Otavio O Souza .
|