X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=board%2Fcogent%2Fserial.c;h=95c81207225e815205d91bb955a36eb7bafee6d0;hb=cd2bf4846c36a225bfffdedda50e5e80c8b2857f;hp=d9c27beee881c1951e98031dbcdea1b1f597ad6e;hpb=fcec2eb93e126400009729328e797f12bc94f1fd;p=u-boot diff --git a/board/cogent/serial.c b/board/cogent/serial.c index d9c27beee8..95c8120722 100644 --- a/board/cogent/serial.c +++ b/board/cogent/serial.c @@ -4,14 +4,16 @@ */ #include -#include +#include "serial.h" +#include +#include DECLARE_GLOBAL_DATA_PTR; #if (CMA_MB_CAPS & CMA_MB_CAP_SERPAR) #if (defined(CONFIG_8xx) && defined(CONFIG_8xx_CONS_NONE)) || \ - (defined(CONFIG_8260) && defined(CONFIG_CONS_NONE)) + (defined(CONFIG_MPC8260) && defined(CONFIG_CONS_NONE)) #if CONFIG_CONS_INDEX == 1 #define CMA_MB_SERIAL_BASE CMA_MB_SERIALA_BASE @@ -25,7 +27,7 @@ DECLARE_GLOBAL_DATA_PTR; #error CONFIG_CONS_INDEX must be configured for Cogent motherboard serial #endif -int serial_init (void) +static int cogent_serial_init(void) { cma_mb_serial *mbsp = (cma_mb_serial *) CMA_MB_SERIAL_BASE; @@ -38,7 +40,7 @@ int serial_init (void) return (0); } -void serial_setbrg (void) +static void cogent_serial_setbrg(void) { cma_mb_serial *mbsp = (cma_mb_serial *) CMA_MB_SERIAL_BASE; unsigned int divisor; @@ -54,7 +56,7 @@ void serial_setbrg (void) cma_mb_reg_write (&mbsp->ser_lcr, lcr); /* unset DLAB */ } -void serial_putc (const char c) +static void cogent_serial_putc(const char c) { cma_mb_serial *mbsp = (cma_mb_serial *) CMA_MB_SERIAL_BASE; @@ -66,13 +68,7 @@ void serial_putc (const char c) cma_mb_reg_write (&mbsp->ser_thr, c); } -void serial_puts (const char *s) -{ - while (*s != '\0') - serial_putc (*s++); -} - -int serial_getc (void) +static int cogent_serial_getc(void) { cma_mb_serial *mbsp = (cma_mb_serial *) CMA_MB_SERIAL_BASE; @@ -81,13 +77,33 @@ int serial_getc (void) return ((int) cma_mb_reg_read (&mbsp->ser_rhr) & 0x7f); } -int serial_tstc (void) +static int cogent_serial_tstc(void) { cma_mb_serial *mbsp = (cma_mb_serial *) CMA_MB_SERIAL_BASE; return ((cma_mb_reg_read (&mbsp->ser_lsr) & LSR_DR) != 0); } +static struct serial_device cogent_serial_drv = { + .name = "cogent_serial", + .start = cogent_serial_init, + .stop = NULL, + .setbrg = cogent_serial_setbrg, + .putc = cogent_serial_putc, + .puts = default_serial_puts, + .getc = cogent_serial_getc, + .tstc = cogent_serial_tstc, +}; + +void cogent_serial_initialize(void) +{ + serial_register(&cogent_serial_drv); +} + +__weak struct serial_device *default_serial_console(void) +{ + return &cogent_serial_drv; +} #endif /* CONS_NONE */ #if defined(CONFIG_CMD_KGDB) && \