2024年6月12日发(作者:)
本文由我司收集整编,推荐下载,如有疑问,请与我司联系
RK3066 实现LED闪烁的代码分析
实现LED灯的闪烁,需要在驱动里添加一个定时器函数,具体实现涉及到了
LED GPIO驱动,用户空间程序调用驱动程序。
1.首先来看LED设备驱动注册过程,代码位于../kernel/drivers/leds/led-gpio.c中,
297 static int __init gpio_led_init(void)
298 {
299 return platform_driver_register( gpio_led_driver);
300 }
285 static struct platform_driver gpio_led_driver = {
286 .probe = gpio_led_probe,
287 .remove = __devexit_p(gpio_led_remove),
288 .driver = {
289 .name = “leds-gpio”, //与platform_device结构体rk29_device_gpio_leds(见后
面的添加过程)中定义的.name一致,platform总线通过name将两者关联;
290 .owner = THIS_MODULE,
291 .of_match_table = of_gpio_leds_match,
292 },
293 };
driver中的probe函数,其中pdev对应于 ../kernel/arch/arm/mach-rk30/board-
rk30sdk-box.c 中定义的platform_device结构体rk29_device_gpio_leds,其中.name =
“leds-gpio”
235 static int __devinit gpio_led_probe(struct platform_device *pdev)
236 {
237 struct gpio_led_platform_data *pdata = pdev- rm_data;
238 struct gpio_leds_priv *priv;
发布评论