at91rm9200: move serial driver to drivers/serial
authorJean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Fri, 27 Mar 2009 22:26:43 +0000 (23:26 +0100)
committerJean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Sat, 4 Apr 2009 18:42:20 +0000 (20:42 +0200)
add CONFIG_AT91RM9200_USART to activate the driver

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
cpu/arm920t/at91rm9200/Makefile
cpu/arm920t/at91rm9200/serial.c [deleted file]
drivers/serial/Makefile
drivers/serial/at91rm9200_usart.c [new file with mode: 0644]
include/configs/at91rm9200dk.h
include/configs/at91rm9200ek.h
include/configs/cmc_pu2.h
include/configs/csb637.h
include/configs/kb9202.h
include/configs/m501sk.h
include/configs/mp2usb.h

index ab4c52c8fb08fccc02f0813eec88b12a57df8b82..67f17fadfeb705519997b1445f1f3585cc7c0da1 100644 (file)
@@ -26,7 +26,7 @@ include $(TOPDIR)/config.mk
 LIB    = $(obj)lib$(SOC).a
 
 COBJS  = bcm5221.o dm9161.o ether.o i2c.o interrupts.o \
-         lxt972.o serial.o usb.o spi.o
+         lxt972.o usb.o spi.o
 SOBJS  = lowlevel_init.o
 
 SRCS   := $(SOBJS:.o=.S) $(COBJS:.o=.c)
diff --git a/cpu/arm920t/at91rm9200/serial.c b/cpu/arm920t/at91rm9200/serial.c
deleted file mode 100644 (file)
index d563445..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * (C) Copyright 2002
- * Lineo, Inc <www.lineo.com>
- * Bernhard Kuhn <bkuhn@lineo.com>
- *
- * (C) Copyright 2002
- * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
- * Marius Groeger <mgroeger@sysgo.de>
- *
- * (C) Copyright 2002
- * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
- * Alex Zuepke <azu@sysgo.de>
- *
- * Copyright (C) 1999 2000 2001 Erik Mouw (J.A.K.Mouw@its.tudelft.nl)
- *
- * 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/io.h>
-#include <asm/arch/hardware.h>
-
-DECLARE_GLOBAL_DATA_PTR;
-
-#if !defined(CONFIG_DBGU) && !defined(CONFIG_USART0) && !defined(CONFIG_USART1)
-#error must define one of CONFIG_DBGU or CONFIG_USART0 or CONFIG_USART1
-#endif
-
-/* ggi thunder */
-#ifdef CONFIG_DBGU
-AT91PS_USART us = (AT91PS_USART) AT91C_BASE_DBGU;
-#endif
-#ifdef CONFIG_USART0
-AT91PS_USART us = (AT91PS_USART) AT91C_BASE_US0;
-#endif
-#ifdef CONFIG_USART1
-AT91PS_USART us = (AT91PS_USART) AT91C_BASE_US1;
-#endif
-
-void serial_setbrg (void)
-{
-       int baudrate;
-
-       if ((baudrate = gd->baudrate) <= 0)
-               baudrate = CONFIG_BAUDRATE;
-       /* MASTER_CLOCK/(16 * baudrate) */
-       us->US_BRGR = (AT91C_MASTER_CLOCK >> 4) / (unsigned)baudrate;
-}
-
-int serial_init (void)
-{
-       /* make any port initializations specific to this port */
-#ifdef CONFIG_DBGU
-       *AT91C_PIOA_PDR = AT91C_PA31_DTXD | AT91C_PA30_DRXD;    /* PA 31 & 30 */
-       *AT91C_PMC_PCER = 1 << AT91C_ID_SYS;    /* enable clock */
-#endif
-#ifdef CONFIG_USART0
-       *AT91C_PIOA_PDR = AT91C_PA17_TXD0 | AT91C_PA18_RXD0;
-       *AT91C_PMC_PCER |= 1 << AT91C_ID_USART0;        /* enable clock */
-#endif
-#ifdef CONFIG_USART1
-       *AT91C_PIOB_PDR = AT91C_PB21_TXD1 | AT91C_PB20_RXD1;
-       *AT91C_PMC_PCER |= 1 << AT91C_ID_USART1;        /* enable clock */
-#endif
-       serial_setbrg ();
-
-       us->US_CR = AT91C_US_RSTRX | AT91C_US_RSTTX;
-       us->US_CR = AT91C_US_RXEN | AT91C_US_TXEN;
-       us->US_MR =
-               (AT91C_US_CLKS_CLOCK | AT91C_US_CHRL_8_BITS |
-                AT91C_US_PAR_NONE | AT91C_US_NBSTOP_1_BIT);
-       us->US_IMR = ~0ul;
-       return (0);
-}
-
-void serial_putc (const char c)
-{
-       if (c == '\n')
-               serial_putc ('\r');
-       while ((us->US_CSR & AT91C_US_TXRDY) == 0);
-       us->US_THR = c;
-}
-
-void serial_puts (const char *s)
-{
-       while (*s) {
-               serial_putc (*s++);
-       }
-}
-
-int serial_getc (void)
-{
-       while ((us->US_CSR & AT91C_US_RXRDY) == 0);
-       return us->US_RHR;
-}
-
-int serial_tstc (void)
-{
-       return ((us->US_CSR & AT91C_US_RXRDY) == AT91C_US_RXRDY);
-}
index 696d5fbbba91ad83fe4e21d55d05250f6a8a6cc2..bb99a349ac99dde3070befbbef3a086a25f28ae7 100644 (file)
@@ -26,6 +26,7 @@ include $(TOPDIR)/config.mk
 LIB    := $(obj)libserial.a
 
 COBJS-$(CONFIG_ARM_DCC) += arm_dcc.o
