|
|
|
@ -248,4 +248,94 @@ static inline void __iomem *__ioremap(phys_addr_t address, unsigned long size, |
|
|
|
|
#define ioport_map(port, nr) ((void __iomem *)(port)) |
|
|
|
|
#define ioport_unmap(addr) |
|
|
|
|
|
|
|
|
|
/* from asm-generic/io.h */ |
|
|
|
|
#ifndef insb |
|
|
|
|
static inline void insb(unsigned long addr, void *buffer, int count) |
|
|
|
|
{ |
|
|
|
|
if (count) { |
|
|
|
|
u8 *buf = buffer; |
|
|
|
|
do { |
|
|
|
|
u8 x = inb(addr); |
|
|
|
|
*buf++ = x; |
|
|
|
|
} while (--count); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
#ifndef insw |
|
|
|
|
static inline void insw(unsigned long addr, void *buffer, int count) |
|
|
|
|
{ |
|
|
|
|
if (count) { |
|
|
|
|
u16 *buf = buffer; |
|
|
|
|
do { |
|
|
|
|
u16 x = inw(addr); |
|
|
|
|
*buf++ = x; |
|
|
|
|
} while (--count); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
#ifndef insl |
|
|
|
|
static inline void insl(unsigned long addr, void *buffer, int count) |
|
|
|
|
{ |
|
|
|
|
if (count) { |
|
|
|
|
u32 *buf = buffer; |
|
|
|
|
do { |
|
|
|
|
u32 x = inl(addr); |
|
|
|
|
*buf++ = x; |
|
|
|
|
} while (--count); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
#ifndef outsb |
|
|
|
|
static inline void outsb(unsigned long addr, const void *buffer, int count) |
|
|
|
|
{ |
|
|
|
|
if (count) { |
|
|
|
|
const u8 *buf = buffer; |
|
|
|
|
do { |
|
|
|
|
outb(*buf++, addr); |
|
|
|
|
} while (--count); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
#ifndef outsw |
|
|
|
|
static inline void outsw(unsigned long addr, const void *buffer, int count) |
|
|
|
|
{ |
|
|
|
|
if (count) { |
|
|
|
|
const u16 *buf = buffer; |
|
|
|
|
do { |
|
|
|
|
outw(*buf++, addr); |
|
|
|
|
} while (--count); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
#ifndef outsl |
|
|
|
|
static inline void outsl(unsigned long addr, const void *buffer, int count) |
|
|
|
|
{ |
|
|
|
|
if (count) { |
|
|
|
|
const u32 *buf = buffer; |
|
|
|
|
do { |
|
|
|
|
outl(*buf++, addr); |
|
|
|
|
} while (--count); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
#define ioread8_rep(p, dst, count) \ |
|
|
|
|
insb((unsigned long) (p), (dst), (count)) |
|
|
|
|
#define ioread16_rep(p, dst, count) \ |
|
|
|
|
insw((unsigned long) (p), (dst), (count)) |
|
|
|
|
#define ioread32_rep(p, dst, count) \ |
|
|
|
|
insl((unsigned long) (p), (dst), (count)) |
|
|
|
|
|
|
|
|
|
#define iowrite8_rep(p, src, count) \ |
|
|
|
|
outsb((unsigned long) (p), (src), (count)) |
|
|
|
|
#define iowrite16_rep(p, src, count) \ |
|
|
|
|
outsw((unsigned long) (p), (src), (count)) |
|
|
|
|
#define iowrite32_rep(p, src, count) \ |
|
|
|
|
outsl((unsigned long) (p), (src), (count)) |
|
|
|
|
|
|
|
|
|
#endif /* _ASM_MICROBLAZE_IO_H */ |
|
|
|
|