prom.h (559e2b7ee7a1c7753d534abcb2742a4775339293) prom.h (22ae782f86b726f9cea752c0f269ff6dcdf2f6e1)
1#include <linux/of.h> /* linux/of.h gets to determine #include ordering */
2#ifndef _POWERPC_PROM_H
3#define _POWERPC_PROM_H
4#ifdef __KERNEL__
5
6/*
7 * Definitions for talking to the Open Firmware PROM on
8 * Power Macintosh computers.
9 *
10 * Copyright (C) 1996-2005 Paul Mackerras.
11 *
12 * Updates for PPC64 by Peter Bergner & David Engebretsen, IBM Corp.
13 *
14 * This program is free software; you can redistribute it and/or
15 * modify it under the terms of the GNU General Public License
16 * as published by the Free Software Foundation; either version
17 * 2 of the License, or (at your option) any later version.
18 */
19#include <linux/types.h>
1#include <linux/of.h> /* linux/of.h gets to determine #include ordering */
2#ifndef _POWERPC_PROM_H
3#define _POWERPC_PROM_H
4#ifdef __KERNEL__
5
6/*
7 * Definitions for talking to the Open Firmware PROM on
8 * Power Macintosh computers.
9 *
10 * Copyright (C) 1996-2005 Paul Mackerras.
11 *
12 * Updates for PPC64 by Peter Bergner & David Engebretsen, IBM Corp.
13 *
14 * This program is free software; you can redistribute it and/or
15 * modify it under the terms of the GNU General Public License
16 * as published by the Free Software Foundation; either version
17 * 2 of the License, or (at your option) any later version.
18 */
19#include <linux/types.h>
20#include <linux/of_fdt.h>
21#include <linux/of_address.h>
22#include <linux/of_irq.h>
23#include <linux/proc_fs.h>
24#include <linux/platform_device.h>
25#include <asm/irq.h>
26#include <asm/atomic.h>
27
28#define HAVE_ARCH_DEVTREE_FIXUPS
29
30#ifdef CONFIG_PPC32
31/*
32 * PCI <-> OF matching functions

--- 11 unchanged lines hidden (view full) ---

44/*
45 * OF address retreival & translation
46 */
47
48/* Translate a DMA address from device space to CPU space */
49extern u64 of_translate_dma_address(struct device_node *dev,
50 const u32 *in_addr);
51
20#include <asm/irq.h>
21#include <asm/atomic.h>
22
23#define HAVE_ARCH_DEVTREE_FIXUPS
24
25#ifdef CONFIG_PPC32
26/*
27 * PCI <-> OF matching functions

--- 11 unchanged lines hidden (view full) ---

39/*
40 * OF address retreival & translation
41 */
42
43/* Translate a DMA address from device space to CPU space */
44extern u64 of_translate_dma_address(struct device_node *dev,
45 const u32 *in_addr);
46
52/* Extract an address from a device, returns the region size and
53 * the address space flags too. The PCI version uses a BAR number
54 * instead of an absolute index
55 */
56extern const u32 *of_get_address(struct device_node *dev, int index,
57 u64 *size, unsigned int *flags);
58#ifdef CONFIG_PCI
47#ifdef CONFIG_PCI
59extern const u32 *of_get_pci_address(struct device_node *dev, int bar_no,
60 u64 *size, unsigned int *flags);
61#else
62static inline const u32 *of_get_pci_address(struct device_node *dev,
63 int bar_no, u64 *size, unsigned int *flags)
64{
65 return NULL;
66}
67#endif /* CONFIG_PCI */
68
69#ifdef CONFIG_PCI
70extern int of_pci_address_to_resource(struct device_node *dev, int bar,
71 struct resource *r);
72#else
73static inline int of_pci_address_to_resource(struct device_node *dev, int bar,
74 struct resource *r)
75{
76 return -ENOSYS;
77}
78#endif /* CONFIG_PCI */
79
80#ifdef CONFIG_PCI
81extern unsigned long pci_address_to_pio(phys_addr_t address);
48extern unsigned long pci_address_to_pio(phys_addr_t address);
82#else
83static inline unsigned long pci_address_to_pio(phys_addr_t address)
84{
85 return (unsigned long)-1;
86}
49#define pci_address_to_pio pci_address_to_pio
87#endif /* CONFIG_PCI */
88
89/* Parse the ibm,dma-window property of an OF node into the busno, phys and
90 * size parameters.
91 */
92void of_parse_dma_window(struct device_node *dn, const void *dma_window_prop,
93 unsigned long *busno, unsigned long *phys, unsigned long *size);
94

--- 22 unchanged lines hidden (view full) ---

117 *
118 * This function resolves the PCI interrupt for a given PCI device. If a
119 * device-node exists for a given pci_dev, it will use normal OF tree
120 * walking. If not, it will implement standard swizzling and walk up the
121 * PCI tree until an device-node is found, at which point it will finish
122 * resolving using the OF tree walking.
123 */
124struct pci_dev;
50#endif /* CONFIG_PCI */
51
52/* Parse the ibm,dma-window property of an OF node into the busno, phys and
53 * size parameters.
54 */
55void of_parse_dma_window(struct device_node *dn, const void *dma_window_prop,
56 unsigned long *busno, unsigned long *phys, unsigned long *size);
57

--- 22 unchanged lines hidden (view full) ---

80 *
81 * This function resolves the PCI interrupt for a given PCI device. If a
82 * device-node exists for a given pci_dev, it will use normal OF tree
83 * walking. If not, it will implement standard swizzling and walk up the
84 * PCI tree until an device-node is found, at which point it will finish
85 * resolving using the OF tree walking.
86 */
87struct pci_dev;
88struct of_irq;
125extern int of_irq_map_pci(struct pci_dev *pdev, struct of_irq *out_irq);
126
127extern void of_instantiate_rtc(void);
128
89extern int of_irq_map_pci(struct pci_dev *pdev, struct of_irq *out_irq);
90
91extern void of_instantiate_rtc(void);
92
93/* These includes are put at the bottom because they may contain things
94 * that are overridden by this file. Ideally they shouldn't be included
95 * by this file, but there are a bunch of .c files that currently depend
96 * on it. Eventually they will be cleaned up. */
97#include <linux/of_fdt.h>
98#include <linux/of_address.h>
99#include <linux/of_irq.h>
100#include <linux/platform_device.h>
101
129#endif /* __KERNEL__ */
130#endif /* _POWERPC_PROM_H */
102#endif /* __KERNEL__ */
103#endif /* _POWERPC_PROM_H */