主题中讨论的其他器件:TVP5150、 TVP5151、 TVP5150AM1
尊敬的 TI:
我有一个基于 AM437X-gp-EVM 的定制板连接到 tvp5150。
我更改了设备树并在内核中启用了对 tvp5150的支持。
但我在引导过程中遇到 tvp5150的加载失败、如下所示。
[1.452528] tvp5150 1-005C:I2C I/O 错误:RC =-121
[1.457634] tvp5150:1-005C 的探测器失败,错误-121
器件树的相关部分如下所示
i2c1{(&I)
tvp5150:tvp5150@5c{
兼容="ti、tvp5150";
reg =<0x5c>;
端口{
tvp5150_0:端点{
远程端点=<&V pfe0_EP>;
};
};
};
};
vpfe0{_vpfe0}(&V)
状态="正常";
pinctrl-names ="default"、"sleep";
pinctrl-0 =<&V vpfe0_PINS_DEFAULT>;
pinctrl-1 =<&V vpfe0_PINS_SLEEP>;
端口{
#address-cells =<1>;
#size-cells =<0>;
vpfe0_EP:端点{
从模式;
远程端点=<&tvp5150_0>;
TI、AM437X-VPFE-interface =<1>;
HSYNC-ACTIVE =<1>;
vsync-active =<1>;
pclk-sample =<0>;
};
};
};
我检查了 I2C 总线。
root@AM437X-EVM:~# i2cdetect 1.
警告:无法使用 SMBus 快速写入命令、将跳过一些地址
警告! 该程序会使您的 I2C 总线混淆、导致数据丢失和更糟糕的情况!
我将探测文件/dev/i2c-1.
我将探测地址范围0x03-0x77。
继续? [y/n]、是
0 1 2 3 4 5 6 7 8 9 A b c d e f
00:
10:
20:
30:------------ ------
40:
50:50 ---------- ------------ -- 5d ----
60:
70:
tvp5150的 I2C 总线地址为0x5d。 因此、我将地址从0x5c 更改为0x5d。
i2c1{(&I)
tvp5150:tvp5150@5d{
兼容="ti、tvp5150";
reg =<0x5d>;
端口{
tvp5150_0:端点{
远程端点=<&V pfe0_EP>;
};
};
};
};
更改地址后、驱动程序已成功加载。
[1.454235] tvp5150 1-005D:找到的 TVP5151 (1.0)芯片@ 0xba (OMAP I2C 适配器)
[1.461499] tvp5150 1-005D:检测到 TVP5151。
顺便说一下、 驱动程序加载失败在电源复位后的启动过程中再次出现。
[1.452490] tvp5150 1-005D:I2C I/O 错误:RC =-121
[1.457593] tvp5150:1-005D 的探头失败,错误-121
我检查了 i2c 总线、发现地址从0x5d 更改为0x5c。
root@AM437X-EVM:~# i2cdetect 1.
警告:无法使用 SMBus 快速写入命令、将跳过一些地址
警告! 该程序会使您的 I2C 总线混淆、导致数据丢失和更糟糕的情况!
我将探测文件/dev/i2c-1.
我将探测地址范围0x03-0x77。
继续? [y/n]、是
0 1 2 3 4 5 6 7 8 9 A b c d e f
00:
10:
20:
30:------------ ------
40:
50:50 ---------- ------------ -- 5c ------
60:
70:
我无法理解地址更改的原因。
是否有任何方法来修复该地址?
但斯克、基汉。