由于我是嵌入式领域的新手,我在理解i2c设备/驱动程序和平台设备/驱动程序之间的明显区别方面遇到了困难。
我读过这个链接:
它说,平台设备/驱动程序用于不可发现的设备,就像连接在i2c总线上的设备一样,平台设备通过匹配的名称绑定到驱动程序。
我已经看过一个板文件,其中连接在i2c总线上的音频编解码器(无法发现的设备)是使用i2c API (i2c_register_board_info,omap_i2c_add_bus等)注册的,所以我的问题是
发布于 2016-03-10 20:00:46
每个片上硅片或微控制器都有一个I2C控制器,它提供了一种连接和通信I2C设备的方式,如摄像机传感器、芯片芯片、温度传感器等。用于配置和使用该I2C控制器的驱动程序称为平台驱动程序。该I2C控制器称为平台设备。主要是平台设备将成为SOC的一部分。I2C控制器的寄存器采用平台驱动程序编程。这些寄存器可以说是ARM内存映射的,并且可以在SOC的TRM上使用。
现在,所有可以通过I2C控制器连接到SOC或微控制器的I2C设备,如相机传感器、PMIC、温度传感器等,都需要一个驱动程序来控制它们。这个驱动程序称为设备驱动程序。这些设备的寄存器不是SOC内存映射的一部分。需要像I2C相机传感器这样的OV5640设备的数据表来编程寄存器。I2C数据被发送到程序寄存器和访问数据。
发布于 2018-10-31 06:31:39
平台驱动程序的官方链接可以在这里找到LWN。
平台设备本质上是无法被发现的,即硬件不能说“嘿!我现在就在!”到软件上。典型的例子是kernel/Documentation/i2c/instantiating-devicesstates:Unlike设备、i2c设备或USB设备,I2C设备没有在硬件级别(在运行时)进行枚举。相反,软件必须知道(在编译时)在每个I2C总线段上连接哪些设备。因此USB和PCI并不是平台设备。
基本上,问题是“它是一个平台设备还是一个标准设备?”更多的是它使用哪辆巴士的问题。要使用特定的平台设备,您必须:
那些在芯片上的设备是平台驱动程序吗?不正确(在理论上,在实践中是正确的)。i2c设备不是onChip,而是平台设备,因为它们无法被发现。此外,我们还可以考虑onChip设备,这是正常的设备。在现代x86处理器上集成的PCI芯片。它是可发现的,因此不是一个平台设备。
与处理器芯片接口的设备驱动程序是否正常?在遇到一个i2c司机之前??不是这样的。许多正常的设备都与处理器接口,但不是通过i2c总线。例如: USB鼠标。
发布于 2020-12-05 03:14:43
https://stackoverflow.com/questions/27743652
复制相似问题