| Grant Likely | 9d24c88 | 2009-10-15 10:57:44 -0600 | [diff] [blame] | 1 | #include <linux/of.h>	/* linux/of.h gets to determine #include ordering */ | 
| Paul Mackerras | 9b6b563 | 2005-10-06 12:06:20 +1000 | [diff] [blame] | 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> | 
| Andrew Morton | 99ddef9 | 2007-02-17 18:17:16 -0700 | [diff] [blame] | 20 | #include <asm/irq.h> | 
| Arun Sharma | 60063497 | 2011-07-26 16:09:06 -0700 | [diff] [blame] | 21 | #include <linux/atomic.h> | 
| Paul Mackerras | 9b6b563 | 2005-10-06 12:06:20 +1000 | [diff] [blame] | 22 |  | 
| Paul Mackerras | 9b6b563 | 2005-10-06 12:06:20 +1000 | [diff] [blame] | 23 | #define HAVE_ARCH_DEVTREE_FIXUPS | 
 | 24 |  | 
| Benjamin Herrenschmidt | d1405b8 | 2005-11-23 17:53:42 +1100 | [diff] [blame] | 25 | /* | 
| Benjamin Herrenschmidt | d2dd482 | 2005-11-30 16:57:28 +1100 | [diff] [blame] | 26 |  * OF address retreival & translation | 
 | 27 |  */ | 
 | 28 |  | 
| Benjamin Herrenschmidt | 837c54d | 2007-12-11 14:48:22 +1100 | [diff] [blame] | 29 | /* Translate a DMA address from device space to CPU space */ | 
 | 30 | extern u64 of_translate_dma_address(struct device_node *dev, | 
| Sebastian Andrzej Siewior | 0131d89 | 2010-12-01 10:54:46 +0100 | [diff] [blame] | 31 | 				    const __be32 *in_addr); | 
| Benjamin Herrenschmidt | 837c54d | 2007-12-11 14:48:22 +1100 | [diff] [blame] | 32 |  | 
| Grant Likely | 1f5bef3 | 2010-06-08 07:48:09 -0600 | [diff] [blame] | 33 | #ifdef CONFIG_PCI | 
 | 34 | extern unsigned long pci_address_to_pio(phys_addr_t address); | 
| Grant Likely | 22ae782 | 2010-07-29 11:49:01 -0600 | [diff] [blame] | 35 | #define pci_address_to_pio pci_address_to_pio | 
| Grant Likely | 1f5bef3 | 2010-06-08 07:48:09 -0600 | [diff] [blame] | 36 | #endif	/* CONFIG_PCI */ | 
 | 37 |  | 
| Jeremy Kerr | d4ad66f | 2006-05-18 18:05:15 +1000 | [diff] [blame] | 38 | /* Parse the ibm,dma-window property of an OF node into the busno, phys and | 
 | 39 |  * size parameters. | 
 | 40 |  */ | 
| Jeremy Kerr | a7f67bd | 2006-07-12 15:35:54 +1000 | [diff] [blame] | 41 | void of_parse_dma_window(struct device_node *dn, const void *dma_window_prop, | 
| Jeremy Kerr | d4ad66f | 2006-05-18 18:05:15 +1000 | [diff] [blame] | 42 | 		unsigned long *busno, unsigned long *phys, unsigned long *size); | 
 | 43 |  | 
| Michael Ellerman | b68239e | 2006-02-03 19:05:47 +1100 | [diff] [blame] | 44 | extern void kdump_move_device_tree(void); | 
 | 45 |  | 
| Benjamin Herrenschmidt | acf7d76 | 2006-06-19 20:33:16 +0200 | [diff] [blame] | 46 | /* CPU OF node matching */ | 
 | 47 | struct device_node *of_get_cpu_node(int cpu, unsigned int *thread); | 
 | 48 |  | 
| Nathan Lynch | e523f72 | 2008-12-10 14:46:04 +0000 | [diff] [blame] | 49 | /* cache lookup */ | 
 | 50 | struct device_node *of_find_next_cache_node(struct device_node *np); | 
 | 51 |  | 
| Grant Likely | 559e2b7 | 2010-07-23 20:11:18 -0600 | [diff] [blame] | 52 | #ifdef CONFIG_NUMA | 
 | 53 | extern int of_node_to_nid(struct device_node *device); | 
 | 54 | #else | 
 | 55 | static inline int of_node_to_nid(struct device_node *device) { return 0; } | 
 | 56 | #endif | 
 | 57 | #define of_node_to_nid of_node_to_nid | 
 | 58 |  | 
| Grant Likely | 129ac79 | 2010-06-29 09:26:53 -0700 | [diff] [blame] | 59 | extern void of_instantiate_rtc(void); | 
 | 60 |  | 
| Nathan Fontenot | f594972 | 2012-10-02 16:56:11 +0000 | [diff] [blame] | 61 | /* The of_drconf_cell struct defines the layout of the LMB array | 
 | 62 |  * specified in the device tree property | 
 | 63 |  * ibm,dynamic-reconfiguration-memory/ibm,dynamic-memory | 
 | 64 |  */ | 
 | 65 | struct of_drconf_cell { | 
 | 66 | 	u64	base_addr; | 
 | 67 | 	u32	drc_index; | 
 | 68 | 	u32	reserved; | 
 | 69 | 	u32	aa_index; | 
 | 70 | 	u32	flags; | 
 | 71 | }; | 
 | 72 |  | 
 | 73 | #define DRCONF_MEM_ASSIGNED	0x00000008 | 
 | 74 | #define DRCONF_MEM_AI_INVALID	0x00000040 | 
 | 75 | #define DRCONF_MEM_RESERVED	0x00000080 | 
 | 76 |  | 
| Grant Likely | 22ae782 | 2010-07-29 11:49:01 -0600 | [diff] [blame] | 77 | /* These includes are put at the bottom because they may contain things | 
 | 78 |  * that are overridden by this file.  Ideally they shouldn't be included | 
 | 79 |  * by this file, but there are a bunch of .c files that currently depend | 
 | 80 |  * on it.  Eventually they will be cleaned up. */ | 
 | 81 | #include <linux/of_fdt.h> | 
 | 82 | #include <linux/of_address.h> | 
 | 83 | #include <linux/of_irq.h> | 
 | 84 | #include <linux/platform_device.h> | 
 | 85 |  | 
| Paul Mackerras | 9b6b563 | 2005-10-06 12:06:20 +1000 | [diff] [blame] | 86 | #endif /* __KERNEL__ */ | 
 | 87 | #endif /* _POWERPC_PROM_H */ |