设备 (device), 驱动(device_driver) 以及总线 (bus_type) 是 Linux 设备驱动模型的三要素
总线将设备和驱动进行绑定在系统注册一个设备的时候, 会寻找与之匹配的驱动, 同样, 在系统注册一个驱动的时候, 会寻找与之匹配的设备, 而匹配工作由总线完成在设备和驱动匹配成功后, 会调用驱动的 probe 函数来探测设备的寄存器资源, 中断, DMA, 时钟, 同时初始化类 (class) 及其操作函数集, 最后注册该类
类指的是具有共同属性和功能的设备集
比较常见的类设备有: v4l2,rtc,tty,input,alsa,misc 等等
下边是驱动开发的主要内容:
1 搭建整个驱动框架, 即实现 probe 函数, remove 函数以及 device_driver 结构体的 dev_pm_ops 成员函数
2 实现驱动控制接口和数据交互接口上述接口与具体的类设备密切相关, 比如 tty 驱动需要实现 tty_operations, 网卡驱动需要实现 net_device_ops,rtc 驱动需要实现 rtc_class_ops
来源: http://www.bubuko.com/infodetail-2520677.html