ks8695: move serial driver to drivers/serial
authorJean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Sun, 29 Mar 2009 21:01:42 +0000 (23:01 +0200)
committerJean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Sun, 29 Mar 2009 21:01:42 +0000 (23:01 +0200)
add CONFIG_KS8695_SERIAL to activate the driver

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
cpu/arm920t/ks8695/Makefile
cpu/arm920t/ks8695/serial.c [deleted file]
drivers/serial/Makefile
drivers/serial/serial_ks8695.c [new file with mode: 0644]
include/configs/cm4008.h
include/configs/cm41xx.h

index 7db9473524a208c04d838c2d9c561ab374656984..f6b006300b120efa2128ae35e224a1ba8d3c247a 100644 (file)
@@ -25,7 +25,7 @@ include $(TOPDIR)/config.mk
 
 LIB    = $(obj)lib$(SOC).a
 
-COBJS  = interrupts.o serial.o
+COBJS  = interrupts.o
 SOBJS  = lowlevel_init.o
 
 SRCS   := $(SOBJS:.o=.S) $(COBJS:.o=.c)
diff --git a/cpu/arm920t/ks8695/serial.c b/cpu/arm920t/ks8695/serial.c
deleted file mode 100644 (file)
index aacd1be..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * serial.c -- KS8695 serial driver
- *
- * (C) Copyright 2004, Greg Ungerer <greg.ungerer@opengear.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-#include <common.h>
-#include <asm/arch/platform.h>
-
-#ifndef CONFIG_SERIAL1
-#error "Bad: you didn't configure serial ..."
-#endif
-
-DECLARE_GLOBAL_DATA_PTR;
-
-/*
- *     Define the UART hardware register access structure.
- */
-struct ks8695uart {
-       unsigned int    RX;             /* 0x00 - Receive data (r) */
-       unsigned int    TX;             /* 0x04 - Transmit data (w) */
-       unsigned int    FCR;            /* 0x08 - Fifo Control (r/w) */
-       unsigned int    LCR;            /* 0x0c - Line Control (r/w) */
-       unsigned int    MCR;            /* 0x10 - Modem Control (r/w) */
-       unsigned int    LSR;            /* 0x14 - Line Status (r/w) */
-       unsigned int    MSR;            /* 0x18 - Modem Status (r/w) */
-       unsigned int    BD;             /* 0x1c - Baud Rate (r/w) */
-       unsigned int    SR;             /* 0x20 - Status (r/w) */
-};
-
-#define        KS8695_UART_ADDR        ((void *) (KS8695_IO_BASE + KS8695_UART_RX_BUFFER))
-#define        KS8695_UART_CLK         25000000
-
-
-/*
- * Under some circumstances we want to be "quiet" and not issue any
- * serial output - though we want u-boot to otherwise work and behave
- * the same. By default be noisy.
- */
-int serial_console = 1;
-
-
-void serial_setbrg(void)
-{
-       volatile struct ks8695uart *uartp = KS8695_UART_ADDR;
-
-       /* Set to global baud rate and 8 data bits, no parity, 1 stop bit*/
-       uartp->BD = KS8695_UART_CLK / gd->baudrate;
-       uartp->LCR = KS8695_UART_LINEC_WLEN8;
-}
-
-int serial_init(void)
-{
-       serial_console = 1;
-       serial_setbrg();
-       return 0;
-}
-
-void serial_raw_putc(const char c)
-{
-       volatile struct ks8695uart *uartp = KS8695_UART_ADDR;
-       int i;
-
-       for (i = 0; (i < 0x100000); i++) {
-               if (uartp->LSR & KS8695_UART_LINES_TXFE)
-                       break;
-       }
-
-       uartp->TX = c;
-}
-
-void serial_putc(const char c)
-{
-       if (serial_console) {
-               serial_raw_putc(c);
-               if (c == '\n')
-                       serial_raw_putc('\r');
-       }
-}
-
-int serial_tstc(void)
-{
-       volatile struct ks8695uart *uartp = KS8695_UART_ADDR;
-       if (serial_console)
-               return ((uartp->LSR & KS8695_UART_LINES_RXFE) ? 1 : 0);
-       return 0;
-}
-
-void serial_puts(const char *s)
-{
-       char c;
-       while ((c = *s++) != 0)
-               serial_putc(c);
-}
-
-int serial_getc(void)
-{
-       volatile struct ks8695uart *uartp = KS8695_UART_ADDR;
-
-       while ((uartp->LSR & KS8695_UART_LINES_RXFE) == 0)
-               ;
-       return (uartp->RX);
-}
index 619d9da1a1ccd1ef716f21a4a8d79afcd74b9077..95255df5fe6f1bd47a778c247f633aa81e75874e 100644 (file)
@@ -34,6 +34,7 @@ COBJS-$(CONFIG_DRIVER_S3C4510_UART) += s3c4510b_uart.o
 COBJS-$(CONFIG_S3C64XX) += s3c64xx.o
 COBJS-$(CONFIG_SYS_NS16550_SERIAL) += serial.o
 COBJS-$(CONFIG_IXP_SERIAL) += serial_ixp.o
