summaryrefslogtreecommitdiff
path: root/board/atmel/at91rm9200dk
diff options
context:
space:
mode:
Diffstat (limited to 'board/atmel/at91rm9200dk')
-rw-r--r--board/atmel/at91rm9200dk/Makefile14
-rw-r--r--board/atmel/at91rm9200dk/at91rm9200dk.c10
-rw-r--r--board/atmel/at91rm9200dk/mux.c28
3 files changed, 30 insertions, 22 deletions
diff --git a/board/atmel/at91rm9200dk/Makefile b/board/atmel/at91rm9200dk/Makefile
index 2d806d0..79d41d6 100644
--- a/board/atmel/at91rm9200dk/Makefile
+++ b/board/atmel/at91rm9200dk/Makefile
@@ -25,10 +25,16 @@ include $(TOPDIR)/config.mk
LIB = $(obj)lib$(BOARD).a
-COBJS := at91rm9200dk.o flash.o led.o mux.o partition.o
-
-SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
-OBJS := $(addprefix $(obj),$(COBJS))
+COBJS-y += $(BOARD).o
+COBJS-y += flash.o
+COBJS-y += led.o
+ifdef CONFIG_HAS_DATAFLASH
+COBJS-$(CONFIG_DATAFLASH_MMC_SELECT) += mux.o
+COBJS-y += partition.o
+endif
+
+SRCS := $(SOBJS:.o=.S) $(COBJS-y:.o=.c)
+OBJS := $(addprefix $(obj),$(COBJS-y))
SOBJS := $(addprefix $(obj),$(SOBJS))
$(LIB): $(obj).depend $(OBJS) $(SOBJS)
diff --git a/board/atmel/at91rm9200dk/at91rm9200dk.c b/board/atmel/at91rm9200dk/at91rm9200dk.c
index b89a3fd..c761dd7 100644
--- a/board/atmel/at91rm9200dk/at91rm9200dk.c
+++ b/board/atmel/at91rm9200dk/at91rm9200dk.c
@@ -54,6 +54,16 @@ int board_init (void)
return 0;
}
+void board_reset (void)
+{
+ AT91PS_PIO pio = AT91C_BASE_PIOA;
+
+ /* Clear PA19 to trigger the hard reset */
+ writel(0x00080000, pio->PIO_CODR);
+ writel(0x00080000, pio->PIO_OER);
+ writel(0x00080000, pio->PIO_PER);
+}
+
int dram_init (void)
{
gd->bd->bi_dram[0].start = PHYS_SDRAM;
diff --git a/board/atmel/at91rm9200dk/mux.c b/board/atmel/at91rm9200dk/mux.c
index 767d280..a00563e 100644
--- a/board/atmel/at91rm9200dk/mux.c
+++ b/board/atmel/at91rm9200dk/mux.c
@@ -4,34 +4,26 @@
#include <dataflash.h>
int AT91F_GetMuxStatus(void) {
-#ifdef DATAFLASH_MMC_SELECT
- AT91C_BASE_PIOB->PIO_PER = DATAFLASH_MMC_SELECT; /* Set in PIO mode */
- AT91C_BASE_PIOB->PIO_OER = DATAFLASH_MMC_SELECT; /* Configure in output */
+ AT91C_BASE_PIOB->PIO_PER = CONFIG_SYS_DATAFLASH_MMC_PIO; /* Set in PIO mode */
+ AT91C_BASE_PIOB->PIO_OER = CONFIG_SYS_DATAFLASH_MMC_PIO; /* Configure in output */
- if(AT91C_BASE_PIOB->PIO_ODSR & DATAFLASH_MMC_SELECT) {
+ if(AT91C_BASE_PIOB->PIO_ODSR & CONFIG_SYS_DATAFLASH_MMC_PIO)
return 1;
- } else {
- return 0;
- }
-#endif
+
return 0;
}
void AT91F_SelectMMC(void) {
-#ifdef DATAFLASH_MMC_SELECT
- AT91C_BASE_PIOB->PIO_PER = DATAFLASH_MMC_SELECT; /* Set in PIO mode */
- AT91C_BASE_PIOB->PIO_OER = DATAFLASH_MMC_SELECT; /* Configure in output */
+ AT91C_BASE_PIOB->PIO_PER = CONFIG_SYS_DATAFLASH_MMC_PIO; /* Set in PIO mode */
+ AT91C_BASE_PIOB->PIO_OER = CONFIG_SYS_DATAFLASH_MMC_PIO; /* Configure in output */
/* Set Output */
- AT91C_BASE_PIOB->PIO_SODR = DATAFLASH_MMC_SELECT;
-#endif
+ AT91C_BASE_PIOB->PIO_SODR = CONFIG_SYS_DATAFLASH_MMC_PIO;
}
void AT91F_SelectSPI(void) {
-#ifdef DATAFLASH_MMC_SELECT
- AT91C_BASE_PIOB->PIO_PER = DATAFLASH_MMC_SELECT; /* Set in PIO mode */
- AT91C_BASE_PIOB->PIO_OER = DATAFLASH_MMC_SELECT; /* Configure in output */
+ AT91C_BASE_PIOB->PIO_PER = CONFIG_SYS_DATAFLASH_MMC_PIO; /* Set in PIO mode */
+ AT91C_BASE_PIOB->PIO_OER = CONFIG_SYS_DATAFLASH_MMC_PIO; /* Configure in output */
/* Clear Output */
- AT91C_BASE_PIOB->PIO_CODR = DATAFLASH_MMC_SELECT;
-#endif
+ AT91C_BASE_PIOB->PIO_CODR = CONFIG_SYS_DATAFLASH_MMC_PIO;
}