xref: /freebsd/share/man/man4/gpioled.4 (revision 9a2a079a5182c4bcdd547839ff652fb4384b9a80)
18ce07fe7SLuiz Otavio O Souza.\" Copyright (c) 2013, Luiz Otavio O Souza <loos@FreeBSD.org>
28ce07fe7SLuiz Otavio O Souza.\" All rights reserved.
38ce07fe7SLuiz Otavio O Souza.\"
48ce07fe7SLuiz Otavio O Souza.\" Redistribution and use in source and binary forms, with or without
58ce07fe7SLuiz Otavio O Souza.\" modification, are permitted provided that the following conditions
68ce07fe7SLuiz Otavio O Souza.\" are met:
78ce07fe7SLuiz Otavio O Souza.\" 1. Redistributions of source code must retain the above copyright
88ce07fe7SLuiz Otavio O Souza.\"    notice, this list of conditions and the following disclaimer.
98ce07fe7SLuiz Otavio O Souza.\" 2. Redistributions in binary form must reproduce the above copyright
108ce07fe7SLuiz Otavio O Souza.\"    notice, this list of conditions and the following disclaimer in the
118ce07fe7SLuiz Otavio O Souza.\"    documentation and/or other materials provided with the distribution.
128ce07fe7SLuiz Otavio O Souza.\"
138ce07fe7SLuiz Otavio O Souza.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
148ce07fe7SLuiz Otavio O Souza.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
158ce07fe7SLuiz Otavio O Souza.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
168ce07fe7SLuiz Otavio O Souza.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
178ce07fe7SLuiz Otavio O Souza.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
188ce07fe7SLuiz Otavio O Souza.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
198ce07fe7SLuiz Otavio O Souza.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
208ce07fe7SLuiz Otavio O Souza.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
218ce07fe7SLuiz Otavio O Souza.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
228ce07fe7SLuiz Otavio O Souza.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
238ce07fe7SLuiz Otavio O Souza.\" SUCH DAMAGE.
248ce07fe7SLuiz Otavio O Souza.\"
258ce07fe7SLuiz Otavio O Souza.\" $FreeBSD$
268ce07fe7SLuiz Otavio O Souza.\"
27*9a2a079aSLuiz Otavio O Souza.Dd February 13, 2014
288ce07fe7SLuiz Otavio O Souza.Dt GPIOLED 4
298ce07fe7SLuiz Otavio O Souza.Os
308ce07fe7SLuiz Otavio O Souza.Sh NAME
318ce07fe7SLuiz Otavio O Souza.Nm gpioled
328ce07fe7SLuiz Otavio O Souza.Nd GPIO led generic device driver
338ce07fe7SLuiz Otavio O Souza.Sh SYNOPSIS
348ce07fe7SLuiz Otavio O Souza.Cd "device gpio"
358ce07fe7SLuiz Otavio O Souza.Cd "device gpioled"
368ce07fe7SLuiz Otavio O Souza.Pp
378ce07fe7SLuiz Otavio O SouzaThis driver attaches a
388ce07fe7SLuiz Otavio O Souza.Xr led 4
398ce07fe7SLuiz Otavio O Souzadevice to a GPIO pin.
408ce07fe7SLuiz Otavio O Souza.Sh DESCRIPTION
418ce07fe7SLuiz Otavio O SouzaThe
428ce07fe7SLuiz Otavio O Souza.Em gpioled
438ce07fe7SLuiz Otavio O Souzadriver provides a glue to attach a
448ce07fe7SLuiz Otavio O Souza.Xr led 4
458ce07fe7SLuiz Otavio O Souzacompatible device to a GPIO pin.
468ce07fe7SLuiz Otavio O SouzaEach led on the system has a
478ce07fe7SLuiz Otavio O Souza.Pa name
488ce07fe7SLuiz Otavio O Souzawhich is used to export a device in
498ce07fe7SLuiz Otavio O Souza.Pa /dev/led/<name> .
508ce07fe7SLuiz Otavio O SouzaThe GPIO pin can then be controlled by writing to this device as described
518ce07fe7SLuiz Otavio O Souzaon
528ce07fe7SLuiz Otavio O Souza.Xr led 4 .
538ce07fe7SLuiz Otavio O Souza.Pp
548ce07fe7SLuiz Otavio O SouzaOn a hint based system, like
558ce07fe7SLuiz Otavio O Souza.Li MIPS , these values are configureable for
568ce07fe7SLuiz Otavio O Souza.Nm :
578ce07fe7SLuiz Otavio O Souza.Bl -tag -width ".Va hint.gpioiic.%d.atXXX"
588ce07fe7SLuiz Otavio O Souza.It Va hint.gpioled.%d.at
598ce07fe7SLuiz Otavio O SouzaThe gpiobus you are attaching to.
608ce07fe7SLuiz Otavio O SouzaNormally assigned to gpiobus0.
618ce07fe7SLuiz Otavio O Souza.It Va hint.gpioled.%d.name
628ce07fe7SLuiz Otavio O SouzaArbitrary name of device in
638ce07fe7SLuiz Otavio O Souza.Pa /dev/led/
648ce07fe7SLuiz Otavio O Souzato create for
658ce07fe7SLuiz Otavio O Souza.Xr led 4 .
668ce07fe7SLuiz Otavio O Souza.It Va hint.gpioled.%d.pins
678ce07fe7SLuiz Otavio O SouzaWhich pin on the GPIO interface to map to this instance.
688ce07fe7SLuiz Otavio O SouzaPlease note that this mask should only ever have one bit set
698ce07fe7SLuiz Otavio O Souza(any others bits - i.e., pins - will be ignored).
708ce07fe7SLuiz Otavio O Souza.El
71*9a2a079aSLuiz Otavio O Souza.Pp
72*9a2a079aSLuiz Otavio O SouzaOn a
73*9a2a079aSLuiz Otavio O Souza.Xr FDT 4
74*9a2a079aSLuiz Otavio O Souzabased system, like
75*9a2a079aSLuiz Otavio O Souza.Li ARM , the dts part for a
76*9a2a079aSLuiz Otavio O Souza.Nm gpioled
77*9a2a079aSLuiz Otavio O Souzadevice usually looks like:
78*9a2a079aSLuiz Otavio O Souza.Bd -literal
79*9a2a079aSLuiz Otavio O Souzagpio: gpio {
80*9a2a079aSLuiz Otavio O Souza
81*9a2a079aSLuiz Otavio O Souza	gpio-controller;
82*9a2a079aSLuiz Otavio O Souza	...
83*9a2a079aSLuiz Otavio O Souza
84*9a2a079aSLuiz Otavio O Souza	led0 {
85*9a2a079aSLuiz Otavio O Souza		compatible = "gpioled";
86*9a2a079aSLuiz Otavio O Souza		gpios = <&gpio 16 2 0>;		/* GPIO pin 16. */
87*9a2a079aSLuiz Otavio O Souza		name = "ok";
88*9a2a079aSLuiz Otavio O Souza	};
89*9a2a079aSLuiz Otavio O Souza
90*9a2a079aSLuiz Otavio O Souza	led1 {
91*9a2a079aSLuiz Otavio O Souza		compatible = "gpioled";
92*9a2a079aSLuiz Otavio O Souza		gpios = <&gpio 17 2 0>;		/* GPIO pin 17. */
93*9a2a079aSLuiz Otavio O Souza		name = "user-led1";
94*9a2a079aSLuiz Otavio O Souza	};
95*9a2a079aSLuiz Otavio O Souza};
96*9a2a079aSLuiz Otavio O Souza.Ed
97*9a2a079aSLuiz Otavio O Souza.Pp
98*9a2a079aSLuiz Otavio O SouzaAnd optionally, you can choose combine all the leds under a single
99*9a2a079aSLuiz Otavio O Souza.Dq gpio-leds
100*9a2a079aSLuiz Otavio O Souzacompatible node:
101*9a2a079aSLuiz Otavio O Souza.Bd -literal
102*9a2a079aSLuiz Otavio O Souzasimplebus0 {
103*9a2a079aSLuiz Otavio O Souza
104*9a2a079aSLuiz Otavio O Souza	...
105*9a2a079aSLuiz Otavio O Souza
106*9a2a079aSLuiz Otavio O Souza	leds {
107*9a2a079aSLuiz Otavio O Souza		compatible = "gpio-leds";
108*9a2a079aSLuiz Otavio O Souza
109*9a2a079aSLuiz Otavio O Souza		led0 {
110*9a2a079aSLuiz Otavio O Souza			gpios = <&gpio 16 2 0>;
111*9a2a079aSLuiz Otavio O Souza			name = "ok"
112*9a2a079aSLuiz Otavio O Souza		};
113*9a2a079aSLuiz Otavio O Souza
114*9a2a079aSLuiz Otavio O Souza		led1 {
115*9a2a079aSLuiz Otavio O Souza			gpios = <&gpio 17 2 0>;
116*9a2a079aSLuiz Otavio O Souza			name = "user-led1"
117*9a2a079aSLuiz Otavio O Souza		};
118*9a2a079aSLuiz Otavio O Souza	};
119*9a2a079aSLuiz Otavio O Souza};
120*9a2a079aSLuiz Otavio O Souza.Ed
121*9a2a079aSLuiz Otavio O Souza.Pp
122*9a2a079aSLuiz Otavio O SouzaBoth methods are equally supported and it is possible to have the leds
123*9a2a079aSLuiz Otavio O Souzadefined with any sort of mix between the methods.
124*9a2a079aSLuiz Otavio O SouzaThe only restriction is that a GPIO pin cannot be mapped by two different
125*9a2a079aSLuiz Otavio O Souza(gpio)leds.
126*9a2a079aSLuiz Otavio O Souza.Pp
127*9a2a079aSLuiz Otavio O SouzaFor more details about the
128*9a2a079aSLuiz Otavio O Souza.Va gpios
129*9a2a079aSLuiz Otavio O Souzaproperty, please consult
130*9a2a079aSLuiz Otavio O Souza.Pa /usr/src/sys/boot/fdt/dts/bindings-gpio.txt .
131*9a2a079aSLuiz Otavio O Souza.Pp
132*9a2a079aSLuiz Otavio O SouzaThe property
133*9a2a079aSLuiz Otavio O Souza.Va name
134*9a2a079aSLuiz Otavio O Souzais the arbitrary name of device in
135*9a2a079aSLuiz Otavio O Souza.Pa /dev/led/
136*9a2a079aSLuiz Otavio O Souzato create for
137*9a2a079aSLuiz Otavio O Souza.Xr led 4 .
1388ce07fe7SLuiz Otavio O Souza.Sh SEE ALSO
139*9a2a079aSLuiz Otavio O Souza.Xr fdt 4 ,
1408ce07fe7SLuiz Otavio O Souza.Xr gpio 4 ,
1418ce07fe7SLuiz Otavio O Souza.Xr led 4 ,
1428ce07fe7SLuiz Otavio O Souza.Xr gpioiic 4
1438ce07fe7SLuiz Otavio O Souza.Sh HISTORY
1448ce07fe7SLuiz Otavio O SouzaThe
1458ce07fe7SLuiz Otavio O Souza.Nm
1468ce07fe7SLuiz Otavio O Souzamanual page first appeared in
1478ce07fe7SLuiz Otavio O Souza.Fx 11.0 .
1488ce07fe7SLuiz Otavio O Souza.Sh AUTHORS
1498ce07fe7SLuiz Otavio O SouzaThis
1508ce07fe7SLuiz Otavio O Souzamanual page was written by
1518ce07fe7SLuiz Otavio O Souza.An Luiz Otavio O Souza .
152