作者:mobiledu2502899157 | 来源:互联网 | 2023-05-28 17:17
由于我是嵌入式领域的新手,因此在理解i2c设备/驱动程序与平台设备/驱动程序之间的明显差异时遇到了困难。
我已阅读此链接:
平台驱动程序和普通设备驱动程序有什么区别?
表示平台设备/驱动程序用于不可发现的设备,例如在i2c总线上连接的设备,并且平台设备通过匹配名称绑定到驱动程序。
我浏览了一个电路板文件,其中使用i2c API(i2c_register_board_info,omap_i2c_add_bus等)注册了在i2c总线上连接的音频编解码器(不可发现的设备),因此我的问题是
i2c设备/驱动程序和平台设备/驱动程序有什么区别?
何时使用i2c相关API以及何时使用平台相关API(platform_driver_register,platform_device_register)在内核中注册设备/驱动程序。或者如果我们可以使用i2c相关的API进行不可发现的设备(在i2c上连接)的注册,则需要平台设备注册。
Drad..
5
每个SOC(片上硅)或微控制器都将具有一个I2C控制器,该控制器提供了一种与I2C设备(例如摄像机传感器,PMIC,温度传感器等)进行连接和通信的方法。用于配置和使用此I2C控制器的驱动程序称为平台驱动程序。该I2C控制器称为平台设备。大多数情况下,平台设备将成为SOC的一部分。I2C控制器的寄存器是使用平台驱动程序编程的。这些寄存器可以说是ARM存储器映射的,并且可以在SOC的TRM上使用。
现在,所有可以通过I2C控制器(如摄像机传感器,PMIC,温度传感器等)连接到SOC或微控制器的I2C设备都需要一个驱动器来控制它们。该驱动程序称为设备驱动程序。这些设备的寄存器不是SOC内存映射的一部分。需要I2C设备(如OV5640摄像机传感器)的数据表来对寄存器进行编程。发送I2C数据以对寄存器进行编程并访问数据。
1> Drad..:
每个SOC(片上硅)或微控制器都将具有一个I2C控制器,该控制器提供了一种与I2C设备(例如摄像机传感器,PMIC,温度传感器等)进行连接和通信的方法。用于配置和使用此I2C控制器的驱动程序称为平台驱动程序。该I2C控制器称为平台设备。大多数情况下,平台设备将成为SOC的一部分。I2C控制器的寄存器是使用平台驱动程序编程的。这些寄存器可以说是ARM存储器映射的,并且可以在SOC的TRM上使用。
现在,所有可以通过I2C控制器(如摄像机传感器,PMIC,温度传感器等)连接到SOC或微控制器的I2C设备都需要一个驱动器来控制它们。该驱动程序称为设备驱动程序。这些设备的寄存器不是SOC内存映射的一部分。需要I2C设备(如OV5640摄像机传感器)的数据表来对寄存器进行编程。发送I2C数据以对寄存器进行编程并访问数据。