|
@@ -37,6 +37,7 @@
|
|
|
#include "control.h"
|
|
|
|
|
|
#define L3_MODULES_MAX_LEN 12
|
|
|
+#define L3_MODULES 3
|
|
|
|
|
|
static int __init omap3_l3_init(void)
|
|
|
{
|
|
@@ -68,6 +69,37 @@ static int __init omap3_l3_init(void)
|
|
|
}
|
|
|
postcore_initcall(omap3_l3_init);
|
|
|
|
|
|
+static int __init omap4_l3_init(void)
|
|
|
+{
|
|
|
+ int l, i;
|
|
|
+ struct omap_hwmod *oh[3];
|
|
|
+ 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_omap44xx()))
|
|
|
+ return -ENODEV;
|
|
|
+
|
|
|
+ for (i = 0; i < L3_MODULES; i++) {
|
|
|
+ l = snprintf(oh_name, L3_MODULES_MAX_LEN, "l3_main_%d", i+1);
|
|
|
+
|
|
|
+ oh[i] = omap_hwmod_lookup(oh_name);
|
|
|
+ if (!(oh[i]))
|
|
|
+ pr_err("could not look up %s\n", oh_name);
|
|
|
+ }
|
|
|
+
|
|
|
+ od = omap_device_build_ss("omap_l3_noc", 0, oh, 3, 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(omap4_l3_init);
|
|
|
+
|
|
|
#if defined(CONFIG_VIDEO_OMAP2) || defined(CONFIG_VIDEO_OMAP2_MODULE)
|
|
|
|
|
|
static struct resource cam_resources[] = {
|