linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/3] ARM: mx5: add support for the two watchdog modules
@ 2010-12-06 18:38 Fabio Estevam
  2010-12-06 18:38 ` [PATCH 2/3] ARM: mx5: add watchdog clocks Fabio Estevam
  2010-12-07  9:16 ` [PATCH 1/3] ARM: mx5: add support for the two watchdog modules Uwe Kleine-König
  0 siblings, 2 replies; 6+ messages in thread
From: Fabio Estevam @ 2010-12-06 18:38 UTC (permalink / raw)
  To: linux-arm-kernel

MX51 has two watchdog modules.

Add support for both of them.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
---
 arch/arm/mach-mx5/devices-imx51.h               |    6 ++--
 arch/arm/mach-mx5/mm.c                          |    2 +-
 arch/arm/plat-mxc/devices/platform-imx2-wdt.c   |   27 ++++++++++++++--------
 arch/arm/plat-mxc/include/mach/devices-common.h |    1 +
 arch/arm/plat-mxc/include/mach/mx51.h           |    2 +-
 5 files changed, 23 insertions(+), 15 deletions(-)

diff --git a/arch/arm/mach-mx5/devices-imx51.h b/arch/arm/mach-mx5/devices-imx51.h
index 939d2e8..6302e46 100644
--- a/arch/arm/mach-mx5/devices-imx51.h
+++ b/arch/arm/mach-mx5/devices-imx51.h
@@ -44,6 +44,6 @@ extern const struct imx_spi_imx_data imx51_ecspi_data[] __initconst;
 #define imx51_add_ecspi(id, pdata)	\
 	imx_add_spi_imx(&imx51_ecspi_data[id], pdata)
 
-extern const struct imx_imx2_wdt_data imx51_imx2_wdt_data __initconst;
-#define imx51_imx2_wdt_data(pdata)	\
-	imx_add_imx2_wdt_data(&imx51_imx2_wdt_data, pdata)
+extern const struct imx_imx2_wdt_data imx51_imx2_wdt_data[] __initconst;
+#define imx51_add_imx2_wdt(id, pdata)	\
+	imx_add_imx2_wdt(&imx51_imx2_wdt_data[id])
diff --git a/arch/arm/mach-mx5/mm.c b/arch/arm/mach-mx5/mm.c
index e57f968..457f9f9 100644
--- a/arch/arm/mach-mx5/mm.c
+++ b/arch/arm/mach-mx5/mm.c
@@ -49,7 +49,7 @@ void __init mx51_map_io(void)
 {
 	mxc_set_cpu_type(MXC_CPU_MX51);
 	mxc_iomux_v3_init(MX51_IO_ADDRESS(MX51_IOMUXC_BASE_ADDR));
-	mxc_arch_reset_init(MX51_IO_ADDRESS(MX51_WDOG_BASE_ADDR));
+	mxc_arch_reset_init(MX51_IO_ADDRESS(MX51_WDOG1_BASE_ADDR));
 	iotable_init(mx51_io_desc, ARRAY_SIZE(mx51_io_desc));
 }
 
diff --git a/arch/arm/plat-mxc/devices/platform-imx2-wdt.c b/arch/arm/plat-mxc/devices/platform-imx2-wdt.c
index 8dc19f6..e0aec61 100644
--- a/arch/arm/plat-mxc/devices/platform-imx2-wdt.c
+++ b/arch/arm/plat-mxc/devices/platform-imx2-wdt.c
@@ -10,40 +10,47 @@
 #include <mach/hardware.h>
 #include <mach/devices-common.h>
 
-#define imx_imx2_wdt_data_entry_single(soc, _size)			\
+#define imx_imx2_wdt_data_entry_single(soc, _id, _hwid, _size)		\
 	{								\
-		.iobase = soc ## _WDOG_BASE_ADDR,			\
+		.id = _id,						\
+		.iobase = soc ## _WDOG ## _hwid ## _BASE_ADDR,		\
 		.iosize = _size,					\
 	}
+#define imx_imx2_wdt_data_entry(soc, _id, _hwid, _size)			\
+	[_id] = imx_imx2_wdt_data_entry_single(soc, _id, _hwid, _size)
 
 #ifdef CONFIG_SOC_IMX21
 const struct imx_imx2_wdt_data imx21_imx2_wdt_data __initconst =
