我使用 dtb 中的以下行在 beagle bone black 上启用了 I2C 总线 2
i2c2: i2c@4819c000 {
pinctrl-names = "default";
pinctrl-0 = <&i2c2_pins>;
status = "okay";
clock-frequency = <100000>;
};
i2c2_pins: pinmux_i2c2_pins {
pinctrl-single,pins = <
0x178 0x73
0x17c 0x73
>;
};
但是当我使用下面的代码启用 I2C 总线 1 时
i2c1: i2c@4802a000 {
pinctrl-names = "default";
pinctrl-0 = <&i2c1_pins>;
status = "okay";
clock-frequency = <100000>;
};
i2c1_pins: pinmux_i2c1_pins {
pinctrl-single,pins = <
0x154 0x72 /* i2c1_scl.i2c1_scl */
0x15c 0x72 /* i2c1_sda.i2c1_sda */
>;
};
i2cdetect -l
总线在命令中列出。但是使用命令探测总线i2cdetect -r 1
会给我以下错误
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: [ 18.322700] omap_i2c 4802a000.i2c: timeout waiting for bus ready
-- [ 19.342694] omap_i2c 4802a000.i2c: timeout waiting for bus ready
-- [ 20.362695] omap_i2c 4802a000.i2c: timeout waiting for bus ready
我使用的是 AM3359 芯片的 ZCZ 封装。谁能指出我在 dtb 文件中犯的错误?