diff options
author | Uwe Kleine-König <u.kleine-koenig@pengutronix.de> | 2010-11-11 10:58:50 -0500 |
---|---|---|
committer | Uwe Kleine-König <u.kleine-koenig@pengutronix.de> | 2010-11-19 15:53:37 -0500 |
commit | 00871505dcf15418aebc402db9f124dd2738fa2d (patch) | |
tree | 31e49a84f3a38525417a5a73f426fced987324f3 | |
parent | 194ee8e89cc02d8bea8a0b837271f79ca0c72873 (diff) |
ARM: mx25: dynamically allocate imx2-wdt devices
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
-rw-r--r-- | arch/arm/mach-mx25/Kconfig | 1 | ||||
-rw-r--r-- | arch/arm/mach-mx25/devices-imx25.h | 4 | ||||
-rw-r--r-- | arch/arm/mach-mx25/devices.c | 15 | ||||
-rw-r--r-- | arch/arm/mach-mx25/devices.h | 1 | ||||
-rw-r--r-- | arch/arm/mach-mx25/mach-mx25_3ds.c | 2 | ||||
-rw-r--r-- | arch/arm/plat-mxc/devices/platform-imx2-wdt.c | 14 | ||||
-rw-r--r-- | arch/arm/plat-mxc/include/mach/devices-common.h | 1 |
7 files changed, 17 insertions, 21 deletions
diff --git a/arch/arm/mach-mx25/Kconfig b/arch/arm/mach-mx25/Kconfig index 10c0f6081665..a0b82190ac5d 100644 --- a/arch/arm/mach-mx25/Kconfig +++ b/arch/arm/mach-mx25/Kconfig | |||
@@ -5,6 +5,7 @@ comment "MX25 platforms:" | |||
5 | config MACH_MX25_3DS | 5 | config MACH_MX25_3DS |
6 | bool "Support MX25PDK (3DS) Platform" | 6 | bool "Support MX25PDK (3DS) Platform" |
7 | select IMX_HAVE_PLATFORM_ESDHC | 7 | select IMX_HAVE_PLATFORM_ESDHC |
8 | select IMX_HAVE_PLATFORM_IMX2_WDT | ||
8 | select IMX_HAVE_PLATFORM_IMXDI_RTC | 9 | select IMX_HAVE_PLATFORM_IMXDI_RTC |
9 | select IMX_HAVE_PLATFORM_IMX_FB | 10 | select IMX_HAVE_PLATFORM_IMX_FB |
10 | select IMX_HAVE_PLATFORM_IMX_KEYPAD | 11 | select IMX_HAVE_PLATFORM_IMX_KEYPAD |
diff --git a/arch/arm/mach-mx25/devices-imx25.h b/arch/arm/mach-mx25/devices-imx25.h index d80cce0797e1..bf70548caf04 100644 --- a/arch/arm/mach-mx25/devices-imx25.h +++ b/arch/arm/mach-mx25/devices-imx25.h | |||
@@ -27,6 +27,10 @@ extern struct imx_imxdi_rtc_data imx25_imxdi_rtc_data __initconst; | |||
27 | #define imx25_add_imxdi_rtc(pdata) \ | 27 | #define imx25_add_imxdi_rtc(pdata) \ |
28 | imx_add_imxdi_rtc(&imx25_imxdi_rtc_data) | 28 | imx_add_imxdi_rtc(&imx25_imxdi_rtc_data) |
29 | 29 | ||
30 | extern const struct imx_imx2_wdt_data imx25_imx2_wdt_data __initconst; | ||
31 | #define imx25_add_imx2_wdt(pdata) \ | ||
32 | imx_add_imx2_wdt(&imx25_imx2_wdt_data) | ||
33 | |||
30 | extern const struct imx_imx_fb_data imx25_imx_fb_data __initconst; | 34 | extern const struct imx_imx_fb_data imx25_imx_fb_data __initconst; |
31 | #define imx25_add_imx_fb(pdata) \ | 35 | #define imx25_add_imx_fb(pdata) \ |
32 | imx_add_imx_fb(&imx25_imx_fb_data, pdata) | 36 | imx_add_imx_fb(&imx25_imx_fb_data, pdata) |
diff --git a/arch/arm/mach-mx25/devices.c b/arch/arm/mach-mx25/devices.c index 09095e0b69c7..12f31ef43e9f 100644 --- a/arch/arm/mach-mx25/devices.c +++ b/arch/arm/mach-mx25/devices.c | |||
@@ -22,21 +22,6 @@ | |||
22 | #include <mach/mx25.h> | 22 | #include <mach/mx25.h> |
23 | #include <mach/irqs.h> | 23 | #include <mach/irqs.h> |
24 | 24 | ||
25 | static struct resource mxc_wdt_resources[] = { | ||
26 | { | ||
27 | .start = MX25_WDOG_BASE_ADDR, | ||
28 | .end = MX25_WDOG_BASE_ADDR + SZ_16K - 1, | ||
29 | .flags = IORESOURCE_MEM, | ||
30 | }, | ||
31 | }; | ||
32 | |||
33 | struct platform_device mxc_wdt = { | ||
34 | .name = "imx2-wdt", | ||
35 | .id = 0, | ||
36 | .num_resources = ARRAY_SIZE(mxc_wdt_resources), | ||
37 | .resource = mxc_wdt_resources, | ||
38 | }; | ||
39 | |||
40 | static struct resource mx25_csi_resources[] = { | 25 | static struct resource mx25_csi_resources[] = { |
41 | { | 26 | { |
42 | .start = MX25_CSI_BASE_ADDR, | 27 | .start = MX25_CSI_BASE_ADDR, |
diff --git a/arch/arm/mach-mx25/devices.h b/arch/arm/mach-mx25/devices.h index 11997e267c4b..fbb75ff5de73 100644 --- a/arch/arm/mach-mx25/devices.h +++ b/arch/arm/mach-mx25/devices.h | |||
@@ -1,2 +1 @@ | |||
1 | extern struct platform_device mxc_wdt; | ||
2 | extern struct platform_device mx25_csi_device; | extern struct platform_device mx25_csi_device; | |
diff --git a/arch/arm/mach-mx25/mach-mx25_3ds.c b/arch/arm/mach-mx25/mach-mx25_3ds.c index 34492aa3cfa6..7e72df77e305 100644 --- a/arch/arm/mach-mx25/mach-mx25_3ds.c +++ b/arch/arm/mach-mx25/mach-mx25_3ds.c | |||
@@ -195,7 +195,7 @@ static void __init mx25pdk_init(void) | |||
195 | imx25_add_mxc_nand(&mx25pdk_nand_board_info); | 195 | imx25_add_mxc_nand(&mx25pdk_nand_board_info); |
196 | imx25_add_imxdi_rtc(NULL); | 196 | imx25_add_imxdi_rtc(NULL); |
197 | imx25_add_imx_fb(&mx25pdk_fb_pdata); | 197 | imx25_add_imx_fb(&mx25pdk_fb_pdata); |
198 | mxc_register_device(&mxc_wdt, NULL); | 198 | imx25_add_imx2_wdt(NULL); |
199 | 199 | ||
200 | mx25pdk_fec_reset(); | 200 | mx25pdk_fec_reset(); |
201 | imx25_add_fec(&mx25_fec_pdata); | 201 | imx25_add_fec(&mx25_fec_pdata); |
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 |
19 | const struct imx_imx2_wdt_data imx21_imx2_wdt_data __initconst = | 20 | const 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 | ||
25 | const 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 |
24 | const struct imx_imx2_wdt_data imx27_imx2_wdt_data __initconst = | 30 | const 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 | ||
28 | struct platform_device *__init imx_add_imx2_wdt( | 34 | struct 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 | ||
69 | struct imx_imx2_wdt_data { | 69 | struct imx_imx2_wdt_data { |
70 | resource_size_t iobase; | 70 | resource_size_t iobase; |
71 | resource_size_t iosize; | ||
71 | }; | 72 | }; |
72 | struct platform_device *__init imx_add_imx2_wdt( | 73 | struct platform_device *__init imx_add_imx2_wdt( |
73 | const struct imx_imx2_wdt_data *data); | 74 | const struct imx_imx2_wdt_data *data); |