2009-10-15 10:57:44 -06:00
# include <linux/of.h> /* linux/of.h gets to determine #include ordering */
2005-10-06 12:06:20 +10:00
# ifndef _POWERPC_PROM_H
# define _POWERPC_PROM_H
# ifdef __KERNEL__
/*
* Definitions for talking to the Open Firmware PROM on
* Power Macintosh computers .
*
* Copyright ( C ) 1996 - 2005 Paul Mackerras .
*
* Updates for PPC64 by Peter Bergner & David Engebretsen , IBM Corp .
*
* This program is free software ; you can redistribute it and / or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation ; either version
* 2 of the License , or ( at your option ) any later version .
*/
# include <linux/types.h>
2007-02-17 18:17:16 -07:00
# include <asm/irq.h>
2011-07-26 16:09:06 -07:00
# include <linux/atomic.h>
2005-10-06 12:06:20 +10:00
# define HAVE_ARCH_DEVTREE_FIXUPS
2005-11-23 17:53:42 +11:00
/*
2005-11-30 16:57:28 +11:00
* OF address retreival & translation
*/
2007-12-11 14:48:22 +11:00
/* Translate a DMA address from device space to CPU space */
extern u64 of_translate_dma_address ( struct device_node * dev ,
2010-12-01 10:54:46 +01:00
const __be32 * in_addr ) ;
2007-12-11 14:48:22 +11:00
2010-06-08 07:48:09 -06:00
# ifdef CONFIG_PCI
extern unsigned long pci_address_to_pio ( phys_addr_t address ) ;
2010-07-29 11:49:01 -06:00
# define pci_address_to_pio pci_address_to_pio
2010-06-08 07:48:09 -06:00
# endif /* CONFIG_PCI */
2006-05-18 18:05:15 +10:00
/* Parse the ibm,dma-window property of an OF node into the busno, phys and
* size parameters .
*/
2006-07-12 15:35:54 +10:00
void of_parse_dma_window ( struct device_node * dn , const void * dma_window_prop ,
2006-05-18 18:05:15 +10:00
unsigned long * busno , unsigned long * phys , unsigned long * size ) ;
2006-02-03 19:05:47 +11:00
extern void kdump_move_device_tree ( void ) ;
2006-06-19 20:33:16 +02:00
/* CPU OF node matching */
struct device_node * of_get_cpu_node ( int cpu , unsigned int * thread ) ;
2008-12-10 14:46:04 +00:00
/* cache lookup */
struct device_node * of_find_next_cache_node ( struct device_node * np ) ;
2010-07-23 20:11:18 -06:00
# ifdef CONFIG_NUMA
extern int of_node_to_nid ( struct device_node * device ) ;
# else
static inline int of_node_to_nid ( struct device_node * device ) { return 0 ; }
# endif
# define of_node_to_nid of_node_to_nid
2010-06-29 09:26:53 -07:00
extern void of_instantiate_rtc ( void ) ;
2010-07-29 11:49:01 -06:00
/* These includes are put at the bottom because they may contain things
* that are overridden by this file . Ideally they shouldn ' t be included
* by this file , but there are a bunch of . c files that currently depend
* on it . Eventually they will be cleaned up . */
# include <linux/of_fdt.h>
# include <linux/of_address.h>
# include <linux/of_irq.h>
# include <linux/platform_device.h>
2005-10-06 12:06:20 +10:00
# endif /* __KERNEL__ */
# endif /* _POWERPC_PROM_H */