我在BSP的LED中注册了:
static struct gpio_led ic_leds[] = {
{
.name = "led1:green",
.gpio = USER_LED,
.default_trigger = "heartbeat",
.active_low = 1,
},
};
static struct gpio_led_platform_data ic_led_info = {
.num_leds = ARRAY_SIZE(ic_leds),
.leds = ic_leds,
};
static struct platform_device ic_leds_device = {
.name = "leds-gpio",
.id = -1,
.dev = {
.platform_data = &ic_led_info,
},
};
static void __init ic_add_device_leds(void)
{
platform_device_register(&ic_leds_device);
}
如何在运行时更改触发器?我知道 sysfs 是可能的,但也许以另一种方式存在?
echo "thetriggeryouwant" > /sys/class/leds/someled/trigger
其中thetriggeryouwant
例如phy0rx
,someled
是要更改其触发器的 LED 的名称。
要获取该 LED 的所有可用触发器,您可以cat
该文件:
cat /sys/class/leds/someled/trigger
例如:
[none] timer oneshot mtd nand-disk heartbeat backlight gpio cpu cpu0 cpu1 activity default-on 2188000.ethernet-2:00:link 2188000.ethernet-2:00:100Mbps 2188000.ethernet-2:00:10Mbps
其中括号中的项 ( [none]
) 表示当前触发器。