嵌入式linux下驱动模型:
1、驱动的绑定
驱动程序绑定driver binding
驱动程序绑定是将设备device与可以控制它的设备驱动程序driver相关联的过程。总线驱动程序bus driver通常会处理,因为有特定于总线bus的结构来表示设备device和驱动程序driver。使用通用的设备device和设备驱动程序driver结构,大多数绑定都可以使用通用代码进行。
Bus
总线bus类型结构包含系统中该总线类型上的所有设备的列表。当为设备调用device_register时,它会被插入到该列表的末尾。总线对象bus object还包含该总线类型的所有驱动程序的列表。当为驱动程序调用driver_register时,它会被插入到该列表的末尾。这是触发驱动程序绑定的两个事件,一个是device_register,一个是driver_register。
设备注册器device_register
当添加新设备时,总线的驱动程序列表会迭代以找到支持它的驱动程序。为了确定这一点,设备的device ID必须与驱动程序支持的device ID之一匹配。比较ID的格式和语义是特定于总线的。与其试图推导复杂的状态机和匹配算法,不如由总线驱动程序提供回调,将设备与驱动程序的ID进行比较。如果找到匹配,则返回1;否则为0。
int match(struct devicedev,struct devic