All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Aguirre Rodriguez, Sergio Alberto" <saaguirre@ti.com>
To: "linux-omap@vger.kernel.org" <linux-omap@vger.kernel.org>
Cc: "linux-media@vger.kernel.org" <linux-media@vger.kernel.org>,
	"video4linux-list@redhat.com" <video4linux-list@redhat.com>,
	Sakari Ailus <sakari.ailus@nokia.com>,
	"Tuukka.O Toivonen" <tuukka.o.toivonen@nokia.com>,
	"Nagalla, Hari" <hnagalla@ti.com>
Subject: [REVIEW PATCH 03/14] OMAP34XX: CAM: Resources fixes
Date: Mon, 12 Jan 2009 20:03:13 -0600	[thread overview]
Message-ID: <A24693684029E5489D1D202277BE894416429F99@dlee02.ent.ti.com> (raw)

This patch reassigns resources of a omap3isp platform device,
which is more adequate than the older one. This is needed for
using __raw_[readl,writel] calls after ioremapping the specified
platform resources in ISP driver.

Signed-off-by: Sergio Aguirre <saaguirre@ti.com>
---
 arch/arm/mach-omap2/devices.c              |   76 ++++++++++++++++++++++++++--
 arch/arm/plat-omap/include/mach/omap34xx.h |   53 +++++++++++++++++++-
 2 files changed, 123 insertions(+), 6 deletions(-)

diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c
index d7e848e..4617c8b 100644
--- a/arch/arm/mach-omap2/devices.c
+++ b/arch/arm/mach-omap2/devices.c
@@ -56,10 +56,68 @@ static inline void omap_init_camera(void)
 
 #elif defined(CONFIG_VIDEO_OMAP3) || defined(CONFIG_VIDEO_OMAP3_MODULE)
 
