2009-10-15 20:57:44 +04:00
# include <linux/of.h> /* linux/of.h gets to determine #include ordering */
2005-10-06 06:06:20 +04: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-18 04:17:16 +03:00
# include <asm/irq.h>
2011-07-27 03:09:06 +04:00
# include <linux/atomic.h>
2005-10-06 06:06:20 +04:00
# define HAVE_ARCH_DEVTREE_FIXUPS
2005-11-23 09:53:42 +03:00
/*
2005-11-30 08:57:28 +03:00
* OF address retreival & translation
*/
2007-12-11 06:48:22 +03:00
/* Translate a DMA address from device space to CPU space */
extern u64 of_translate_dma_address ( struct device_node * dev ,
2010-12-01 12:54:46 +03:00
const __be32 * in_addr ) ;
2007-12-11 06:48:22 +03:00
2010-06-08 17:48:09 +04:00
# ifdef CONFIG_PCI
extern unsigned long pci_address_to_pio ( phys_addr_t address ) ;
2010-07-29 21:49:01 +04:00
# define pci_address_to_pio pci_address_to_pio
2010-06-08 17:48:09 +04:00
# endif /* CONFIG_PCI */
2006-05-18 12:05:15 +04:00
/* Parse the ibm,dma-window property of an OF node into the busno, phys and
* size parameters .
*/
2006-07-12 09:35:54 +04:00
void of_parse_dma_window ( struct device_node * dn , const void * dma_window_prop ,
2006-05-18 12:05:15 +04:00
unsigned long * busno , unsigned long * phys , unsigned long * size ) ;
2006-02-03 11:05:47 +03:00
extern void kdump_move_device_tree ( void ) ;
2006-06-19 22:33:16 +04:00
/* CPU OF node matching */
struct device_node * of_get_cpu_node ( int cpu , unsigned int * thread ) ;
2008-12-10 17:46:04 +03:00
/* cache lookup */
struct device_node * of_find_next_cache_node ( struct device_node * np ) ;
2010-07-24 06:11:18 +04: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 20:26:53 +04:00
extern void of_instantiate_rtc ( void ) ;
2010-07-29 21:49:01 +04: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 06:06:20 +04:00
# endif /* __KERNEL__ */
# endif /* _POWERPC_PROM_H */