@@ -195,11 +195,21 @@ static void _led_dm_onoff(const led_tbl_t *led, enum led_cmd cmd, char *arg)
led_set_on(dev, cmd == LED_ON);
}
+static void _led_dm_toggle(const led_tbl_t *led, enum led_cmd cmd, char *arg)
+{
+ struct udevice *dev = NULL;
+ if(led_get_by_label(led->string, &dev))
+ return;
+ if(dev)
+ led_toggle(dev);
+}
+
// this isn't const, as the string will be replaced by the current led's label, always.
static led_tbl_t _led_dm = {
.op = {
[LED_ON] = _led_dm_onoff,
[LED_OFF] = _led_dm_onoff,
+ [LED_TOGGLE] = _led_dm_toggle,
[LED_LIST] = _led_list_name,
},
};