+COBJS-$(CONFIG_AT91RM9200_USART) += at91rm9200_usart.o
 COBJS-$(CONFIG_ATMEL_USART) += atmel_usart.o
 COBJS-$(CONFIG_MCFUART) += mcfuart.o
 COBJS-$(CONFIG_NS9750_UART) += ns9750_serial.o
diff --git a/drivers/serial/at91rm9200_usart.c b/drivers/serial/at91rm9200_usart.c
new file mode 100644 (file)
index 0000000..d563445
--- /dev/null
@@ -0,0 +1,113 @@
+/*
+ * (C) Copyright 2002
+ * Lineo, Inc <www.lineo.com>
+ * Bernhard Kuhn <bkuhn@lineo.com>
+ *
+ * (C) Copyright 2002
+ * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
+ * Marius Groeger <mgroeger@sysgo.de>
+ *
+ * (C) Copyright 2002
+ * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
+ * Alex Zuepke <azu@sysgo.de>
+ *
+ * Copyright (C) 1999 2000 2001 Erik Mouw (J.A.K.Mouw@its.tudelft.nl)
+ *
+ * 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/io.h>
+#include <asm/arch/hardware.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+#if !defined(CONFIG_DBGU) && !defined(CONFIG_USART0) && !defined(CONFIG_USART1)
+#error must define one of CONFIG_DBGU or CONFIG_USART0 or CONFIG_USART1
+#endif
+
+/* ggi thunder */
+#ifdef CONFIG_DBGU
+AT91PS_USART us = (AT91PS_USART) AT91C_BASE_DBGU;
+#endif
+#ifdef CONFIG_USART0
+AT91PS_USART us = (AT91PS_USART) AT91C_BASE_US0;
+#endif
+#ifdef CONFIG_USART1
+AT91PS_USART us = (AT91PS_USART) AT91C_BASE_US1;
+#endif
+
+void serial_setbrg (void)
+{
+       int baudrate;
+
+       if ((baudrate = gd->baudrate) <= 0)
+               baudrate = CONFIG_BAUDRATE;
+       /* MASTER_CLOCK/(16 * baudrate) */
+       us->US_BRGR = (AT91C_MASTER_CLOCK >> 4) / (unsigned)baudrate;
+}
+
+int serial_init (void)
+{
+       /* make any port initializations specific to this port */
+#ifdef CONFIG_DBGU
+       *AT91C_PIOA_PDR = AT91C_PA31_DTXD | AT91C_PA30_DRXD;    /* PA 31 & 30 */
+       *AT91C_PMC_PCER = 1 << AT91C_ID_SYS;    /* enable clock */
+#endif
+#ifdef CONFIG_USART0
+       *AT91C_PIOA_PDR = AT91C_PA17_TXD0 | AT91C_PA18_RXD0;
+       *AT91C_PMC_PCER |= 1 << AT91C_ID_USART0;        /* enable clock */
+#endif
+#ifdef CONFIG_USART1
+       *AT91C_PIOB_PDR = AT91C_PB21_TXD1 | AT91C_PB20_RXD1;
+       *AT91C_PMC_PCER |= 1 << AT91C_ID_USART1;        /* enable clock */
+#endif
+       serial_setbrg ();
+
+       us->US_CR = AT91C_US_RSTRX | AT91C_US_RSTTX;
+       us->US_CR = AT91C_US_RXEN | AT91C_US_TXEN;
+       us->US_MR =
+               (AT91C_US_CLKS_CLOCK | AT91C_US_CHRL_8_BITS |
+                AT91C_US_PAR_NONE | AT91C_US_NBSTOP_1_BIT);
+       us->US_IMR = ~0ul;
+       return (0);
+}
+
+void serial_putc (const char c)
+{
+       if (c == '\n')
+               serial_putc ('\r');
+       while ((us->US_CSR & AT91C_US_TXRDY) == 0);
+       us->US_THR = c;
+}
+
+void serial_puts (const char *s)
+{
+       while (*s) {
+               serial_putc (*s++);
+       }
+}
+
+int serial_getc (void)
+{
+       while ((us->US_CSR & AT91C_US_RXRDY) == 0);
+       return us->US_RHR;
+}
+
+int serial_tstc (void)
+{
+       return ((us->US_CSR & AT91C_US_RXRDY) == AT91C_US_RXRDY);
+}
index 5a980d353e88fbbc4a64262f8216b916071368b0..56128c153ee7c59376e5940cc2fc04c92838947b 100644 (file)
@@ -88,6 +88,7 @@
  */
 
 /* define one of these to choose the DBGU, USART0  or USART1 as console */
