All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/2] watchdog:OMAP3:Add support for IVA2, SECURE WDTs
@ 2009-06-16 14:24 Ulrik Bech Hald
  2009-06-16 14:24 ` [PATCH v3 1/2] watchdog:OMAP3:Register IVA and SECURE WDT, make clks accessible Ulrik Bech Hald
  0 siblings, 1 reply; 6+ messages in thread
From: Ulrik Bech Hald @ 2009-06-16 14:24 UTC (permalink / raw)
  To: linux-omap; +Cc: Ulrik Bech Hald

This patch series enables support for IVA2 and SECURE
WDTs, available on omap34xx.
The WDTs will be accessible (when present on device) through:
MPU:	/dev/watchdog
SECURE:	/dev/watchdog_secure
IVA:	/dev/watchdog_iva2

Tested on Zoom1 OMAP3 platform
Signed-off-by: Ulrik Bech Hald <ubh@ti.com>
--- 
This patch set has a dependency on:
compilation: [PATCH 1/2] OMAP2/3: SoC IDs: add omap_type() for determining GP/EMU/HS
runtime: [PATCH 1/1] watchdog: OMAP fixes: enable clock in probe, trigger timer reload

 arch/arm/mach-omap2/clock34xx.c |   12 ++---
 arch/arm/plat-omap/devices.c    |   81 ++++++++++++++++++++++++++++++++--------
 drivers/watchdog/omap_wdt.c     |   51 +++++++++++++++++++++----
 3 files changed, 114 insertions(+), 30 deletions(-)




^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH v3 1/2] watchdog:OMAP3:Register IVA and SECURE WDT, make clks accessible
  2009-06-16 14:24 [PATCH v3 0/2] watchdog:OMAP3:Add support for IVA2, SECURE WDTs Ulrik Bech Hald
@ 2009-06-16 14:24 ` Ulrik Bech Hald
  2009-06-16 14:24   ` [PATCH v3 2/2] watchdog:OMAP3:Enable support for IVA2 and SECURE Ulrik Bech Hald
  2009-06-17 13:48   ` [PATCH v3 1/2] watchdog:OMAP3:Register IVA and SECURE WDT, make clks accessible Tony Lindgren
  0 siblings, 2 replies; 6+ messages in thread
From: Ulrik Bech Hald @ 2009-06-16 14:24 UTC (permalink / raw)
  To: linux-omap; +Cc: Ulrik Bech Hald

Enabling registration of IVA and SECURE WDT devices. Making
ick and fck for IVA and SECURE WDTs accessible.

Tested on Zoom1 OMAP3 platform
Signed-off-by: Ulrik Bech Hald <ubh@ti.com>
---
This patch has a dependency on:
compilation: PATCH 1/2] OMAP2/3: SoC IDs: add omap_type() for determining GP/EMU/HS

 arch/arm/mach-omap2/clock34xx.c |   12 +++---
 arch/arm/plat-omap/devices.c    |   81 +++++++++++++++++++++++++++++++--------
 2 files changed, 71 insertions(+), 22 deletions(-)

