天天看點

platform_driver device_driver dts自動加載platform_device及休眠喚醒的關系

platform總線是我們驅動程式設計中經常用的一種,之間的大體關系如下:

platform_driver device_driver dts自動加載platform_device及休眠喚醒的關系

1.platform_bus_init 

由start_kernel在加載各自init之前調用。主要就是注冊一個bus,最終會添加到bus_kset連結清單中去,總線本身不會涉及到休眠喚醒,其休眠喚醒函數都是一個中間過程。為各自具體的裝置驅動準備的。

2.platform_device_register

如上圖描述所示,主要内部邏輯有下:

1):首先将dev添加到devices_kset連結清單中去

2):其次将dev添加到總線的devices連結清單上去

3):将裝置添加到電源管理的dpm_list連結清單上去,為休眠喚醒作準備。通過這一塊就是功耗的核心部分

3.__platform_driver_register

這個部分主要有:

1):将自己添加到總線的driver list連結清單上去

2):調用attach函數就自己與device綁定,并調用driver的probe函數

platform_driver device_driver及PM結構體關系圖

繼續閱讀