Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | #include <linux/device.h> |
2 | ||
3 | struct parisc_device { | |
53f01bba | 4 | struct resource hpa; /* Hard Physical Address */ |
1da177e4 LT |
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 | ||
56583747 MW |
42 | static inline char *parisc_pathname(struct parisc_device *d) |
43 | { | |
44 | return d->dev.bus_id; | |
45 | } | |
46 | ||
1da177e4 LT |
47 | static inline void |
48 | parisc_set_drvdata(struct parisc_device *d, void *p) | |
49 | { | |
50 | dev_set_drvdata(&d->dev, p); | |
51 | } | |
52 | ||
53 | static inline void * | |
54 | parisc_get_drvdata(struct parisc_device *d) | |
55 | { | |
56 | return dev_get_drvdata(&d->dev); | |
57 | } | |
58 | ||
59 | extern struct bus_type parisc_bus_type; |