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.
新添加了I2C-1,使用E17和E18脚,两个管脚都上拉4.7K电阻到3.3V
PINMUX如下:
{"uart0_ctsn.i2c1_sda", OMAP_MUX_MODE3 | AM33XX_SLEWCTRL_SLOW |
AM33XX_PULL_UP | AM33XX_INPUT_EN},
{"uart0_rtsn.i2c1_scl", OMAP_MUX_MODE3 | AM33XX_SLEWCTRL_SLOW |
AM33XX_PULL_UP | AM33XX_INPUT_EN},
root@am335x-evm:~# cat /sys/kernel/debug/omap_mux/uart0_ctsn
name: uart0_ctsn.i2c1_sda (0x44e10968/0x968 = 0x0073), b NA, t NA
mode: OMAP_MUX_MODE3 | AM33XX_PIN_INPUT_PULLUP | AM33XX_SLEWCTRL_SLOW
signals: uart0_ctsn | NA | d_can1_tx | i2c1_sda | spi1_d0 | NA | NA | gpio1_8
root@am335x-evm:~# cat /sys/kernel/debug/omap_mux/uart0_rtsn
name: uart0_rtsn.i2c1_scl (0x44e1096c/0x96c = 0x0073), b NA, t NA
mode: OMAP_MUX_MODE3 | AM33XX_PIN_INPUT_PULLUP | AM33XX_SLEWCTRL_SLOW
signals: uart0_rtsn | NA | d_can1_rx | i2c1_scl | spi1_d1 | spi1_cs0 | NA | gpio
1_9
总线上只连接了一个FT5526芯片,
static struct i2c_board_info __initdata am335x_i2c1_boardinfo[] = {
{
I2C_BOARD_INFO("ft5x0x_ts", 0x38),
},
};
修改PINMUX会变成controler timeout。
使用i2cdetect -y -r 2也是提示超时,没有波形出现。
root@am335x-evm:~# i2cdetect -r -y 2
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: [ 159.523868] omap_i2c omap_i2c.2: timeout waiting for bus ready
-- [ 160.543860] omap_i2c omap_i2c.2: timeout waiting for bus ready
-- [ 161.563859] omap_i2c omap_i2c.2: timeout waiting for bus ready
-- [ 162.583854] omap_i2c omap_i2c.2: timeout waiting for bus ready
-- ^C[ 163.603855] omap_i2c omap_i2c.2: timeout waiting for bus ready
是不是还有哪里需要修改呢。
这个是初始化函数
static void __init am335x_evm_i2c1_init(void)
{
setup_pin_mux(i2c1_pin_mux);
gpio_request(GPIO_TO_PIN(3,7),"SCR_RST"); //复位
gpio_direction_output(GPIO_TO_PIN(3,7), 1); //中断
omap_register_i2c_bus(2, 100, am335x_i2c1_boardinfo,
ARRAY_SIZE(am335x_i2c1_boardinfo));
}
我的情况是断电重启I2C工作正常,但是按reset或者软重启后,就会
-- [ 2562.535034] omap_i2c omap_i2c.2: timeout waiting for bus ready
这个错误
我的芯片是AM3354
SGTL5000的声卡芯片
SGTL5000芯片没有Reset引脚,这是SGTL5000的资料
http://wenku.baidu.com/link?url=kjzLhROnfTZcqDxawDJpryFmLSsar-jQdXqWk5tNQThMzMHgmLmKFfZgxTn8e7l-1XGqjzr2OPzT5snZJhpOTVBaDBxP8mV-mWTcptBMeCa
这个资料我看了,很不详细啊。
如果是有I2C的接口,芯片内部应该是有寄存器的,但是没看到资料里有描述。
如果CPU重启后不能和这颗芯片正常通信,要看是不是这颗芯片有模式切换。