leds: Add default-on trigger
authorNick Forbes <Nick.Forbes@huntsworth.com>
Thu, 24 Apr 2008 23:06:52 +0000 (00:06 +0100)
committerRichard Purdie <rpurdie@rpsys.net>
Thu, 24 Apr 2008 23:06:52 +0000 (00:06 +0100)
Add a trigger which allows LEDs to default to the full
brightness state.

Signed-off-by: Nick Forbes <Nick.Forbes@huntsworth.com>
Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
drivers/leds/Kconfig
drivers/leds/Makefile
drivers/leds/ledtrig-default-on.c [new file with mode: 0644]

index 2d5ea8a053381ea9c3b8e0de03922e50cad4502c..86a369bc57d6d91c9137da6940904d6172cf9f90 100644 (file)
@@ -183,4 +183,11 @@ config LEDS_TRIGGER_HEARTBEAT
          load average.
          If unsure, say Y.
 
+config LEDS_TRIGGER_DEFAULT_ON
+       tristate "LED Default ON Trigger"
+       depends on LEDS_TRIGGERS
+       help
+         This allows LEDs to be initialised in the ON state.
+         If unsure, say Y.
+
 endif # NEW_LEDS
index 9adfa2fe37d423ee53daacd2f951b3885b52086e..973d626f5f4a98d582b02eeeb9113728ba605cf3 100644 (file)
@@ -26,3 +26,4 @@ obj-$(CONFIG_LEDS_FSG)                        += leds-fsg.o
 obj-$(CONFIG_LEDS_TRIGGER_TIMER)       += ledtrig-timer.o
 obj-$(CONFIG_LEDS_TRIGGER_IDE_DISK)    += ledtrig-ide-disk.o
 obj-$(CONFIG_LEDS_TRIGGER_HEARTBEAT)   += ledtrig-heartbeat.o
+obj-$(CONFIG_LEDS_TRIGGER_DEFAULT_ON)  += ledtrig-default-on.o
diff --git a/drivers/leds/ledtrig-default-on.c b/drivers/leds/ledtrig-default-on.c
new file mode 100644 (file)
index 0000000..92995e4
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * LED Kernel Default ON Trigger
+ *
+ * Copyright 2008 Nick Forbes <nick.forbes@incepta.com>
+ *
+ * Based on Richard Purdie's ledtrig-timer.c.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ */
+
+#include <linux/module.h>
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/leds.h>
+#include "leds.h"
+
+static void defon_trig_activate(struct led_classdev *led_cdev)
+{
+       led_set_brightness(led_cdev, LED_FULL);
+}
+
+static struct led_trigger defon_led_trigger = {
+       .name     = "default-on",
+       .activate = defon_trig_activate,
+};
+
+static int __init defon_trig_init(void)
+{
+       return led_trigger_register(&defon_led_trigger);
+}
+
+static void __exit defon_trig_exit(void)
+{
+       led_trigger_unregister(&defon_led_trigger);
+}
+
+module_init(defon_trig_init);
+module_exit(defon_trig_exit);
+
+MODULE_AUTHOR("Nick Forbes <nick.forbes@incepta.com>");
+MODULE_DESCRIPTION("Default-ON LED trigger");
+MODULE_LICENSE("GPL");