Enable use of eserial devices for common and omap-common/spl.

This probably isn't the right way to do this as the changes aren't
needed for 'common' configurations, just for one case.

Signed-off-by: Andrew Bradford <and...@bradfordembedded.com>
---
 arch/arm/cpu/armv7/omap-common/spl.c |    7 ++++++-
 common/console.c                     |   24 ++++++++++++++++++++----
 include/common.h                     |    5 +++++
 3 files changed, 31 insertions(+), 5 deletions(-)

diff --git a/arch/arm/cpu/armv7/omap-common/spl.c 
b/arch/arm/cpu/armv7/omap-common/spl.c
index 4d1ac85..6258c0e 100644
--- a/arch/arm/cpu/armv7/omap-common/spl.c
+++ b/arch/arm/cpu/armv7/omap-common/spl.c
@@ -210,7 +210,12 @@ void preloader_console_init(void)
        gd->flags |= GD_FLG_RELOC;
        gd->baudrate = CONFIG_BAUDRATE;
 
-       serial_init();          /* serial communications setup */
+       /* serial communications setup */
+#ifdef CONFIG_SERIAL_MULTI
+       ESERIAL_FUNC(CONFIG_CONS_INDEX, init)();
+#else
+       serial_init();
+#endif /* CONFIG_SERIAL_MULTI */
 
        gd->have_console = 1;
 
diff --git a/common/console.c b/common/console.c
index 1177f7d..5670ce1 100644
--- a/common/console.c
+++ b/common/console.c
@@ -302,12 +302,16 @@ int getc(void)
                return 0;
 
        if (gd->flags & GD_FLG_DEVINIT) {
-               /* Get from the standard input */
-               return fgetc(stdin);
+       /* Get from the standard input */
+       return fgetc(stdin);
        }
 
        /* Send directly to the handler */
+#ifdef CONFIG_SERIAL_MULTI
+       return ESERIAL_FUNC(CONFIG_CONS_INDEX, getc)();
+#else
        return serial_getc();
+#endif /* CONFIG_SERIAL_MULTI */
 }
 
 int tstc(void)
@@ -321,12 +325,16 @@ int tstc(void)
                return 0;
 
        if (gd->flags & GD_FLG_DEVINIT) {
-               /* Test the standard input */
-               return ftstc(stdin);
+       /* Test the standard input */
+       return ftstc(stdin);
        }
 
        /* Send directly to the handler */
+#ifdef CONFIG_SERIAL_MULTI
+       return ESERIAL_FUNC(CONFIG_CONS_INDEX, tstc)();
+#else
        return serial_tstc();
+#endif /* CONFIG_SERIAL_MULTI */
 }
 
 #ifdef CONFIG_PRE_CONSOLE_BUFFER
@@ -382,7 +390,11 @@ void putc(const char c)
                fputc(stdout, c);
        } else {
                /* Send directly to the handler */
+#ifdef CONFIG_SERIAL_MULTI
+               ESERIAL_FUNC(CONFIG_CONS_INDEX, putc)(c);
+#else
                serial_putc(c);
+#endif /* CONFIG_SERIAL_MULTI */
        }
 }
 
@@ -406,7 +418,11 @@ void puts(const char *s)
                fputs(stdout, s);
        } else {
                /* Send directly to the handler */
+#ifdef CONFIG_SERIAL_MULTI
+               ESERIAL_FUNC(CONFIG_CONS_INDEX, puts)(s);
+#else
                serial_puts(s);
+#endif /* CONFIG_SERIAL_MULTI */
        }
 }
 
diff --git a/include/common.h b/include/common.h
index 55025c0..b4ebbfb 100644
--- a/include/common.h
+++ b/include/common.h
@@ -206,6 +206,11 @@ typedef void (interrupt_handler_t)(void *);
 
 #endif /* CONFIG_SERIAL_MULTI */
 
+#ifdef CONFIG_SERIAL_MULTI
+#define EXPAND_ESERIAL(x, func) eserial ## x ## _ ## func
+#define ESERIAL_FUNC(x, func) EXPAND_ESERIAL(x, func)
+#endif /* CONFIG_SERIAL_MULTI */
+
 /*
  * General Purpose Utilities
  */
-- 
1.7.10

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to