Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0d5e8252 authored by Kevin Hilman's avatar Kevin Hilman
Browse files

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: default avatarPaul Walmsley <paul@pwsan.com>
Signed-off-by: default avatarKevin Hilman <khilman@deeprootsystems.com>
parent a1ed40cb
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -36,6 +36,8 @@

#include <plat/omap_hwmod.h>

extern struct device omap_device_parent;

/* omap_device._state values */
#define OMAP_DEVICE_STATE_UNKNOWN	0
#define OMAP_DEVICE_STATE_ENABLED	1
+12 −0
Original line number Diff line number Diff line
@@ -465,6 +465,7 @@ int omap_device_register(struct omap_device *od)
{
	pr_debug("omap_device: %s: registering\n", od->pdev.name);

	od->pdev.dev.parent = &omap_device_parent;
	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? */
	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);