Blame view
include/linux/of_platform.h
2.78 KB
b41912ca3
|
1 2 3 4 5 6 7 8 9 10 11 12 |
#ifndef _LINUX_OF_PLATFORM_H #define _LINUX_OF_PLATFORM_H /* * Copyright (C) 2006 Benjamin Herrenschmidt, IBM Corp. * <benh@kernel.crashing.org> * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version * 2 of the License, or (at your option) any later version. * */ |
efb2e014f
|
13 |
#ifdef CONFIG_OF_DEVICE |
b41912ca3
|
14 15 16 17 18 |
#include <linux/module.h> #include <linux/device.h> #include <linux/mod_devicetable.h> #include <linux/pm.h> #include <linux/of_device.h> |
eca393016
|
19 |
#include <linux/platform_device.h> |
b41912ca3
|
20 |
|
2dc115813
|
21 22 23 24 25 26 27 28 29 30 31 |
/** * of_platform_driver - Legacy of-aware driver for platform devices. * * An of_platform_driver driver is attached to a basic platform_device on * ether the "platform bus" (platform_bus_type), or the ibm ebus * (ibmebus_bus_type). * * of_platform_driver is being phased out when used with the platform_bus_type, * and regular platform_drivers should be used instead. When the transition * is complete, only ibmebus will be using this structure, and the * platform_driver member of this structure will be removed. |
b41912ca3
|
32 33 34 |
*/ struct of_platform_driver { |
94a0cb1fc
|
35 |
int (*probe)(struct platform_device* dev, |
b41912ca3
|
36 |
const struct of_device_id *match); |
94a0cb1fc
|
37 |
int (*remove)(struct platform_device* dev); |
b41912ca3
|
38 |
|
94a0cb1fc
|
39 40 41 |
int (*suspend)(struct platform_device* dev, pm_message_t state); int (*resume)(struct platform_device* dev); int (*shutdown)(struct platform_device* dev); |
b41912ca3
|
42 43 |
struct device_driver driver; |
eca393016
|
44 |
struct platform_driver platform_driver; |
b41912ca3
|
45 46 47 |
}; #define to_of_platform_driver(drv) \ container_of(drv,struct of_platform_driver, driver) |
5c4570835
|
48 49 50 |
extern int of_register_driver(struct of_platform_driver *drv, struct bus_type *bus); extern void of_unregister_driver(struct of_platform_driver *drv); |
0763ed235
|
51 |
/* Platform drivers register/unregister */ |
eca393016
|
52 53 |
extern int of_register_platform_driver(struct of_platform_driver *drv); extern void of_unregister_platform_driver(struct of_platform_driver *drv); |
0763ed235
|
54 |
|
94a0cb1fc
|
55 |
extern struct platform_device *of_device_alloc(struct device_node *np, |
94c093198
|
56 57 |
const char *bus_id, struct device *parent); |
94a0cb1fc
|
58 |
extern struct platform_device *of_find_device_by_node(struct device_node *np); |
b41912ca3
|
59 |
|
3f23de10f
|
60 |
extern int of_bus_type_init(struct bus_type *bus, const char *name); |
5fd200f3b
|
61 62 63 |
#if !defined(CONFIG_SPARC) /* SPARC has its own device registration method */ /* Platform devices and busses creation */ |
94a0cb1fc
|
64 |
extern struct platform_device *of_platform_device_create(struct device_node *np, |
5fd200f3b
|
65 66 67 68 69 70 71 72 73 74 |
const char *bus_id, struct device *parent); /* pseudo "matches" value to not do deep probe */ #define OF_NO_DEEP_PROBE ((struct of_device_id *)-1) extern int of_platform_bus_probe(struct device_node *root, const struct of_device_id *matches, struct device *parent); #endif /* !CONFIG_SPARC */ |
efb2e014f
|
75 |
#endif /* CONFIG_OF_DEVICE */ |
3f23de10f
|
76 |
|
b41912ca3
|
77 |
#endif /* _LINUX_OF_PLATFORM_H */ |