Thread (96 messages) 96 messages, 9 authors, 2012-06-26
STALE5086d

[RFC PATCH 03/11] arm: omap: device: create a device for system control module

From: Valentin, Eduardo <hidden>
Date: 2012-06-15 09:22:26
Also in: linux-omap, linux-pm

Hello Konstantin,

Sorry for the delayed reply.

On Thu, Jun 14, 2012 at 4:50 PM, Konstantin Baydarov
[off-list ref] wrote:
?Hi.

On 05/29/2012 01:44 PM, Eduardo Valentin wrote:
quoted
On Fri, May 25, 2012 at 02:30:44PM +0200, Cousson Benoit wrote:
quoted
On 5/25/2012 10:25 AM, Eduardo Valentin wrote:
quoted
From: Kishon Vijay Abraham I<redacted>

Extracts the device data from hwmod database and create a platform device
using omap device build.

The device build is done during postcore_initcall.
Do you still need that since you are supporting only DT?
The device will be built automatically in the DT case.
In fact this is not needed for DT only probing. Dropping this one.
Yes, platform device(struct platform_device) will be built automatically, but omap device(struct omap_device) will not be built.
The platform_device will be built as well as the omap_device. There
are hooks at the platform_device creation that will proceed with the
omap_device deployment. Please check:
arch/arm/plat-omap/omap_device.c: _omap_device_notifier_call and
omap_device_build_from_dt
Also when omap device is allocated(omap_device_alloc) hwmod_clocks are registered, but in case of ctrl_module_core device - no new clock are registered.
So, is it fine to drop omap device and skip omap_device_build() call?
As explained above, when booting with DT, you will get both, pdev and omap_dev.
?BR,
? ?Konstantin Baydarov.
All best,

Eduardo
quoted
quoted
Regards,
Benoit
quoted
Signed-off-by: Kishon Vijay Abraham I<redacted>
Signed-off-by: Eduardo Valentin<redacted>
---
?arch/arm/mach-omap2/devices.c | ? 26 ++++++++++++++++++++++++++
?1 files changed, 26 insertions(+), 0 deletions(-)
diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c
index 152c266..9332673 100644
--- a/arch/arm/mach-omap2/devices.c
+++ b/arch/arm/mach-omap2/devices.c
@@ -40,6 +40,32 @@
?#define L3_MODULES_MAX_LEN 12
?#define L3_MODULES 3

+static int omap_init_control(void)
+{
+ ? struct omap_hwmod ? ? ? ? ? ? ? *oh;
+ ? struct platform_device ? ? ? ? ?*pdev;
+ ? const char ? ? ? ? ? ? ? ? ? ? ?*oh_name, *name;
+
+ ? oh_name = "ctrl_module_core";
+ ? name = "omap-control-core";
+
+ ? oh = omap_hwmod_lookup(oh_name);
+ ? if (!oh) {
+ ? ? ? ? ? pr_err("Could not lookup hwmod for %s\n", oh_name);
+ ? ? ? ? ? return PTR_ERR(oh);
+ ? }
+
+ ? pdev = omap_device_build(name, -1, oh, NULL, 0, NULL, 0, true);
+ ? if (IS_ERR(pdev)) {
+ ? ? ? ? ? pr_err("Could not build omap_device for %s %s\n",
+ ? ? ? ? ? ? ? ? ?name, oh_name);
+ ? ? ? ? ? return PTR_ERR(pdev);
+ ? }
+
+ ? return 0;
+}
+postcore_initcall(omap_init_control);
+
?static int __init omap3_l3_init(void)
?{
? ? struct omap_hwmod *oh;


-- 

Eduardo Valentin
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help