LED驱动的方式有多种,可以自定义驱动,然后通过/dev/myled 设备文件,来控制led。
也可以通过内核 led驱动架构来控制,通过/sys/leds/myled/ 里面的各种文件来控制。内核还提供了一个非常方便的方法,就是用过leds_gpio驱动来控制LED. 我们只需要配置相关引脚就新了。
步骤如下:
1.添加配置引脚
修改 dev.c 文件 在内核目录/arch/arm/mach-nuc970/ 中。
添加头文件
#include <linux/leds.h> // add by simon for leds_gpio driver
添加引脚配置
#if defined(CONFIG_LEDS_GPIO)
//================leds_gpio add by simon =============
static struct gpio_led gpio_leds[] = {
{
.name = "red",
.gpio = NUC970_PH12,
.default_state = LEDS_GPIO_DEFSTATE_ON, // 默认LED亮
.active_low = 0, // 低电平亮
.default_trigger = "timer", // 触发器
},
};
static struct gpio_led_platform_data gpio_led_info = {
.leds = gpio_leds,
.num_leds = ARRAY_SIZE(gpio_leds),
};
static struct platform_device leds_gpio = {
.name = "leds-gpio",
.id = -1,
.dev = {
.platform_data = &gpio_led_info,
//.release = platformdev_release,
},
};
//=====================================================
#endif
|