All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Varadarajan, Charulatha" <charu@ti.com>
To: tony@atomide.com, wim@iguana.be, linux-watchdog@vger.kernel.org
Cc: khilman@deeprootsystems.com, paul@pwsan.com, b-cousson@ti.com,
	rnayak@ti.com, p-basak2@ti.com, linux-omap@vger.kernel.org,
	"Varadarajan, Charulatha" <charu@ti.com>
Subject: [PATCH v5 5/6] OMAP2PLUS: WDT: use omap_device_build for device registration
Date: Wed, 15 Sep 2010 10:56:42 +0530	[thread overview]
Message-ID: <1284528403-6494-6-git-send-email-charu@ti.com> (raw)
In-Reply-To: <1284528403-6494-1-git-send-email-charu@ti.com>

Use omap_device_build API instead of platform_device_register for
watchdog timer device registration.

For OMAP2PLUS chips, the device specific data defined in centralized
hwmod database will be used.

Signed-off-by: Charulatha V <charu@ti.com>
---
 arch/arm/plat-omap/devices.c |   64 ++++++++++++++++++++++++++++-------------
 1 files changed, 44 insertions(+), 20 deletions(-)

diff --git a/arch/arm/plat-omap/devices.c b/arch/arm/plat-omap/devices.c
index d1920be..6885f4f 100644
--- a/arch/arm/plat-omap/devices.c
+++ b/arch/arm/plat-omap/devices.c
@@ -15,6 +15,7 @@
 #include <linux/platform_device.h>
 #include <linux/io.h>
 #include <linux/slab.h>
+#include <linux/err.h>
 
 #include <mach/hardware.h>
 #include <asm/mach-types.h>
@@ -28,6 +29,8 @@
 #include <plat/menelaus.h>
 #include <plat/mcbsp.h>
 #include <plat/omap44xx.h>
+#include <plat/omap_hwmod.h>
+#include <plat/omap_device.h>
 
 /*-------------------------------------------------------------------------*/
 
@@ -236,37 +239,58 @@ static inline void omap_init_uwire(void) {}
 
 #if	defined(CONFIG_OMAP_WATCHDOG) || defined(CONFIG_OMAP_WATCHDOG_MODULE)
 
