]>
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> | |
f898f8db | 6 | #include <linux/of.h> |
a2bd4fd1 | 7 | #include <linux/mod_devicetable.h> |
cf44bbc2 | 8 | #include <asm/openprom.h> |
a2bd4fd1 DM |
9 | |
10 | extern struct bus_type isa_bus_type; | |
11 | extern struct bus_type ebus_bus_type; | |
12 | extern struct bus_type sbus_bus_type; | |
37b7754a SR |
13 | extern struct bus_type of_platform_bus_type; |
14 | #define of_bus_type of_platform_bus_type /* for compatibility */ | |
a2bd4fd1 DM |
15 | |
16 | /* | |
17 | * The of_device is a kind of "base class" that is a superset of | |
18 | * struct device for use by devices attached to an OF node and | |
19 | * probed using OF properties. | |
20 | */ | |
21 | struct of_device | |
22 | { | |
cf44bbc2 DM |
23 | struct device_node *node; |
24 | struct device dev; | |
25 | struct resource resource[PROMREG_MAX]; | |
2b1e5978 DM |
26 | unsigned int irqs[PROMINTR_MAX]; |
27 | int num_irqs; | |
cf44bbc2 DM |
28 | |
29 | void *sysdata; | |
30 | ||
31 | int slot; | |
32 | int portid; | |
33 | int clock_freq; | |
a2bd4fd1 | 34 | }; |
a2bd4fd1 | 35 | |
3ca9fab4 | 36 | extern void __iomem *of_ioremap(struct resource *res, unsigned long offset, unsigned long size, char *name); |
e3a411a3 | 37 | extern void of_iounmap(struct resource *res, void __iomem *base, unsigned long size); |
3ca9fab4 | 38 | |
2b1e5978 DM |
39 | extern struct of_device *of_find_device_by_node(struct device_node *); |
40 | ||
a2bd4fd1 DM |
41 | /* |
42 | * An of_platform_driver driver is attached to a basic of_device on | |
43 | * the ISA, EBUS, and SBUS busses on sparc64. | |
44 | */ | |
45 | struct of_platform_driver | |
46 | { | |
47 | char *name; | |
48 | struct of_device_id *match_table; | |
49 | struct module *owner; | |
50 | ||
51 | int (*probe)(struct of_device* dev, const struct of_device_id *match); | |
52 | int (*remove)(struct of_device* dev); | |
53 | ||
54 | int (*suspend)(struct of_device* dev, pm_message_t state); | |
55 | int (*resume)(struct of_device* dev); | |
56 | int (*shutdown)(struct of_device* dev); | |
57 | ||
58 | struct device_driver driver; | |
59 | }; | |
60 | #define to_of_platform_driver(drv) container_of(drv,struct of_platform_driver, driver) | |
61 | ||
62 | extern int of_register_driver(struct of_platform_driver *drv, | |
63 | struct bus_type *bus); | |
64 | extern void of_unregister_driver(struct of_platform_driver *drv); | |
a2bd4fd1 DM |
65 | extern struct of_device *of_platform_device_create(struct device_node *np, |
66 | const char *bus_id, | |
67 | struct device *parent, | |
68 | struct bus_type *bus); | |
f898f8db SR |
69 | |
70 | /* This is just here during the transition */ | |
71 | #include <linux/of_device.h> | |
a2bd4fd1 DM |
72 | |
73 | #endif /* __KERNEL__ */ | |
fd531431 | 74 | #endif /* _ASM_SPARC64_OF_DEVICE_H */ |