man.bsd.lv manual page server

Manual Page Search Parameters

GPIOLED(4) Device Drivers Manual GPIOLED(4)

gpioledGPIO LED generic device driver

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

device gpio
device gpioled

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.

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

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

The gpioled manual page first appeared in FreeBSD 10.1.

This manual page was written by Luiz Otavio O Souza.

July 30, 2016 FreeBSD-12.0