projects
/
platform
/
kernel
/
u-boot.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' of git://git.denx.de/u-boot-arm
[platform/kernel/u-boot.git]
/
drivers
/
i2c
/
s3c24x0_i2c.c
diff --git
a/drivers/i2c/s3c24x0_i2c.c
b/drivers/i2c/s3c24x0_i2c.c
index
769a2ba
..
382e4c2
100644
(file)
--- a/
drivers/i2c/s3c24x0_i2c.c
+++ b/
drivers/i2c/s3c24x0_i2c.c
@@
-86,13
+86,6
@@
static int GetI2CSDA(void)
#endif
}
#endif
}
-#if 0
-static void SetI2CSDA(int x)
-{
- rGPEDAT = (rGPEDAT & ~0x8000) | (x & 1) << 15;
-}
-#endif
-
static void SetI2CSCL(int x)
{
struct s3c24x0_gpio *gpio = s3c24x0_get_base_gpio();
static void SetI2CSCL(int x)
{
struct s3c24x0_gpio *gpio = s3c24x0_get_base_gpio();
@@
-331,7
+324,7
@@
static int i2c_transfer(struct s3c24x0_i2c *i2c,
writel(I2C_MODE_MT | I2C_TXRX_ENA | I2C_START_STOP,
&i2c->iicstat);
i = 0;
writel(I2C_MODE_MT | I2C_TXRX_ENA | I2C_START_STOP,
&i2c->iicstat);
i = 0;
- while ((i < data_len) && (result = I2C_OK)) {
+ while ((i < data_len) && (result =
=
I2C_OK)) {
result = WaitForXfer(i2c);
writel(data[i], &i2c->iicds);
ReadWriteByte(i2c);
result = WaitForXfer(i2c);
writel(data[i], &i2c->iicds);
ReadWriteByte(i2c);
@@
-343,17
+336,16
@@
static int i2c_transfer(struct s3c24x0_i2c *i2c,
result = WaitForXfer(i2c);
/* send STOP */
result = WaitForXfer(i2c);
/* send STOP */
- writel(I2C_MODE_M
R
| I2C_TXRX_ENA, &i2c->iicstat);
+ writel(I2C_MODE_M
T
| I2C_TXRX_ENA, &i2c->iicstat);
ReadWriteByte(i2c);
break;
case I2C_READ:
if (addr && addr_len) {
ReadWriteByte(i2c);
break;
case I2C_READ:
if (addr && addr_len) {
- writel(I2C_MODE_MT | I2C_TXRX_ENA, &i2c->iicstat);
writel(chip, &i2c->iicds);
/* send START */
writel(chip, &i2c->iicds);
/* send START */
- writel(
readl(&i2c->iicstat)
| I2C_START_STOP,
- &i2c->iicstat);
+ writel(
I2C_MODE_MT | I2C_TXRX_ENA
| I2C_START_STOP,
+
&i2c->iicstat);
result = WaitForXfer(i2c);
if (IsACK(i2c)) {
i = 0;
result = WaitForXfer(i2c);
if (IsACK(i2c)) {
i = 0;
@@
-387,11
+379,10
@@
static int i2c_transfer(struct s3c24x0_i2c *i2c,
}
} else {
}
} else {
- writel(I2C_MODE_MR | I2C_TXRX_ENA, &i2c->iicstat);
writel(chip, &i2c->iicds);
/* send START */
writel(chip, &i2c->iicds);
/* send START */
- writel(
readl(&i2c->iicstat)
| I2C_START_STOP,
- &i2c->iicstat);
+ writel(
I2C_MODE_MR | I2C_TXRX_ENA
| I2C_START_STOP,
+
&i2c->iicstat);
result = WaitForXfer(i2c);
if (IsACK(i2c)) {
result = WaitForXfer(i2c);
if (IsACK(i2c)) {
@@
-527,8
+518,9
@@
int i2c_write(uchar chip, uint addr, int alen, uchar *buffer, int len)
#ifdef CONFIG_OF_CONTROL
void board_i2c_init(const void *blob)
{
#ifdef CONFIG_OF_CONTROL
void board_i2c_init(const void *blob)
{
+ int i;
int node_list[CONFIG_MAX_I2C_NUM];
int node_list[CONFIG_MAX_I2C_NUM];
- int count
, i
;
+ int count;
count = fdtdec_find_aliases_for_id(blob, "i2c",
COMPAT_SAMSUNG_S3C2440_I2C, node_list,
count = fdtdec_find_aliases_for_id(blob, "i2c",
COMPAT_SAMSUNG_S3C2440_I2C, node_list,