2 * linux/arch/arm/mm/iomap.c
4 * Map IO port and PCI memory spaces so that {read,write}[bwl] can
5 * be used to access this memory.
7 #include <linux/module.h>
9 #include <linux/ioport.h>
13 void __iomem
*ioport_map(unsigned long port
, unsigned int nr
)
17 EXPORT_SYMBOL(ioport_map
);
19 void ioport_unmap(void __iomem
*addr
)
22 EXPORT_SYMBOL(ioport_unmap
);
26 void __iomem
*pci_iomap(struct pci_dev
*dev
, int bar
, unsigned long maxlen
)
28 resource_size_t start
= pci_resource_start(dev
, bar
);
29 resource_size_t len
= pci_resource_len(dev
, bar
);
30 unsigned long flags
= pci_resource_flags(dev
, bar
);
34 if (maxlen
&& len
> maxlen
)
36 if (flags
& IORESOURCE_IO
)
37 return ioport_map(start
, len
);
38 if (flags
& IORESOURCE_MEM
) {
39 if (flags
& IORESOURCE_CACHEABLE
)
40 return ioremap(start
, len
);
41 return ioremap_nocache(start
, len
);
45 EXPORT_SYMBOL(pci_iomap
);
47 void pci_iounmap(struct pci_dev
*dev
, void __iomem
*addr
)
49 if ((unsigned long)addr
>= VMALLOC_START
&&
50 (unsigned long)addr
< VMALLOC_END
)
53 EXPORT_SYMBOL(pci_iounmap
);