+COBJS-$(CONFIG_KS8695_SERIAL) += serial_ks8695.o
 COBJS-$(CONFIG_MAX3100_SERIAL) += serial_max3100.o
 COBJS-$(CONFIG_MX31_UART) += serial_mx31.o
 COBJS-$(CONFIG_NETARM_SERIAL) += serial_netarm.o
diff --git a/drivers/serial/serial_ks8695.c b/drivers/serial/serial_ks8695.c
new file mode 100644 (file)
index 0000000..aacd1be
--- /dev/null
@@ -0,0 +1,117 @@
+/*
+ * serial.c -- KS8695 serial driver
+ *
+ * (C) Copyright 2004, Greg Ungerer <greg.ungerer@opengear.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+#include <common.h>
+#include <asm/arch/platform.h>
+
+#ifndef CONFIG_SERIAL1
+#error "Bad: you didn't configure serial ..."
+#endif
+
+DECLARE_GLOBAL_DATA_PTR;
+
+/*
+ *     Define the UART hardware register access structure.
+ */
+struct ks8695uart {
+       unsigned int    RX;             /* 0x00 - Receive data (r) */
+       unsigned int    TX;             /* 0x04 - Transmit data (w) */
+       unsigned int    FCR;            /* 0x08 - Fifo Control (r/w) */
+       unsigned int    LCR;            /* 0x0c - Line Control (r/w) */
+       unsigned int    MCR;            /* 0x10 - Modem Control (r/w) */
+       unsigned int    LSR;            /* 0x14 - Line Status (r/w) */
+       unsigned int    MSR;            /* 0x18 - Modem Status (r/w) */
+       unsigned int    BD;             /* 0x1c - Baud Rate (r/w) */
+       unsigned int    SR;             /* 0x20 - Status (r/w) */
+};
+
+#define        KS8695_UART_ADDR        ((void *) (KS8695_IO_BASE + KS8695_UART_RX_BUFFER))
+#define        KS8695_UART_CLK         25000000
+
+
+/*
+ * Under some circumstances we want to be "quiet" and not issue any
+ * serial output - though we want u-boot to otherwise work and behave
+ * the same. By default be noisy.
+ */
+int serial_console = 1;
+
+
+void serial_setbrg(void)
+{
+       volatile struct ks8695uart *uartp = KS8695_UART_ADDR;
+
+       /* Set to global baud rate and 8 data bits, no parity, 1 stop bit*/
+       uartp->BD = KS8695_UART_CLK / gd->baudrate;
+       uartp->LCR = KS8695_UART_LINEC_WLEN8;
+}
+
+int serial_init(void)
+{
+       serial_console = 1;
+       serial_setbrg();
+       return 0;
+}
+
+void serial_raw_putc(const char c)
+{
+       volatile struct ks8695uart *uartp = KS8695_UART_ADDR;
+       int i;
+
+       for (i = 0; (i < 0x100000); i++) {
+               if (uartp->LSR & KS8695_UART_LINES_TXFE)
+                       break;
+       }
+
+       uartp->TX = c;
+}
+
+void serial_putc(const char c)
+{
+       if (serial_console) {
+               serial_raw_putc(c);
+               if (c == '\n')
+                       serial_raw_putc('\r');
+       }
+}
+
+int serial_tstc(void)
+{
+       volatile struct ks8695uart *uartp = KS8695_UART_ADDR;
+       if (serial_console)
+               return ((uartp->LSR & KS8695_UART_LINES_RXFE) ? 1 : 0);
+       return 0;
+}
+
+void serial_puts(const char *s)
+{
+       char c;
+       while ((c = *s++) != 0)
+               serial_putc(c);
+}
+
+int serial_getc(void)
+{
+       volatile struct ks8695uart *uartp = KS8695_UART_ADDR;
+
+       while ((uartp->LSR & KS8695_UART_LINES_RXFE) == 0)
+               ;
+       return (uartp->RX);
+}
index 124fad7b35afcf56c3ec81eac3b46f8d1b9ca1c4..7ea1a46033ba2fa2ec3eabdaf7ab0afabf5e49d1 100644 (file)
@@ -53,6 +53,7 @@
  * select serial console configuration
  */
 #define CONFIG_ENV_IS_NOWHERE
+#define CONFIG_KS8695_SERIAL
 #define        CONFIG_SERIAL1
 #define CONFIG_CONS_INDEX      1
 #define CONFIG_BAUDRATE                115200
index 5c255ce39a5a6f3c14dbe5f9f7b7c2807a974861..ea374da86e88cbd5315ea0f2c2bf753e52ad18d3 100644 (file)
@@ -53,6 +53,7 @@
  * select serial console configuration
  */
 #define CONFIG_ENV_IS_NOWHERE
+#define CONFIG_KS8695_SERIAL
 #define        CONFIG_SERIAL1
 #define CONFIG_CONS_INDEX      1
 #define CONFIG_BAUDRATE                115200