接上一篇:linux 板级文件信息的注册流程
问题:板级信息跟确切的说是CPU的资源,这些资源最终是被驱动所用的。那板级信息在随同设备注册到内核之后是如何被驱动获取呢?
1.驱动注册一个模块,该模块加载后悔调用驱动初始化函数
module_init(bt_hwctl_init);///bt_hwctl_init被调用
static int __init bt_hwctl_init(void)
{
....................
/*注册驱动,该去的注册的时候会根据驱动的名字去匹配平台设备,如果匹配成功调用probe函数,同时probe会获得之前平台设备注册进内核的struct platform_device结构体,从改结构体中可以驱动bluetooth的私有数据*/
platform_driver_register(&mt6622_driver); //
....................
}
2.probe获取bluetooth私有数据
static int mt6622_probe(struct platform_device *pdev)
{
struct mt6622_platform_data *pdata = pdev->dev.platform_data; //bluetooth私有数据
..............................
}
其中:struct platform_device *pdev是bt_hwctl_init调用 platform_driver_register时候获取的结构体。