]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - include/asm-m68k/io.h
Merge branch 'asm-generic' of git://git.denx.de/u-boot-microblaze
[karo-tx-uboot.git] / include / asm-m68k / io.h
index 8dea02abab532d880af3ce9e07308cd4c738f4fd..50ea08751f1453ebd256ed1783393b45fc697e2f 100644 (file)
 
 #include <asm/byteorder.h>
 
-#define readb(addr) in_8((volatile u8 *)(addr))
-#define writeb(b,addr) out_8((volatile u8 *)(addr), (b))
+#define __raw_readb(addr) (*(volatile u8 *)(addr))
+#define __raw_readw(addr) (*(volatile u16 *)(addr))
+#define __raw_readl(addr) (*(volatile u32 *)(addr))
+
+#define __raw_writeb(b,addr) ((*(volatile u8 *) (addr)) = (b))
+#define __raw_writew(w,addr) ((*(volatile u16 *) (addr)) = (w))
+#define __raw_writel(l,addr) ((*(volatile u32 *) (addr)) = (l))
+
+#define readb(addr)            in_8((volatile u8 *)(addr))
+#define writeb(b,addr)         out_8((volatile u8 *)(addr), (b))
 #if !defined(__BIG_ENDIAN)
-#define readw(addr) (*(volatile u16 *) (addr))
-#define readl(addr) (*(volatile u32 *) (addr))
-#define writew(b,addr) ((*(volatile u16 *) (addr)) = (b))
-#define writel(b,addr) ((*(volatile u32 *) (addr)) = (b))
+#define readw(addr)            (*(volatile u16 *) (addr))
+#define readl(addr)            (*(volatile u32 *) (addr))
+#define writew(b,addr)         ((*(volatile u16 *) (addr)) = (b))
+#define writel(b,addr)         ((*(volatile u32 *) (addr)) = (b))
 #else
-#define readw(addr) in_le16((volatile u16 *)(addr))
-#define readl(addr) in_le32((volatile u32 *)(addr))
-#define writew(b,addr) out_le16((volatile u16 *)(addr),(b))
-#define writel(b,addr) out_le32((volatile u32 *)(addr),(b))
+#define readw(addr)            in_le16((volatile u16 *)(addr))
+#define readl(addr)            in_le32((volatile u32 *)(addr))
+#define writew(b,addr)         out_le16((volatile u16 *)(addr),(b))
+#define writel(b,addr)         out_le32((volatile u32 *)(addr),(b))
 #endif
 
 /*
  * are arrays of bytes, and byte-swapping is not appropriate in
  * that case.  - paulus
  */
-#define insb(port, buf, ns) _insb((u8 *)((port)+_IO_BASE), (buf), (ns))
-#define outsb(port, buf, ns)    _outsb((u8 *)((port)+_IO_BASE), (buf), (ns))
-#define insw(port, buf, ns) _insw_ns((u16 *)((port)+_IO_BASE), (buf), (ns))
-#define outsw(port, buf, ns)    _outsw_ns((u16 *)((port)+_IO_BASE), (buf), (ns))
-#define insl(port, buf, nl) _insl_ns((u32 *)((port)+_IO_BASE), (buf), (nl))
-#define outsl(port, buf, nl)    _outsl_ns((u32 *)((port)+_IO_BASE), (buf), (nl))
-
-#define inb(port)       in_8((u8 *)((port)+_IO_BASE))
-#define outb(val, port)     out_8((u8 *)((port)+_IO_BASE), (val))
+#define insb(port, buf, ns)    _insb((u8 *)((port)+_IO_BASE), (buf), (ns))
+#define outsb(port, buf, ns)   _outsb((u8 *)((port)+_IO_BASE), (buf), (ns))
+#define insw(port, buf, ns)    _insw_ns((u16 *)((port)+_IO_BASE), (buf), (ns))
+#define outsw(port, buf, ns)   _outsw_ns((u16 *)((port)+_IO_BASE), (buf), (ns))
+#define insl(port, buf, nl)    _insl_ns((u32 *)((port)+_IO_BASE), (buf), (nl))
+#define outsl(port, buf, nl)   _outsl_ns((u32 *)((port)+_IO_BASE), (buf), (nl))
+
+#define inb(port)              in_8((u8 *)((port)+_IO_BASE))
+#define outb(val, port)                out_8((u8 *)((port)+_IO_BASE), (val))
 #if !defined(__BIG_ENDIAN)
-#define inw(port)       in_be16((u16 *)((port)+_IO_BASE))
-#define outw(val, port)     out_be16((u16 *)((port)+_IO_BASE), (val))
-#define inl(port)       in_be32((u32 *)((port)+_IO_BASE))
-#define outl(val, port)     out_be32((u32 *)((port)+_IO_BASE), (val))
+#define inw(port)              in_be16((u16 *)((port)+_IO_BASE))
+#define outw(val, port)                out_be16((u16 *)((port)+_IO_BASE), (val))
+#define inl(port)              in_be32((u32 *)((port)+_IO_BASE))
+#define outl(val, port)                out_be32((u32 *)((port)+_IO_BASE), (val))
 #else
-#define inw(port)       in_le16((u16 *)((port)+_IO_BASE))
-#define outw(val, port)     out_le16((u16 *)((port)+_IO_BASE), (val))
-#define inl(port)       in_le32((u32 *)((port)+_IO_BASE))
-#define outl(val, port)     out_le32((u32 *)((port)+_IO_BASE), (val))
+#define inw(port)              in_le16((u16 *)((port)+_IO_BASE))
+#define outw(val, port)                out_le16((u16 *)((port)+_IO_BASE), (val))
+#define inl(port)              in_le32((u32 *)((port)+_IO_BASE))
+#define outl(val, port)                out_le32((u32 *)((port)+_IO_BASE), (val))
 #endif
 
 extern inline void _insb(volatile u8 * port, void *buf, int ns)
@@ -151,10 +159,10 @@ extern inline void _outsl_ns(volatile u32 * port, const void *buf, int nl)
  * Neither do the standard versions now, these are just here
  * for older code.
  */
-#define insw_ns(port, buf, ns)  _insw_ns((u16 *)((port)+_IO_BASE), (buf), (ns))
-#define outsw_ns(port, buf, ns) _outsw_ns((u16 *)((port)+_IO_BASE), (buf), (ns))
-#define insl_ns(port, buf, nl)  _insl_ns((u32 *)((port)+_IO_BASE), (buf), (nl))
-#define outsl_ns(port, buf, nl) _outsl_ns((u32 *)((port)+_IO_BASE), (buf), (nl))
+#define insw_ns(port, buf, ns) _insw_ns((u16 *)((port)+_IO_BASE), (buf), (ns))
+#define outsw_ns(port, buf, ns)        _outsw_ns((u16 *)((port)+_IO_BASE), (buf), (ns))
+#define insl_ns(port, buf, nl) _insl_ns((u32 *)((port)+_IO_BASE), (buf), (nl))
+#define outsl_ns(port, buf, nl)        _outsl_ns((u32 *)((port)+_IO_BASE), (buf), (nl))
 
 #define IO_SPACE_LIMIT ~0
 
@@ -211,4 +219,41 @@ extern inline void out_be32(volatile unsigned *addr, int val)
        *addr = val;
 }
 
+static inline void sync(void)
+{
+       /* This sync function is for PowerPC or other architecture instruction
+        * ColdFire does not have this instruction. Dummy function, added for
+        * compatibility (CFI driver)
+        */
+}
+
+/*
+ * Given a physical address and a length, return a virtual address
+ * that can be used to access the memory range with the caching
+ * properties specified by "flags".
+ */
+#define MAP_NOCACHE    (0)
+#define MAP_WRCOMBINE  (0)
+#define MAP_WRBACK     (0)
+#define MAP_WRTHROUGH  (0)
+
+static inline void *map_physmem(phys_addr_t paddr, unsigned long len,
+                               unsigned long flags)
+{
+       return (void *)paddr;
+}
+
+/*
+ * Take down a mapping set up by map_physmem().
+ */
+static inline void unmap_physmem(void *vaddr, unsigned long flags)
+{
+
+}
+
+static inline phys_addr_t virt_to_phys(void * vaddr)
+{
+       return (phys_addr_t)(vaddr);
+}
+
 #endif                         /* __ASM_M68K_IO_H__ */