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.
工具/软件:Linux
您好!
我在 u-boot 尝试访问总线#1时遇到一些问题。
函数 i2c_set_fbus_num 卡死了,我不明白为什么。
是否有人熟悉这一点?
RET = i2c_set_bus_num (1);
<<---- 永远不会来这里
IF (RET)
printf ("更改总线编号(%d)失败\n"、ret);
它在 i2c_set_bus_num->i2c_init->中挂起
…
printf ("i2c_init 8\n");
BUS_initialized [CURRENT_BUS]= 1;
if (readw (I2C_CON)& I2C_CON_EN){
writew (0、I2C_CON);
udelay (50000);
}
writew (PSC、I2C_PSC);
writew (scll、I2C_SCLL);
writew (sclh、I2C_SCLH);
/*自有地址*/
writew (slaveadd、I2C_OA);
writew (I2C_CON_EN、I2C_CON);
printf ("i2c_init 9\n"); <--- 从不打印..........
此致、
已运行
RAN、
只需猜测、这可能是因为无法为您的平台正确配置 I2C 基址。
是否可以检查 PSC 底座并进行验证?
谢谢
您好!
从 DM8148数据表:
0x4802_8000 0x4802_8FFF 0x0802_8000 0x0802_8FFF 4KB I2C0外设寄存器
0x4802_9000 0x4802_9FFF 0x0802_9000 0x0802_9FFF 4KB I2C0支持寄存器
0x4802_A000 0x4802_AFF 0x0802_A000 0x0802_AFF 4KB I2C1外设寄存器
0x4802_B000 0x4802_BFFF 0x0802_B000 0x0802_BFFF 4KB I2C1支持寄存器
网址为/asm/arch-ti81xx i2c.h
#define I2C_BASE1 0x48028000
#define I2C_BASE2 0x4802A000
#define I2C_BASE3 0x4819C000
#define I2C_BUS_MAX 3.
u32 i2c_base = I2C_BASE1;
#define I2C_DEFAULT_BASE i2c_base
因此、它似乎与数据表偏移相匹配。
我还重新检查了引脚多路复用、找不到任何问题:
MUX_VAL (PINCNTL78,(IEN | IPU | FCN1))/* I2C[1]_SCL */\
MUX_VAL (PINCNTL79,(IEN | IPU | FCN1))/* I2C[1]_SDA */\
MUX_VAL (PINCNTL263,(IEN | IPU | FCN1))/* I2C[0]_SCL */\
MUX_VAL (PINCNTL264,(IEN | IPU | FCN1))/* I2C[0]_SDA */\
我还重新检查了 ti814x 的配置文件:
# define CONFIG_CMD_I2C
# define CONFIG_HARD_I2C 1
# define CONFIG_SYS_I2C_SPEED 100000
# define CONFIG_SYS_I2C_SLAVE 1.
# define CONFIG_SYS_I2C_BUS 0
# define CONFIG_SYS_I2C_BUS_SELECT 1.
# define CONFIG_DRIVER_TI81XX_I2C 1.
# define CONFIG_I2C_MULTI_BUS 1
它可能与 EEPROM 相关(但 EEPROM 位于总线#0中)
#define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 2.
#define CONFIG_SYS_I2C_EEPROM_ADDR 0x50
#define CONFIG_SYS_I2C_MULTI_EEPROMS
#define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 7.
#define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS 20.
#define CONFIG_CMD_EEPROM
感谢您的任何想法。
已运行
您好!
还有一个,
添加后
# define CONFIG_I2C_MULTI_BUS 1
我可以从 u-boot 提示符执行以下操作:
>i2c dev 0
>i2c DEV 2.
但在尝试时
>i2c DEV 1.
U-boot 挂起...
是否有人可以尝试查看 dm814x 是否遇到相同的问题?
此致、
已运行