diff options
Diffstat (limited to 'include/linux/of_address.h')
| -rw-r--r-- | include/linux/of_address.h | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/include/linux/of_address.h b/include/linux/of_address.h index fb7b7221e063..d88e81be6368 100644 --- a/include/linux/of_address.h +++ b/include/linux/of_address.h | |||
| @@ -23,17 +23,6 @@ struct of_pci_range { | |||
| 23 | #define for_each_of_pci_range(parser, range) \ | 23 | #define for_each_of_pci_range(parser, range) \ |
| 24 | for (; of_pci_range_parser_one(parser, range);) | 24 | for (; of_pci_range_parser_one(parser, range);) |
| 25 | 25 | ||
| 26 | static inline void of_pci_range_to_resource(struct of_pci_range *range, | ||
| 27 | struct device_node *np, | ||
| 28 | struct resource *res) | ||
| 29 | { | ||
| 30 | res->flags = range->flags; | ||
| 31 | res->start = range->cpu_addr; | ||
| 32 | res->end = range->cpu_addr + range->size - 1; | ||
| 33 | res->parent = res->child = res->sibling = NULL; | ||
| 34 | res->name = np->full_name; | ||
| 35 | } | ||
| 36 | |||
| 37 | /* Translate a DMA address from device space to CPU space */ | 26 | /* Translate a DMA address from device space to CPU space */ |
| 38 | extern u64 of_translate_dma_address(struct device_node *dev, | 27 | extern u64 of_translate_dma_address(struct device_node *dev, |
| 39 | const __be32 *in_addr); | 28 | const __be32 *in_addr); |
| @@ -55,7 +44,9 @@ extern void __iomem *of_iomap(struct device_node *device, int index); | |||
| 55 | extern const __be32 *of_get_address(struct device_node *dev, int index, | 44 | extern const __be32 *of_get_address(struct device_node *dev, int index, |
| 56 | u64 *size, unsigned int *flags); | 45 | u64 *size, unsigned int *flags); |
| 57 | 46 | ||
| 47 | extern int pci_register_io_range(phys_addr_t addr, resource_size_t size); | ||
| 58 | extern unsigned long pci_address_to_pio(phys_addr_t addr); | 48 | extern unsigned long pci_address_to_pio(phys_addr_t addr); |
| 49 | extern phys_addr_t pci_pio_to_address(unsigned long pio); | ||
| 59 | 50 | ||
| 60 | extern int of_pci_range_parser_init(struct of_pci_range_parser *parser, | 51 | extern int of_pci_range_parser_init(struct of_pci_range_parser *parser, |
| 61 | struct device_node *node); | 52 | struct device_node *node); |
| @@ -80,6 +71,11 @@ static inline const __be32 *of_get_address(struct device_node *dev, int index, | |||
| 80 | return NULL; | 71 | return NULL; |
| 81 | } | 72 | } |
| 82 | 73 | ||
| 74 | static inline phys_addr_t pci_pio_to_address(unsigned long pio) | ||
| 75 | { | ||
| 76 | return 0; | ||
| 77 | } | ||
| 78 | |||
| 83 | static inline int of_pci_range_parser_init(struct of_pci_range_parser *parser, | 79 | static inline int of_pci_range_parser_init(struct of_pci_range_parser *parser, |
| 84 | struct device_node *node) | 80 | struct device_node *node) |
| 85 | { | 81 | { |
| @@ -110,7 +106,7 @@ extern int of_address_to_resource(struct device_node *dev, int index, | |||
| 110 | struct resource *r); | 106 | struct resource *r); |
| 111 | void __iomem *of_iomap(struct device_node *node, int index); | 107 | void __iomem *of_iomap(struct device_node *node, int index); |
| 112 | void __iomem *of_io_request_and_map(struct device_node *device, | 108 | void __iomem *of_io_request_and_map(struct device_node *device, |
| 113 | int index, char *name); | 109 | int index, const char *name); |
| 114 | #else | 110 | #else |
| 115 | 111 | ||
| 116 | #include <linux/io.h> | 112 | #include <linux/io.h> |
| @@ -127,7 +123,7 @@ static inline void __iomem *of_iomap(struct device_node *device, int index) | |||
| 127 | } | 123 | } |
| 128 | 124 | ||
| 129 | static inline void __iomem *of_io_request_and_map(struct device_node *device, | 125 | static inline void __iomem *of_io_request_and_map(struct device_node *device, |
| 130 | int index, char *name) | 126 | int index, const char *name) |
| 131 | { | 127 | { |
| 132 | return IOMEM_ERR_PTR(-EINVAL); | 128 | return IOMEM_ERR_PTR(-EINVAL); |
| 133 | } | 129 | } |
| @@ -138,6 +134,9 @@ extern const __be32 *of_get_pci_address(struct device_node *dev, int bar_no, | |||
| 138 | u64 *size, unsigned int *flags); | 134 | u64 *size, unsigned int *flags); |
| 139 | extern int of_pci_address_to_resource(struct device_node *dev, int bar, | 135 | extern int of_pci_address_to_resource(struct device_node *dev, int bar, |
| 140 | struct resource *r); | 136 | struct resource *r); |
| 137 | extern int of_pci_range_to_resource(struct of_pci_range *range, | ||
| 138 | struct device_node *np, | ||
| 139 | struct resource *res); | ||
| 141 | #else /* CONFIG_OF_ADDRESS && CONFIG_PCI */ | 140 | #else /* CONFIG_OF_ADDRESS && CONFIG_PCI */ |
| 142 | static inline int of_pci_address_to_resource(struct device_node *dev, int bar, | 141 | static inline int of_pci_address_to_resource(struct device_node *dev, int bar, |
| 143 | struct resource *r) | 142 | struct resource *r) |
| @@ -150,6 +149,12 @@ static inline const __be32 *of_get_pci_address(struct device_node *dev, | |||
| 150 | { | 149 | { |
| 151 | return NULL; | 150 | return NULL; |
| 152 | } | 151 | } |
| 152 | static inline int of_pci_range_to_resource(struct of_pci_range *range, | ||
| 153 | struct device_node *np, | ||
| 154 | struct resource *res) | ||
| 155 | { | ||
| 156 | return -ENOSYS; | ||
| 157 | } | ||
| 153 | #endif /* CONFIG_OF_ADDRESS && CONFIG_PCI */ | 158 | #endif /* CONFIG_OF_ADDRESS && CONFIG_PCI */ |
| 154 | 159 | ||
| 155 | #endif /* __OF_ADDRESS_H */ | 160 | #endif /* __OF_ADDRESS_H */ |
