summaryrefslogtreecommitdiffstats
path: root/cpu/at91rm9200
diff options
context:
space:
mode:
Diffstat (limited to 'cpu/at91rm9200')
-rw-r--r--cpu/at91rm9200/cpu.c9
-rw-r--r--cpu/at91rm9200/serial.c15
2 files changed, 24 insertions, 0 deletions
diff --git a/cpu/at91rm9200/cpu.c b/cpu/at91rm9200/cpu.c
index 02507297e1..c006d9c7e6 100644
--- a/cpu/at91rm9200/cpu.c
+++ b/cpu/at91rm9200/cpu.c
@@ -35,6 +35,10 @@
#include <asm/io.h>
#include <asm/arch/hardware.h>
+#if !defined(CONFIG_DBGU) && !defined(CONFIG_USART1)
+#error must define one of CONFIG_DBGU or CONFIG_USART1
+#endif
+
/* read co-processor 15, register #1 (control register) */
static unsigned long read_p15_c1(void)
{
@@ -116,7 +120,12 @@ int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
disable_interrupts();
reset_cpu(0);
#else
+#ifdef CONFIG_DBGU
+ AT91PS_USART us = AT91C_BASE_DBGU;
+#endif
+#ifdef CONFIG_USART1
AT91PS_USART us = AT91C_BASE_US1;
+#endif
AT91PS_PIO pio = AT91C_BASE_PIOA;
/*shutdown the console to avoid strange chars during reset */
diff --git a/cpu/at91rm9200/serial.c b/cpu/at91rm9200/serial.c
index 43e15535e6..c16c9d4f0f 100644
--- a/cpu/at91rm9200/serial.c
+++ b/cpu/at91rm9200/serial.c
@@ -33,8 +33,17 @@
#include <asm/io.h>
#include <asm/arch/hardware.h>
+#if !defined(CONFIG_DBGU) && !defined(CONFIG_USART1)
+#error must define one of CONFIG_DBGU or CONFIG_USART1
+#endif
+
/* ggi thunder */
+#ifdef CONFIG_DBGU
AT91PS_USART us = (AT91PS_USART) AT91C_BASE_DBGU;
+#endif
+#ifdef CONFIG_USART1
+AT91PS_USART us = (AT91PS_USART) AT91C_BASE_US1;
+#endif
void serial_setbrg (void)
{
@@ -49,8 +58,14 @@ void serial_setbrg (void)
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_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;