如何使用设备树控制内置驱动程序初始化顺序?

时间:2019-01-30 10:00:32

标签: linux driver device device-tree

我想更改内置驱动程序模块的初始化顺序。 我使用设备树文件(dts)。 根据我的经验,当我不使用dts文件时,可以使用如下所示的initcall函数控制内置驱动程序的加载顺序。

pure_initcall(fn),device_initcall(fn),late_initcall(fn)...

我的内置驱动程序正在使用dts文件。 这是我的原始代码。

static struct platform_driver board_info_driver = {
    .probe = board_info_probe,
    .remove = board_info_remove,
    .driver = {
        .name = "boardinfo",
        .of_match_table = of_board_info_match,
    },
};

module_platform_driver(board_info_driver);

要更改上述代码的初始化顺序,我尝试使用其他initcall函数。但是,驱动程序加载时间没有太大变化。

static int __init board_info_init(void) 
{
    return platform_driver_register(&board_info_driver);
}
static void __init board_info_exit(void) 
{
    platform_driver_unregister(&board_info_driver);
}
//pure_initcall(board_info_init);
//device_initcall(board_info_init);
late_initicall(board_info_init);

您能给我些什么吗?

0 个答案:

没有答案