blob: bdfc20d8ff84357825d644eb8bd954109cbb7c00 [file] [log] [blame]
Grant Likely6b884a82010-06-08 07:48:09 -06001#ifndef __OF_ADDRESS_H
2#define __OF_ADDRESS_H
3#include <linux/ioport.h>
4#include <linux/of.h>
5
Sebastian Andrzej Siewior0131d892010-12-01 10:54:46 +01006extern u64 of_translate_address(struct device_node *np, const __be32 *addr);
Grant Likely1f5bef32010-06-08 07:48:09 -06007extern int of_address_to_resource(struct device_node *dev, int index,
8 struct resource *r);
Grant Likely90e33f62011-07-05 23:42:28 -06009extern struct device_node *of_find_matching_node_by_address(
10 struct device_node *from,
11 const struct of_device_id *matches,
12 u64 base_address);
Grant Likely6b884a82010-06-08 07:48:09 -060013extern void __iomem *of_iomap(struct device_node *device, int index);
14
Grant Likely22ae7822010-07-29 11:49:01 -060015/* Extract an address from a device, returns the region size and
16 * the address space flags too. The PCI version uses a BAR number
17 * instead of an absolute index
18 */
19extern const u32 *of_get_address(struct device_node *dev, int index,
20 u64 *size, unsigned int *flags);
21
22#ifndef pci_address_to_pio
23static inline unsigned long pci_address_to_pio(phys_addr_t addr) { return -1; }
24#define pci_address_to_pio pci_address_to_pio
25#endif
26
27#ifdef CONFIG_PCI
Sebastian Andrzej Siewior0131d892010-12-01 10:54:46 +010028extern const __be32 *of_get_pci_address(struct device_node *dev, int bar_no,
Grant Likely22ae7822010-07-29 11:49:01 -060029 u64 *size, unsigned int *flags);
30extern int of_pci_address_to_resource(struct device_node *dev, int bar,
31 struct resource *r);
32#else /* CONFIG_PCI */
33static inline int of_pci_address_to_resource(struct device_node *dev, int bar,
34 struct resource *r)
35{
36 return -ENOSYS;
37}
38
Sebastian Andrzej Siewior0131d892010-12-01 10:54:46 +010039static inline const __be32 *of_get_pci_address(struct device_node *dev,
Grant Likely22ae7822010-07-29 11:49:01 -060040 int bar_no, u64 *size, unsigned int *flags)
41{
42 return NULL;
43}
44#endif /* CONFIG_PCI */
45
46
Grant Likely6b884a82010-06-08 07:48:09 -060047#endif /* __OF_ADDRESS_H */
48