Gabe Black (gabeblack@chromium.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/3721
-gerrit
commit d005e7eddb81584d7949c7c779058b1b37f84a24 Author: Gabe Black gabeblack@google.com Date: Sun Jun 30 03:47:33 2013 -0700
i2c: Change the type of the data parameter to uint8_t.
Data is intended to be a byte array, so it should be described by a type which has a fixed size equal to an 8 bit byte. Also, the data passed to write shouldn't be modified and can be const.
Change-Id: I6466303d962998f6c37c2d4006a39c2d79a235c1 Signed-off-by: Gabe Black gabeblack@chromium.org --- src/cpu/samsung/exynos5250/i2c.c | 6 +++--- src/cpu/samsung/exynos5420/i2c.c | 13 +++++++------ src/include/device/i2c.h | 6 ++++-- 3 files changed, 14 insertions(+), 11 deletions(-)
diff --git a/src/cpu/samsung/exynos5250/i2c.c b/src/cpu/samsung/exynos5250/i2c.c index 723cee6..e83ab57 100644 --- a/src/cpu/samsung/exynos5250/i2c.c +++ b/src/cpu/samsung/exynos5250/i2c.c @@ -347,7 +347,7 @@ static int i2c_transfer(struct s3c24x0_i2c *i2c, }
int i2c_read(unsigned bus, unsigned chip, unsigned addr, - unsigned alen, unsigned char *buf, unsigned len) + unsigned alen, uint8_t *buf, unsigned len) { struct s3c24x0_i2c_bus *i2c; unsigned char xaddr[4]; @@ -376,7 +376,7 @@ int i2c_read(unsigned bus, unsigned chip, unsigned addr, }
int i2c_write(unsigned bus, unsigned chip, unsigned addr, - unsigned alen, unsigned char *buf, unsigned len) + unsigned alen, const uint8_t *buf, unsigned len) { struct s3c24x0_i2c_bus *i2c; unsigned char xaddr[4]; @@ -397,7 +397,7 @@ int i2c_write(unsigned bus, unsigned chip, unsigned addr,
i2c = &i2c_buses[bus]; ret = i2c_transfer(i2c->regs, I2C_WRITE, chip << 1, &xaddr[4 - alen], - alen, buf, len); + alen, (void *)buf, len);
return ret != 0; } diff --git a/src/cpu/samsung/exynos5420/i2c.c b/src/cpu/samsung/exynos5420/i2c.c index acb5bcf..2268628 100644 --- a/src/cpu/samsung/exynos5420/i2c.c +++ b/src/cpu/samsung/exynos5420/i2c.c @@ -408,7 +408,8 @@ static int hsi2c_wait_for_transfer(struct exynos5_hsi2c *i2c) return 0; }
-static int hsi2c_senddata(struct exynos5_hsi2c *i2c, uint8_t *data, int len) +static int hsi2c_senddata(struct exynos5_hsi2c *i2c, const uint8_t *data, + int len) { while (!hsi2c_check_transfer(i2c) && len) { if (!(read32(&i2c->usi_fifo_stat) & HSI2C_TX_FIFO_FULL)) { @@ -434,7 +435,7 @@ static int hsi2c_write(struct exynos5_hsi2c *i2c, unsigned char chip, unsigned char addr[], unsigned char alen, - unsigned char data[], + const uint8_t data[], unsigned short len) { uint32_t i2c_auto_conf; @@ -470,7 +471,7 @@ static int hsi2c_read(struct exynos5_hsi2c *i2c, unsigned char chip, unsigned char addr[], unsigned char alen, - unsigned char data[], + uint8_t data[], unsigned short len, int check) { @@ -632,7 +633,7 @@ bailout: }
int i2c_read(unsigned bus, unsigned chip, unsigned addr, - unsigned alen, unsigned char *buf, unsigned len) + unsigned alen, uint8_t *buf, unsigned len) { struct s3c24x0_i2c_bus *i2c; unsigned char xaddr[4]; @@ -667,7 +668,7 @@ int i2c_read(unsigned bus, unsigned chip, unsigned addr, }
int i2c_write(unsigned bus, unsigned chip, unsigned addr, - unsigned alen, unsigned char *buf, unsigned len) + unsigned alen, const uint8_t *buf, unsigned len) { struct s3c24x0_i2c_bus *i2c; unsigned char xaddr[4]; @@ -692,7 +693,7 @@ int i2c_write(unsigned bus, unsigned chip, unsigned addr, alen, buf, len); else ret = i2c_transfer(i2c->regs, I2C_WRITE, chip << 1, - &xaddr[4 - alen], alen, buf, len); + &xaddr[4 - alen], alen, (void *)buf, len);
if (ret != 0) { diff --git a/src/include/device/i2c.h b/src/include/device/i2c.h index d880a7b..997d201 100644 --- a/src/include/device/i2c.h +++ b/src/include/device/i2c.h @@ -20,10 +20,12 @@ #ifndef _DEVICE_I2C_H_ #define _DEVICE_I2C_H_
+#include <stdint.h> + /* note: chip is the 7-bit I2C address */ int i2c_read(unsigned bus, unsigned chip, unsigned addr, - unsigned alen, unsigned char *buf, unsigned len); + unsigned alen, uint8_t *buf, unsigned len); int i2c_write(unsigned bus, unsigned chip, unsigned addr, - unsigned alen, unsigned char *buf, unsigned len); + unsigned alen, const uint8_t *buf, unsigned len);
#endif /* _DEVICE_I2C_H_ */