This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DM8168 I2C1引脚复用问题



请问dm8168的I2C1的IO引脚需要配置引脚复用吗?我在之前的帖子提过一个关于I2C1无法工作的问题,有人回答说要配置I2C引脚复用,但我看datasheet看到下面图中的内容:

在图中明显显示的是I2C[1]_SCL和I2C[1]_SDA引脚是单独使用一个IO,既然是单独使用,又何来的配置引脚复用呢?

另外我在8168的内核源代码中I2C初始化也看到了下面代码:

void __init omap2_i2c_mux_pins(int bus_id)
{
char mux_name[100];

/* First I2C bus is not muxable */
    if (bus_id == 1)
            return;

上面红色部分代码表示如果是I2C0,就不需要配置引脚复用,如果是I2C1就需要用下面的代码配置引脚复用。请问这到底是怎么回事?

     if (cpu_is_ti814x() && bus_id == 3) {
                sprintf(mux_name, "uart0_dcdn.i2c2_scl_mux0");
                omap_mux_init_signal(mux_name, OMAP_PIN_INPUT);
               sprintf(mux_name, "uart0_dsrn.i2c2_sda_mux0");
             omap_mux_init_signal(mux_name, OMAP_PIN_INPUT);
     } else {
             sprintf(mux_name, "i2c%i_scl.i2c%i_scl", bus_id, bus_id);
              omap_mux_init_signal(mux_name, OMAP_PIN_INPUT);
            sprintf(mux_name, "i2c%i_sda.i2c%i_sda", bus_id, bus_id);
             omap_mux_init_signal(mux_name, OMAP_PIN_INPUT);
      }
}