OMAP3: devices: Initialise the l3 device with the hwmod data.
authorsricharan <r.sricharan@ti.com>
Tue, 8 Feb 2011 08:40:45 +0000 (14:10 +0530)
committerSantosh Shilimkar <santosh.shilimkar@ti.com>
Wed, 9 Mar 2011 11:53:56 +0000 (17:23 +0530)
The l3 interconnect device is build with all the data required
to handle the error logging. The data is extracted from the
hwmod database.

Signed-off-by: sricharan <r.sricharan@ti.com>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Acked-by: Benoit Cousson <b-cousson@ti.com>
arch/arm/mach-omap2/devices.c

index 2cb720b5b12ede09dc16b7bf39e36ff127c87e68..6a320b61631e7b367d1a87cbe634fc86c4c5d660 100644 (file)
 #include "mux.h"
 #include "control.h"
 
+#define L3_MODULES_MAX_LEN 12
+
+static int __init omap3_l3_init(void)
+{
+       int l;
+       struct omap_hwmod *oh;
+       struct omap_device *od;
+       char oh_name[L3_MODULES_MAX_LEN];
+
+       /*
+        * To avoid code running on other OMAPs in
+        * multi-omap builds
+        */
+       if (!(cpu_is_omap34xx()))
+               return -ENODEV;
+
+       l = snprintf(oh_name, L3_MODULES_MAX_LEN, "l3_main");
+
+       oh = omap_hwmod_lookup(oh_name);
+
+       if (!oh)
+               pr_err("could not look up %s\n", oh_name);
+
+       od = omap_device_build("omap_l3_smx", 0, oh, NULL, 0,
+                                                          NULL, 0, 0);
+
+       WARN(IS_ERR(od), "could not build omap_device for %s\n", oh_name);
+
+       return PTR_ERR(od);
+}
+postcore_initcall(omap3_l3_init);
+
 #if defined(CONFIG_VIDEO_OMAP2) || defined(CONFIG_VIDEO_OMAP2_MODULE)
 
 static struct resource cam_resources[] = {