-	imx_imx2_wdt_data_entry_single(MX21, SZ_4K);
+	imx_imx2_wdt_data_entry_single(MX21, 0, , SZ_4K);
 #endif /* ifdef CONFIG_SOC_IMX21 */
 
 #ifdef CONFIG_SOC_IMX25
 const struct imx_imx2_wdt_data imx25_imx2_wdt_data __initconst =
-	imx_imx2_wdt_data_entry_single(MX25, SZ_16K);
+	imx_imx2_wdt_data_entry_single(MX25, 0, , SZ_16K);
 #endif /* ifdef CONFIG_SOC_IMX25 */
 
 #ifdef CONFIG_SOC_IMX27
 const struct imx_imx2_wdt_data imx27_imx2_wdt_data __initconst =
-	imx_imx2_wdt_data_entry_single(MX27, SZ_4K);
+	imx_imx2_wdt_data_entry_single(MX27, 0, , SZ_4K);
 #endif /* ifdef CONFIG_SOC_IMX27 */
 
 #ifdef CONFIG_SOC_IMX31
 const struct imx_imx2_wdt_data imx31_imx2_wdt_data __initconst =
-	imx_imx2_wdt_data_entry_single(MX31, SZ_16K);
+	imx_imx2_wdt_data_entry_single(MX31, 0, , SZ_16K);
 #endif /* ifdef CONFIG_SOC_IMX31 */
 
 #ifdef CONFIG_SOC_IMX35
 const struct imx_imx2_wdt_data imx35_imx2_wdt_data __initconst =
-	imx_imx2_wdt_data_entry_single(MX35, SZ_16K);
+	imx_imx2_wdt_data_entry_single(MX35, 0, , SZ_16K);
 #endif /* ifdef CONFIG_SOC_IMX35 */
 
 #ifdef CONFIG_SOC_IMX51
-const struct imx_imx2_wdt_data imx51_imx2_wdt_data __initconst =
-	imx_imx2_wdt_data_entry_single(MX51, SZ_16K);
+const struct imx_imx2_wdt_data imx51_imx2_wdt_data[] __initconst = {
+#define imx51_imx2_wdt_data_entry(_id, _hwid)				\
+	imx_imx2_wdt_data_entry(MX51, _id, _hwid, SZ_16K)
+	imx51_imx2_wdt_data_entry(0, 1),
+	imx51_imx2_wdt_data_entry(1, 2),
+};
 #endif /* ifdef CONFIG_SOC_IMX51 */
 
 struct platform_device *__init imx_add_imx2_wdt(
@@ -56,6 +63,6 @@ struct platform_device *__init imx_add_imx2_wdt(
 			.flags = IORESOURCE_MEM,
 		},
 	};
-	return imx_add_platform_device("imx2-wdt", 0,
+	return imx_add_platform_device("imx2-wdt", data->id,
 			res, ARRAY_SIZE(res), NULL, 0);
 }
diff --git a/arch/arm/plat-mxc/include/mach/devices-common.h b/arch/arm/plat-mxc/include/mach/devices-common.h
index 3640eaf..8658c9c 100644
--- a/arch/arm/plat-mxc/include/mach/devices-common.h
+++ b/arch/arm/plat-mxc/include/mach/devices-common.h
@@ -67,6 +67,7 @@ struct platform_device *__init imx_add_imx21_hcd(
 		const struct mx21_usbh_platform_data *pdata);
 
 struct imx_imx2_wdt_data {
+	int id;
 	resource_size_t iobase;
 	resource_size_t iosize;
 };
diff --git a/arch/arm/plat-mxc/include/mach/mx51.h b/arch/arm/plat-mxc/include/mach/mx51.h
index 8fddfef..882f1f4 100644
--- a/arch/arm/plat-mxc/include/mach/mx51.h
+++ b/arch/arm/plat-mxc/include/mach/mx51.h
@@ -61,7 +61,7 @@
 #define MX51_GPIO3_BASE_ADDR		(MX51_AIPS1_BASE_ADDR + 0x8c000)
 #define MX51_GPIO4_BASE_ADDR		(MX51_AIPS1_BASE_ADDR + 0x90000)
 #define MX51_KPP_BASE_ADDR		(MX51_AIPS1_BASE_ADDR + 0x94000)
