一、简介
之前没用设备树的时候,是分别编写并注册platform_device和platform_driver来表示设备和驱动,如果使用设备树,设备的描述就放在设备树中,因此只需要实现platform_driver就可以了,具体如下:
1.1、创建节点
因为platform总线需要通过设备节点的compatible属性值来匹配驱动,所以创建节点的重点是设置好compatible属性值。比如:
1.2、兼容属性
在使用设备树的时候,platform驱动会通过of_match_table来保存兼容属性值,也就表明此驱动兼容哪些设备,可以按照如下设置:
static const struct of_device_id led_of_match[] = {
{ .compatible = "atkmini-gpioled"},
{}
};
MODULE_DEVICE_TABLE(of, led_of_match);
/*
*platform平台驱动结构体
*/
static struct platform_driver led_platform_driver = {
.driver = {
.name = "imx6ul-led",
.of_match_table = led_of_match,
},
.probe = leddev_probe,
.remove = leddev_remove