aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/plat-mxc
diff options
context:
space:
mode:
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>2010-11-11 10:58:50 -0500
committerUwe Kleine-König <u.kleine-koenig@pengutronix.de>2010-11-19 15:53:37 -0500
commit00871505dcf15418aebc402db9f124dd2738fa2d (patch)
tree31e49a84f3a38525417a5a73f426fced987324f3 /arch/arm/plat-mxc
parent194ee8e89cc02d8bea8a0b837271f79ca0c72873 (diff)
ARM: mx25: dynamically allocate imx2-wdt devices
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Diffstat (limited to 'arch/arm/plat-mxc')
-rw-r--r--arch/arm/plat-mxc/devices/platform-imx2-wdt.c14
-rw-r--r--arch/arm/plat-mxc/include/mach/devices-common.h1
2 files changed, 11 insertions, 4 deletions
diff --git a/arch/arm/plat-mxc/devices/platform-imx2-wdt.c b/arch/arm/plat-mxc/devices/platform-imx2-wdt.c
index 86eb7f128168..8446e2505d8b 100644
--- a/arch/arm/plat-mxc/devices/platform-imx2-wdt.c
+++ b/arch/arm/plat-mxc/devices/platform-imx2-wdt.c
@@ -10,19 +10,25 @@
10#include <mach/hardware.h> 10#include <mach/hardware.h>
11#include <mach/devices-common.h> 11#include <mach/devices-common.h>
12 12
13#define imx_imx2_wdt_data_entry_single(soc) \ 13#define imx_imx2_wdt_data_entry_single(soc, _size) \
14 { \ 14 { \
15 .iobase = soc ## _WDOG_BASE_ADDR, \ 15 .iobase = soc ## _WDOG_BASE_ADDR, \
16 .iosize = _size, \
16 } 17 }
17 18
18#ifdef CONFIG_SOC_IMX21 19#ifdef CONFIG_SOC_IMX21
19const struct imx_imx2_wdt_data imx21_imx2_wdt_data __initconst = 20const struct imx_imx2_wdt_data imx21_imx2_wdt_data __initconst =
20 imx_imx2_wdt_data_entry_single(MX21); 21 imx_imx2_wdt_data_entry_single(MX21, SZ_4K);
21#endif /* ifdef CONFIG_SOC_IMX21 */ 22#endif /* ifdef CONFIG_SOC_IMX21 */
22 23
24#ifdef CONFIG_ARCH_MX25
25const struct imx_imx2_wdt_data imx25_imx2_wdt_data __initconst =
26 imx_imx2_wdt_data_entry_single(MX25, SZ_16K);
27#endif /* ifdef CONFIG_ARCH_MX25 */
28
23#ifdef CONFIG_SOC_IMX27 29#ifdef CONFIG_SOC_IMX27
24const struct imx_imx2_wdt_data imx27_imx2_wdt_data __initconst = 30const struct imx_imx2_wdt_data imx27_imx2_wdt_data __initconst =
25 imx_imx2_wdt_data_entry_single(MX27); 31 imx_imx2_wdt_data_entry_single(MX27, SZ_4K);
26#endif /* ifdef CONFIG_SOC_IMX27 */ 32#endif /* ifdef CONFIG_SOC_IMX27 */
27 33
28struct platform_device *__init imx_add_imx2_wdt( 34struct platform_device *__init imx_add_imx2_wdt(
@@ -31,7 +37,7 @@ struct platform_device *__init imx_add_imx2_wdt(
31 struct resource res[] = { 37 struct resource res[] = {
32 { 38 {
33 .start = data->iobase, 39 .start = data->iobase,
34 .end = data->iobase + SZ_4K - 1, 40 .end = data->iobase + data->iosize - 1,
35 .flags = IORESOURCE_MEM, 41 .flags = IORESOURCE_MEM,
36 }, 42 },
37 }; 43 };
diff --git a/arch/arm/plat-mxc/include/mach/devices-common.h b/arch/arm/plat-mxc/include/mach/devices-common.h
index e28453e18756..95331aeb854e 100644
--- a/arch/arm/plat-mxc/include/mach/devices-common.h
+++ b/arch/arm/plat-mxc/include/mach/devices-common.h
@@ -68,6 +68,7 @@ struct platform_device *__init imx_add_imx21_hcd(
68 68
69struct imx_imx2_wdt_data { 69struct imx_imx2_wdt_data {
70 resource_size_t iobase; 70 resource_size_t iobase;
71 resource_size_t iosize;
71}; 72};
72struct platform_device *__init imx_add_imx2_wdt( 73struct platform_device *__init imx_add_imx2_wdt(
73 const struct imx_imx2_wdt_data *data); 74 const struct imx_imx2_wdt_data *data);