Commit | Line | Data |
---|---|---|
2c572c28 | 1 | /* |
dc95be1f MS |
2 | * Copyright (C) 2007-2009 Michal Simek <monstr@monstr.eu> |
3 | * Copyright (C) 2007-2009 PetaLogix | |
2c572c28 MS |
4 | * Copyright (C) 2006 Atmark Techno, Inc. |
5 | * | |
6 | * This file is subject to the terms and conditions of the GNU General Public | |
7 | * License. See the file "COPYING" in the main directory of this archive | |
8 | * for more details. | |
9 | */ | |
10 | ||
11 | #ifndef _ASM_MICROBLAZE_IO_H | |
12 | #define _ASM_MICROBLAZE_IO_H | |
13 | ||
14 | #include <asm/byteorder.h> | |
15 | #include <asm/page.h> | |
16 | #include <linux/types.h> | |
dc95be1f MS |
17 | #include <linux/mm.h> /* Get struct page {...} */ |
18 | ||
a6475c13 MS |
19 | #ifndef CONFIG_PCI |
20 | #define _IO_BASE 0 | |
21 | #define _ISA_MEM_BASE 0 | |
a6475c13 MS |
22 | #else |
23 | #define _IO_BASE isa_io_base | |
24 | #define _ISA_MEM_BASE isa_mem_base | |
a66a6265 MS |
25 | struct pci_dev; |
26 | extern void pci_iounmap(struct pci_dev *dev, void __iomem *); | |
27 | #define pci_iounmap pci_iounmap | |
a6475c13 MS |
28 | |
29 | extern unsigned long isa_io_base; | |
a6475c13 | 30 | extern resource_size_t isa_mem_base; |
a66a6265 | 31 | #endif |
2c572c28 | 32 | |
a66a6265 | 33 | #define PCI_IOBASE ((void __iomem *)_IO_BASE) |
2c572c28 MS |
34 | #define IO_SPACE_LIMIT (0xFFFFFFFF) |
35 | ||
dc95be1f | 36 | #ifdef CONFIG_MMU |
dc95be1f | 37 | #define page_to_bus(page) (page_to_phys(page)) |
dc95be1f | 38 | |
6bd55f0b | 39 | extern void iounmap(void __iomem *addr); |
2c572c28 | 40 | |
a66a6265 | 41 | extern void __iomem *ioremap(phys_addr_t address, unsigned long size); |
a66a6265 MS |
42 | #define ioremap_nocache(addr, size) ioremap((addr), (size)) |
43 | #define ioremap_fullcache(addr, size) ioremap((addr), (size)) | |
44 | #define ioremap_wc(addr, size) ioremap((addr), (size)) | |
556269c1 | 45 | #define ioremap_wt(addr, size) ioremap((addr), (size)) |
2c572c28 | 46 | |
dc95be1f MS |
47 | #endif /* CONFIG_MMU */ |
48 | ||
a66a6265 | 49 | /* Big Endian */ |
2c572c28 MS |
50 | #define out_be32(a, v) __raw_writel((v), (void __iomem __force *)(a)) |
51 | #define out_be16(a, v) __raw_writew((v), (a)) | |
52 | ||
53 | #define in_be32(a) __raw_readl((const void __iomem __force *)(a)) | |
54 | #define in_be16(a) __raw_readw(a) | |
55 | ||
afc26cb3 JZ |
56 | #define writel_be(v, a) out_be32((__force unsigned *)a, v) |
57 | #define readl_be(a) in_be32((__force unsigned *)a) | |
58 | ||
a66a6265 | 59 | /* Little endian */ |
83b4d17d | 60 | #define out_le32(a, v) __raw_writel(__cpu_to_le32(v), (a)) |
2c572c28 MS |
61 | #define out_le16(a, v) __raw_writew(__cpu_to_le16(v), (a)) |
62 | ||
63 | #define in_le32(a) __le32_to_cpu(__raw_readl(a)) | |
64 | #define in_le16(a) __le16_to_cpu(__raw_readw(a)) | |
65 | ||
66 | /* Byte ops */ | |
67 | #define out_8(a, v) __raw_writeb((v), (a)) | |
68 | #define in_8(a) __raw_readb(a) | |
69 | ||
a66a6265 | 70 | #include <asm-generic/io.h> |
9998517a | 71 | |
2c572c28 | 72 | #endif /* _ASM_MICROBLAZE_IO_H */ |