diff options
Diffstat (limited to 'board/atmel/at91rm9200dk')
-rw-r--r-- | board/atmel/at91rm9200dk/Makefile | 14 | ||||
-rw-r--r-- | board/atmel/at91rm9200dk/at91rm9200dk.c | 10 | ||||
-rw-r--r-- | board/atmel/at91rm9200dk/mux.c | 28 |
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; } |