Linux platform驱动框架笔记

1.驱动的分隔

在这里插入图片描述
上图为驱动的分隔,也就是将主机驱动和设备驱动分隔开来。比如 I2C、SPI 等等都会采用驱动分隔的方式来简化驱动的开发。在实际的驱动开发中,一般 I2C 主机控制器驱动(eg:imx6ul的i2c主机驱动)已经由半导体厂家编写好了,而设备驱动(eg:MPU6050的i2c设备驱动)一般也由设备器件的厂家编写好了,我们只需要提供设备信息即可。

2.驱动的分离

在这里插入图片描述
将主机驱动和设备驱动可以再细化。比如 I2C 设备的话提供设备连接到了哪个 I2C 接口上,I2C 的速度是多少等等。相当于将设备信息从设备驱动中剥离开来(驱动的分离),如上图所示。驱动使用标准方法去获取到设备信息(比如从设备树中获取到设备信息),然后根据获取到的设备信息来初始化设备。 这样就相当于驱动只负责驱动,设备只负责设备,想办法将两者进行匹配即可(用platform总线去匹配)。
Linux 内核中大量的驱动程序都采用总线、驱动和设备模式。但在 SOC 中有些外设是没有总线这个概念的,但是又要使用总线、驱动和设备模型该怎么办呢?为了解决此问题,Linux 提出了 platform 这个虚拟总线,相应的就有 platform_driver 和 platform_device。

platform总线:platform总线由Linux 内核提供的,不需要管;
platform_device:在使用设备树的时候,设备的描述被放到了设备树中,因此 platform_device 就不需要我们去编写了;
platform_driver :需要我们去实现。

platform框架是针对于驱动的框架。
对于I2C的完整驱动的解析如下:
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值