1c72a1d60SRichard Purdie /* 2c72a1d60SRichard Purdie * LED Core 3c72a1d60SRichard Purdie * 4c72a1d60SRichard Purdie * Copyright 2005 Openedhand Ltd. 5c72a1d60SRichard Purdie * 6c72a1d60SRichard Purdie * Author: Richard Purdie <rpurdie@openedhand.com> 7c72a1d60SRichard Purdie * 8c72a1d60SRichard Purdie * This program is free software; you can redistribute it and/or modify 9c72a1d60SRichard Purdie * it under the terms of the GNU General Public License version 2 as 10c72a1d60SRichard Purdie * published by the Free Software Foundation. 11c72a1d60SRichard Purdie * 12c72a1d60SRichard Purdie */ 13c72a1d60SRichard Purdie #ifndef __LEDS_H_INCLUDED 14c72a1d60SRichard Purdie #define __LEDS_H_INCLUDED 15c72a1d60SRichard Purdie 16*f8a7c6feSRichard Purdie #include <linux/device.h> 17c72a1d60SRichard Purdie #include <linux/leds.h> 18c72a1d60SRichard Purdie 19c72a1d60SRichard Purdie static inline void led_set_brightness(struct led_classdev *led_cdev, 20c72a1d60SRichard Purdie enum led_brightness value) 21c72a1d60SRichard Purdie { 22c72a1d60SRichard Purdie if (value > LED_FULL) 23c72a1d60SRichard Purdie value = LED_FULL; 24c72a1d60SRichard Purdie led_cdev->brightness = value; 25c72a1d60SRichard Purdie if (!(led_cdev->flags & LED_SUSPENDED)) 26c72a1d60SRichard Purdie led_cdev->brightness_set(led_cdev, value); 27c72a1d60SRichard Purdie } 28c72a1d60SRichard Purdie 29c72a1d60SRichard Purdie extern rwlock_t leds_list_lock; 30c72a1d60SRichard Purdie extern struct list_head leds_list; 31c72a1d60SRichard Purdie 32c3bc9956SRichard Purdie #ifdef CONFIG_LEDS_TRIGGERS 33c3bc9956SRichard Purdie void led_trigger_set_default(struct led_classdev *led_cdev); 34c3bc9956SRichard Purdie void led_trigger_set(struct led_classdev *led_cdev, 35c3bc9956SRichard Purdie struct led_trigger *trigger); 36c3bc9956SRichard Purdie #else 37c3bc9956SRichard Purdie #define led_trigger_set_default(x) do {} while(0) 38c3bc9956SRichard Purdie #define led_trigger_set(x, y) do {} while(0) 39c3bc9956SRichard Purdie #endif 40c3bc9956SRichard Purdie 41*f8a7c6feSRichard Purdie ssize_t led_trigger_store(struct device *dev, struct device_attribute *attr, 42*f8a7c6feSRichard Purdie const char *buf, size_t count); 43*f8a7c6feSRichard Purdie ssize_t led_trigger_show(struct device *dev, struct device_attribute *attr, 44*f8a7c6feSRichard Purdie char *buf); 45c3bc9956SRichard Purdie 46c72a1d60SRichard Purdie #endif /* __LEDS_H_INCLUDED */ 47