一、概念:
1、设备:struct device:该数据结构是对物理设备的软件抽象,比如I2C slave(对应i2c_client)和I2C 适配器(对应i2c_adapter)都是对应物理设备的软件表达;
2、驱动:struct device_driver:该数据结构是对设备驱动的表达,从该数据结构的命名来看,它表达的意思是设备的驱动,从其回调函数成员变量来看,它实际是对struct device的管理(包括检测、电源管理);但是并不包括对设备的功能性操作。可以说struct device_driver使用struct device实现了对具体物理设备的管理。
3、总线:struct bus_type:这个数据结构从名字看似乎很容易理解,总线,但是在计算机体系里,总线这个词本身就很抽象,到底什么是计算机体系的总线,struct bus_type能否表达计算机系统中的总线呢?从kernel的注释上看,struct bus_type是表示处理器与一个或多个设备之间的通道。从设备模型上看,所有设备都是通过“总线”进行连接。
* A bus is a channel between the processor and one or more devices. For the
* purposes of the device model, all devices are connected via a bus, even if
* it is an internal, virtual, "platform" bus. Buses can plug into each other.
* A USB controller is usually a PCI devic