-#define MX51_WDOG_BASE_ADDR		(MX51_AIPS1_BASE_ADDR + 0x98000)
+#define MX51_WDOG1_BASE_ADDR		(MX51_AIPS1_BASE_ADDR + 0x98000)
 #define MX51_WDOG2_BASE_ADDR		(MX51_AIPS1_BASE_ADDR + 0x9c000)
 #define MX51_GPT1_BASE_ADDR		(MX51_AIPS1_BASE_ADDR + 0xa0000)
 #define MX51_SRTC_BASE_ADDR		(MX51_AIPS1_BASE_ADDR + 0xa4000)
-- 
1.6.0.4

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

* [PATCH 2/3] ARM: mx5: add watchdog clocks
  2010-12-06 18:38 [PATCH 1/3] ARM: mx5: add support for the two watchdog modules Fabio Estevam
@ 2010-12-06 18:38 ` Fabio Estevam
  2010-12-06 18:38   ` [PATCH 3/3] ARM: mx5/mx51_babbage: Add watchdog support Fabio Estevam
  2010-12-07  9:16 ` [PATCH 1/3] ARM: mx5: add support for the two watchdog modules Uwe Kleine-König
  1 sibling, 1 reply; 6+ messages in thread
From: Fabio Estevam @ 2010-12-06 18:38 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
---
 arch/arm/mach-mx5/clock-mx51-mx53.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-mx5/clock-mx51-mx53.c b/arch/arm/mach-mx5/clock-mx51-mx53.c
index 344ee8e..d4c3911 100644
--- a/arch/arm/mach-mx5/clock-mx51-mx53.c
+++ b/arch/arm/mach-mx5/clock-mx51-mx53.c
@@ -833,6 +833,10 @@ static struct clk kpp_clk = {
 	.id = 0,
 };
 
+static struct clk dummy_clk = {
+	.id = 0,
+};
+
 static struct clk emi_slow_clk = {
 	.parent = &pll2_sw_clk,
 	.enable_reg = MXC_CCM_CCGR5,
@@ -1106,6 +1110,8 @@ static struct clk_lookup mx51_lookups[] = {
 	_REGISTER_CLOCK("sdhci-esdhc-imx.1", NULL, esdhc2_clk)
 	_REGISTER_CLOCK(NULL, "cpu_clk", cpu_clk)
 	_REGISTER_CLOCK(NULL, "iim_clk", iim_clk)
+	_REGISTER_CLOCK("imx-wdt.0", NULL, dummy_clk)
+	_REGISTER_CLOCK("imx-wdt.1", NULL, dummy_clk)
 };
 
 static struct clk_lookup mx53_lookups[] = {
-- 
1.6.0.4

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

* [PATCH 3/3] ARM: mx5/mx51_babbage: Add watchdog support
  2010-12-06 18:38 ` [PATCH 2/3] ARM: mx5: add watchdog clocks Fabio Estevam
@ 2010-12-06 18:38   ` Fabio Estevam
  0 siblings, 0 replies; 6+ messages in thread
From: Fabio Estevam @ 2010-12-06 18:38 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
---
 arch/arm/mach-mx5/Kconfig              |    1 +
 arch/arm/mach-mx5/board-mx51_babbage.c |    1 +
 2 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-mx5/Kconfig b/arch/arm/mach-mx5/Kconfig
index 7f5a696..5011f42 100644
--- a/arch/arm/mach-mx5/Kconfig
+++ b/arch/arm/mach-mx5/Kconfig
@@ -17,6 +17,7 @@ comment "MX5 platforms:"
 config MACH_MX51_BABBAGE
 	bool "Support MX51 BABBAGE platforms"
 	select SOC_IMX51
+	select IMX_HAVE_PLATFORM_IMX2_WDT
 	select IMX_HAVE_PLATFORM_IMX_I2C
 	select IMX_HAVE_PLATFORM_IMX_UART
 	select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX
diff --git a/arch/arm/mach-mx5/board-mx51_babbage.c b/arch/arm/mach-mx5/board-mx51_babbage.c
index 6442579..a896f84 100644
--- a/arch/arm/mach-mx5/board-mx51_babbage.c
+++ b/arch/arm/mach-mx5/board-mx51_babbage.c
@@ -387,6 +387,7 @@ static void __init mxc_board_init(void)
 	spi_register_board_info(mx51_babbage_spi_board_info,
 		ARRAY_SIZE(mx51_babbage_spi_board_info));
 	imx51_add_ecspi(0, &mx51_babbage_spi_pdata);
+	imx51_add_imx2_wdt(0, NULL);
 }
 
 static void __init mx51_babbage_timer_init(void)
-- 
1.6.0.4

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

* [PATCH 1/3] ARM: mx5: add support for the two watchdog modules
  2010-12-06 18:38 [PATCH 1/3] ARM: mx5: add support for the two watchdog modules Fabio Estevam
  2010-12-06 18:38 ` [PATCH 2/3] ARM: mx5: add watchdog clocks Fabio Estevam
