总线驱动设备模型(1)——框架认识
输入子系统体现了驱动程序的分层分离的思想:
1、核心层input.c,输入子系统的核心
2、evdev.c,驱动程序的纯软件部分,input_register_handler注册handler,代码稳定
3、buttons.c,驱动部分的硬件相关部分,input_register_device注册device,根据硬件及需求修改
总线驱动设备模型:
1、总线驱动设备模型只是提供一种机制,将驱动程序分为device和driver两部分并彼此建立联系
2、注册device过程:
a、将device放入bus的dev链表
b、从bus的drv链表取出每一个driver,用bus的match函数判断取出的driver能否支持这个device(判断name)
c、如果支持,调用该driver的probe函数(probe函数自由实现)
3、注册driver过程:
a、将driver放入bus的drv链表
b、从bus的dev链表取出每一个device,用bus的match函数判断这个driver能否支持取出的device(判断name)
c、如果支持,调用该driver的probe函数(probe函数自由实现)
附:平台总线驱动设备模型、usb总线驱动设备模型