diff options
author | Scott McNutt <smcnutt@psyent.com> | 2006-06-08 11:59:57 -0400 |
---|---|---|
committer | Scott McNutt <smcnutt@psyent.com> | 2006-06-08 11:59:57 -0400 |
commit | c2ced000f4f18361feb36ea257fabbb46913e1d4 (patch) | |
tree | 6ba42fa4c9b37b96491846e8e807f351bc5202e1 /cpu/nios2/epcs.c | |
parent | e461a24113c66747510b07930a83b0d84171a559 (diff) | |
download | u-boot-imx-c2ced000f4f18361feb36ea257fabbb46913e1d4.zip u-boot-imx-c2ced000f4f18361feb36ea257fabbb46913e1d4.tar.gz u-boot-imx-c2ced000f4f18361feb36ea257fabbb46913e1d4.tar.bz2 |
Nios II - Fix I/O Macros and mini-app stubs
-Fix asm/io.h macros
-Eliminate use of CACHE_BYPASS in cpu code
-Eliminate assembler warnings
-Fix mini-app stubs and force no small data
Patch by Scott McNutt, 08 Jun 2006
Diffstat (limited to 'cpu/nios2/epcs.c')
-rw-r--r-- | cpu/nios2/epcs.c | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/cpu/nios2/epcs.c b/cpu/nios2/epcs.c index a8851e9..fd9fd84 100644 --- a/cpu/nios2/epcs.c +++ b/cpu/nios2/epcs.c @@ -25,7 +25,7 @@ #if defined(CFG_NIOS_EPCSBASE) #include <command.h> -#include <nios2.h> +#include <asm/io.h> #include <nios2-io.h> #include <nios2-epcs.h> @@ -72,8 +72,7 @@ */ #define EPCS_TIMEOUT 100 /* 100 msec timeout */ -static nios_spi_t *epcs = - (nios_spi_t *)CACHE_BYPASS(CFG_NIOS_EPCSBASE); +static nios_spi_t *epcs = (nios_spi_t *)CFG_NIOS_EPCSBASE; /*********************************************************************** * Device access @@ -81,16 +80,20 @@ static nios_spi_t *epcs = static int epcs_cs (int assert) { ulong start; + unsigned tmp; + if (assert) { - epcs->control |= NIOS_SPI_SSO; + tmp = readl (&epcs->control); + writel (&epcs->control, tmp | NIOS_SPI_SSO); } else { /* Let all bits shift out */ start = get_timer (0); - while ((epcs->status & NIOS_SPI_TMT) == 0) + while ((readl (&epcs->status) & NIOS_SPI_TMT) == 0) if (get_timer (start) > EPCS_TIMEOUT) return (-1); - epcs->control &= ~NIOS_SPI_SSO; + tmp = readl (&epcs->control); + writel (&epcs->control, tmp & ~NIOS_SPI_SSO); } return (0); } @@ -100,10 +103,10 @@ static int epcs_tx (unsigned char c) ulong start; start = get_timer (0); - while ((epcs->status & NIOS_SPI_TRDY) == 0) + while ((readl (&epcs->status) & NIOS_SPI_TRDY) == 0) if (get_timer (start) > EPCS_TIMEOUT) return (-1); - epcs->txdata = c; + writel (&epcs->txdata, c); return (0); } @@ -112,10 +115,10 @@ static int epcs_rx (void) ulong start; start = get_timer (0); - while ((epcs->status & NIOS_SPI_RRDY) == 0) + while ((readl (&epcs->status) & NIOS_SPI_RRDY) == 0) if (get_timer (start) > EPCS_TIMEOUT) return (-1); - return (epcs->rxdata); + return (readl (&epcs->rxdata)); } static unsigned char bitrev[] = { |