| 1 |
|
| 2 | |
| 3 | * Copyright (C) 2007-2009 Michal Simek <[email protected]>
|
| 4 | * Copyright (C) 2007-2009 PetaLogix
|
| 5 | * Copyright (C) 2006 Atmark Techno, Inc.
|
| 6 |
|
| 7 |
|
| 8 | #ifndef _ASM_MICROBLAZE_IO_H
|
| 9 | #define _ASM_MICROBLAZE_IO_H
|
| 10 |
|
| 11 | #include <asm/byteorder.h>
|
| 12 | #include <asm/page.h>
|
| 13 | #include <linux/types.h>
|
| 14 | #include <linux/mm.h>
|
| 15 |
|
| 16 | #ifndef CONFIG_PCI
|
| 17 | #define _IO_BASE 0
|
| 18 | #define _ISA_MEM_BASE 0
|
| 19 | #else
|
| 20 | #define _IO_BASE isa_io_base
|
| 21 | #define _ISA_MEM_BASE isa_mem_base
|
| 22 | struct pci_dev;
|
| 23 | extern void pci_iounmap(struct pci_dev *dev, void __iomem *);
|
| 24 | #define pci_iounmap pci_iounmap
|
| 25 |
|
| 26 | extern unsigned long isa_io_base;
|
| 27 | extern resource_size_t isa_mem_base;
|
| 28 | #endif
|
| 29 |
|
| 30 | #define PCI_IOBASE ((void __iomem *)_IO_BASE)
|
| 31 | #define IO_SPACE_LIMIT (0xFFFFFFFF)
|
| 32 |
|
| 33 | extern void iounmap(volatile void __iomem *addr);
|
| 34 |
|
| 35 | extern void __iomem *ioremap(phys_addr_t address, unsigned long size);
|
| 36 |
|
| 37 |
|
| 38 | #define out_be32(a, v) __raw_writel((v), (void __iomem __force *)(a))
|
| 39 | #define out_be16(a, v) __raw_writew((v), (a))
|
| 40 |
|
| 41 | #define in_be32(a) __raw_readl((const void __iomem __force *)(a))
|
| 42 | #define in_be16(a) __raw_readw(a)
|
| 43 |
|
| 44 | #define writel_be(v, a) out_be32((__force unsigned *)a, v)
|
| 45 | #define readl_be(a) in_be32((__force unsigned *)a)
|
| 46 |
|
| 47 |
|
| 48 | #define out_le32(a, v) __raw_writel(__cpu_to_le32(v), (a))
|
| 49 | #define out_le16(a, v) __raw_writew(__cpu_to_le16(v), (a))
|
| 50 |
|
| 51 | #define in_le32(a) __le32_to_cpu(__raw_readl(a))
|
| 52 | #define in_le16(a) __le16_to_cpu(__raw_readw(a))
|
| 53 |
|
| 54 |
|
| 55 | #define out_8(a, v) __raw_writeb((v), (a))
|
| 56 | #define in_8(a) __raw_readb(a)
|
| 57 |
|
| 58 | #include <asm-generic/io.h>
|
| 59 |
|
| 60 | #endif
|