aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/of/device.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/of/device.c')
-rw-r--r--drivers/of/device.c27
1 files changed, 7 insertions, 20 deletions
diff --git a/drivers/of/device.c b/drivers/of/device.c
index 92de0eb74aea..45d86530799f 100644
--- a/drivers/of/device.c
+++ b/drivers/of/device.c
@@ -81,29 +81,10 @@ struct device_attribute of_platform_device_attrs[] = {
81 __ATTR_NULL 81 __ATTR_NULL
82}; 82};
83 83
84/** 84int of_device_add(struct platform_device *ofdev)
85 * of_release_dev - free an of device structure when all users of it are finished.
86 * @dev: device that's been disconnected
87 *
88 * Will be called only by the device core when all users of this of device are
89 * done.
90 */
91void of_release_dev(struct device *dev)
92{
93 struct platform_device *ofdev;
94
95 ofdev = to_platform_device(dev);
96 of_node_put(ofdev->dev.of_node);
97 kfree(ofdev);
98}
99EXPORT_SYMBOL(of_release_dev);
100
101int of_device_register(struct platform_device *ofdev)
102{ 85{
103 BUG_ON(ofdev->dev.of_node == NULL); 86 BUG_ON(ofdev->dev.of_node == NULL);
104 87
105 device_initialize(&ofdev->dev);
106
107 /* name and id have to be set so that the platform bus doesn't get 88 /* name and id have to be set so that the platform bus doesn't get
108 * confused on matching */ 89 * confused on matching */
109 ofdev->name = dev_name(&ofdev->dev); 90 ofdev->name = dev_name(&ofdev->dev);
@@ -117,6 +98,12 @@ int of_device_register(struct platform_device *ofdev)
117 98
118 return device_add(&ofdev->dev); 99 return device_add(&ofdev->dev);
119} 100}
101
102int of_device_register(struct platform_device *pdev)
103{
104 device_initialize(&pdev->dev);
105 return of_device_add(pdev);
106}
120EXPORT_SYMBOL(of_device_register); 107EXPORT_SYMBOL(of_device_register);
121 108
122void of_device_unregister(struct platform_device *ofdev) 109void of_device_unregister(struct platform_device *ofdev)