c3bc9956ec
Add support for LED triggers to the LED subsystem. "Triggers" are events which change the state of an LED. Two kinds of trigger are available, simple ones which can be added to exising code with minimum disruption and complex ones for implementing new or more complex functionality. Signed-off-by: Richard Purdie <rpurdie@rpsys.net> Cc: Russell King <rmk@arm.linux.org.uk> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
45 lines
1.2 KiB
C
45 lines
1.2 KiB
C
/*
|
|
* LED Core
|
|
*
|
|
* Copyright 2005 Openedhand Ltd.
|
|
*
|
|
* Author: Richard Purdie <rpurdie@openedhand.com>
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License version 2 as
|
|
* published by the Free Software Foundation.
|
|
*
|
|
*/
|
|
#ifndef __LEDS_H_INCLUDED
|
|
#define __LEDS_H_INCLUDED
|
|
|
|
#include <linux/leds.h>
|
|
|
|
static inline void led_set_brightness(struct led_classdev *led_cdev,
|
|
enum led_brightness value)
|
|
{
|
|
if (value > LED_FULL)
|
|
value = LED_FULL;
|
|
led_cdev->brightness = value;
|
|
if (!(led_cdev->flags & LED_SUSPENDED))
|
|
led_cdev->brightness_set(led_cdev, value);
|
|
}
|
|
|
|
extern rwlock_t leds_list_lock;
|
|
extern struct list_head leds_list;
|
|
|
|
#ifdef CONFIG_LEDS_TRIGGERS
|
|
void led_trigger_set_default(struct led_classdev *led_cdev);
|
|
void led_trigger_set(struct led_classdev *led_cdev,
|
|
struct led_trigger *trigger);
|
|
#else
|
|
#define led_trigger_set_default(x) do {} while(0)
|
|
#define led_trigger_set(x, y) do {} while(0)
|
|
#endif
|
|
|
|
ssize_t led_trigger_store(struct class_device *dev, const char *buf,
|
|
size_t count);
|
|
ssize_t led_trigger_show(struct class_device *dev, char *buf);
|
|
|
|
#endif /* __LEDS_H_INCLUDED */
|