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