平台设备/驱动程序与i2c设备/驱动程序 [英] platform device/driver vs i2c device/driver

查看:7
本文介绍了平台设备/驱动程序与i2c设备/驱动程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

由于我是嵌入式领域的新手,我在理解i2c设备/驱动程序和平台设备/驱动程序之间的明显区别方面遇到了困难。

我已阅读此链接:

What is the difference between Platform driver and normal device driver..?

其中平台设备/驱动程序用于不可发现设备,如连接在I2C总线上的设备,且平台设备通过匹配的名称绑定到驱动程序。

我看过一个板卡文件,其中连接在i2c总线上的音频编解码器(不可发现的设备)是使用i2c API(i2c_Register_board_info、omap_i2c_add_bus等)注册的,所以我的问题是

  1. I2C设备/驱动程序和平台设备/驱动程序有什么不同?
  2. 何时使用i2c相关接口,何时使用平台相关接口(PLATFORM_DRIVER_REGISTER,PLATFORM_DEVICE_REGISTER)在内核中注册设备/驱动程序。或者,如果我们可以使用与i2c相关的API进行不可发现的设备(在i2c上连接)注册,那么我们需要平台设备注册。

推荐答案

每个片上硅或微控制器都会有一个I2C控制器,它提供了一种连接I2C设备并与其通信的方法,如摄像头传感器、PMIC、温度传感器等。用于配置和使用该I2C控制器的驱动程序称为平台驱动程序。这种I2C控制器被称为平台设备。大多数平台设备将成为SOC的一部分。I2C控制器的寄存器使用平台驱动程序进行编程。这些寄存器在ARM内存中被映射,并将在SOC的TRM上可用。

现在,所有可以通过I2C控制器连接到SOC或微控制器的I2C设备,如摄像头传感器、PMIC、温度传感器等,都需要驱动程序来控制它们。这个驱动程序称为设备驱动程序。这些设备的寄存器不是SOC内存映射的一部分。需要像OV5640摄像头传感器这样的I2C设备的数据表来对寄存器进行编程。发送I2C数据以对寄存器进行编程并访问数据。

这篇关于平台设备/驱动程序与i2c设备/驱动程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