[U-Boot] [PATCH 08/13] at91rm9200: move serial shutdown code to serial drivers

Jean-Christophe PLAGNIOL-VILLARD plagnioj at jcrosoft.com
Fri Mar 27 23:30:21 CET 2009


introduce serial_exit for this purpose. Use it only when the rm9200
serial driver is active

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
---
 cpu/arm920t/at91rm9200/interrupts.c |   13 +++----------
 drivers/serial/at91rm9200_usart.c   |    5 +++++
 include/common.h                    |    1 +
 3 files changed, 9 insertions(+), 10 deletions(-)

diff --git a/cpu/arm920t/at91rm9200/interrupts.c b/cpu/arm920t/at91rm9200/interrupts.c
index 5f0703c..15e22bf 100644
--- a/cpu/arm920t/at91rm9200/interrupts.c
+++ b/cpu/arm920t/at91rm9200/interrupts.c
@@ -166,21 +166,14 @@ ulong get_tbclk (void)
 void reset_cpu (ulong ignored)
 {
 
-#ifdef CONFIG_DBGU
-	AT91PS_USART us = (AT91PS_USART) AT91C_BASE_DBGU;
-#endif
-#ifdef CONFIG_USART0
-	AT91PS_USART us = AT91C_BASE_US0;
-#endif
-#ifdef CONFIG_USART1
-	AT91PS_USART us = AT91C_BASE_US1;
-#endif
 #ifdef CONFIG_AT91RM9200DK
 	AT91PS_PIO pio = AT91C_BASE_PIOA;
 #endif
 
+#if defined(CONFIG_AT91RM9200_USART)
 	/*shutdown the console to avoid strange chars during reset */
-	us->US_CR = (AT91C_US_RSTRX | AT91C_US_RSTTX);
+	serial_exit();
+#endif
 
 #ifdef CONFIG_AT91RM9200DK
 	/* Clear PA19 to trigger the hard reset */
diff --git a/drivers/serial/at91rm9200_usart.c b/drivers/serial/at91rm9200_usart.c
index d563445..858bde9 100644
--- a/drivers/serial/at91rm9200_usart.c
+++ b/drivers/serial/at91rm9200_usart.c
@@ -86,6 +86,11 @@ int serial_init (void)
 	return (0);
 }
 
+void serial_exit (void)
+{
+	us->US_CR = (AT91C_US_RSTRX | AT91C_US_RSTTX);
+}
+
 void serial_putc (const char c)
 {
 	if (c == '\n')
diff --git a/include/common.h b/include/common.h
index 952ddff..43068e6 100644
--- a/include/common.h
+++ b/include/common.h
@@ -453,6 +453,7 @@ void ft_pci_setup(void *blob, bd_t *bd);
 
 /* $(CPU)/serial.c */
 int	serial_init   (void);
+void	serial_exit   (void);
 void	serial_addr   (unsigned int);
 void	serial_setbrg (void);
 void	serial_putc   (const char);
-- 
1.6.2.1



More information about the U-Boot mailing list