#ifndef __LED_H #define __LED_H #include struct led { void (*set)(struct led *, unsigned int value); int max_value; char *name; int num; struct list_head list; }; struct led *led_by_number(int no); struct led *led_by_name(const char *name); struct led *led_by_name_or_number(const char *str); static inline int led_get_number(struct led *led) { return led->num; } int led_set_num(int num, unsigned int value); int led_set(struct led *led, unsigned int value); int led_register(struct led *led); void led_unregister(struct led *led); void led_unregister(struct led *led); /* gpio LED support */ struct gpio_led { int gpio; bool active_low; struct led led; }; struct gpio_rgb_led { int gpio_r, gpio_g, gpio_b; bool active_low; struct led led; }; #ifdef CONFIG_LED_GPIO int led_gpio_register(struct gpio_led *led); void led_gpio_unregister(struct gpio_led *led); #else static inline int led_gpio_register(struct gpio_led *led) { return -ENOSYS; } static inline void led_gpio_unregister(struct gpio_led *led) { } #endif #ifdef CONFIG_LED_GPIO_RGB int led_gpio_rgb_register(struct gpio_rgb_led *led); void led_gpio_rgb_unregister(struct gpio_led *led); #else static inline int led_gpio_rgb_register(struct gpio_rgb_led *led) { return -ENOSYS; } static inline void led_gpio_rgb_unregister(struct gpio_led *led) { } #endif #endif /* __LED_H */