diff options
Diffstat (limited to 'include/asm-parisc/parisc-device.h')
-rw-r--r-- | include/asm-parisc/parisc-device.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/include/asm-parisc/parisc-device.h b/include/asm-parisc/parisc-device.h new file mode 100644 index 000000000000..ef69ab4b17a9 --- /dev/null +++ b/include/asm-parisc/parisc-device.h | |||
@@ -0,0 +1,54 @@ | |||
1 | #include <linux/device.h> | ||
2 | |||
3 | struct parisc_device { | ||
4 | unsigned long hpa; /* Hard Physical Address */ | ||
5 | struct parisc_device_id id; | ||
6 | struct parisc_driver *driver; /* Driver for this device */ | ||
7 | char name[80]; /* The hardware description */ | ||
8 | int irq; | ||
9 | int aux_irq; /* Some devices have a second IRQ */ | ||
10 | |||
11 | char hw_path; /* The module number on this bus */ | ||
12 | unsigned int num_addrs; /* some devices have additional address ranges. */ | ||
13 | unsigned long *addr; /* which will be stored here */ | ||
14 | |||
15 | #ifdef __LP64__ | ||
16 | /* parms for pdc_pat_cell_module() call */ | ||
17 | unsigned long pcell_loc; /* Physical Cell location */ | ||
18 | unsigned long mod_index; /* PAT specific - Misc Module info */ | ||
19 | |||
20 | /* generic info returned from pdc_pat_cell_module() */ | ||
21 | unsigned long mod_info; /* PAT specific - Misc Module info */ | ||
22 | unsigned long pmod_loc; /* physical Module location */ | ||
23 | #endif | ||
24 | u64 dma_mask; /* DMA mask for I/O */ | ||
25 | struct device dev; | ||
26 | }; | ||
27 | |||
28 | struct parisc_driver { | ||
29 | struct parisc_driver *next; | ||
30 | char *name; | ||
31 | const struct parisc_device_id *id_table; | ||
32 | int (*probe) (struct parisc_device *dev); /* New device discovered */ | ||
33 | int (*remove) (struct parisc_device *dev); | ||
34 | struct device_driver drv; | ||
35 | }; | ||
36 | |||
37 | |||
38 | #define to_parisc_device(d) container_of(d, struct parisc_device, dev) | ||
39 | #define to_parisc_driver(d) container_of(d, struct parisc_driver, drv) | ||
40 | #define parisc_parent(d) to_parisc_device(d->dev.parent) | ||
41 | |||
42 | static inline void | ||
43 | parisc_set_drvdata(struct parisc_device *d, void *p) | ||
44 | { | ||
45 | dev_set_drvdata(&d->dev, p); | ||
46 | } | ||
47 | |||
48 | static inline void * | ||
49 | parisc_get_drvdata(struct parisc_device *d) | ||
50 | { | ||
51 | return dev_get_drvdata(&d->dev); | ||
52 | } | ||
53 | |||
54 | extern struct bus_type parisc_bus_type; | ||