platform 驱动
linux驱动最开始采用的是纯驱动的写法,驱动工程师只需实现一个功能驱动(driver),所有功能都集中在这个驱动。接着linux内核将设备(device)和驱动(driver)分离,引入了platform
总线驱动框架,内核实现platform
总线,驱动工程师实现platform device
和platform driver
,方便内核管理驱动和提升驱动开发效率。到后来,linux内核将板级信息剥离,不再将板级信息编译到内核,而引入设备树(dtb)概念,以设备树文件描述板级信息,驱动通过获取设备树描述信息执行相关过程。此时,驱动工程师编写驱动时则需要实现设备树dts
和platform driver
,即是用设备树代替platform device
。
目前,现在linux主流驱动开发都是采用第三种方式,linux内核较低版本或者历史维护性项目会采用第二种&#x