@ 2010-12-07  9:16 ` Uwe Kleine-König
  2010-12-07 11:06   ` Fabio Estevam
  1 sibling, 1 reply; 6+ messages in thread
From: Uwe Kleine-König @ 2010-12-07  9:16 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, Dec 06, 2010 at 04:38:32PM -0200, Fabio Estevam wrote:
> MX51 has two watchdog modules.
> 
> Add support for both of them.
I don't know why you need two watchdogs, but the patches look OK.

Note there is a conflict between this patch series and the clk-change
for the watchdog driver.

Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

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

* [PATCH 1/3] ARM: mx5: add support for the two watchdog modules
  2010-12-07  9:16 ` [PATCH 1/3] ARM: mx5: add support for the two watchdog modules Uwe Kleine-König
@ 2010-12-07 11:06   ` Fabio Estevam
  2010-12-07 13:08     ` Uwe Kleine-König
  0 siblings, 1 reply; 6+ messages in thread
From: Fabio Estevam @ 2010-12-07 11:06 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Uwe,

2010/12/7 Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>:
> On Mon, Dec 06, 2010 at 04:38:32PM -0200, Fabio Estevam wrote:
>> MX51 has two watchdog modules.
>>
>> Add support for both of them.
> I don't know why you need two watchdogs, but the patches look OK.

Can I get your Acked-by?

> Note there is a conflict between this patch series and the clk-change
> for the watchdog driver.

Yes, I am aware of it. Probably the watchod driver patch I sent will
go via the watchdog maintainer and when it gets applied I can fix the
clocks for mx5 watchdog.

Thanks,

Fabio Estevam

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

* [PATCH 1/3] ARM: mx5: add support for the two watchdog modules
  2010-12-07 11:06   ` Fabio Estevam
@ 2010-12-07 13:08     ` Uwe Kleine-König
  0 siblings, 0 replies; 6+ messages in thread
From: Uwe Kleine-König @ 2010-12-07 13:08 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Fabio,

On Tue, Dec 07, 2010 at 09:06:09AM -0200, Fabio Estevam wrote:
> 2010/12/7 Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>:
> > On Mon, Dec 06, 2010 at 04:38:32PM -0200, Fabio Estevam wrote:
> >> MX51 has two watchdog modules.
> >>
> >> Add support for both of them.
> > I don't know why you need two watchdogs, but the patches look OK.
> 
> Can I get your Acked-by?
Yeah, you can consider that as an ack for the three patches in this
series.

> > Note there is a conflict between this patch series and the clk-change
> > for the watchdog driver.
> 
> Yes, I am aware of it. Probably the watchod driver patch I sent will
> go via the watchdog maintainer and when it gets applied I can fix the
> clocks for mx5 watchdog.
Hmm, maybe it's easier to let it go via Sascha's tree because it is more
likely to conflict with the changes there.

Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

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

end of thread, other threads:[~2010-12-07 13:08 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-12-06 18:38 [PATCH 1/3] ARM: mx5: add support for the two watchdog modules Fabio Estevam
2010-12-06 18:38 ` [PATCH 2/3] ARM: mx5: add watchdog clocks Fabio Estevam
2010-12-06 18:38   ` [PATCH 3/3] ARM: mx5/mx51_babbage: Add watchdog support Fabio Estevam
2010-12-07  9:16 ` [PATCH 1/3] ARM: mx5: add support for the two watchdog modules Uwe Kleine-König
2010-12-07 11:06   ` Fabio Estevam
2010-12-07 13:08     ` Uwe Kleine-König

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).