最近在看uboot源码,写个博客分享一下自己的学习例程,同时也是做个笔记,方便后面的复习。
硬件平台:RK3188
u-boot版本:2014-01
RK平台I2C源码在drivers/i2c目录中的rk_i2c.c和rk_i2c.h文件中,面向用户调用的函数有两个
/*
* i2c_read - Read from i2c memory
* @chip: target i2c address
* @addr: address to read from
* @alen:
* @buffer: buffer for read data
* @len: num of bytes to be read
*
* Read from i2c memory.
*/
int i2c_read(uchar chip, uint addr, int alen, uchar *buf, int len)
{
struct rk30_i2c *i2c = (struct rk30_i2c *)get_base();
if (i2c == NULL || buf == NULL) {
printf("i2c_read error: i2c = 0x%08x, buf = 0x%08x\n", i2c, buf);
return -1;
}
return rk_i2c_read(i2c, chip, addr, alen, buf, len);
}
/*
* i2c_write - Write to i2c memory
* @chip: target i2c address
* @addr: address to read from
* @alen:
* @buffer: buffer for read data
* @len: num of bytes to