On Sun, Mar 22, 2009 at 11:23 AM, Wolfgang Denk <w...@denx.de> wrote:
> Dear Jon Smirl,
>
> In message <9e4733910903220723u31546286q233c9b24b7a5...@mail.gmail.com> you 
> wrote:
>>
>> Would it be better to put the check for (gd->have_console)  into printf 
>> itself?
>
> No, as you could also use puts() or putc().  There  are  only  a  few
> isolated  places  where  we  need  this,  so  let's make this clearly
> visible there.

mpc5200 with eeprom, suppress printf until console initialized

From: Jon Smirl <jonsm...@gmail.com>

On boards which have the environment in eeprom, i2c_init()
is called before the console and ram is initialized. Suppress
printfs until the console is initialized.

Signed-off-by: Jon Smirl <jonsm...@gmail.com>
---
 cpu/mpc5xxx/i2c.c |   30 ++++++++++++++++++++----------
 1 files changed, 20 insertions(+), 10 deletions(-)

diff --git a/cpu/mpc5xxx/i2c.c b/cpu/mpc5xxx/i2c.c
index 7d76274..0860ecf 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;
        }



-- 
Jon Smirl
jonsm...@gmail.com
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to