Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/drivers/leds/leds.h
15109 views
1
/*
2
* LED Core
3
*
4
* Copyright 2005 Openedhand Ltd.
5
*
6
* Author: Richard Purdie <[email protected]>
7
*
8
* This program is free software; you can redistribute it and/or modify
9
* it under the terms of the GNU General Public License version 2 as
10
* published by the Free Software Foundation.
11
*
12
*/
13
#ifndef __LEDS_H_INCLUDED
14
#define __LEDS_H_INCLUDED
15
16
#include <linux/device.h>
17
#include <linux/rwsem.h>
18
#include <linux/leds.h>
19
20
static inline void led_set_brightness(struct led_classdev *led_cdev,
21
enum led_brightness value)
22
{
23
if (value > led_cdev->max_brightness)
24
value = led_cdev->max_brightness;
25
led_cdev->brightness = value;
26
if (!(led_cdev->flags & LED_SUSPENDED))
27
led_cdev->brightness_set(led_cdev, value);
28
}
29
30
static inline int led_get_brightness(struct led_classdev *led_cdev)
31
{
32
return led_cdev->brightness;
33
}
34
35
extern struct rw_semaphore leds_list_lock;
36
extern struct list_head leds_list;
37
38
#ifdef CONFIG_LEDS_TRIGGERS
39
void led_trigger_set_default(struct led_classdev *led_cdev);
40
void led_trigger_set(struct led_classdev *led_cdev,
41
struct led_trigger *trigger);
42
void led_trigger_remove(struct led_classdev *led_cdev);
43
44
static inline void *led_get_trigger_data(struct led_classdev *led_cdev)
45
{
46
return led_cdev->trigger_data;
47
}
48
49
#else
50
#define led_trigger_set_default(x) do {} while (0)
51
#define led_trigger_set(x, y) do {} while (0)
52
#define led_trigger_remove(x) do {} while (0)
53
#define led_get_trigger_data(x) (NULL)
54
#endif
55
56
ssize_t led_trigger_store(struct device *dev, struct device_attribute *attr,
57
const char *buf, size_t count);
58
ssize_t led_trigger_show(struct device *dev, struct device_attribute *attr,
59
char *buf);
60
61
#endif /* __LEDS_H_INCLUDED */
62
63