由于我是新手,对嵌入式领域还不太了解,因此在理解i2c设备/驱动程序和平台设备/驱动程序之间的明显区别方面遇到了困难。
我阅读了这个链接:
What is the difference between Platform driver and normal device driver..?
其中说,平台设备/驱动程序用于非可发现设备,例如连接在i2c总线上的设备,平台设备通过名称匹配与驱动程序绑定。
我看过一个板文件,在该文件中,连接在i2c总线上的音频编解码器(非可发现设备)使用i2c API(i2c_register_board_info,omap_i2c_add_bus等)进行注册,因此我的问题是:
- i2c设备/驱动程序和平台设备/驱动程序有何区别?
- 注册内核中的设备/驱动程序时何时使用i2c相关API,何时使用平台相关API(platform_driver_register,platform_device_register),或者如果我们可以使用i2c相关API来注册非可发现设备(连接在i2c上),那么我们何时需要用平台设备注册?