summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/mips/configs/ritmix-rzx50_defconfig6
-rw-r--r--arch/mips/dts/rzx50.dts10
-rw-r--r--commands/trigger.c5
-rw-r--r--drivers/led/led-triggers.c4
4 files changed, 21 insertions, 4 deletions
diff --git a/arch/mips/configs/ritmix-rzx50_defconfig b/arch/mips/configs/ritmix-rzx50_defconfig
index e6f10fb938..232faa2659 100644
--- a/arch/mips/configs/ritmix-rzx50_defconfig
+++ b/arch/mips/configs/ritmix-rzx50_defconfig
@@ -29,12 +29,18 @@ CONFIG_CMD_GETOPT=y
CONFIG_CMD_SLEEP=y
CONFIG_CMD_EDIT=y
CONFIG_CMD_GPIO=y
+CONFIG_CMD_LED=y
CONFIG_CMD_POWEROFF=y
+CONFIG_CMD_LED_TRIGGER=y
CONFIG_CMD_OF_NODE=y
CONFIG_CMD_OF_PROPERTY=y
CONFIG_CMD_OFTREE=y
CONFIG_OFDEVICE=y
# CONFIG_SPI is not set
+CONFIG_LED=y
+CONFIG_LED_GPIO=y
+CONFIG_LED_GPIO_OF=y
+CONFIG_LED_TRIGGERS=y
CONFIG_GPIO_JZ4740=y
CONFIG_SHA1=y
CONFIG_SHA224=y
diff --git a/arch/mips/dts/rzx50.dts b/arch/mips/dts/rzx50.dts
index 360c1bf5de..7ec3352666 100644
--- a/arch/mips/dts/rzx50.dts
+++ b/arch/mips/dts/rzx50.dts
@@ -9,6 +9,16 @@
memory {
reg = <0x00000000 0x4000000>;
};
+
+ gpio-leds {
+ compatible = "gpio-leds";
+
+ lcd-backlight-enable {
+ label = "lcd backlight";
+ gpios = <&gpio4 22 0>;
+ linux,default-trigger = "default-on";
+ };
+ };
};
&serial1 {
diff --git a/commands/trigger.c b/commands/trigger.c
index 17c8411501..b605448a91 100644
--- a/commands/trigger.c
+++ b/commands/trigger.c
@@ -68,8 +68,9 @@ static int do_trigger(int argc, char *argv[])
break;
case LED_COMMAND_DISABLE_TRIGGER:
- led_set_trigger(trigger, NULL);
- return 0;
+ ret = led_set_trigger(trigger, NULL);
+ break;
+
case LED_COMMAND_SET_TRIGGER:
if (argc - optind != 1)
return COMMAND_ERROR_USAGE;
diff --git a/drivers/led/led-triggers.c b/drivers/led/led-triggers.c
index 5eaf732764..c5484d59a5 100644
--- a/drivers/led/led-triggers.c
+++ b/drivers/led/led-triggers.c
@@ -124,7 +124,7 @@ int led_set_trigger(enum led_trigger trigger, struct led *led)
triggers[trigger].led = led;
- if (trigger == LED_TRIGGER_DEFAULT_ON)
+ if (led && trigger == LED_TRIGGER_DEFAULT_ON)
led_set(triggers[trigger].led, triggers[trigger].led->max_value);
return 0;
@@ -145,7 +145,7 @@ int led_get_trigger(enum led_trigger trigger)
return led_get_number(triggers[trigger].led);
}
-int trigger_init(void)
+static int trigger_init(void)
{
return poller_register(&trigger_poller);
}