全志平台Tina系统I2C struct 缺少class定义导致的probe失败等问题解决方法

全志平台Tina系统I2C struct 缺少class定义导致的probe失败等问题

【适用范围

全志Tina系统平台

【问题现象】

在移植、编写I2C及相关驱动时,在其它平台上已经验证过了的驱动移植到我们平台后经常无法正常detect到I2C设备。

【复现步骤】

编译后查看dmesg打印,无相应I2C 匹配成功信息,串口中也无法搜到生成的设备节点。

【原因分析】

在我们的I2C控制器代码中,i2c_detect函数中在最初始处有如下代码:

 

这就意味着在i2c检测和匹配过程中,如果class成员没有进行设置,缺省值将直接导致检测的失败而结束。

而在其它平台上并没有这个问题。

鉴于I2C驱动不由我们维护,不推荐修改i2c-core.c

【解决办法】

在I2C驱动中,通常定义的i2c_adapter 或 i2c_driver 结构体中,必须包含.class成员,实际定义如下即可,如ac108驱动:

 

 

 I2C_CLASS_HWMON,硬件监控类,如lm_sensors等;
I2C_CLASS_DDC,DDC是数字显示通道(Digital Display Channel)的意思, 通常用于显示设备信息的获取;
I2C_CLASS_SPD,存储类的模组;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值