summaryrefslogtreecommitdiffstats
path: root/include/asm-nios2/io.h
diff options
context:
space:
mode:
authorHaavard Skinnemoen <hskinnemoen@atmel.com>2007-12-13 12:56:31 +0100
committerStefan Roese <sr@denx.de>2007-12-13 13:15:04 +0100
commit812711ce6b3a386125dcf0d6a59588e461abbb87 (patch)
tree7aa549af060b380507eb6da479a11ac63fb34968 /include/asm-nios2/io.h
parentbe60a9021c82fc5aecd5b2b1fc96f70a9c81bbcd (diff)
downloadu-boot-812711ce6b3a386125dcf0d6a59588e461abbb87.tar.gz
u-boot-812711ce6b3a386125dcf0d6a59588e461abbb87.tar.xz
u-boot-812711ce6b3a386125dcf0d6a59588e461abbb87.zip
Implement __raw_{read,write}[bwl] on all architectures
This adds implementations of __raw_read[bwl] and __raw_write[bwl] to m68k, ppc, nios and nios2. The m68k and ppc implementations were taken from Linux. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
Diffstat (limited to 'include/asm-nios2/io.h')
-rw-r--r--include/asm-nios2/io.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/include/asm-nios2/io.h b/include/asm-nios2/io.h
index 5bb5322952..54cbd57c06 100644
--- a/include/asm-nios2/io.h
+++ b/include/asm-nios2/io.h
@@ -33,6 +33,14 @@ extern unsigned char inb (unsigned char *port);
extern unsigned short inw (unsigned short *port);
extern unsigned inl (unsigned port);
+#define __raw_writeb(v,a) (*(volatile unsigned char *)(a) = (v))
+#define __raw_writew(v,a) (*(volatile unsigned short *)(a) = (v))
+#define __raw_writel(v,a) (*(volatile unsigned int *)(a) = (v))
+
+#define __raw_readb(a) (*(volatile unsigned char *)(a))
+#define __raw_readw(a) (*(volatile unsigned short *)(a))
+#define __raw_readl(a) (*(volatile unsigned int *)(a))
+
#define readb(addr)\
({unsigned char val;\
asm volatile( "ldbio %0, 0(%1)" :"=r"(val) : "r" (addr)); val;})