-static struct resource wdt_resources[] = {
+struct omap_device_pm_latency omap2_wdt_latency[] = {
+	[0] = {
+		.deactivate_func = omap_device_idle_hwmods,
+		.activate_func   = omap_device_enable_hwmods,
+		.flags		 = OMAP_DEVICE_LATENCY_AUTO_ADJUST,
+	},
+};
+
+static void omap2_init_wdt(void)
+{
+	int id = -1;
+	struct omap_device *od;
+	struct omap_hwmod *oh;
+	char *oh_name = "wd_timer2";
+	char *name = "omap_wdt";
+
+	oh = omap_hwmod_lookup(oh_name);
+	if (!oh) {
+		pr_err("Could not look up %s\n", oh_name);
+		return;
+	}
+
+	od = omap_device_build(name, id, oh, NULL, 0,
+				omap2_wdt_latency,
+				ARRAY_SIZE(omap2_wdt_latency), 0);
+	WARN(IS_ERR(od), "Cant build omap_device for %s:%s.\n",
+				name, oh->name);
+	return;
+}
+
+static struct resource omap1_wdt_resources[] = {
 	{
+		.start		= 0xfffeb000,
+		.end		= 0xfffeb07F,
 		.flags		= IORESOURCE_MEM,
 	},
 };
 
-static struct platform_device omap_wdt_device = {
+static struct platform_device omap1_wdt_device = {
 	.name	   = "omap_wdt",
 	.id	     = -1,
-	.num_resources	= ARRAY_SIZE(wdt_resources),
-	.resource	= wdt_resources,
+	.num_resources	= ARRAY_SIZE(omap1_wdt_resources),
+	.resource	= omap1_wdt_resources,
 };
 
 static void omap_init_wdt(void)
 {
-	if (cpu_is_omap16xx())
-		wdt_resources[0].start = 0xfffeb000;
-	else if (cpu_is_omap2420())
-		wdt_resources[0].start = 0x48022000; /* WDT2 */
-	else if (cpu_is_omap2430())
-		wdt_resources[0].start = 0x49016000; /* WDT2 */
-	else if (cpu_is_omap343x())
-		wdt_resources[0].start = 0x48314000; /* WDT2 */
-	else if (cpu_is_omap44xx())
-		wdt_resources[0].start = 0x4a314000;
-	else
-		return;
-
-	wdt_resources[0].end = wdt_resources[0].start + 0x4f;
-
-	(void) platform_device_register(&omap_wdt_device);
+	if (cpu_class_is_omap2())
+		omap2_init_wdt();
+	else if (cpu_is_omap16xx())
+		(void) platform_device_register(&omap1_wdt_device);
+	return;
 }
 #else
 static inline void omap_init_wdt(void) {}
-- 
1.7.0.4


  parent reply	other threads:[~2010-09-15  5:26 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-09-15  5:26 [PATCH v5 0/6] OMAP: WDT: Implement WDT in hwmod way Varadarajan, Charulatha
2010-09-15  5:26 ` [PATCH v5 1/6] OMAP3: hwmod data: Add watchdog timer Varadarajan, Charulatha
2010-09-15 21:26   ` Cousson, Benoit
2010-09-16 13:00     ` Varadarajan, Charulatha
2010-09-15  5:26 ` [PATCH v5 2/6] OMAP2420: " Varadarajan, Charulatha
2010-09-15  5:26 ` [PATCH v5 3/6] OMAP2430: " Varadarajan, Charulatha
2010-09-15  5:26 ` [PATCH v5 4/6] OMAP4: " Varadarajan, Charulatha
2010-09-15 21:18   ` Cousson, Benoit
2010-09-17  9:23     ` Varadarajan, Charulatha
2010-09-17  9:55       ` Cousson, Benoit
2010-09-17  9:56         ` Varadarajan, Charulatha
2010-09-17 14:27         ` Kevin Hilman
2010-09-17 14:33           ` Cousson, Benoit
2010-09-17 15:18             ` Kevin Hilman
2010-09-15 21:35   ` Cousson, Benoit
2010-09-16 13:02     ` Varadarajan, Charulatha
2010-09-15  5:26 ` Varadarajan, Charulatha [this message]
2010-09-15 17:52   ` [PATCH v5 5/6] OMAP2PLUS: WDT: use omap_device_build for device registration Tony Lindgren
2010-09-16 13:05     ` Varadarajan, Charulatha
2010-09-15  5:26 ` [PATCH v5 6/6] OMAP: WDT: Use PM runtime APIs instead of clk FW APIs Varadarajan, Charulatha
2010-09-15 14:45   ` Kevin Hilman
2010-09-15 14:45     ` Kevin Hilman
2010-09-15 17:55     ` Tony Lindgren
2010-09-15 19:31       ` Kevin Hilman
2010-09-15 19:31         ` Kevin Hilman
2010-09-15 18:40   ` Wim Van Sebroeck
2010-09-15 21:41   ` Cousson, Benoit
2010-09-16 13:37     ` Varadarajan, Charulatha
2010-09-16 13:57       ` Cousson, Benoit

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=1284528403-6494-6-git-send-email-charu@ti.com \
    --to=charu@ti.com \
    --cc=b-cousson@ti.com \
    --cc=khilman@deeprootsystems.com \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux-watchdog@vger.kernel.org \
    --cc=p-basak2@ti.com \
    --cc=paul@pwsan.com \
    --cc=rnayak@ti.com \
    --cc=tony@atomide.com \
    --cc=wim@iguana.be \
    /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.