1.利用名称来适配
在创建的platform_driver和platform_device中利用结构体内参数适配
.name中定义相同的名称
实例
驱动
static struct platform_driver led_driver = {
.probe = led_probe,
.remove = led_remove,
.driver = {
.name = "100ask_led",
},
};
设备
static struct platform_device led_dev = {
.name = "100ask_led",
.num_resources = ARRAY_SIZE(resources),
.resource = resources,
.dev = {
.release = led_dev_release,
},
};
2.利用id_table来进行适配
①定义id_table结构体
参数为名称,序号
static const struct platform_device_id led_id_table[] = {
{"100ask_led", 1},
{"100ask_led_3", 2},
{"100ask_led_4", 3},
{ },
};
②在driver中添加.id_table = led_id_table
实例
驱动
static struct platform_driver led_driver = {
.probe = led_probe,
.remove = led_remove,
.driver = {
.name = "100ask_led",
},
.id_table = led_id_table,
};
设备
static struct platform_device led_dev = {
.name = "100ask_led_3",
.num_resources = ARRAY_SIZE(resources),
.resource = resources,
.dev = {
.release = led_dev_release,
},
};
3.在设备中利用.driver_override来适配
驱动
static struct platform_driver led_driver = {
.probe = led_probe,
.remove = led_remove,
.driver = {
.name = "100ask_led",
},
};
设备
static struct platform_device led_dev = {
.name = "100ask_led_second",
.num_resources = ARRAY_SIZE(resources),
.resource = resources,
.dev = {
.release = led_dev_release,
},
.driver_override = "100ask_led",
};