]>
Commit | Line | Data |
---|---|---|
a2bd4fd1 DM |
1 | #ifndef _ASM_SPARC64_OF_DEVICE_H |
2 | #define _ASM_SPARC64_OF_DEVICE_H | |
3 | #ifdef __KERNEL__ | |
4 | ||
5 | #include <linux/device.h> | |
6 | #include <linux/mod_devicetable.h> | |
7 | #include <asm/prom.h> | |
8 | ||
9 | extern struct bus_type isa_bus_type; | |
10 | extern struct bus_type ebus_bus_type; | |
11 | extern struct bus_type sbus_bus_type; | |
12 | ||
13 | /* | |
14 | * The of_device is a kind of "base class" that is a superset of | |
15 | * struct device for use by devices attached to an OF node and | |
16 | * probed using OF properties. | |
17 | */ | |
18 | struct of_device | |
19 | { | |
20 | struct device_node *node; /* OF device node */ | |
21 | struct device dev; /* Generic device interface */ | |
22 | }; | |
23 | #define to_of_device(d) container_of(d, struct of_device, dev) | |
24 | ||
25 | extern const struct of_device_id *of_match_device( | |
26 | const struct of_device_id *matches, const struct of_device *dev); | |
27 | ||
28 | extern struct of_device *of_dev_get(struct of_device *dev); | |
29 | extern void of_dev_put(struct of_device *dev); | |
30 | ||
31 | /* | |
32 | * An of_platform_driver driver is attached to a basic of_device on | |
33 | * the ISA, EBUS, and SBUS busses on sparc64. | |
34 | */ | |
35 | struct of_platform_driver | |
36 | { | |
37 | char *name; | |
38 | struct of_device_id *match_table; | |
39 | struct module *owner; | |
40 | ||
41 | int (*probe)(struct of_device* dev, const struct of_device_id *match); | |
42 | int (*remove)(struct of_device* dev); | |
43 | ||
44 | int (*suspend)(struct of_device* dev, pm_message_t state); | |
45 | int (*resume)(struct of_device* dev); | |
46 | int (*shutdown)(struct of_device* dev); | |
47 | ||
48 | struct device_driver driver; | |
49 | }; | |
50 | #define to_of_platform_driver(drv) container_of(drv,struct of_platform_driver, driver) | |
51 | ||
52 | extern int of_register_driver(struct of_platform_driver *drv, | |
53 | struct bus_type *bus); | |
54 | extern void of_unregister_driver(struct of_platform_driver *drv); | |
55 | extern int of_device_register(struct of_device *ofdev); | |
56 | extern void of_device_unregister(struct of_device *ofdev); | |
57 | extern struct of_device *of_platform_device_create(struct device_node *np, | |
58 | const char *bus_id, | |
59 | struct device *parent, | |
60 | struct bus_type *bus); | |
61 | extern void of_release_dev(struct device *dev); | |
62 | ||
63 | #endif /* __KERNEL__ */ | |
fd531431 | 64 | #endif /* _ASM_SPARC64_OF_DEVICE_H */ |