Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
GPIOLED(4)		    Kernel Interfaces Manual		    GPIOLED(4)

NAME
       gpioled -- GPIO LED generic device driver

SYNOPSIS
       To  compile  this  driver into the kernel, place	the following lines in
       your kernel configuration file:

	     device gpio
	     device gpioled

DESCRIPTION
       The gpioled driver provides glue	to attach a led(4)  compatible	device
       to  a GPIO pin.	Each LED in the	system has a name which	is used	to ex-
       port a device as	/dev/led/<name>.  The GPIO pin can then	be  controlled
       by writing to this device as described in led(4).

       On  a device.hints(5) based system, like	MIPS, these values are config-
       urable for gpioled:

       hint.gpioled.%d.at     The gpiobus you are attaching to.	 Normally  as-
			      signed to	gpiobus0.

       hint.gpioled.%d.name   Arbitrary	 name of device	in /dev/led/ to	create
			      for led(4).

       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).

       hint.gpioled.%d.invert
			      If  set  to 1, the pin will be set to 0 to light
			      the LED, and 1 to	clear it.

       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.

       On a FDT(4) based system, like ARM, the DTS part	for a  gpioled	device
       usually looks like:

       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";
	       };
       };

       Optionally,  you	 can  choose  to  combine  all the LEDs	under a	single
       "gpio-leds" compatible node:

       simplebus0 {

	       ...

	       leds {
		       compatible = "gpio-leds";

		       led0 {
			       gpios = <&gpio 16 2 0>;
			       name = "ok"
		       };

		       led1 {
			       gpios = <&gpio 17 2 0>;
			       name = "user-led1"
		       };
	       };
       };

       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.

       For   more   details   about   the   gpios   property,  please  consult
       /usr/src/sys/dts/bindings-gpio.txt.

       The property name is the	arbitrary name of the device in	 /dev/led/  to
       create for led(4).

SEE ALSO
       fdt(4), gpio(4),	gpioiic(4), led(4)

HISTORY
       The gpioled manual page first appeared in FreeBSD 10.1.

AUTHORS
       This manual page	was written by Luiz Otavio O Souza.

FreeBSD	14.3			 May 23, 2019			    GPIOLED(4)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=gpioled&sektion=4&manpath=FreeBSD+14.3-RELEASE+and+Ports>

home | help