nds32: enhance io.h for compatibility with periphals
authorMacpaul Lin <macpaul@andestech.com>
Fri, 23 Sep 2011 10:00:13 +0000 (18:00 +0800)
committerMacpaul Lin <macpaul@andestech.com>
Fri, 18 Nov 2011 09:26:26 +0000 (17:26 +0800)
Enhance io.h for periphals origin design on x86 systems.
For example, pci, ide, etc.

Signed-off-by: Macpaul Lin <macpaul@andestech.com>
arch/nds32/include/asm/io.h

index 2c105f7fabcfe0e63b3ce0eb5f05954c4e0e9cb5..39c3dc8d92e064f34c5dbc979b36df28f3ca0a52 100644 (file)
@@ -165,6 +165,24 @@ static inline unsigned int readl(unsigned int *addr)
 #define __raw_base_readw(base, off)    __arch_base_getw(base, off)
 #define __raw_base_readl(base, off)    __arch_base_getl(base, off)
 
+#define out_arch(type, endian, a, v)   __raw_write##type(cpu_to_##endian(v), a)
+#define in_arch(type, endian, a)       endian##_to_cpu(__raw_read##type(a))
+
+#define out_le32(a, v)                 out_arch(l, le32, a, v)
+#define out_le16(a, v)                 out_arch(w, le16, a, v)
+
+#define in_le32(a)                     in_arch(l, le32, a)
+#define in_le16(a)                     in_arch(w, le16, a)
+
+#define out_be32(a, v)                 out_arch(l, be32, a, v)
+#define out_be16(a, v)                 out_arch(w, be16, a, v)
+
+#define in_be32(a)                     in_arch(l, be32, a)
+#define in_be16(a)                     in_arch(w, be16, a)
+
+#define out_8(a, v)                    __raw_writeb(v, a)
+#define in_8(a)                                __raw_readb(a)
+
 /*
  * Now, pick up the machine-defined IO definitions
  * #include <asm/arch/io.h>