aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/leds.h
diff options
context:
space:
mode:
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>2018-07-02 22:05:22 +0200
committerJacek Anaszewski <jacek.anaszewski@gmail.com>2018-07-05 23:21:10 +0200
commita7e7a3156300a7e1982b03cc9cb8fb0c86434c49 (patch)
treef3354f80cf210ac750589fecb7a838fc5803d0ec /include/linux/leds.h
parentleds: triggers: let struct led_trigger::activate() return an error code (diff)
downloadlinux-dev-a7e7a3156300a7e1982b03cc9cb8fb0c86434c49.tar.xz
linux-dev-a7e7a3156300a7e1982b03cc9cb8fb0c86434c49.zip
leds: triggers: add device attribute support
As many triggers use device attributes, add support for these in led_trigger_set which allows simplifying the drivers accordingly. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Acked-by: Pavel Machek <pavel@ucw.cz> Signed-off-by: Jacek Anaszewski <jacek.anaszewski@gmail.com>
Diffstat (limited to 'include/linux/leds.h')
-rw-r--r--include/linux/leds.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/include/linux/leds.h b/include/linux/leds.h
index ba5baaaa43bf..33484a5c7478 100644
--- a/include/linux/leds.h
+++ b/include/linux/leds.h
@@ -262,8 +262,19 @@ struct led_trigger {
/* Link to next registered trigger */
struct list_head next_trig;
+
+ const struct attribute_group **groups;
};
+/*
+ * Currently the attributes in struct led_trigger::groups are added directly to
+ * the LED device. As this might change in the future, the following
+ * macros abstract getting the LED device and its trigger_data from the dev
+ * parameter passed to the attribute accessor functions.
+ */
+#define led_trigger_get_led(dev) ((struct led_classdev *)dev_get_drvdata((dev)))
+#define led_trigger_get_drvdata(dev) (led_get_trigger_data(led_trigger_get_led(dev)))
+
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,