|
firefly-rk3288的i2c5总线上能不能挂其他的设备啊?
发表于 2015-6-11 16:17:05
浏览:8882
|
回复:4
打印
只看该作者
[复制链接]
楼主
自制的rk3288板子上i2c5上除了挂HDMI设备(和firefly的一样),我们还挂了wm8960设备。但是i2c5上wm8960的通讯出现了问题。
我们用的自己的i2c_test工具测试的该总线上通讯问题。
i2c_test /dev/i2c-5 0x21
[ 723.443856] rockchip_i2c ff170000.i2c: Addr[0x0021] wait event timeout, state: 2, is_busy: 1, error: 0, complete_what: rxad iad:ed0
read /dev/i2c-5: 0x21 failed.
之前碰到过hdmi用了i2c5的时钟pin和数据PIN后,i2c5总线控制器初始化时会出错,所以我把hdmi 设备给禁掉了。
firefly-rk3288.dts中修改如下(原先firefly上i2c5是disable的,我开启了,为了挂wm8960):
&i2c5 {
status = "okay";
wm8960: wm8960@34 {
compatible = "wm8960";
reg = <0x34>;
}
}
..........
&hdmi {
status = "disabled"; //firefly上是开启的
rockchips,hdmi_audio_source = <0>;
}
.......
然后就这样编译好resource.img,烧写完启动后,
执行:dmesg | grep -i i2c
<6>[ 0.987981] rockchip_i2c ff650000.i2c: i2c-0: Rockchip I2C adapter
<6>[ 0.990017] rockchip_i2c ff140000.i2c: i2c-1: Rockchip I2C adapter
<6>[ 0.991536] rockchip_i2c ff660000.i2c: i2c-2: Rockchip I2C adapter
<6>[ 0.992497] rockchip_i2c ff150000.i2c: i2c-3: Rockchip I2C adapter
<6>[ 0.992742] rockchip_i2c ff160000.i2c: i2c-4: Rockchip I2C adapter
<6>[ 0.993381] rockchip_i2c ff170000.i2c: i2c-5: Rockchip I2C adapter
<4>[ 0.995770] rk808_i2c_probe,line=1355
<6>[ 1.006963] rk808_i2c_probe: rk808_pmic_sleep=0
<6>[ 1.332677] i2c /dev entries driver
<3>[ 1.699240] rockchip_i2c ff170000.i2c: Addr[0x0034] wait event timeout, state: 1, is_busy: 1, error: 0, complete_what: 0x0, ipd: 0x0
执行:dmesg | grep -i wm8
<3>[ 1.704191] wm8960 5-0034: Failed to issue reset
<3>[ 1.704199] wm8960 5-0034: ASoC: failed to probe CODEC -110
<3>[ 1.704229] rockchip-wm8960 rockchip-wm8960.30: ASoC: failed to instantiate card -110
<3>[ 1.704258] rockchip-wm8960 rockchip-wm8960.30: snd_soc_register_card failed (-110)
<4>[ 1.704270] rockchip-wm8960: probe of rockchip-wm8960.30 failed with error -110
显然i2c5总线控制器初始化完毕,没有错误吧。但是访问不到wm8960.
综合以上结果,我猜测是不是i2c5总线上不能挂其他设备(比如音频解码设备),专门为HDMI服务的啊??
因为我看到Popmental-rk3288 板子(瑞星微官网上一块板子)上wm8960是挂到i2c2上,i2c5也只为HDMI服务。 |
|