summaryrefslogtreecommitdiff
path: root/board/atmel/at91rm9200ek/mux.c
diff options
context:
space:
mode:
authorUlf Samuelsson <ulf@atmel.com>2009-03-27 23:26:43 +0100
committerJean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>2009-04-04 20:42:20 +0200
commitcb82a532669f6b02225ec3429ea4d49ff2b97d0a (patch)
tree3b08f9ce44bac5fcee84ffd44ea1dfb0c16580e4 /board/atmel/at91rm9200ek/mux.c
parentb9c0e4c29e3ec12668ac50e954e7c9ba8f7aa10a (diff)
downloadu-boot-imx-cb82a532669f6b02225ec3429ea4d49ff2b97d0a.zip
u-boot-imx-cb82a532669f6b02225ec3429ea4d49ff2b97d0a.tar.gz
u-boot-imx-cb82a532669f6b02225ec3429ea4d49ff2b97d0a.tar.bz2
Add support for the AT91RM9200EK Board.
The AT91RM9200-EK Evaluation Board supports the AT91RM9200 ARM9-based 32-bit RISC microcontroller and enables real-time code development and evaluation. Here is the chip page on Atmel website: http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3507 with - NOR (cfi driver) - DataFlash - USB OHCI - Net - I2C (hard) Signed-off-by: Ulf Samuelsson <ulf@atmel.com> Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Diffstat (limited to 'board/atmel/at91rm9200ek/mux.c')
-rw-r--r--board/atmel/at91rm9200ek/mux.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/board/atmel/at91rm9200ek/mux.c b/board/atmel/at91rm9200ek/mux.c
new file mode 100644
index 0000000..bdd44e8
--- /dev/null
+++ b/board/atmel/at91rm9200ek/mux.c
@@ -0,0 +1,38 @@
+#include <config.h>
+#include <common.h>
+#include <asm/hardware.h>
+#include <asm/io.h>
+#include <dataflash.h>
+
+int AT91F_GetMuxStatus(void)
+{
+ /* Set in PIO mode */
+ writel(CONFIG_SYS_DATAFLASH_MMC_PIO, AT91C_BASE_PIOB->PIO_PER);
+ /* Configure in output */
+ writel(CONFIG_SYS_DATAFLASH_MMC_PIO, AT91C_BASE_PIOB->PIO_OER);
+
+ if(readl(AT91C_BASE_PIOB->PIO_ODSR) & CONFIG_SYS_DATAFLASH_MMC_PIO)
+ return 1;
+
+ return 0;
+}
+
+void AT91F_SelectMMC(void)
+{
+ /* Set in PIO mode */
+ writel(CONFIG_SYS_DATAFLASH_MMC_PIO, AT91C_BASE_PIOB->PIO_PER);
+ /* Configure in output */
+ writel(CONFIG_SYS_DATAFLASH_MMC_PIO, AT91C_BASE_PIOB->PIO_OER);
+ /* Set Output */
+ writel(CONFIG_SYS_DATAFLASH_MMC_PIO, AT91C_BASE_PIOB->PIO_SODR);
+}
+
+void AT91F_SelectSPI(void)
+{
+ /* Set in PIO mode */
+ writel(CONFIG_SYS_DATAFLASH_MMC_PIO, AT91C_BASE_PIOB->PIO_PER);
+ /* Configure in output */
+ writel(CONFIG_SYS_DATAFLASH_MMC_PIO, AT91C_BASE_PIOB->PIO_OER);
+ /* Clear Output */
+ writel(CONFIG_SYS_DATAFLASH_MMC_PIO, AT91C_BASE_PIOB->PIO_CODR);
+}