* [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.