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