-static struct resource cam_resources[] = {
+static struct resource omap34xxcam_resources[] = {
+};
+
+static struct resource omap3isp_resources[] = {
+	{
+		.start		= OMAP3_ISP_BASE,
+		.end		= OMAP3_ISP_END,
+		.flags		= IORESOURCE_MEM,
+	},
+	{
+		.start		= OMAP3_ISP_CBUFF_BASE,
+		.end		= OMAP3_ISP_CBUFF_END,
+		.flags		= IORESOURCE_MEM,
+	},
+	{
+		.start		= OMAP3_ISP_CCP2_BASE,
+		.end		= OMAP3_ISP_CCP2_END,
+		.flags		= IORESOURCE_MEM,
+	},
+	{
+		.start		= OMAP3_ISP_CCDC_BASE,
+		.end		= OMAP3_ISP_CCDC_END,
+		.flags		= IORESOURCE_MEM,
+	},
+	{
+		.start		= OMAP3_ISP_HIST_BASE,
+		.end		= OMAP3_ISP_HIST_END,
+		.flags		= IORESOURCE_MEM,
+	},
+	{
+		.start		= OMAP3_ISP_H3A_BASE,
+		.end		= OMAP3_ISP_H3A_END,
+		.flags		= IORESOURCE_MEM,
+	},
 	{
-		.start		= OMAP34XX_CAMERA_BASE,
-		.end		= OMAP34XX_CAMERA_BASE + 0x1B70,
+		.start		= OMAP3_ISP_PREV_BASE,
+		.end		= OMAP3_ISP_PREV_END,
+		.flags		= IORESOURCE_MEM,
+	},
+	{
+		.start		= OMAP3_ISP_RESZ_BASE,
+		.end		= OMAP3_ISP_RESZ_END,
+		.flags		= IORESOURCE_MEM,
+	},
+	{
+		.start		= OMAP3_ISP_SBL_BASE,
+		.end		= OMAP3_ISP_SBL_END,
+		.flags		= IORESOURCE_MEM,
+	},
+	{
+		.start		= OMAP3_ISP_MMU_BASE,
+		.end		= OMAP3_ISP_MMU_END,
+		.flags		= IORESOURCE_MEM,
+	},
+	{
+		.start		= OMAP3_ISP_CSI2A_BASE,
+		.end		= OMAP3_ISP_CSI2A_END,
+		.flags		= IORESOURCE_MEM,
+	},
+	{
+		.start		= OMAP3_ISP_CSI2PHY_BASE,
+		.end		= OMAP3_ISP_CSI2PHY_END,
 		.flags		= IORESOURCE_MEM,
 	},
 	{
@@ -71,13 +129,21 @@ static struct resource cam_resources[] = {
 static struct platform_device omap_cam_device = {
 	.name		= "omap34xxcam",
 	.id		= -1,
-	.num_resources	= ARRAY_SIZE(cam_resources),
-	.resource	= cam_resources,
+	.num_resources	= ARRAY_SIZE(omap34xxcam_resources),
+	.resource	= omap34xxcam_resources,
+};
+
+static struct platform_device omap_isp_device = {
+	.name		= "omap3isp",
+	.id		= -1,
+	.num_resources	= ARRAY_SIZE(omap3isp_resources),
+	.resource	= omap3isp_resources,
 };
 
 static inline void omap_init_camera(void)
 {
 	platform_device_register(&omap_cam_device);
+	platform_device_register(&omap_isp_device);
 }
 #else
 static inline void omap_init_camera(void)
diff --git a/arch/arm/plat-omap/include/mach/omap34xx.h b/arch/arm/plat-omap/include/mach/omap34xx.h
index 27a1e45..d19c423 100644
--- a/arch/arm/plat-omap/include/mach/omap34xx.h
+++ b/arch/arm/plat-omap/include/mach/omap34xx.h
@@ -56,7 +56,32 @@
 #define OMAP34XX_SR1_BASE	0x480C9000
 #define OMAP34XX_SR2_BASE	0x480CB000
 
-#define OMAP34XX_CAMERA_BASE		(L4_34XX_BASE + 0xBC000)
+#define OMAP3430_ISP_BASE		(L4_34XX_BASE + 0xBC000)
+#define OMAP3430_ISP_CBUFF_BASE		(OMAP3430_ISP_BASE + 0x0100)
+#define OMAP3430_ISP_CCP2_BASE		(OMAP3430_ISP_BASE + 0x0400)
+#define OMAP3430_ISP_CCDC_BASE		(OMAP3430_ISP_BASE + 0x0600)
+#define OMAP3430_ISP_HIST_BASE		(OMAP3430_ISP_BASE + 0x0A00)
+#define OMAP3430_ISP_H3A_BASE		(OMAP3430_ISP_BASE + 0x0C00)
+#define OMAP3430_ISP_PREV_BASE		(OMAP3430_ISP_BASE + 0x0E00)
+#define OMAP3430_ISP_RESZ_BASE		(OMAP3430_ISP_BASE + 0x1000)
+#define OMAP3430_ISP_SBL_BASE		(OMAP3430_ISP_BASE + 0x1200)
+#define OMAP3430_ISP_MMU_BASE		(OMAP3430_ISP_BASE + 0x1400)
+#define OMAP3430_ISP_CSI2A_BASE		(OMAP3430_ISP_BASE + 0x1800)
+#define OMAP3430_ISP_CSI2PHY_BASE	(OMAP3430_ISP_BASE + 0x1970)
+
+#define OMAP3430_ISP_END		(OMAP3430_ISP_BASE         + 0x06F)
+#define OMAP3430_ISP_CBUFF_END		(OMAP3430_ISP_CBUFF_BASE   + 0x077)
+#define OMAP3430_ISP_CCP2_END		(OMAP3430_ISP_CCP2_BASE    + 0x1EF)
+#define OMAP3430_ISP_CCDC_END		(OMAP3430_ISP_CCDC_BASE    + 0x0A7)
+#define OMAP3430_ISP_HIST_END		(OMAP3430_ISP_HIST_BASE    + 0x047)
+#define OMAP3430_ISP_H3A_END		(OMAP3430_ISP_H3A_BASE     + 0x05F)
+#define OMAP3430_ISP_PREV_END		(OMAP3430_ISP_PREV_BASE    + 0x09F)
+#define OMAP3430_ISP_RESZ_END		(OMAP3430_ISP_RESZ_BASE    + 0x0AB)
+#define OMAP3430_ISP_SBL_END		(OMAP3430_ISP_SBL_BASE     + 0x0FB)
+#define OMAP3430_ISP_MMU_END		(OMAP3430_ISP_MMU_BASE     + 0x06F)
+#define OMAP3430_ISP_CSI2A_END		(OMAP3430_ISP_CSI2A_BASE   + 0x16F)
+#define OMAP3430_ISP_CSI2PHY_END	(OMAP3430_ISP_CSI2PHY_BASE + 0x007)
+
 #define OMAP34XX_MAILBOX_BASE		(L4_34XX_BASE + 0x94000)
 
 
@@ -67,6 +92,32 @@
 #define OMAP2_PRM_BASE			OMAP3430_PRM_BASE
 #define OMAP2_VA_IC_BASE		IO_ADDRESS(OMAP34XX_IC_BASE)
 
+#define OMAP3_ISP_BASE			OMAP3430_ISP_BASE
+#define OMAP3_ISP_CBUFF_BASE		OMAP3430_ISP_CBUFF_BASE
+#define OMAP3_ISP_CCP2_BASE		OMAP3430_ISP_CCP2_BASE
+#define OMAP3_ISP_CCDC_BASE		OMAP3430_ISP_CCDC_BASE
+#define OMAP3_ISP_HIST_BASE		OMAP3430_ISP_HIST_BASE
+#define OMAP3_ISP_H3A_BASE		OMAP3430_ISP_H3A_BASE
+#define OMAP3_ISP_PREV_BASE		OMAP3430_ISP_PREV_BASE
+#define OMAP3_ISP_RESZ_BASE		OMAP3430_ISP_RESZ_BASE
+#define OMAP3_ISP_SBL_BASE		OMAP3430_ISP_SBL_BASE
+#define OMAP3_ISP_MMU_BASE		OMAP3430_ISP_MMU_BASE
+#define OMAP3_ISP_CSI2A_BASE		OMAP3430_ISP_CSI2A_BASE
+#define OMAP3_ISP_CSI2PHY_BASE		OMAP3430_ISP_CSI2PHY_BASE
+
+#define OMAP3_ISP_END			OMAP3430_ISP_END
+#define OMAP3_ISP_CBUFF_END		OMAP3430_ISP_CBUFF_END
+#define OMAP3_ISP_CCP2_END		OMAP3430_ISP_CCP2_END
+#define OMAP3_ISP_CCDC_END		OMAP3430_ISP_CCDC_END
+#define OMAP3_ISP_HIST_END		OMAP3430_ISP_HIST_END
+#define OMAP3_ISP_H3A_END		OMAP3430_ISP_H3A_END
+#define OMAP3_ISP_PREV_END		OMAP3430_ISP_PREV_END
+#define OMAP3_ISP_RESZ_END		OMAP3430_ISP_RESZ_END
+#define OMAP3_ISP_SBL_END		OMAP3430_ISP_SBL_END
+#define OMAP3_ISP_MMU_END		OMAP3430_ISP_MMU_END
+#define OMAP3_ISP_CSI2A_END		OMAP3430_ISP_CSI2A_END
+#define OMAP3_ISP_CSI2PHY_END		OMAP3430_ISP_CSI2PHY_END
+
 #endif
 
 #define OMAP34XX_DSP_BASE	0x58000000
-- 
1.5.6.5


                 reply	other threads:[~2009-01-13  2:03 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=A24693684029E5489D1D202277BE894416429F99@dlee02.ent.ti.com \
    --to=saaguirre@ti.com \
    --cc=hnagalla@ti.com \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=sakari.ailus@nokia.com \
    --cc=tuukka.o.toivonen@nokia.com \
    --cc=video4linux-list@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.