6410 uboot 增加IIC 读写功能两下就搞定了,但是S5pv210 增加uboot IIC 读写功能却出状况了
#define CONFIG_CMD_I2C
//#undef CONFIG_S3C64XX_I2C /* this board has H/W I2C */
#define CONFIG_S3C64XX_I2C
#ifdef CONFIG_S3C64XX_I2C
#define CONFIG_HARD_I2C 1
#define CFG_I2C_SPEED 50000
#define CFG_I2C_SLAVE 0x70
#endif
这样编译,就出错了。
'S3C64XX_I2C' undeclared (first use in this function)
咋回事呢。这个S5pv210 是不支持I2C的,这个功能需要从6410 上移植过来。
试试看吧。
这个应该是一些名称改一下就可以了
6410 的是这个
/************************************************
* NAME : S3C64XX.h
* Version : 31.3.2003
*
* common stuff for SAMSUNG S3C64XX SoC
************************************************/
/* IIC (see manual chapter 20) */
typedef struct {
S3C64XX_REG32 IICCON;
S3C64XX_REG32 IICSTAT;
S3C64XX_REG32 IICADD;
S3C64XX_REG32 IICDS;
} /*__attribute__((__packed__))*/ S3C64XX_I2C;
S5PV210 是这个
/************************************************
* NAME : S5PC11X.h
* Version : 31.3.2003
*
* common stuff for SAMSUNG S5PC11X SoC
************************************************/
/* IIC (see manual chapter 20) */
typedef struct {
S5PC11X_REG32 IICCON;
S5PC11X_REG32 IICSTAT;
S5PC11X_REG32 IICADD;
S5PC11X_REG32 IICDS;
} /*__attribute__((__packed__))*/ S5PC11X_I2C;
介绍几个主要命令
iprobe 检测所有在总线上的i2c设备号(相当好用的命令)
imw i2c内存赋值,使用方法 imw 从机地址 数据地址 数据
eg. imw 0x76 4 0x20
imd 观察i2c内存
imm 自动增加地址赋值
出来了。
嘿嘿,程序是挂上去了,但是还是找不到IIC的设备地址。
原来S5pv210 根本就不支持uboot IIC 读写功能
那就自己照着6410 往上加了。
已经运行到这里,IIC设备电源也已经打开但是
输入iprobe命令很久也查找不到IIC的 设备地址
U-boot@SMDKV210# iprobe
Valid chip addresses:
U-boot@SMDKV210#
囧,终于搞定了,uboot也不少bug ,代码的一些优化了,啥的。写有些问题。
改了之后就OK了。
U-boot@SMDKV210# iprobe
Valid chip addresses: 50
输入iproe 命令两秒钟就查询了外设的ID了。