Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /*
0003  * LED Core
0004  *
0005  * Copyright 2005 Openedhand Ltd.
0006  *
0007  * Author: Richard Purdie <rpurdie@openedhand.com>
0008  */
0009 #ifndef __LEDS_H_INCLUDED
0010 #define __LEDS_H_INCLUDED
0011 
0012 #include <linux/rwsem.h>
0013 #include <linux/leds.h>
0014 
0015 static inline int led_get_brightness(struct led_classdev *led_cdev)
0016 {
0017     return led_cdev->brightness;
0018 }
0019 
0020 void led_init_core(struct led_classdev *led_cdev);
0021 void led_stop_software_blink(struct led_classdev *led_cdev);
0022 void led_set_brightness_nopm(struct led_classdev *led_cdev, unsigned int value);
0023 void led_set_brightness_nosleep(struct led_classdev *led_cdev, unsigned int value);
0024 ssize_t led_trigger_read(struct file *filp, struct kobject *kobj,
0025             struct bin_attribute *attr, char *buf,
0026             loff_t pos, size_t count);
0027 ssize_t led_trigger_write(struct file *filp, struct kobject *kobj,
0028             struct bin_attribute *bin_attr, char *buf,
0029             loff_t pos, size_t count);
0030 enum led_default_state led_init_default_state_get(struct fwnode_handle *fwnode);
0031 
0032 extern struct rw_semaphore leds_list_lock;
0033 extern struct list_head leds_list;
0034 extern struct list_head trigger_list;
0035 extern const char * const led_colors[LED_COLOR_ID_MAX];
0036 
0037 #endif  /* __LEDS_H_INCLUDED */