2005-10-06 13:22:17 +10:00
# ifndef _ASM_POWERPC_OF_DEVICE_H
# define _ASM_POWERPC_OF_DEVICE_H
2005-12-16 22:43:46 +01:00
# ifdef __KERNEL__
2005-04-16 15:20:36 -07:00
# include <linux/device.h>
2005-09-22 21:44:06 -07:00
# include <linux/mod_devicetable.h>
2005-04-16 15:20:36 -07:00
# include <asm/prom.h>
/*
* The of_device is a kind of " base class " that is a superset of
* struct device for use by devices attached to an OF node and
* probed using OF properties
*/
struct of_device
{
2006-11-11 17:25:02 +11:00
struct device_node * node ; /* to be obsoleted */
2005-04-16 15:20:36 -07:00
u64 dma_mask ; /* DMA mask */
struct device dev ; /* Generic device interface */
} ;
# define to_of_device(d) container_of(d, struct of_device, dev)
2006-11-11 17:24:59 +11:00
extern const struct of_device_id * of_match_node (
const struct of_device_id * matches , const struct device_node * node ) ;
2005-07-06 15:44:41 -04:00
extern const struct of_device_id * of_match_device (
const struct of_device_id * matches , const struct of_device * dev ) ;
2005-04-16 15:20:36 -07:00
extern struct of_device * of_dev_get ( struct of_device * dev ) ;
extern void of_dev_put ( struct of_device * dev ) ;
extern int of_device_register ( struct of_device * ofdev ) ;
extern void of_device_unregister ( struct of_device * ofdev ) ;
extern void of_release_dev ( struct device * dev ) ;
2007-05-07 01:38:46 +10:00
extern ssize_t of_device_get_modalias ( struct of_device * ofdev ,
char * str , ssize_t len ) ;
2007-02-12 23:13:25 +01:00
extern int of_device_uevent ( struct device * dev ,
char * * envp , int num_envp , char * buffer , int buffer_size ) ;
2005-12-16 22:43:46 +01:00
# endif /* __KERNEL__ */
2005-10-06 13:22:17 +10:00
# endif /* _ASM_POWERPC_OF_DEVICE_H */