4

我已经在 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 是可能的,但可能以另一种方式存在?

4

1 回答 1

3
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]) 中的项目表示当前触发器。

于 2018-09-26T21:11:47.503 回答