[POWERPC] add of_iomap function
The of_iomap function maps memory for a given device_node and returns a pointer to that memory. This is used at some places, so it makes sense to a seperate function. Signed-off-by: Christian Krafft <krafft@de.ibm.com> Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
This commit is contained in:
parent
4a065f9418
commit
6bf05fd776
@ -33,7 +33,7 @@
|
|||||||
#include <asm/of_platform.h>
|
#include <asm/of_platform.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/pmi.h>
|
#include <asm/pmi.h>
|
||||||
|
#include <asm/prom.h>
|
||||||
|
|
||||||
struct pmi_data {
|
struct pmi_data {
|
||||||
struct list_head handler;
|
struct list_head handler;
|
||||||
@ -49,21 +49,6 @@ struct pmi_data {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void __iomem *of_iomap(struct device_node *np)
|
|
||||||
{
|
|
||||||
struct resource res;
|
|
||||||
|
|
||||||
if (of_address_to_resource(np, 0, &res))
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
pr_debug("Resource start: 0x%lx\n", res.start);
|
|
||||||
pr_debug("Resource end: 0x%lx\n", res.end);
|
|
||||||
|
|
||||||
return ioremap(res.start, 1 + res.end - res.start);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static int pmi_irq_handler(int irq, void *dev_id)
|
static int pmi_irq_handler(int irq, void *dev_id)
|
||||||
{
|
{
|
||||||
struct pmi_data *data;
|
struct pmi_data *data;
|
||||||
@ -154,7 +139,7 @@ static int pmi_of_probe(struct of_device *dev,
|
|||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
data->pmi_reg = of_iomap(np);
|
data->pmi_reg = of_iomap(np, 0);
|
||||||
if (!data->pmi_reg) {
|
if (!data->pmi_reg) {
|
||||||
printk(KERN_ERR "pmi: invalid register address.\n");
|
printk(KERN_ERR "pmi: invalid register address.\n");
|
||||||
rc = -EFAULT;
|
rc = -EFAULT;
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
#include <linux/platform_device.h>
|
#include <linux/platform_device.h>
|
||||||
#include <asm/irq.h>
|
#include <asm/irq.h>
|
||||||
#include <asm/atomic.h>
|
#include <asm/atomic.h>
|
||||||
|
#include <asm/io.h>
|
||||||
|
|
||||||
/* Definitions used by the flattened device tree */
|
/* Definitions used by the flattened device tree */
|
||||||
#define OF_DT_HEADER 0xd00dfeed /* marker */
|
#define OF_DT_HEADER 0xd00dfeed /* marker */
|
||||||
@ -355,6 +356,16 @@ static inline int of_irq_to_resource(struct device_node *dev, int index, struct
|
|||||||
return irq;
|
return irq;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline void __iomem *of_iomap(struct device_node *np, int index)
|
||||||
|
{
|
||||||
|
struct resource res;
|
||||||
|
|
||||||
|
if (of_address_to_resource(np, index, &res))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
return ioremap(res.start, 1 + res.end - res.start);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#endif /* __KERNEL__ */
|
#endif /* __KERNEL__ */
|
||||||
#endif /* _POWERPC_PROM_H */
|
#endif /* _POWERPC_PROM_H */
|
||||||
|
Loading…
Reference in New Issue
Block a user