summaryrefslogtreecommitdiff
path: root/cpu/mpc5xxx/i2c.c
diff options
context:
space:
mode:
authorJon Smirl <jonsmirl@gmail.com>2009-03-22 22:55:45 -0400
committerWolfgang Denk <wd@denx.de>2009-03-25 22:50:04 +0100
commit33e88c557b29c84c52039ba05993fa70fe62afe3 (patch)
treed700cf0ba3ec21f2967697c5f752c2f6a19bf3cc /cpu/mpc5xxx/i2c.c
parent2c5bd16af132bb6e9158c43fc6206fa0f1f501c1 (diff)
downloadu-boot-imx-33e88c557b29c84c52039ba05993fa70fe62afe3.zip
u-boot-imx-33e88c557b29c84c52039ba05993fa70fe62afe3.tar.gz
u-boot-imx-33e88c557b29c84c52039ba05993fa70fe62afe3.tar.bz2
mpc5200: suppress printf until console initialized
On boards which have the environment in eeprom, i2c_init() is called before the console and RAM are initialized. Suppress printfs until the console is initialized. Signed-off-by: Jon Smirl <jonsmirl@gmail.com> Acked-by: Heiko Schocher <hs@denx.de>
Diffstat (limited to 'cpu/mpc5xxx/i2c.c')
-rw-r--r--cpu/mpc5xxx/i2c.c30
1 files changed, 20 insertions, 10 deletions
diff --git a/cpu/mpc5xxx/i2c.c b/cpu/mpc5xxx/i2c.c
index 7d76274..e2506d8 100644
--- a/cpu/mpc5xxx/i2c.c
+++ b/cpu/mpc5xxx/i2c.c
@@ -269,7 +269,8 @@ static int mpc_get_fdr(int speed)
if (gd->flags & GD_FLG_RELOC) {
fdr = divider;
} else {
- printf("%ld kHz, ", best_speed / 1000);
+ if (gd->have_console)
+ printf("%ld kHz, ", best_speed / 1000);
return divider;
}
}
@@ -310,29 +311,34 @@ int i2c_read(uchar chip, uint addr, int alen, uchar *buf, int len)
xaddr[3] = addr & 0xFF;
if (wait_for_bb()) {
- printf("i2c_read: bus is busy\n");
+ if (gd->have_console)
+ printf("i2c_read: bus is busy\n");
goto Done;
}
mpc_reg_out(&regs->mcr, I2C_STA, I2C_STA);
if (do_address(chip, 0)) {
- printf("i2c_read: failed to address chip\n");
+ if (gd->have_console)
+ printf("i2c_read: failed to address chip\n");
goto Done;
}
if (send_bytes(chip, &xaddr[4-alen], alen)) {
- printf("i2c_read: send_bytes failed\n");
+ if (gd->have_console)
+ printf("i2c_read: send_bytes failed\n");
goto Done;
}
mpc_reg_out(&regs->mcr, I2C_RSTA, I2C_RSTA);
if (do_address(chip, 1)) {
- printf("i2c_read: failed to address chip\n");
+ if (gd->have_console)
+ printf("i2c_read: failed to address chip\n");
goto Done;
}
if (receive_bytes(chip, (char *)buf, len)) {
- printf("i2c_read: receive_bytes failed\n");
+ if (gd->have_console)
+ printf("i2c_read: receive_bytes failed\n");
goto Done;
}
@@ -354,23 +360,27 @@ int i2c_write(uchar chip, uint addr, int alen, uchar *buf, int len)
xaddr[3] = addr & 0xFF;
if (wait_for_bb()) {
- printf("i2c_write: bus is busy\n");
+ if (gd->have_console)
+ printf("i2c_write: bus is busy\n");
goto Done;
}
mpc_reg_out(&regs->mcr, I2C_STA, I2C_STA);
if (do_address(chip, 0)) {
- printf("i2c_write: failed to address chip\n");
+ if (gd->have_console)
+ printf("i2c_write: failed to address chip\n");
goto Done;
}
if (send_bytes(chip, &xaddr[4-alen], alen)) {
- printf("i2c_write: send_bytes failed\n");
+ if (gd->have_console)
+ printf("i2c_write: send_bytes failed\n");
goto Done;
}
if (send_bytes(chip, (char *)buf, len)) {
- printf("i2c_write: send_bytes failed\n");
+ if (gd->have_console)
+ printf("i2c_write: send_bytes failed\n");
goto Done;
}