From: Jean-Christophe PLAGNIOL-VILLARD Date: Fri, 27 Mar 2009 22:26:43 +0000 (+0100) Subject: at91rm9200: move serial shutdown code to serial drivers X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=3524049cd053746298e4cfab2449882e75c146fc;p=project%2Fbcm63xx%2Fu-boot.git at91rm9200: move serial shutdown code to serial drivers introduce serial_exit for this purpose. Use it only when the rm9200 serial driver is active Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD --- diff --git a/cpu/arm920t/at91rm9200/interrupts.c b/cpu/arm920t/at91rm9200/interrupts.c index 5f0703c2de..15e22bf6cf 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 d563445492..858bde97c1 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 20c058a81d..30fff7d65e 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);