2006-03-31 02:31:04 -08:00
/*
* 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
2007-07-08 23:19:31 +01:00
# include <linux/device.h>
2007-12-31 23:09:44 +00:00
# include <linux/rwsem.h>
2006-03-31 02:31:04 -08:00
# include <linux/leds.h>
2012-06-13 10:01:37 +08:00
static inline void __led_set_brightness ( struct led_classdev * led_cdev ,
2006-03-31 02:31:04 -08:00
enum led_brightness value )
{
2009-01-10 18:54:39 +00:00
if ( value > led_cdev - > max_brightness )
value = led_cdev - > max_brightness ;
2006-03-31 02:31:04 -08:00
led_cdev - > brightness = value ;
if ( ! ( led_cdev - > flags & LED_SUSPENDED ) )
led_cdev - > brightness_set ( led_cdev , value ) ;
}
2008-03-09 20:54:37 +00:00
static inline int led_get_brightness ( struct led_classdev * led_cdev )
{
return led_cdev - > brightness ;
}
2012-08-15 21:44:34 +08:00
void led_stop_software_blink ( struct led_classdev * led_cdev ) ;
2007-12-31 23:09:44 +00:00
extern struct rw_semaphore leds_list_lock ;
2006-03-31 02:31:04 -08:00
extern struct list_head leds_list ;
2006-03-31 02:31:05 -08:00
# 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 ) ;
2008-03-09 20:54:37 +00:00
void led_trigger_remove ( struct led_classdev * led_cdev ) ;
2011-05-24 17:13:22 -07:00
static inline void * led_get_trigger_data ( struct led_classdev * led_cdev )
{
return led_cdev - > trigger_data ;
}
2006-03-31 02:31:05 -08:00
# else
2008-03-09 20:59:57 +00:00
# define led_trigger_set_default(x) do {} while (0)
# define led_trigger_set(x, y) do {} while (0)
# define led_trigger_remove(x) do {} while (0)
2011-05-24 17:13:22 -07:00
# define led_get_trigger_data(x) (NULL)
2006-03-31 02:31:05 -08:00
# endif
2007-07-08 23:19:31 +01:00
ssize_t led_trigger_store ( struct device * dev , struct device_attribute * attr ,
const char * buf , size_t count ) ;
ssize_t led_trigger_show ( struct device * dev , struct device_attribute * attr ,
char * buf ) ;
2006-03-31 02:31:05 -08:00
2006-03-31 02:31:04 -08:00
# endif /* __LEDS_H_INCLUDED */