OMAP: omap_device: make all devices a child of a new parent device
In order to help differentiate omap_devices from normal platform_devices, make them all a parent of a new common parent device. Then, in order to determine if a platform_device is also an omap_device, checking the parent is all that is needed. Users of this feature are the runtime PM core for OMAP, where we need to know if a device being passed in is an omap_device or not in order to know whether to call the omap_device API with it. In addition, all omap_devices will now show up under /sys/devices/omap instead of /sys/devices/platform Acked-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
This commit is contained in:
@@ -36,6 +36,8 @@
|
|||||||
|
|
||||||
#include <plat/omap_hwmod.h>
|
#include <plat/omap_hwmod.h>
|
||||||
|
|
||||||
|
extern struct device omap_device_parent;
|
||||||
|
|
||||||
/* omap_device._state values */
|
/* omap_device._state values */
|
||||||
#define OMAP_DEVICE_STATE_UNKNOWN 0
|
#define OMAP_DEVICE_STATE_UNKNOWN 0
|
||||||
#define OMAP_DEVICE_STATE_ENABLED 1
|
#define OMAP_DEVICE_STATE_ENABLED 1
|
||||||
|
|||||||
@@ -465,6 +465,7 @@ int omap_device_register(struct omap_device *od)
|
|||||||
{
|
{
|
||||||
pr_debug("omap_device: %s: registering\n", od->pdev.name);
|
pr_debug("omap_device: %s: registering\n", od->pdev.name);
|
||||||
|
|
||||||
|
od->pdev.dev.parent = &omap_device_parent;
|
||||||
return platform_device_register(&od->pdev);
|
return platform_device_register(&od->pdev);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -737,3 +738,14 @@ int omap_device_enable_clocks(struct omap_device *od)
|
|||||||
/* XXX pass along return value here? */
|
/* XXX pass along return value here? */
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct device omap_device_parent = {
|
||||||
|
.init_name = "omap",
|
||||||
|
.parent = &platform_bus,
|
||||||
|
};
|
||||||
|
|
||||||
|
static int __init omap_device_init(void)
|
||||||
|
{
|
||||||
|
return device_register(&omap_device_parent);
|
||||||
|
}
|
||||||
|
core_initcall(omap_device_init);
|
||||||
|
|||||||
Reference in New Issue
Block a user