]>
git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/blob - arch/powerpc/kernel/iomap.c
2 * ppc64 "iomap" interface implementation.
4 * (C) Copyright 2004 Linus Torvalds
8 #include <linux/export.h>
10 #include <asm/pci-bridge.h>
13 * Here comes the ppc64 implementation of the IOMAP
16 unsigned int ioread8(void __iomem
*addr
)
20 unsigned int ioread16(void __iomem
*addr
)
24 unsigned int ioread16be(void __iomem
*addr
)
26 return readw_be(addr
);
28 unsigned int ioread32(void __iomem
*addr
)
32 unsigned int ioread32be(void __iomem
*addr
)
34 return readl_be(addr
);
36 EXPORT_SYMBOL(ioread8
);
37 EXPORT_SYMBOL(ioread16
);
38 EXPORT_SYMBOL(ioread16be
);
39 EXPORT_SYMBOL(ioread32
);
40 EXPORT_SYMBOL(ioread32be
);
42 u64
ioread64(void __iomem
*addr
)
46 u64
ioread64be(void __iomem
*addr
)
48 return readq_be(addr
);
50 EXPORT_SYMBOL(ioread64
);
51 EXPORT_SYMBOL(ioread64be
);
52 #endif /* __powerpc64__ */
54 void iowrite8(u8 val
, void __iomem
*addr
)
58 void iowrite16(u16 val
, void __iomem
*addr
)
62 void iowrite16be(u16 val
, void __iomem
*addr
)
66 void iowrite32(u32 val
, void __iomem
*addr
)
70 void iowrite32be(u32 val
, void __iomem
*addr
)
74 EXPORT_SYMBOL(iowrite8
);
75 EXPORT_SYMBOL(iowrite16
);
76 EXPORT_SYMBOL(iowrite16be
);
77 EXPORT_SYMBOL(iowrite32
);
78 EXPORT_SYMBOL(iowrite32be
);
80 void iowrite64(u64 val
, void __iomem
*addr
)
84 void iowrite64be(u64 val
, void __iomem
*addr
)
88 EXPORT_SYMBOL(iowrite64
);
89 EXPORT_SYMBOL(iowrite64be
);
90 #endif /* __powerpc64__ */
93 * These are the "repeat read/write" functions. Note the
94 * non-CPU byte order. We do things in "IO byteorder"
97 * FIXME! We could make these do EEH handling if we really
98 * wanted. Not clear if we do.
100 void ioread8_rep(void __iomem
*addr
, void *dst
, unsigned long count
)
102 readsb(addr
, dst
, count
);
104 void ioread16_rep(void __iomem
*addr
, void *dst
, unsigned long count
)
106 readsw(addr
, dst
, count
);
108 void ioread32_rep(void __iomem
*addr
, void *dst
, unsigned long count
)
110 readsl(addr
, dst
, count
);
112 EXPORT_SYMBOL(ioread8_rep
);
113 EXPORT_SYMBOL(ioread16_rep
);
114 EXPORT_SYMBOL(ioread32_rep
);
116 void iowrite8_rep(void __iomem
*addr
, const void *src
, unsigned long count
)
118 writesb(addr
, src
, count
);
120 void iowrite16_rep(void __iomem
*addr
, const void *src
, unsigned long count
)
122 writesw(addr
, src
, count
);
124 void iowrite32_rep(void __iomem
*addr
, const void *src
, unsigned long count
)
126 writesl(addr
, src
, count
);
128 EXPORT_SYMBOL(iowrite8_rep
);
129 EXPORT_SYMBOL(iowrite16_rep
);
130 EXPORT_SYMBOL(iowrite32_rep
);
132 void __iomem
*ioport_map(unsigned long port
, unsigned int len
)
134 return (void __iomem
*) (port
+ _IO_BASE
);
137 void ioport_unmap(void __iomem
*addr
)
141 EXPORT_SYMBOL(ioport_map
);
142 EXPORT_SYMBOL(ioport_unmap
);
145 void pci_iounmap(struct pci_dev
*dev
, void __iomem
*addr
)
147 if (isa_vaddr_is_ioport(addr
))
149 if (pcibios_vaddr_is_ioport(addr
))
154 EXPORT_SYMBOL(pci_iounmap
);
155 #endif /* CONFIG_PCI */