1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- /*
- * linux/include/asm-arm/arch-shark/io.h
- *
- * by Alexander Schulz
- *
- * derived from:
- * linux/include/asm-arm/arch-ebsa110/io.h
- * Copyright (C) 1997,1998 Russell King
- */
- #ifndef __ASM_ARM_ARCH_IO_H
- #define __ASM_ARM_ARCH_IO_H
- #include <asm/hardware.h>
- #define IO_SPACE_LIMIT 0xffffffff
- /*
- * We use two different types of addressing - PC style addresses, and ARM
- * addresses. PC style accesses the PC hardware with the normal PC IO
- * addresses, eg 0x3f8 for serial#1. ARM addresses are 0x80000000+
- * and are translated to the start of IO.
- */
- #define __PORT_PCIO(x) (!((x) & 0x80000000))
- #define __io(a) ((void __iomem *)(PCIO_BASE + (a)))
- static inline unsigned int __ioaddr (unsigned int port) \
- { \
- if (__PORT_PCIO(port)) \
- return (unsigned int)(PCIO_BASE + (port)); \
- else \
- return (unsigned int)(IO_BASE + (port)); \
- }
- #define __mem_pci(addr) (addr)
- /*
- * Translated address IO functions
- *
- * IO address has already been translated to a virtual address
- */
- #define outb_t(v,p) \
- (*(volatile unsigned char *)(p) = (v))
- #define inb_t(p) \
- (*(volatile unsigned char *)(p))
- #define outl_t(v,p) \
- (*(volatile unsigned long *)(p) = (v))
- #define inl_t(p) \
- (*(volatile unsigned long *)(p))
- #endif
|