aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2008-02-02 01:21:54 +0000
committerFelix Fietkau <nbd@openwrt.org>2008-02-02 01:21:54 +0000
commita2ba826425ad14f2b0f8d33486720260a9495c26 (patch)
tree8621560065e7b3ef5acb72e2be7593c72098cdcf
parent738d610209c81288218c31b1edd99e20449550ae (diff)
downloadupstream-a2ba826425ad14f2b0f8d33486720260a9495c26.tar.gz
upstream-a2ba826425ad14f2b0f8d33486720260a9495c26.tar.bz2
upstream-a2ba826425ad14f2b0f8d33486720260a9495c26.zip
"default-on" LED Trigger
The current LED subsystem always initialises LEDs in the OFF state. This is fine for most LEDs but some should be on right from boot (e.g. POWER LED). Following some discussion with the LED subsystem maintainers, a trigger was recommended as the best way to implement this functionality. Here is a patch to add a new trigger "default-on" which will initialise an LED in the ON state. It is not compiled by default. Particular thanks to Rod Whitby for all his help with this. Signed-off-by: Nick Forbes <nick.forbes@incepta.com> SVN-Revision: 10348
-rw-r--r--target/linux/generic-2.6/config-2.6.231
-rw-r--r--target/linux/generic-2.6/files/drivers/leds/ledtrig-default-on.c45
-rw-r--r--target/linux/generic-2.6/patches-2.6.23/402-ledtrig_default_on.patch23
3 files changed, 69 insertions, 0 deletions
diff --git a/target/linux/generic-2.6/config-2.6.23 b/target/linux/generic-2.6/config-2.6.23
index e92c8b3f1b..734842144e 100644
--- a/target/linux/generic-2.6/config-2.6.23
+++ b/target/linux/generic-2.6/config-2.6.23
@@ -677,6 +677,7 @@ CONFIG_LEDS_TRIGGER_HEARTBEAT=y
# CONFIG_LEDS_TRIGGER_IDE_DISK is not set
# CONFIG_LEDS_TRIGGER_MORSE is not set
CONFIG_LEDS_TRIGGER_TIMER=y
+# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
# CONFIG_LEGACY_PTYS is not set
CONFIG_LIBCRC32C=m
# CONFIG_LIBERTAS is not set
diff --git a/target/linux/generic-2.6/files/drivers/leds/ledtrig-default-on.c b/target/linux/generic-2.6/files/drivers/leds/ledtrig-default-on.c
new file mode 100644
index 0000000000..92995e40cf
--- /dev/null
+++ b/target/linux/generic-2.6/files/drivers/leds/ledtrig-default-on.c
@@ -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");
diff --git a/target/linux/generic-2.6/patches-2.6.23/402-ledtrig_default_on.patch b/target/linux/generic-2.6/patches-2.6.23/402-ledtrig_default_on.patch
new file mode 100644
index 0000000000..a59915c3eb
--- /dev/null
+++ b/target/linux/generic-2.6/patches-2.6.23/402-ledtrig_default_on.patch
@@ -0,0 +1,23 @@
+diff -ur linux-2.6.23.1.orig/drivers/leds/Kconfig linux-2.6.23.1/drivers/leds/Kconfig
+--- linux-2.6.23.1.orig/drivers/leds/Kconfig 2007-12-01 00:41:03.000000000 +1300
++++ linux-2.6.23.1/drivers/leds/Kconfig 2007-12-01 01:26:43.000000000 +1300
+@@ -137,4 +137,11 @@
+ tristate "LED Morse Trigger"
+ depends on LEDS_TRIGGERS
+
++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
+diff -ur linux-2.6.23.1.orig/drivers/leds/Makefile linux-2.6.23.1/drivers/leds/Makefile
+--- linux-2.6.23.1.orig/drivers/leds/Makefile 2007-12-01 00:41:03.000000000 +1300
++++ linux-2.6.23.1/drivers/leds/Makefile 2007-12-01 01:27:12.000000000 +1300
+@@ -23,3 +23,4 @@
+ obj-$(CONFIG_LEDS_TRIGGER_IDE_DISK) += ledtrig-ide-disk.o
+ obj-$(CONFIG_LEDS_TRIGGER_HEARTBEAT) += ledtrig-heartbeat.o
+ obj-$(CONFIG_LEDS_TRIGGER_MORSE) += ledtrig-morse.o
++obj-$(CONFIG_LEDS_TRIGGER_DEFAULT_ON) += ledtrig-default-on.o