I2C驱动由3部分组成:I2C核心、I2C总线驱动、I2C设备驱动。
一个i2c总线上挂了几个器件,i2c总线需要驱动, 器件也需要驱动。
一个i2c器件被定义为i2c_ client对象;
https://elixir.bootlin.com/linux/latest/source/include/linux/i2c.h#L314
一个i2c器件需要绑定的驱动被定义为i2c_drvier对象;
https://elixir.bootlin.com/linux/latest/source/include/linux/i2c.h#L255
i2c总线适配器(i2c adapter,i2c物理接口)通常被定义为platform_device, 驱动被定义为platform_driver;