hikey960 平台调试sensor时遇到的 I2C问题,求大神帮忙解决!!!!  

分享到:

Dragon
Level 1
注册时间:8年 前
帖子数: 14
2017年6月9日 下午1:20  

我想在hikey960调试一款I2C接口的sensor ,我已经在dts配置ok了,用的是I2C7接口,如下图

问题:代码跑起来了,I2C不能通讯,用示波器打了下,没有任何电平变化,不知何故,log如下,求帮忙。

 [IIC]: i2c_transfer(write) error, ret=-121!! 返回错误值是121
        #define EREMOTEIO 121 /* Remote I/O error */

wolfkin liked
回复引用
DragonCat
Level 2Admin
注册时间:8年 前
帖子数: 42
2017年6月9日 下午1:49  

hi Dragon,

可否贴出来你的dts 配置,我看看。

 


wolfkin liked
回复引用
Dragon
Level 1
注册时间:8年 前
帖子数: 14
2017年6月9日 下午2:06  

可以啊,如下我在dts的配置,帮忙check。

i2c7: i2c@FDF0B000 {
            compatible = "snps,designware-i2c";
            reg = <0x0 0xFDF0B000 0x0 0x1000>;
            interrupts = <0 314 4>;
                        #address-cells = <1>;
                        #size-cells = <0>;
            clock-frequency = <400000>;
            clocks = <&crg_ctrl HI3660_CLK_GATE_I2C7>;
            resets = <&crg_rst HI3660_RST_I2C7>;
            pinctrl-names = "default";
            pinctrl-0 = <&i2c7_pmx_func &i2c7_cfg_func>;
            status = "ok";

            bm1383@5d {
                compatible = "rohm,bm1383_i2c";   
                reg = <0x5d>;
                //bm1383_vdd-supply = <&ldo11>;
            };
        };


wolfkin liked
回复引用
Dragon
Level 1
注册时间:8年 前
帖子数: 14
2017年6月9日 下午2:08  

 bm_1383 {
            compatible = "rohm,bm1383";   
           bm1383_vdd-supply = <&ldo11>;
  };


wolfkin liked
回复引用
DragonCat
Level 2Admin
注册时间:8年 前
帖子数: 42
2017年6月9日 下午2:25  

hi Dragon,

如果i2c 设备地址没问题的话,dts 配置没毛病。 bm1383 是气压sensor。

目前有两个方面去check:

(1)重新换一路I2C去挂载设备,比如I2C0, check一下你的驱动;

(2)如果(1)ok的话,应该去怀疑一下这一组pin的mode 是否设置成I2C mode;

by the way,我手头上有跟你一个型号的sensor,我可以也尝试下,稍等。


wolfkin liked
回复引用
Dragon
Level 1
注册时间:8年 前
帖子数: 14
2017年6月9日 下午2:38  

我把bm1383挂在到了I2C0上了,I2C通讯ok啦,但是我还想挂在I2C7上呀,求解答呀


wolfkin liked
回复引用
wolfkin
Level 2Admin
注册时间:8年 前
帖子数: 27
2017年6月9日 下午3:02  

i2c7涉及到复用的问题,i2c2和i2c7共用了一套pin脚

可能在pin脚配置时出现配置冲突,可以更改相关配置到达目的

另外可以直接禁能i2c2,i2c7就可以使用了

可以看到硬件上是这样连接的


wolfkin liked
回复引用
Dragon
Level 1
注册时间:8年 前
帖子数: 14
2017年6月9日 下午3:09  

具体怎么禁止这个I2C2?


wolfkin liked
回复引用
wolfkin
Level 2Admin
注册时间:8年 前
帖子数: 27
2017年6月9日 下午3:22  

在dts中更改i2c2的状态为禁能

你试试看,i2c7是否能够正常使用了


wolfkin liked
回复引用
Dragon
Level 1
注册时间:8年 前
帖子数: 14
2017年6月9日 下午3:28  

好的,我试试。谢谢


wolfkin liked
回复引用
Dragon
Level 1
注册时间:8年 前
帖子数: 14
2017年6月9日 下午3:32  

ok了,I2C可以通讯了,谢谢


回复引用
兔子爱吃草
Level 1
注册时间:8年 前
帖子数: 14
2017年6月9日 下午5:47  

1024


回复引用
  
Working

登陆 或者 注册