2006-09-16 22:38:22 +04:00
# ifndef _ASM_PARISC_PARISC_DEVICE_H_
# define _ASM_PARISC_PARISC_DEVICE_H_
2005-04-17 02:20:36 +04:00
# include <linux/device.h>
struct parisc_device {
2005-10-22 06:36:40 +04:00
struct resource hpa ; /* Hard Physical Address */
2005-04-17 02:20:36 +04:00
struct parisc_device_id id ;
struct parisc_driver * driver ; /* Driver for this device */
char name [ 80 ] ; /* The hardware description */
int irq ;
int aux_irq ; /* Some devices have a second IRQ */
char hw_path ; /* The module number on this bus */
unsigned int num_addrs ; /* some devices have additional address ranges. */
unsigned long * addr ; /* which will be stored here */
2007-01-28 17:09:20 +03:00
# ifdef CONFIG_64BIT
2005-04-17 02:20:36 +04:00
/* parms for pdc_pat_cell_module() call */
unsigned long pcell_loc ; /* Physical Cell location */
unsigned long mod_index ; /* PAT specific - Misc Module info */
/* generic info returned from pdc_pat_cell_module() */
unsigned long mod_info ; /* PAT specific - Misc Module info */
unsigned long pmod_loc ; /* physical Module location */
# endif
u64 dma_mask ; /* DMA mask for I/O */
struct device dev ;
} ;
struct parisc_driver {
struct parisc_driver * next ;
char * name ;
const struct parisc_device_id * id_table ;
int ( * probe ) ( struct parisc_device * dev ) ; /* New device discovered */
int ( * remove ) ( struct parisc_device * dev ) ;
struct device_driver drv ;
} ;
# define to_parisc_device(d) container_of(d, struct parisc_device, dev)
# define to_parisc_driver(d) container_of(d, struct parisc_driver, drv)
# define parisc_parent(d) to_parisc_device(d->dev.parent)
2005-10-22 06:33:38 +04:00
static inline char * parisc_pathname ( struct parisc_device * d )
{
return d - > dev . bus_id ;
}
2005-04-17 02:20:36 +04:00
static inline void
parisc_set_drvdata ( struct parisc_device * d , void * p )
{
dev_set_drvdata ( & d - > dev , p ) ;
}
static inline void *
parisc_get_drvdata ( struct parisc_device * d )
{
return dev_get_drvdata ( & d - > dev ) ;
}
extern struct bus_type parisc_bus_type ;
2006-09-16 22:38:22 +04:00
# endif /*_ASM_PARISC_PARISC_DEVICE_H_*/