在Linux设备树语法详解和Linux Platform驱动模型(一) _设备信息中我们讨论了设备信息的写法,本文主要讨论平台总线中另外一部分-驱动方法,将试图回答下面几个问题:
如何填充platform_driver对象?
如何将驱动方法对象注册到平台总线中?
正文前的一点罗嗦
写驱动也有一段时间了,可以发现,其实驱动本质上只做了两件事:向上提供接口,向下控制硬件,当然,这里的向上并不是直接提供接口到应用层,而是提供接口给内核再由内核间接的将我们的接口提供给应用层。而写驱动也是有一些套路可寻的,拿到一个硬件,我们大体可以按照下面的流程写一个驱动:
确定驱动架构:根据硬件连接方式结合分层/分离思想设计驱动的基本结构
确定驱动对象:内核中的一个驱动/设备就是一个对象,1.定义,2.初始化,3.注册,4.注销
向上提供接口:根据业务需要确定提供cdev/proc/sysfs哪种接口
向下控制硬件:1.查看原理图确定引脚和控制逻辑,2.查看芯片手册确定寄存器配置方式,3.进行内