+#define CONFIG_AT91RM9200_USART
 #define CONFIG_DBGU
 #undef CONFIG_USART0
 #undef CONFIG_USART1
index 692ccdb71b7ff2fbd71ab1680d982171d55360ab..a018873fd685136c7e0345fcd81b856e8c89984d 100644 (file)
  * define one of these to choose the DBGU,
  * USART0 or USART1 as console
  */
+#define CONFIG_AT91RM9200_USART
 #define CONFIG_DBGU
 #undef CONFIG_USART0
 #undef CONFIG_USART1
index e5c74e136fab504b3e9dc71cd31a32bd35bc3dcb..80559bf1919a987e0befa198a6aac8eac098602c 100644 (file)
@@ -88,6 +88,7 @@
  */
 
 /* define one of these to choose the DBGU, USART0  or USART1 as console */
+#define CONFIG_AT91RM9200_USART
 #undef CONFIG_DBGU
 #define CONFIG_USART0
 #undef CONFIG_USART1
index 761c0dca397db46226408fefd1eb35356685b057..e1cdc7f66ec1cb09ec1bf446965e63d61ec13206 100644 (file)
@@ -90,6 +90,7 @@
  */
 
 /* define one of these to choose the DBGU, USART0  or USART1 as console */
+#define CONFIG_AT91RM9200_USART
 #define CONFIG_DBGU
 #undef CONFIG_USART0
 #undef CONFIG_USART1
index 1ce8c6974adf1f648c33fc1d60fb707a0bf00055..7dd81e69cb91c1aa77e96b4e9818ca6961cd1514 100644 (file)
@@ -72,6 +72,7 @@
  */
 
 /* define one of these to choose the DBGU, USART0  or USART1 as console */
+#define CONFIG_AT91RM9200_USART
 #define CONFIG_DBGU
 #undef CONFIG_USART0
 #undef CONFIG_USART1
index a432850519bff6ae4a012dfa750633605bce9a1e..1e7d90ed98dc5af260f9bf8a148b5d4c041ffdbe 100644 (file)
 #define CONFIG_CMC_PU2
 
 /* define one of these to choose the DBGU, USART0  or USART1 as console */
+#define CONFIG_AT91RM9200_USART
 #define CONFIG_DBGU
 #undef CONFIG_USART0
 #undef CONFIG_USART1
index edaa17403fbe18c0e15551736853b294300c43b2..3225ce714ced3ff003e46d174ccfc62af4eb7c91 100644 (file)
@@ -95,6 +95,7 @@
  */
 
 /* define one of these to choose the DBGU, USART0  or USART1 as console */
+#define CONFIG_AT91RM9200_USART
 #define CONFIG_DBGU
 #undef CONFIG_USART0
 #undef CONFIG_USART1