您的位置:首页 > 其它

基于mini6410平台:uboot添加支持IIC总线的eeprom读写

2014-06-23 16:52 651 查看
针对博文http://blog.csdn.net/mayaoyao11/article/details/7409274?reload有所借鉴,多谢!但是经过实测,其中也有所纰漏。

源码中的读写函数是可用的,并不需要修改为readl和writel。

现将自己的修改记录如下:

在uboot添加支持eeprom:

源码:u-boot-mini6410-20111018.tar.gz(友善公司)

修改宏单元,使得uboot支持eeprom

1. u-boot-mini6410/include/configs/mini6410.h

打开支持IIC、EEPROM命令的宏

#define CONFIG_COMMANDS \

(CONFIG_CMD_DFL | \

CFG_CMD_CACHE | \

CFG_CMD_USB | \

CFG_CMD_REGINFO | \

CFG_CMD_LOADS | \

CFG_CMD_LOADB | \

CFG_CMD_ENV | \

CFG_CMD_NAND | \

CFG_CMD_PING | \

CFG_CMD_EEPROM | \

CFG_CMD_I2C | \

CFG_CMD_MOVINAND) \

& ~(CFG_CMD_AUTOSCRIPT | \

CFG_CMD_BOOTD | \

CFG_CMD_IMI | \

CFG_CMD_RUN | \

CFG_CMD_CONSOLE | \

CFG_CMD_DOCG3P3 | \

0)

打开IIC的宏,添加EEPROM地址0x50

#define CONFIG_S3C64XX_I2C /* this board has H/W I2C */

#ifdef CONFIG_S3C64XX_I2C

#define CONFIG_HARD_I2C 1

#define CFG_I2C_SPEED 50000

#define CFG_I2C_SLAVE 0xFE

#define CFG_I2C_EEPROM_ADDR 0x50

#define CFG_I2C_EEPROM_ADDR_LEN 2//添加内容

#endif

2. u-boot-mini6410/board/samsung/mini6410/mini6410.c

int board_init(void)函数中添加IIC的IO初始化代码

/*i2c pin config gsf add 2014-6-19*/

reg = readl(GPBCON);

reg &= ~(0xf << 20);

reg |= (0x2 << 20);

writel(reg, GPBCON);

reg = readl(GPBCON);

reg &= ~(0xf << 24);

reg |= (0x2 << 24);

writel(reg, GPBCON);

reg = readl(GPBPUD);

reg &= ~(0x3 << 10);

writel(reg, GPBPUD);

reg = readl(GPBPUD);

reg &= ~(0x3 << 12);

writel(reg, GPBPUD);

3. /u-boot-mini6410/cpu/s3c64xx/i2c.c

修改头文件#include <mdirac3.h>为#include<s3c6410.h>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: