armv7: add reset timeout to identify_nand_chip
[oweals/u-boot.git] / arch / arm / include / asm / io.h
index 214f3ea51f4ef88443bc5f965e114b278c3bfbd5..6121f1ddcac49febcd6ccf2a8d834aec00c6a148 100644 (file)
@@ -46,7 +46,7 @@ static inline void sync(void)
 static inline void *
 map_physmem(phys_addr_t paddr, unsigned long len, unsigned long flags)
 {
-       return (void *)paddr;
+       return (void *)((unsigned long)paddr);
 }
 
 /*
@@ -59,7 +59,7 @@ 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);
+       return (phys_addr_t)((unsigned long)vaddr);
 }
 
 /*
@@ -77,7 +77,7 @@ static inline phys_addr_t virt_to_phys(void * vaddr)
 #define __arch_putl(v,a)               (*(volatile unsigned int *)(a) = (v))
 #define __arch_putq(v,a)               (*(volatile unsigned long long *)(a) = (v))
 
-extern inline void __raw_writesb(unsigned long addr, const void *data,
+static inline void __raw_writesb(unsigned long addr, const void *data,
                                 int bytelen)
 {
        uint8_t *buf = (uint8_t *)data;
@@ -85,7 +85,7 @@ extern inline void __raw_writesb(unsigned long addr, const void *data,
                __arch_putb(*buf++, addr);
 }
 
-extern inline void __raw_writesw(unsigned long addr, const void *data,
+static inline void __raw_writesw(unsigned long addr, const void *data,
                                 int wordlen)
 {
        uint16_t *buf = (uint16_t *)data;
@@ -93,7 +93,7 @@ extern inline void __raw_writesw(unsigned long addr, const void *data,
                __arch_putw(*buf++, addr);
 }
 
-extern inline void __raw_writesl(unsigned long addr, const void *data,
+static inline void __raw_writesl(unsigned long addr, const void *data,
                                 int longlen)
 {
        uint32_t *buf = (uint32_t *)data;
@@ -101,21 +101,21 @@ extern inline void __raw_writesl(unsigned long addr, const void *data,
                __arch_putl(*buf++, addr);
 }
 
-extern inline void __raw_readsb(unsigned long addr, void *data, int bytelen)
+static inline void __raw_readsb(unsigned long addr, void *data, int bytelen)
 {
        uint8_t *buf = (uint8_t *)data;
        while(bytelen--)
                *buf++ = __arch_getb(addr);
 }
 
-extern inline void __raw_readsw(unsigned long addr, void *data, int wordlen)
+static inline void __raw_readsw(unsigned long addr, void *data, int wordlen)
 {
        uint16_t *buf = (uint16_t *)data;
        while(wordlen--)
                *buf++ = __arch_getw(addr);
 }
 
-extern inline void __raw_readsl(unsigned long addr, void *data, int longlen)
+static inline void __raw_readsl(unsigned long addr, void *data, int longlen)
 {
        uint32_t *buf = (uint32_t *)data;
        while(longlen--)
@@ -136,6 +136,7 @@ extern inline void __raw_readsl(unsigned long addr, void *data, int longlen)
  * TODO: The kernel offers some more advanced versions of barriers, it might
  * have some advantages to use them instead of the simple one here.
  */
+#define mb()           asm volatile("dsb sy" : : : "memory")
 #define dmb()          __asm__ __volatile__ ("" : : : "memory")
 #define __iormb()      dmb()
 #define __iowmb()      dmb()
@@ -283,39 +284,12 @@ extern inline void __raw_readsl(unsigned long addr, void *data, int longlen)
 #define insw_p(port,to,len)            insw(port,to,len)
 #define insl_p(port,to,len)            insl(port,to,len)
 
-/*
- * ioremap and friends.
- *
- * ioremap takes a PCI memory address, as specified in
- * linux/Documentation/IO-mapping.txt.  If you want a
- * physical address, use __ioremap instead.
- */
-extern void * __ioremap(unsigned long offset, size_t size, unsigned long flags);
-extern void __iounmap(void *addr);
-
-/*
- * Generic ioremap support.
- *
- * Define:
- *  iomem_valid_addr(off,size)
- *  iomem_to_phys(off)
- */
-#ifdef iomem_valid_addr
-#define __arch_ioremap(off,sz,nocache)                                 \
- ({                                                                    \
-       unsigned long _off = (off), _size = (sz);                       \
-       void *_ret = (void *)0;                                         \
-       if (iomem_valid_addr(_off, _size))                              \
-               _ret = __ioremap(iomem_to_phys(_off),_size,nocache);    \
-       _ret;                                                           \
- })
-
-#define __arch_iounmap __iounmap
-#endif
-
-#define ioremap(off,sz)                        __arch_ioremap((off),(sz),0)
-#define ioremap_nocache(off,sz)                __arch_ioremap((off),(sz),1)
-#define iounmap(_addr)                 __arch_iounmap(_addr)
+#define writesl(a, d, s)       __raw_writesl((unsigned long)a, d, s)
+#define readsl(a, d, s)                __raw_readsl((unsigned long)a, d, s)
+#define writesw(a, d, s)       __raw_writesw((unsigned long)a, d, s)
+#define readsw(a, d, s)                __raw_readsw((unsigned long)a, d, s)
+#define writesb(a, d, s)       __raw_writesb((unsigned long)a, d, s)
+#define readsb(a, d, s)                __raw_readsb((unsigned long)a, d, s)
 
 /*
  * DMA-consistent mapping functions.  These allocate/free a region of
@@ -375,7 +349,12 @@ out:
        return retval;
 }
 
-#elif !defined(readb)
+#else
+#define memset_io(a, b, c)             memset((void *)(a), (b), (c))
+#define memcpy_fromio(a, b, c)         memcpy((a), (void *)(b), (c))
+#define memcpy_toio(a, b, c)           memcpy((void *)(a), (b), (c))
+
+#if !defined(readb)
 
 #define readb(addr)                    (__readwrite_bug("readb"),0)
 #define readw(addr)                    (__readwrite_bug("readw"),0)
@@ -388,6 +367,7 @@ out:
 
 #define check_signature(io,sig,len)    (0)
 
+#endif
 #endif /* __mem_pci */
 
 /*