]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - drivers/serial/serial_ks8695.c
Merge branch 'u-boot-imx/master' into 'u-boot-arm/master'
[karo-tx-uboot.git] / drivers / serial / serial_ks8695.c
index aacd1be630b1800303f1b4cae793bd0bb9b58ef8..8b1c974de9332c613497d7ffc0a3c1709fa2706c 100644 (file)
@@ -20,6 +20,8 @@
 
 #include <common.h>
 #include <asm/arch/platform.h>
+#include <serial.h>
+#include <linux/compiler.h>
 
 #ifndef CONFIG_SERIAL1
 #error "Bad: you didn't configure serial ..."
@@ -54,7 +56,7 @@ struct ks8695uart {
 int serial_console = 1;
 
 
-void serial_setbrg(void)
+static void ks8695_serial_setbrg(void)
 {
        volatile struct ks8695uart *uartp = KS8695_UART_ADDR;
 
@@ -63,14 +65,14 @@ void serial_setbrg(void)
        uartp->LCR = KS8695_UART_LINEC_WLEN8;
 }
 
-int serial_init(void)
+static int ks8695_serial_init(void)
 {
        serial_console = 1;
        serial_setbrg();
        return 0;
 }
 
-void serial_raw_putc(const char c)
+static void ks8695_serial_raw_putc(const char c)
 {
        volatile struct ks8695uart *uartp = KS8695_UART_ADDR;
        int i;
@@ -83,16 +85,16 @@ void serial_raw_putc(const char c)
        uartp->TX = c;
 }
 
-void serial_putc(const char c)
+static void ks8695_serial_putc(const char c)
 {
        if (serial_console) {
-               serial_raw_putc(c);
+               ks8695_serial_raw_putc(c);
                if (c == '\n')
-                       serial_raw_putc('\r');
+                       ks8695_serial_raw_putc('\r');
        }
 }
 
-int serial_tstc(void)
+static int ks8695_serial_tstc(void)
 {
        volatile struct ks8695uart *uartp = KS8695_UART_ADDR;
        if (serial_console)
@@ -100,14 +102,7 @@ int serial_tstc(void)
        return 0;
 }
 
-void serial_puts(const char *s)
-{
-       char c;
-       while ((c = *s++) != 0)
-               serial_putc(c);
-}
-
-int serial_getc(void)
+static int ks8695_serial_getc(void)
 {
        volatile struct ks8695uart *uartp = KS8695_UART_ADDR;
 
@@ -115,3 +110,24 @@ int serial_getc(void)
                ;
        return (uartp->RX);
 }
+
+static struct serial_device ks8695_serial_drv = {
+       .name   = "ks8695_serial",
+       .start  = ks8695_serial_init,
+       .stop   = NULL,
+       .setbrg = ks8695_serial_setbrg,
+       .putc   = ks8695_serial_putc,
+       .puts   = default_serial_puts,
+       .getc   = ks8695_serial_getc,
+       .tstc   = ks8695_serial_tstc,
+};
+
+void ks8695_serial_initialize(void)
+{
+       serial_register(&ks8695_serial_drv);
+}
+
+__weak struct serial_device *default_serial_console(void)
+{
+       return &ks8695_serial_drv;
+}