X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Fasm-arm%2Farch-ebsa110%2Fio.h;h=ae048441c9edbcf13458ce6c9da6bbce36233157;hb=43bc926fffd92024b46cafaf7350d669ba9ca884;hp=a7a1d4c1871b82e97feb2d692060dca99d087604;hpb=5273a3df6485dc2ad6aa7ddd441b9a21970f003b;p=linux-2.6.git diff --git a/include/asm-arm/arch-ebsa110/io.h b/include/asm-arm/arch-ebsa110/io.h index a7a1d4c18..ae048441c 100644 --- a/include/asm-arm/arch-ebsa110/io.h +++ b/include/asm-arm/arch-ebsa110/io.h @@ -15,25 +15,43 @@ #define IO_SPACE_LIMIT 0xffff -u8 __inb(int port); -u16 __inw(int port); -u32 __inl(int port); +u8 __inb8(unsigned int port); +void __outb8(u8 val, unsigned int port); -#define inb(p) __inb(p) -#define inw(p) __inw(p) -#define inl(p) __inl(p) +u8 __inb16(unsigned int port); +void __outb16(u8 val, unsigned int port); + +u16 __inw(unsigned int port); +void __outw(u16 val, unsigned int port); + +u32 __inl(unsigned int port); +void __outl(u32 val, unsigned int port); -void __outb(u8 val, int port); -void __outw(u16 val, int port); -void __outl(u32 val, int port); +u8 __readb(void __iomem *addr); +u16 __readw(void __iomem *addr); +u32 __readl(void __iomem *addr); + +void __writeb(u8 val, void __iomem *addr); +void __writew(u16 val, void __iomem *addr); +void __writel(u32 val, void __iomem *addr); + +/* + * Argh, someone forgot the IOCS16 line. We therefore have to handle + * the byte stearing by selecting the correct byte IO functions here. + */ +#ifdef ISA_SIXTEEN_BIT_PERIPHERAL +#define inb(p) __inb16(p) +#define outb(v,p) __outb16(v,p) +#else +#define inb(p) __inb8(p) +#define outb(v,p) __outb8(v,p) +#endif -#define outb(v,p) __outb(v,p) +#define inw(p) __inw(p) #define outw(v,p) __outw(v,p) -#define outl(v,p) __outl(v,p) -u8 __readb(void *addr); -u16 __readw(void *addr); -u32 __readl(void *addr); +#define inl(p) __inl(p) +#define outl(v,p) __outl(v,p) #define readb(b) __readb(b) #define readw(b) __readw(b) @@ -42,15 +60,19 @@ u32 __readl(void *addr); #define readw_relaxed(addr) readw(addr) #define readl_relaxed(addr) readl(addr) -void __writeb(u8 val, void *addr); -void __writew(u16 val, void *addr); -void __writel(u32 val, void *addr); - #define writeb(v,b) __writeb(v,b) #define writew(v,b) __writew(v,b) #define writel(v,b) __writel(v,b) -#define __arch_ioremap(cookie,sz,c) ((void *)(cookie)) +#define __arch_ioremap(cookie,sz,c) ((void __iomem *)(cookie)) #define __arch_iounmap(cookie) do { } while (0) +extern void insb(unsigned int port, void *buf, int sz); +extern void insw(unsigned int port, void *buf, int sz); +extern void insl(unsigned int port, void *buf, int sz); + +extern void outsb(unsigned int port, const void *buf, int sz); +extern void outsw(unsigned int port, const void *buf, int sz); +extern void outsl(unsigned int port, const void *buf, int sz); + #endif