Linux内核的platform总线驱动架构

目录

1 驱动的分割与分离

2 不使用设备树时的platform设备驱动

 3 使用设备树时的platform设备驱动


1 驱动的分割与分离

我们写裸机程序的时候,思路是像下图这样的,这样的弊端就是我们要重复写设备驱动,

简单的方法是就是每个平台的 I2C 控制器都提供一个统一的接口(也叫做主机驱动),每个设备的话也只提供一个驱动程序(设备驱动),每个设备通过统一的 I2C接口驱动来访问。

 这就是驱动的分隔,驱动只负责驱动,设备只负责设备,想办法将两者进行匹配即可。这个就是 Linux 中的总线(bus)、驱动(driver)和设备(device)模型,也就是常说的驱动分离。

2 不使用设备树时的platform设备驱动

 先来看一下不是用设备树的时候,platform总线驱动怎么写,其实不使用设备树时的platform设备驱动主要有三个结构体,分别是bus_type, platform_driver, platform_device。我简单画个图加深自己对这个知识点的记忆。

 3 使用设备树时的platform设备驱动

使用设备树时,我们在设备树文件中描述设备信息,这时候就不再需要platform_device结构体了。

猜你喜欢

转载自blog.csdn.net/u013171226/article/details/131696525