介绍相关概念和实现API
1:平台设备总线相关的概念
平台设备总线说白了就是将一个驱动分为了设备端和驱动端:
设备端:主要是用来向内核注册设备的资源;
驱动端:是利用设备端注册的资源来实现驱动程序;
设备端:仅仅是向内核注册驱动的资源
比如led灯,他的资源:
要使用哪一个寄存器;
灯对应的引脚;
灯的有效电平;
驱动端:取出设备端向内核注册的资源,根据拿到的资源来实现led灯的驱动,设备端跟驱动端的匹配是通过总线的方式来匹配,这个总线并不是真实存在的一条总线,而是linux虚拟出来的总线;
2:平台设备总线的意义
提高驱动端代码的复用率,一般仅仅需要写设备端的代码,代码量就少了,假如有了设备树 我们就可以实现不写代码就能完成驱动程序;
3:平台设备总线的分层
驱动代码分为两层:驱动层和设备层;
4:平台设备总线设备层的实现
设备层主要是用来跟总线提供相应的资源
led灯来说,提供的资源包括:
引脚号;
有效电平;
寄存器地址;
设备层只需要考虑如何向内核提供这些资源,这里只涉及一个函数: