LED

From ArmadeusWiki
Revision as of 08:48, 10 July 2012 by FabienM (Talk | contribs) (Switch led with user button)

Jump to: navigation, search

The linux LED driver class

On recent kernel, linux have a led driver. This led can be driven from /sys/class/leds/ directory.

For APF28Dev, the led is configurable under the directory :

 # cd /sys/class/leds/apfdev:green:user

Blinking

The blinking style can be selected with trigger file. By defaut on APF28Dev, Heartbeat is selected :

# cat /sys/class/leds/apfdev:green:user/trigger 
none nand-disk mmc0 timer [heartbeat] backlight gpio default-on 

Blinking style can be changed with echo command :

# echo "nand-disk" > /sys/class/leds/apfdev:green:user/trigger
# cat /sys/class/leds/apfdev:green:user/trigger
none [nand-disk] mmc0 timer heartbeat backlight gpio default-on 

With this "nand-disk" option selected, the led will blink each time nand access occur (try with sync command to see it blinking).

Switch led with user button

It is possible to switch led state using the APF28Dev user button. This button is seen as gpio17 (as seen under APF28Dev datasheet) under Linux, then configure the led trigger as gpio :

# echo "gpio" > /sys/class/leds/apfdev:green:user/trigger

New config files are available :

# ls /sys/class/leds/apfdev:green:user/
brightness          gpio                power               uevent
desired_brightness  inverted            subsystem
device              max_brightness      trigger

Then the trigger gpio can be configured with gpio file :

# echo 17 > gpio

Then pushing the user switch will now commute the LED state.

Links

See the kernel documentation Documentation/leds-class.txt for more information about this driver.