关于这个问题,我之前在分析2.6内核的时候是已经分析过的。
https://blog.youkuaiyun.com/qq_16777851/article/details/81350037
同时在总线驱动模型章节也是从基础知识学习,到最终实现过一个简单的bus的,想要深入学习,最好看下面这个专栏。(基于4.x内核)
https://blog.youkuaiyun.com/qq_16777851/column/info/30460
当然4.x的内核都是已经支持设备树的,所以platform bus也是做了一些调整。
主要是在匹配函数里面的支持设备树。
struct bus_type platform_bus_type = {
.name = "platform",
.dev_groups = platform_dev_groups,
.match = platform_match,
.uevent = platform_uevent,
.dma_configure = platform_dma_configure,
.pm = &platform_dev_pm_ops,
};