如何使用buidroot在Beaglebone black I2C2中工作

时间:2017-08-08 06:59:46

标签: buildroot

我用buildroot编译了一个图像。我想使用位于P9.19和P9.20(SCL和SDA)的I2C2。我已将BBB I2C2连接到kw40z - NXP控制器。我已经将SDA和SCL上拉,共享接地并将SCL和SDA相互连接。我确实看到/ dev / i2c-2

I2C2不起作用。我尝试过i2cdetect -r 2和C程序,但是我正在超时。

我的问题是:

  1. I2C2是否已启用或应从here添加I2C2设备树覆盖:

  2. 如果是这样,我将上面的dts片段编译成dtbo(使用dtc编译器) 我如何告诉beagle bone中的buildroot加载那个dtbo?

  3. 我读到了buildroot,甚至Debian都不支持cape manager。 所以它应该是静态的。

    是否有人设法在没有覆盖的情况下使用I2C2?还是必须的? 谢谢!

1 个答案:

答案 0 :(得分:0)

i2c1和i2c2的问题已解决 我将两个片段添加到了bone-common.dtsi中 对于I2C1和I2C2(例如这是I2C1) 在引脚复用器下

&am33xx_pinmux {   
i2c1_pins: pinmux_i2c1_pins {  
      pinctrl-single,pins = <     
         0x158 (SLEWCTRL_SLOW | PIN_INPUT_PULLUP | MUX_MODE2)   /*    i2c1_sda */   
         0x15c (SLEWCTRL_SLOW | PIN_INPUT_PULLUP | MUX_MODE2) /*i2c1_scl */>;  
   };  

节点本身在am335x-boneblack.dts

&i2c1 {  
   status = "okay";   
   pinctrl-names = "default";   
   pinctrl-0 = <&i2c1_pins>;   
   /* this is the configuration part */   
   clock-frequency = <100000>;   
   #address-cells = <1>;  
   #size-cells = <0>;  
};

此外,当它在内部时当然不需要外部上拉。 引脚为17-scl和18 sda