Scroll to navigation

GPIOLED(4) Device Drivers Manual GPIOLED(4)

NAME

gpioledGPIO 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 export 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 configurable for gpioled:

hint.gpioled.%d.at
The gpiobus you are attaching to. Normally assigned 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.

May 23, 2019 Debian