diff --git a/arch/arm/mach-omap2/clock34xx.c b/arch/arm/mach-omap2/clock34xx.c
index 9e43fe5..933ae9e 100644
--- a/arch/arm/mach-omap2/clock34xx.c
+++ b/arch/arm/mach-omap2/clock34xx.c
@@ -215,11 +215,11 @@ static struct omap_clk omap34xx_clks[] = {
 	CLK(NULL,	"gpt1_fck",	&gpt1_fck,	CK_343X),
 	CLK(NULL,	"wkup_32k_fck",	&wkup_32k_fck,	CK_343X),
 	CLK(NULL,	"gpio1_dbck",	&gpio1_dbck,	CK_343X),
-	CLK("omap_wdt",	"fck",		&wdt2_fck,	CK_343X),
+	CLK("omap_wdt.2", "fck",	&wdt2_fck,	CK_343X),
 	CLK(NULL,	"wkup_l4_ick",	&wkup_l4_ick,	CK_343X),
 	CLK(NULL,	"usim_ick",	&usim_ick,	CK_3430ES2),
-	CLK("omap_wdt",	"ick",		&wdt2_ick,	CK_343X),
-	CLK(NULL,	"wdt1_ick",	&wdt1_ick,	CK_343X),
+	CLK("omap_wdt.2", "ick",	&wdt2_ick,	CK_343X),
+	CLK("omap_wdt.1", "ick",	&wdt1_ick,	CK_343X),
 	CLK(NULL,	"gpio1_ick",	&gpio1_ick,	CK_343X),
 	CLK(NULL,	"omap_32ksync_ick", &omap_32ksync_ick, CK_343X),
 	CLK(NULL,	"gpt12_ick",	&gpt12_ick,	CK_343X),
@@ -241,14 +241,14 @@ static struct omap_clk omap34xx_clks[] = {
 	CLK(NULL,	"gpio4_dbck",	&gpio4_dbck,	CK_343X),
 	CLK(NULL,	"gpio3_dbck",	&gpio3_dbck,	CK_343X),
 	CLK(NULL,	"gpio2_dbck",	&gpio2_dbck,	CK_343X),
-	CLK(NULL,	"wdt3_fck",	&wdt3_fck,	CK_343X),
+	CLK("omap_wdt.3", "fck",	&wdt3_fck,	CK_343X),
 	CLK(NULL,	"per_l4_ick",	&per_l4_ick,	CK_343X),
 	CLK(NULL,	"gpio6_ick",	&gpio6_ick,	CK_343X),
 	CLK(NULL,	"gpio5_ick",	&gpio5_ick,	CK_343X),
 	CLK(NULL,	"gpio4_ick",	&gpio4_ick,	CK_343X),
 	CLK(NULL,	"gpio3_ick",	&gpio3_ick,	CK_343X),
 	CLK(NULL,	"gpio2_ick",	&gpio2_ick,	CK_343X),
-	CLK(NULL,	"wdt3_ick",	&wdt3_ick,	CK_343X),
+	CLK("omap_wdt.3", "ick",	&wdt3_ick,	CK_343X),
 	CLK(NULL,	"uart3_ick",	&uart3_ick,	CK_343X),
 	CLK(NULL,	"gpt9_ick",	&gpt9_ick,	CK_343X),
 	CLK(NULL,	"gpt8_ick",	&gpt8_ick,	CK_343X),
@@ -275,7 +275,7 @@ static struct omap_clk omap34xx_clks[] = {
 	CLK(NULL,	"sr_l4_ick",	&sr_l4_ick,	CK_343X),
 	CLK(NULL,	"secure_32k_fck", &secure_32k_fck, CK_343X),
 	CLK(NULL,	"gpt12_fck",	&gpt12_fck,	CK_343X),
-	CLK(NULL,	"wdt1_fck",	&wdt1_fck,	CK_343X),
+	CLK("omap_wdt.1", "fck",	&wdt1_fck,	CK_343X),
 };
 
 /* CM_AUTOIDLE_PLL*.AUTO_* bit values */
diff --git a/arch/arm/plat-omap/devices.c b/arch/arm/plat-omap/devices.c
old mode 100644
new mode 100755
index a64b692..de5182c
--- a/arch/arm/plat-omap/devices.c
+++ b/arch/arm/plat-omap/devices.c
@@ -288,42 +288,91 @@ static inline void omap_init_uwire(void) {}
 
 #if	defined(CONFIG_OMAP_WATCHDOG) || defined(CONFIG_OMAP_WATCHDOG_MODULE)
 
-static struct resource wdt_resources[] = {
+#define	OMAP34XX_WDT1_BASE	0x4830c000
+#define	OMAP34XX_WDT2_BASE	0x48314000
+#define	OMAP34XX_WDT3_BASE	0x49030000
+#define	OMAP2430_WDT_BASE	0x49016000
+#define	OMAP2420_WDT_BASE	0x48022000
+#define	OMAP16XX_WDT_BASE	0xfffeb000
+
+static struct resource wdt1_resources[] = {
 	{
-		.flags		= IORESOURCE_MEM,
+		.flags = IORESOURCE_MEM,
 	},
 };
 
-static struct platform_device omap_wdt_device = {
-	.name	   = "omap_wdt",
-	.id	     = -1,
-	.num_resources	= ARRAY_SIZE(wdt_resources),
-	.resource	= wdt_resources,
+static struct resource wdt2_resources[] = {
+	{
+		.flags = IORESOURCE_MEM,
+	},
+};
+
+static struct resource wdt3_resources[] = {
+	{
+		.flags = IORESOURCE_MEM,
+	},
+};
+
+/* SECURE WDT */
+static struct platform_device omap_wdt1_device = {
+	.name = "omap_wdt",
+	.id = 1,
+	.num_resources = ARRAY_SIZE(wdt1_resources),
+	.resource = wdt1_resources,
+};
+
+/* MPU WDT */
+static struct platform_device omap_wdt2_device = {
+	.name = "omap_wdt",
+	.id = 2,
+	.num_resources = ARRAY_SIZE(wdt2_resources),
+	.resource = wdt2_resources,
+};
+
+/* IVA WDT */
+static struct platform_device omap_wdt3_device = {
+	.name = "omap_wdt",
+	.id = 3,
+	.num_resources = ARRAY_SIZE(wdt3_resources),
+	.resource = wdt3_resources,
 };
 
 static void omap_init_wdt(void)
 {
 	if (cpu_is_omap16xx())
-		wdt_resources[0].start = 0xfffeb000;
+		wdt2_resources[0].start = OMAP16XX_WDT_BASE;
 	else if (cpu_is_omap2420())
-		wdt_resources[0].start = 0x48022000; /* WDT2 */
+		wdt2_resources[0].start = OMAP2420_WDT_BASE;
 	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;
+		wdt2_resources[0].start = OMAP2430_WDT_BASE;
+	else if (cpu_is_omap343x()) {
+		wdt1_resources[0].start = OMAP34XX_WDT1_BASE;
+		wdt1_resources[0].end = wdt1_resources[0].start + 0x4f;
+		wdt2_resources[0].start = OMAP34XX_WDT2_BASE;
+		wdt3_resources[0].start = OMAP34XX_WDT3_BASE;
+		wdt3_resources[0].end = wdt3_resources[0].start + 0x4f;
+	}
 	else
 		return;
 
-	wdt_resources[0].end = wdt_resources[0].start + 0x4f;
+	wdt2_resources[0].end = wdt2_resources[0].start + 0x4f;
 
-	(void) platform_device_register(&omap_wdt_device);
+	/* MPU WDT present across omap family */
+	(void) platform_device_register(&omap_wdt2_device);
+
+	if (cpu_is_omap34xx()) {
+		(void) platform_device_register(&omap_wdt3_device);
+		if (omap_type() == OMAP2_DEVICE_TYPE_SEC
+			|| omap_type() == OMAP2_DEVICE_TYPE_EMU)
+			(void) platform_device_register(&omap_wdt1_device);
+	}
 }
+
 #else
 static inline void omap_init_wdt(void) {}
 #endif
 
+
 /*-------------------------------------------------------------------------*/
 
 #if defined(CONFIG_HW_RANDOM_OMAP) || defined(CONFIG_HW_RANDOM_OMAP_MODULE)
-- 
1.5.4.3


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v3 2/2] watchdog:OMAP3:Enable support for IVA2 and SECURE
  2009-06-16 14:24 ` [PATCH v3 1/2] watchdog:OMAP3:Register IVA and SECURE WDT, make clks accessible Ulrik Bech Hald
@ 2009-06-16 14:24   ` Ulrik Bech Hald
  2009-06-17 13:48   ` [PATCH v3 1/2] watchdog:OMAP3:Register IVA and SECURE WDT, make clks accessible Tony Lindgren
  1 sibling, 0 replies; 6+ messages in thread
From: Ulrik Bech Hald @ 2009-06-16 14:24 UTC (permalink / raw)
  To: linux-omap; +Cc: Ulrik Bech Hald

This patch enables the IVA2 and SECURE WDTs in the omap_wdt
driver for omap34xx family. SECURE will be available as
/dev/watchdog_secure on HS/EMU devices and IVA2 will be available
as /dev/watchdog_iva2. MPU will still be available as /dev/watchdog

Tested on Zoom1 OMAP3 platform
Signed-off-by: Ulrik Bech Hald <ubh@ti.com>
---
This patch has a dependency on:
runtime: [PATCH 1/1] watchdog: OMAP fixes: enable clock in probe, trigger timer reload

 drivers/watchdog/omap_wdt.c |   51 ++++++++++++++++++++++++++++++++++++------
 1 files changed, 43 insertions(+), 8 deletions(-)

diff --git a/drivers/watchdog/omap_wdt.c b/drivers/watchdog/omap_wdt.c
index f271385..85a92de 100644
--- a/drivers/watchdog/omap_wdt.c
+++ b/drivers/watchdog/omap_wdt.c
@@ -47,7 +47,15 @@
 
 #include "omap_wdt.h"
 
-static struct platform_device *omap_wdt_dev;
+#define NUM_WDTS	3
+
+enum {
+	SECURE_WDT = 1,
+	MPU_WDT,
+	IVA2_WDT,
+};
+
+static struct platform_device *omap_wdt_dev[NUM_WDTS];
 
 static unsigned timer_margin;
 module_param(timer_margin, uint, 0);
@@ -139,8 +147,23 @@ static void omap_wdt_set_timeout(struct omap_wdt_dev *wdev)
  */
 static int omap_wdt_open(struct inode *inode, struct file *file)
 {
-	struct omap_wdt_dev *wdev = platform_get_drvdata(omap_wdt_dev);
-	void __iomem *base = wdev->base;
+	struct omap_wdt_dev *wdev;
+	void __iomem *base;
+
+	/* by default MPU wdt is present across omap family */
+	wdev = platform_get_drvdata(omap_wdt_dev[1]);
+
+	/* Find match between device node and wdt device */
+	int i;
+	for (i = 0; i < NUM_WDTS; i++) {
+		if (omap_wdt_dev[i]) {
+			wdev = platform_get_drvdata(omap_wdt_dev[i]);
+			if (iminor(inode) == wdev->omap_wdt_miscdev.minor)
+				break;
+		}
+	}
+
+	base = wdev->base;
 
 	if (test_and_set_bit(1, (unsigned long *)&(wdev->omap_wdt_users)))
 		return -EBUSY;
@@ -271,7 +294,7 @@ static int __devinit omap_wdt_probe(struct platform_device *pdev)
 		goto err_get_resource;
 	}
 
-	if (omap_wdt_dev) {
+	if (omap_wdt_dev[pdev->id-1]) {
 		ret = -EBUSY;
 		goto err_busy;
 	}
@@ -317,10 +340,21 @@ static int __devinit omap_wdt_probe(struct platform_device *pdev)
 	omap_wdt_adjust_timeout(timer_margin);
 
 	wdev->omap_wdt_miscdev.parent = &pdev->dev;
-	wdev->omap_wdt_miscdev.minor = WATCHDOG_MINOR;
-	wdev->omap_wdt_miscdev.name = "watchdog";
+	wdev->omap_wdt_miscdev.minor = MISC_DYNAMIC_MINOR;
 	wdev->omap_wdt_miscdev.fops = &omap_wdt_fops;
 
+	switch (pdev->id) {
+	case SECURE_WDT:
+		wdev->omap_wdt_miscdev.name = "watchdog_secure";
+		break;
+	case IVA2_WDT:
+		wdev->omap_wdt_miscdev.name = "watchdog_iva2";
+		break;
+	case MPU_WDT:
+	default:
+		wdev->omap_wdt_miscdev.name = "watchdog";
+	}
+
 	ret = misc_register(&(wdev->omap_wdt_miscdev));
 	if (ret)
 		goto err_misc;
@@ -332,7 +366,8 @@ static int __devinit omap_wdt_probe(struct platform_device *pdev)
 	/* autogate OCP interface clock */
 	__raw_writel(0x01, wdev->base + OMAP_WATCHDOG_SYS_CONFIG);
 
-	omap_wdt_dev = pdev;
+	/* keep track of the wdt platform devices in local device array */
+	omap_wdt_dev[pdev->id - 1] = pdev;
 
 	return 0;
 
@@ -384,7 +419,7 @@ static int __devexit omap_wdt_remove(struct platform_device *pdev)
 	iounmap(wdev->base);
 
 	kfree(wdev);
-	omap_wdt_dev = NULL;
+	omap_wdt_dev[pdev->id-1] = NULL;
 
 	return 0;
 }
-- 
1.5.4.3


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v3 1/2] watchdog:OMAP3:Register IVA and SECURE WDT, make clks accessible
  2009-06-16 14:24 ` [PATCH v3 1/2] watchdog:OMAP3:Register IVA and SECURE WDT, make clks accessible Ulrik Bech Hald
  2009-06-16 14:24   ` [PATCH v3 2/2] watchdog:OMAP3:Enable support for IVA2 and SECURE Ulrik Bech Hald
@ 2009-06-17 13:48   ` Tony Lindgren
  2009-06-17 14:51     ` Hald, Ulrik Bech
  1 sibling, 1 reply; 6+ messages in thread
From: Tony Lindgren @ 2009-06-17 13:48 UTC (permalink / raw)
  To: Ulrik Bech Hald; +Cc: linux-omap

Hi,

* Ulrik Bech Hald <ubh@ti.com> [090616 07:20]:
> Enabling registration of IVA and SECURE WDT devices. Making
> ick and fck for IVA and SECURE WDTs accessible.
> 
> Tested on Zoom1 OMAP3 platform
> Signed-off-by: Ulrik Bech Hald <ubh@ti.com>
> ---
> This patch has a dependency on:
> compilation: PATCH 1/2] OMAP2/3: SoC IDs: add omap_type() for determining GP/EMU/HS
> 
>  arch/arm/mach-omap2/clock34xx.c |   12 +++---
>  arch/arm/plat-omap/devices.c    |   81 +++++++++++++++++++++++++++++++--------
>  2 files changed, 71 insertions(+), 22 deletions(-)
> 
> diff --git a/arch/arm/mach-omap2/clock34xx.c b/arch/arm/mach-omap2/clock34xx.c
> index 9e43fe5..933ae9e 100644
> --- a/arch/arm/mach-omap2/clock34xx.c
> +++ b/arch/arm/mach-omap2/clock34xx.c
> @@ -215,11 +215,11 @@ static struct omap_clk omap34xx_clks[] = {
>  	CLK(NULL,	"gpt1_fck",	&gpt1_fck,	CK_343X),
>  	CLK(NULL,	"wkup_32k_fck",	&wkup_32k_fck,	CK_343X),
>  	CLK(NULL,	"gpio1_dbck",	&gpio1_dbck,	CK_343X),
> -	CLK("omap_wdt",	"fck",		&wdt2_fck,	CK_343X),
> +	CLK("omap_wdt.2", "fck",	&wdt2_fck,	CK_343X),
>  	CLK(NULL,	"wkup_l4_ick",	&wkup_l4_ick,	CK_343X),
>  	CLK(NULL,	"usim_ick",	&usim_ick,	CK_3430ES2),
> -	CLK("omap_wdt",	"ick",		&wdt2_ick,	CK_343X),
> -	CLK(NULL,	"wdt1_ick",	&wdt1_ick,	CK_343X),
> +	CLK("omap_wdt.2", "ick",	&wdt2_ick,	CK_343X),
> +	CLK("omap_wdt.1", "ick",	&wdt1_ick,	CK_343X),
>  	CLK(NULL,	"gpio1_ick",	&gpio1_ick,	CK_343X),
>  	CLK(NULL,	"omap_32ksync_ick", &omap_32ksync_ick, CK_343X),
>  	CLK(NULL,	"gpt12_ick",	&gpt12_ick,	CK_343X),
> @@ -241,14 +241,14 @@ static struct omap_clk omap34xx_clks[] = {
>  	CLK(NULL,	"gpio4_dbck",	&gpio4_dbck,	CK_343X),
>  	CLK(NULL,	"gpio3_dbck",	&gpio3_dbck,	CK_343X),
>  	CLK(NULL,	"gpio2_dbck",	&gpio2_dbck,	CK_343X),
> -	CLK(NULL,	"wdt3_fck",	&wdt3_fck,	CK_343X),
> +	CLK("omap_wdt.3", "fck",	&wdt3_fck,	CK_343X),
>  	CLK(NULL,	"per_l4_ick",	&per_l4_ick,	CK_343X),
>  	CLK(NULL,	"gpio6_ick",	&gpio6_ick,	CK_343X),
>  	CLK(NULL,	"gpio5_ick",	&gpio5_ick,	CK_343X),
>  	CLK(NULL,	"gpio4_ick",	&gpio4_ick,	CK_343X),
>  	CLK(NULL,	"gpio3_ick",	&gpio3_ick,	CK_343X),
>  	CLK(NULL,	"gpio2_ick",	&gpio2_ick,	CK_343X),
> -	CLK(NULL,	"wdt3_ick",	&wdt3_ick,	CK_343X),
> +	CLK("omap_wdt.3", "ick",	&wdt3_ick,	CK_343X),
>  	CLK(NULL,	"uart3_ick",	&uart3_ick,	CK_343X),
>  	CLK(NULL,	"gpt9_ick",	&gpt9_ick,	CK_343X),
>  	CLK(NULL,	"gpt8_ick",	&gpt8_ick,	CK_343X),
> @@ -275,7 +275,7 @@ static struct omap_clk omap34xx_clks[] = {
>  	CLK(NULL,	"sr_l4_ick",	&sr_l4_ick,	CK_343X),
>  	CLK(NULL,	"secure_32k_fck", &secure_32k_fck, CK_343X),
>  	CLK(NULL,	"gpt12_fck",	&gpt12_fck,	CK_343X),
> -	CLK(NULL,	"wdt1_fck",	&wdt1_fck,	CK_343X),
> +	CLK("omap_wdt.1", "fck",	&wdt1_fck,	CK_343X),
>  };
>  
>  /* CM_AUTOIDLE_PLL*.AUTO_* bit values */

To me it looks like you need to make the omap_wdt clock alias rename
change also for mach-omap1/clock.c.

Regards,

Tony


> diff --git a/arch/arm/plat-omap/devices.c b/arch/arm/plat-omap/devices.c
> old mode 100644
> new mode 100755
> index a64b692..de5182c
> --- a/arch/arm/plat-omap/devices.c
> +++ b/arch/arm/plat-omap/devices.c
> @@ -288,42 +288,91 @@ static inline void omap_init_uwire(void) {}
>  
>  #if	defined(CONFIG_OMAP_WATCHDOG) || defined(CONFIG_OMAP_WATCHDOG_MODULE)
>  
> -static struct resource wdt_resources[] = {
> +#define	OMAP34XX_WDT1_BASE	0x4830c000
> +#define	OMAP34XX_WDT2_BASE	0x48314000
> +#define	OMAP34XX_WDT3_BASE	0x49030000
> +#define	OMAP2430_WDT_BASE	0x49016000
> +#define	OMAP2420_WDT_BASE	0x48022000
> +#define	OMAP16XX_WDT_BASE	0xfffeb000
> +
> +static struct resource wdt1_resources[] = {
>  	{
> -		.flags		= IORESOURCE_MEM,
> +		.flags = IORESOURCE_MEM,
>  	},
>  };
>  
> -static struct platform_device omap_wdt_device = {
> -	.name	   = "omap_wdt",
> -	.id	     = -1,
> -	.num_resources	= ARRAY_SIZE(wdt_resources),
> -	.resource	= wdt_resources,
> +static struct resource wdt2_resources[] = {
> +	{
> +		.flags = IORESOURCE_MEM,
> +	},
> +};
> +
> +static struct resource wdt3_resources[] = {
> +	{
> +		.flags = IORESOURCE_MEM,
> +	},
> +};
> +
> +/* SECURE WDT */
> +static struct platform_device omap_wdt1_device = {
> +	.name = "omap_wdt",
> +	.id = 1,
> +	.num_resources = ARRAY_SIZE(wdt1_resources),
> +	.resource = wdt1_resources,
> +};
> +
> +/* MPU WDT */
> +static struct platform_device omap_wdt2_device = {
> +	.name = "omap_wdt",
> +	.id = 2,
> +	.num_resources = ARRAY_SIZE(wdt2_resources),
> +	.resource = wdt2_resources,
> +};
> +
> +/* IVA WDT */
> +static struct platform_device omap_wdt3_device = {
> +	.name = "omap_wdt",
> +	.id = 3,
> +	.num_resources = ARRAY_SIZE(wdt3_resources),
> +	.resource = wdt3_resources,
>  };
>  
>  static void omap_init_wdt(void)
>  {
>  	if (cpu_is_omap16xx())
> -		wdt_resources[0].start = 0xfffeb000;
> +		wdt2_resources[0].start = OMAP16XX_WDT_BASE;
>  	else if (cpu_is_omap2420())
> -		wdt_resources[0].start = 0x48022000; /* WDT2 */
> +		wdt2_resources[0].start = OMAP2420_WDT_BASE;
>  	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;
> +		wdt2_resources[0].start = OMAP2430_WDT_BASE;
> +	else if (cpu_is_omap343x()) {
> +		wdt1_resources[0].start = OMAP34XX_WDT1_BASE;
> +		wdt1_resources[0].end = wdt1_resources[0].start + 0x4f;
> +		wdt2_resources[0].start = OMAP34XX_WDT2_BASE;
> +		wdt3_resources[0].start = OMAP34XX_WDT3_BASE;
> +		wdt3_resources[0].end = wdt3_resources[0].start + 0x4f;
> +	}
>  	else
>  		return;
>  
> -	wdt_resources[0].end = wdt_resources[0].start + 0x4f;
> +	wdt2_resources[0].end = wdt2_resources[0].start + 0x4f;
>  
> -	(void) platform_device_register(&omap_wdt_device);
> +	/* MPU WDT present across omap family */
> +	(void) platform_device_register(&omap_wdt2_device);
> +
> +	if (cpu_is_omap34xx()) {
> +		(void) platform_device_register(&omap_wdt3_device);
> +		if (omap_type() == OMAP2_DEVICE_TYPE_SEC
> +			|| omap_type() == OMAP2_DEVICE_TYPE_EMU)
> +			(void) platform_device_register(&omap_wdt1_device);
> +	}
>  }
> +
>  #else
>  static inline void omap_init_wdt(void) {}
>  #endif
>  
> +
>  /*-------------------------------------------------------------------------*/
>  
>  #if defined(CONFIG_HW_RANDOM_OMAP) || defined(CONFIG_HW_RANDOM_OMAP_MODULE)
> -- 
> 1.5.4.3
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 6+ messages in thread

* RE: [PATCH v3 1/2] watchdog:OMAP3:Register IVA and SECURE WDT, make clks accessible
  2009-06-17 13:48   ` [PATCH v3 1/2] watchdog:OMAP3:Register IVA and SECURE WDT, make clks accessible Tony Lindgren
@ 2009-06-17 14:51     ` Hald, Ulrik Bech
  2009-06-17 14:54       ` Hald, Ulrik Bech
  0 siblings, 1 reply; 6+ messages in thread
From: Hald, Ulrik Bech @ 2009-06-17 14:51 UTC (permalink / raw)
  To: Tony Lindgren; +Cc: linux-omap

> -----Original Message-----
> From: Tony Lindgren [mailto:tony@atomide.com]
> Sent: Wednesday, June 17, 2009 8:48 AM
> To: Hald, Ulrik Bech
> Cc: linux-omap@vger.kernel.org
> Subject: Re: [PATCH v3 1/2] watchdog:OMAP3:Register IVA and SECURE WDT,
> make clks accessible
> 
> Hi,
> 
> * Ulrik Bech Hald <ubh@ti.com> [090616 07:20]:
> > Enabling registration of IVA and SECURE WDT devices. Making
> > ick and fck for IVA and SECURE WDTs accessible.
> >
> > Tested on Zoom1 OMAP3 platform
> > Signed-off-by: Ulrik Bech Hald <ubh@ti.com>
> > ---
> > This patch has a dependency on:
> > compilation: PATCH 1/2] OMAP2/3: SoC IDs: add omap_type() for
> determining GP/EMU/HS
> >
> >  arch/arm/mach-omap2/clock34xx.c |   12 +++---
> >  arch/arm/plat-omap/devices.c    |   81 +++++++++++++++++++++++++++++++-
> -------
> >  2 files changed, 71 insertions(+), 22 deletions(-)
> >
> > diff --git a/arch/arm/mach-omap2/clock34xx.c b/arch/arm/mach-
> omap2/clock34xx.c
> > index 9e43fe5..933ae9e 100644
> > --- a/arch/arm/mach-omap2/clock34xx.c
> > +++ b/arch/arm/mach-omap2/clock34xx.c
> > @@ -215,11 +215,11 @@ static struct omap_clk omap34xx_clks[] = {
> >  	CLK(NULL,	"gpt1_fck",	&gpt1_fck,	CK_343X),
> >  	CLK(NULL,	"wkup_32k_fck",	&wkup_32k_fck,	CK_343X),
> >  	CLK(NULL,	"gpio1_dbck",	&gpio1_dbck,	CK_343X),
> > -	CLK("omap_wdt",	"fck",		&wdt2_fck,	CK_343X),
> > +	CLK("omap_wdt.2", "fck",	&wdt2_fck,	CK_343X),
> >  	CLK(NULL,	"wkup_l4_ick",	&wkup_l4_ick,	CK_343X),
> >  	CLK(NULL,	"usim_ick",	&usim_ick,	CK_3430ES2),
> > -	CLK("omap_wdt",	"ick",		&wdt2_ick,	CK_343X),
> > -	CLK(NULL,	"wdt1_ick",	&wdt1_ick,	CK_343X),
> > +	CLK("omap_wdt.2", "ick",	&wdt2_ick,	CK_343X),
> > +	CLK("omap_wdt.1", "ick",	&wdt1_ick,	CK_343X),
> >  	CLK(NULL,	"gpio1_ick",	&gpio1_ick,	CK_343X),
> >  	CLK(NULL,	"omap_32ksync_ick", &omap_32ksync_ick, CK_343X),
> >  	CLK(NULL,	"gpt12_ick",	&gpt12_ick,	CK_343X),
> > @@ -241,14 +241,14 @@ static struct omap_clk omap34xx_clks[] = {
> >  	CLK(NULL,	"gpio4_dbck",	&gpio4_dbck,	CK_343X),
> >  	CLK(NULL,	"gpio3_dbck",	&gpio3_dbck,	CK_343X),
> >  	CLK(NULL,	"gpio2_dbck",	&gpio2_dbck,	CK_343X),
> > -	CLK(NULL,	"wdt3_fck",	&wdt3_fck,	CK_343X),
> > +	CLK("omap_wdt.3", "fck",	&wdt3_fck,	CK_343X),
> >  	CLK(NULL,	"per_l4_ick",	&per_l4_ick,	CK_343X),
> >  	CLK(NULL,	"gpio6_ick",	&gpio6_ick,	CK_343X),
> >  	CLK(NULL,	"gpio5_ick",	&gpio5_ick,	CK_343X),
> >  	CLK(NULL,	"gpio4_ick",	&gpio4_ick,	CK_343X),
> >  	CLK(NULL,	"gpio3_ick",	&gpio3_ick,	CK_343X),
> >  	CLK(NULL,	"gpio2_ick",	&gpio2_ick,	CK_343X),
> > -	CLK(NULL,	"wdt3_ick",	&wdt3_ick,	CK_343X),
> > +	CLK("omap_wdt.3", "ick",	&wdt3_ick,	CK_343X),
> >  	CLK(NULL,	"uart3_ick",	&uart3_ick,	CK_343X),
> >  	CLK(NULL,	"gpt9_ick",	&gpt9_ick,	CK_343X),
> >  	CLK(NULL,	"gpt8_ick",	&gpt8_ick,	CK_343X),
> > @@ -275,7 +275,7 @@ static struct omap_clk omap34xx_clks[] = {
> >  	CLK(NULL,	"sr_l4_ick",	&sr_l4_ick,	CK_343X),
> >  	CLK(NULL,	"secure_32k_fck", &secure_32k_fck, CK_343X),
> >  	CLK(NULL,	"gpt12_fck",	&gpt12_fck,	CK_343X),
> > -	CLK(NULL,	"wdt1_fck",	&wdt1_fck,	CK_343X),
> > +	CLK("omap_wdt.1", "fck",	&wdt1_fck,	CK_343X),
> >  };
> >
> >  /* CM_AUTOIDLE_PLL*.AUTO_* bit values */
> 
> To me it looks like you need to make the omap_wdt clock alias rename
> change also for mach-omap1/clock.c.
> 
> Regards,
> 
> Tony
> 

You're right, and it also looks like mach-omap2/clock24xx.c needs the alias rename to omap_wdt.1 as well.

Thanks for looking at it Tony. 

/Ulrik
> 
> > diff --git a/arch/arm/plat-omap/devices.c b/arch/arm/plat-omap/devices.c
> > old mode 100644
> > new mode 100755
> > index a64b692..de5182c
> > --- a/arch/arm/plat-omap/devices.c
> > +++ b/arch/arm/plat-omap/devices.c
> > @@ -288,42 +288,91 @@ static inline void omap_init_uwire(void) {}
> >
> >  #if	defined(CONFIG_OMAP_WATCHDOG) ||
> defined(CONFIG_OMAP_WATCHDOG_MODULE)
> >
> > -static struct resource wdt_resources[] = {
> > +#define	OMAP34XX_WDT1_BASE	0x4830c000
> > +#define	OMAP34XX_WDT2_BASE	0x48314000
> > +#define	OMAP34XX_WDT3_BASE	0x49030000
> > +#define	OMAP2430_WDT_BASE	0x49016000
> > +#define	OMAP2420_WDT_BASE	0x48022000
> > +#define	OMAP16XX_WDT_BASE	0xfffeb000
> > +
> > +static struct resource wdt1_resources[] = {
> >  	{
> > -		.flags		= IORESOURCE_MEM,
> > +		.flags = IORESOURCE_MEM,
> >  	},
> >  };
> >
> > -static struct platform_device omap_wdt_device = {
> > -	.name	   = "omap_wdt",
> > -	.id	     = -1,
> > -	.num_resources	= ARRAY_SIZE(wdt_resources),
> > -	.resource	= wdt_resources,
> > +static struct resource wdt2_resources[] = {
> > +	{
> > +		.flags = IORESOURCE_MEM,
> > +	},
> > +};
> > +
> > +static struct resource wdt3_resources[] = {
> > +	{
> > +		.flags = IORESOURCE_MEM,
> > +	},
> > +};
> > +
> > +/* SECURE WDT */
> > +static struct platform_device omap_wdt1_device = {
> > +	.name = "omap_wdt",
> > +	.id = 1,
> > +	.num_resources = ARRAY_SIZE(wdt1_resources),
> > +	.resource = wdt1_resources,
> > +};
> > +
> > +/* MPU WDT */
> > +static struct platform_device omap_wdt2_device = {
> > +	.name = "omap_wdt",
> > +	.id = 2,
> > +	.num_resources = ARRAY_SIZE(wdt2_resources),
> > +	.resource = wdt2_resources,
> > +};
> > +
> > +/* IVA WDT */
> > +static struct platform_device omap_wdt3_device = {
> > +	.name = "omap_wdt",
> > +	.id = 3,
> > +	.num_resources = ARRAY_SIZE(wdt3_resources),
> > +	.resource = wdt3_resources,
> >  };
> >
> >  static void omap_init_wdt(void)
> >  {
> >  	if (cpu_is_omap16xx())
> > -		wdt_resources[0].start = 0xfffeb000;
> > +		wdt2_resources[0].start = OMAP16XX_WDT_BASE;
> >  	else if (cpu_is_omap2420())
> > -		wdt_resources[0].start = 0x48022000; /* WDT2 */
> > +		wdt2_resources[0].start = OMAP2420_WDT_BASE;
> >  	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;
> > +		wdt2_resources[0].start = OMAP2430_WDT_BASE;
> > +	else if (cpu_is_omap343x()) {
> > +		wdt1_resources[0].start = OMAP34XX_WDT1_BASE;
> > +		wdt1_resources[0].end = wdt1_resources[0].start + 0x4f;
> > +		wdt2_resources[0].start = OMAP34XX_WDT2_BASE;
> > +		wdt3_resources[0].start = OMAP34XX_WDT3_BASE;
> > +		wdt3_resources[0].end = wdt3_resources[0].start + 0x4f;
> > +	}
> >  	else
> >  		return;
> >
> > -	wdt_resources[0].end = wdt_resources[0].start + 0x4f;
> > +	wdt2_resources[0].end = wdt2_resources[0].start + 0x4f;
> >
> > -	(void) platform_device_register(&omap_wdt_device);
> > +	/* MPU WDT present across omap family */
> > +	(void) platform_device_register(&omap_wdt2_device);
> > +
> > +	if (cpu_is_omap34xx()) {
> > +		(void) platform_device_register(&omap_wdt3_device);
> > +		if (omap_type() == OMAP2_DEVICE_TYPE_SEC
> > +			|| omap_type() == OMAP2_DEVICE_TYPE_EMU)
> > +			(void) platform_device_register(&omap_wdt1_device);
> > +	}
> >  }
> > +
> >  #else
> >  static inline void omap_init_wdt(void) {}
> >  #endif
> >
> > +
> >  /*---------------------------------------------------------------------
> ----*/
> >
> >  #if defined(CONFIG_HW_RANDOM_OMAP) ||
> defined(CONFIG_HW_RANDOM_OMAP_MODULE)
> > --
> > 1.5.4.3
> >
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html


^ permalink raw reply	[flat|nested] 6+ messages in thread

* RE: [PATCH v3 1/2] watchdog:OMAP3:Register IVA and SECURE WDT, make clks accessible
  2009-06-17 14:51     ` Hald, Ulrik Bech
@ 2009-06-17 14:54       ` Hald, Ulrik Bech
  0 siblings, 0 replies; 6+ messages in thread
From: Hald, Ulrik Bech @ 2009-06-17 14:54 UTC (permalink / raw)
  To: Tony Lindgren; +Cc: linux-omap

> -----Original Message-----
> From: linux-omap-owner@vger.kernel.org [mailto:linux-omap-
> owner@vger.kernel.org] On Behalf Of Hald, Ulrik Bech
> Sent: Wednesday, June 17, 2009 9:52 AM
> To: Tony Lindgren
> Cc: linux-omap@vger.kernel.org
> Subject: RE: [PATCH v3 1/2] watchdog:OMAP3:Register IVA and SECURE WDT,
> make clks accessible
> 
> > -----Original Message-----
> > From: Tony Lindgren [mailto:tony@atomide.com]
> > Sent: Wednesday, June 17, 2009 8:48 AM
> > To: Hald, Ulrik Bech
> > Cc: linux-omap@vger.kernel.org
> > Subject: Re: [PATCH v3 1/2] watchdog:OMAP3:Register IVA and SECURE WDT,
> > make clks accessible
> >
> > Hi,
> >
> > * Ulrik Bech Hald <ubh@ti.com> [090616 07:20]:
> > > Enabling registration of IVA and SECURE WDT devices. Making
> > > ick and fck for IVA and SECURE WDTs accessible.
> > >
> > > Tested on Zoom1 OMAP3 platform
> > > Signed-off-by: Ulrik Bech Hald <ubh@ti.com>
> > > ---
> > > This patch has a dependency on:
> > > compilation: PATCH 1/2] OMAP2/3: SoC IDs: add omap_type() for
> > determining GP/EMU/HS
> > >
> > >  arch/arm/mach-omap2/clock34xx.c |   12 +++---
> > >  arch/arm/plat-omap/devices.c    |   81
> +++++++++++++++++++++++++++++++-
> > -------
> > >  2 files changed, 71 insertions(+), 22 deletions(-)
> > >
> > > diff --git a/arch/arm/mach-omap2/clock34xx.c b/arch/arm/mach-
> > omap2/clock34xx.c
> > > index 9e43fe5..933ae9e 100644
> > > --- a/arch/arm/mach-omap2/clock34xx.c
> > > +++ b/arch/arm/mach-omap2/clock34xx.c
> > > @@ -215,11 +215,11 @@ static struct omap_clk omap34xx_clks[] = {
> > >  	CLK(NULL,	"gpt1_fck",	&gpt1_fck,	CK_343X),
> > >  	CLK(NULL,	"wkup_32k_fck",	&wkup_32k_fck,	CK_343X),
> > >  	CLK(NULL,	"gpio1_dbck",	&gpio1_dbck,	CK_343X),
> > > -	CLK("omap_wdt",	"fck",		&wdt2_fck,	CK_343X),
> > > +	CLK("omap_wdt.2", "fck",	&wdt2_fck,	CK_343X),
> > >  	CLK(NULL,	"wkup_l4_ick",	&wkup_l4_ick,	CK_343X),
> > >  	CLK(NULL,	"usim_ick",	&usim_ick,	CK_3430ES2),
> > > -	CLK("omap_wdt",	"ick",		&wdt2_ick,	CK_343X),
> > > -	CLK(NULL,	"wdt1_ick",	&wdt1_ick,	CK_343X),
> > > +	CLK("omap_wdt.2", "ick",	&wdt2_ick,	CK_343X),
> > > +	CLK("omap_wdt.1", "ick",	&wdt1_ick,	CK_343X),
> > >  	CLK(NULL,	"gpio1_ick",	&gpio1_ick,	CK_343X),
> > >  	CLK(NULL,	"omap_32ksync_ick", &omap_32ksync_ick, CK_343X),
> > >  	CLK(NULL,	"gpt12_ick",	&gpt12_ick,	CK_343X),
> > > @@ -241,14 +241,14 @@ static struct omap_clk omap34xx_clks[] = {
> > >  	CLK(NULL,	"gpio4_dbck",	&gpio4_dbck,	CK_343X),
> > >  	CLK(NULL,	"gpio3_dbck",	&gpio3_dbck,	CK_343X),
> > >  	CLK(NULL,	"gpio2_dbck",	&gpio2_dbck,	CK_343X),
> > > -	CLK(NULL,	"wdt3_fck",	&wdt3_fck,	CK_343X),
> > > +	CLK("omap_wdt.3", "fck",	&wdt3_fck,	CK_343X),
> > >  	CLK(NULL,	"per_l4_ick",	&per_l4_ick,	CK_343X),
> > >  	CLK(NULL,	"gpio6_ick",	&gpio6_ick,	CK_343X),
> > >  	CLK(NULL,	"gpio5_ick",	&gpio5_ick,	CK_343X),
> > >  	CLK(NULL,	"gpio4_ick",	&gpio4_ick,	CK_343X),
> > >  	CLK(NULL,	"gpio3_ick",	&gpio3_ick,	CK_343X),
> > >  	CLK(NULL,	"gpio2_ick",	&gpio2_ick,	CK_343X),
> > > -	CLK(NULL,	"wdt3_ick",	&wdt3_ick,	CK_343X),
> > > +	CLK("omap_wdt.3", "ick",	&wdt3_ick,	CK_343X),
> > >  	CLK(NULL,	"uart3_ick",	&uart3_ick,	CK_343X),
> > >  	CLK(NULL,	"gpt9_ick",	&gpt9_ick,	CK_343X),
> > >  	CLK(NULL,	"gpt8_ick",	&gpt8_ick,	CK_343X),
> > > @@ -275,7 +275,7 @@ static struct omap_clk omap34xx_clks[] = {
> > >  	CLK(NULL,	"sr_l4_ick",	&sr_l4_ick,	CK_343X),
> > >  	CLK(NULL,	"secure_32k_fck", &secure_32k_fck, CK_343X),
> > >  	CLK(NULL,	"gpt12_fck",	&gpt12_fck,	CK_343X),
> > > -	CLK(NULL,	"wdt1_fck",	&wdt1_fck,	CK_343X),
> > > +	CLK("omap_wdt.1", "fck",	&wdt1_fck,	CK_343X),
> > >  };
> > >
> > >  /* CM_AUTOIDLE_PLL*.AUTO_* bit values */
> >
> > To me it looks like you need to make the omap_wdt clock alias rename
> > change also for mach-omap1/clock.c.
> >
> > Regards,
> >
> > Tony
> >
> 
> You're right, and it also looks like mach-omap2/clock24xx.c needs the
> alias rename to omap_wdt.1 as well.

And by omap_wdt.1 I really mean omap_wdt.2 (mpu) :)

> 
> Thanks for looking at it Tony.
> 
> /Ulrik
> >
> > > diff --git a/arch/arm/plat-omap/devices.c b/arch/arm/plat-
> omap/devices.c
> > > old mode 100644
> > > new mode 100755
> > > index a64b692..de5182c
> > > --- a/arch/arm/plat-omap/devices.c
> > > +++ b/arch/arm/plat-omap/devices.c
> > > @@ -288,42 +288,91 @@ static inline void omap_init_uwire(void) {}
> > >
> > >  #if	defined(CONFIG_OMAP_WATCHDOG) ||
> > defined(CONFIG_OMAP_WATCHDOG_MODULE)
> > >
> > > -static struct resource wdt_resources[] = {
> > > +#define	OMAP34XX_WDT1_BASE	0x4830c000
> > > +#define	OMAP34XX_WDT2_BASE	0x48314000
> > > +#define	OMAP34XX_WDT3_BASE	0x49030000
> > > +#define	OMAP2430_WDT_BASE	0x49016000
> > > +#define	OMAP2420_WDT_BASE	0x48022000
> > > +#define	OMAP16XX_WDT_BASE	0xfffeb000
> > > +
> > > +static struct resource wdt1_resources[] = {
> > >  	{
> > > -		.flags		= IORESOURCE_MEM,
> > > +		.flags = IORESOURCE_MEM,
> > >  	},
> > >  };
> > >
> > > -static struct platform_device omap_wdt_device = {
> > > -	.name	   = "omap_wdt",
> > > -	.id	     = -1,
> > > -	.num_resources	= ARRAY_SIZE(wdt_resources),
> > > -	.resource	= wdt_resources,
> > > +static struct resource wdt2_resources[] = {
> > > +	{
> > > +		.flags = IORESOURCE_MEM,
> > > +	},
> > > +};
> > > +
> > > +static struct resource wdt3_resources[] = {
> > > +	{
> > > +		.flags = IORESOURCE_MEM,
> > > +	},
> > > +};
> > > +
> > > +/* SECURE WDT */
> > > +static struct platform_device omap_wdt1_device = {
> > > +	.name = "omap_wdt",
> > > +	.id = 1,
> > > +	.num_resources = ARRAY_SIZE(wdt1_resources),
> > > +	.resource = wdt1_resources,
> > > +};
> > > +
> > > +/* MPU WDT */
> > > +static struct platform_device omap_wdt2_device = {
> > > +	.name = "omap_wdt",
> > > +	.id = 2,
> > > +	.num_resources = ARRAY_SIZE(wdt2_resources),
> > > +	.resource = wdt2_resources,
> > > +};
> > > +
> > > +/* IVA WDT */
> > > +static struct platform_device omap_wdt3_device = {
> > > +	.name = "omap_wdt",
> > > +	.id = 3,
> > > +	.num_resources = ARRAY_SIZE(wdt3_resources),
> > > +	.resource = wdt3_resources,
> > >  };
> > >
> > >  static void omap_init_wdt(void)
> > >  {
> > >  	if (cpu_is_omap16xx())
> > > -		wdt_resources[0].start = 0xfffeb000;
> > > +		wdt2_resources[0].start = OMAP16XX_WDT_BASE;
> > >  	else if (cpu_is_omap2420())
> > > -		wdt_resources[0].start = 0x48022000; /* WDT2 */
> > > +		wdt2_resources[0].start = OMAP2420_WDT_BASE;
> > >  	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;
> > > +		wdt2_resources[0].start = OMAP2430_WDT_BASE;
> > > +	else if (cpu_is_omap343x()) {
> > > +		wdt1_resources[0].start = OMAP34XX_WDT1_BASE;
> > > +		wdt1_resources[0].end = wdt1_resources[0].start + 0x4f;
> > > +		wdt2_resources[0].start = OMAP34XX_WDT2_BASE;
> > > +		wdt3_resources[0].start = OMAP34XX_WDT3_BASE;
> > > +		wdt3_resources[0].end = wdt3_resources[0].start + 0x4f;
> > > +	}
> > >  	else
> > >  		return;
> > >
> > > -	wdt_resources[0].end = wdt_resources[0].start + 0x4f;
> > > +	wdt2_resources[0].end = wdt2_resources[0].start + 0x4f;
> > >
> > > -	(void) platform_device_register(&omap_wdt_device);
> > > +	/* MPU WDT present across omap family */
> > > +	(void) platform_device_register(&omap_wdt2_device);
> > > +
> > > +	if (cpu_is_omap34xx()) {
> > > +		(void) platform_device_register(&omap_wdt3_device);
> > > +		if (omap_type() == OMAP2_DEVICE_TYPE_SEC
> > > +			|| omap_type() == OMAP2_DEVICE_TYPE_EMU)
> > > +			(void) platform_device_register(&omap_wdt1_device);
> > > +	}
> > >  }
> > > +
> > >  #else
> > >  static inline void omap_init_wdt(void) {}
> > >  #endif
> > >
> > > +
> > >  /*-------------------------------------------------------------------
> --
> > ----*/
> > >
> > >  #if defined(CONFIG_HW_RANDOM_OMAP) ||
> > defined(CONFIG_HW_RANDOM_OMAP_MODULE)
> > > --
> > > 1.5.4.3
> > >
> > > --
> > > To unsubscribe from this list: send the line "unsubscribe linux-omap"
> in
> > > the body of a message to majordomo@vger.kernel.org
> > > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2009-06-17 14:55 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-06-16 14:24 [PATCH v3 0/2] watchdog:OMAP3:Add support for IVA2, SECURE WDTs Ulrik Bech Hald
2009-06-16 14:24 ` [PATCH v3 1/2] watchdog:OMAP3:Register IVA and SECURE WDT, make clks accessible Ulrik Bech Hald
2009-06-16 14:24   ` [PATCH v3 2/2] watchdog:OMAP3:Enable support for IVA2 and SECURE Ulrik Bech Hald
2009-06-17 13:48   ` [PATCH v3 1/2] watchdog:OMAP3:Register IVA and SECURE WDT, make clks accessible Tony Lindgren
2009-06-17 14:51     ` Hald, Ulrik Bech
2009-06-17 14:54       ` Hald, Ulrik Bech

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.