diff options
-rw-r--r-- | arch/arm/mach-mx5/devices-imx51.h | 6 | ||||
-rw-r--r-- | arch/arm/mach-mx5/mm.c | 2 | ||||
-rw-r--r-- | arch/arm/plat-mxc/devices/platform-imx2-wdt.c | 27 | ||||
-rw-r--r-- | arch/arm/plat-mxc/include/mach/devices-common.h | 1 | ||||
-rw-r--r-- | 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 939d2e813708..6302e4670000 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; | |||
44 | #define imx51_add_ecspi(id, pdata) \ | 44 | #define imx51_add_ecspi(id, pdata) \ |
45 | imx_add_spi_imx(&imx51_ecspi_data[id], pdata) | 45 | imx_add_spi_imx(&imx51_ecspi_data[id], pdata) |
46 | 46 | ||
47 | extern const struct imx_imx2_wdt_data imx51_imx2_wdt_data __initconst; | 47 | extern const struct imx_imx2_wdt_data imx51_imx2_wdt_data[] __initconst; |
48 | #define imx51_imx2_wdt_data(pdata) \ | 48 | #define imx51_add_imx2_wdt(id, pdata) \ |
49 | imx_add_imx2_wdt_data(&imx51_imx2_wdt_data, pdata) | 49 | 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 e57f96858f0d..457f9f95204b 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) | |||
49 | { | 49 | { |
50 | mxc_set_cpu_type(MXC_CPU_MX51); | 50 | mxc_set_cpu_type(MXC_CPU_MX51); |
51 | mxc_iomux_v3_init(MX51_IO_ADDRESS(MX51_IOMUXC_BASE_ADDR)); | 51 | mxc_iomux_v3_init(MX51_IO_ADDRESS(MX51_IOMUXC_BASE_ADDR)); |
52 | mxc_arch_reset_init(MX51_IO_ADDRESS(MX51_WDOG_BASE_ADDR)); | 52 | mxc_arch_reset_init(MX51_IO_ADDRESS(MX51_WDOG1_BASE_ADDR)); |
53 | iotable_init(mx51_io_desc, ARRAY_SIZE(mx51_io_desc)); | 53 | iotable_init(mx51_io_desc, ARRAY_SIZE(mx51_io_desc)); |
54 | } | 54 | } |
55 | 55 | ||
diff --git a/arch/arm/plat-mxc/devices/platform-imx2-wdt.c b/arch/arm/plat-mxc/devices/platform-imx2-wdt.c index 8dc19f69042d..e0aec61177f4 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 @@ | |||
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, _size) \ | 13 | #define imx_imx2_wdt_data_entry_single(soc, _id, _hwid, _size) \ |
14 | { \ | 14 | { \ |
15 | .iobase = soc ## _WDOG_BASE_ADDR, \ | 15 | .id = _id, \ |
16 | .iobase = soc ## _WDOG ## _hwid ## _BASE_ADDR, \ | ||
16 | .iosize = _size, \ | 17 | .iosize = _size, \ |
17 | } | 18 | } |
19 | #define imx_imx2_wdt_data_entry(soc, _id, _hwid, _size) \ | ||
20 | [_id] = imx_imx2_wdt_data_entry_single(soc, _id, _hwid, _size) | ||
18 | 21 | ||
19 | #ifdef CONFIG_SOC_IMX21 | 22 | #ifdef CONFIG_SOC_IMX21 |
20 | const struct imx_imx2_wdt_data imx21_imx2_wdt_data __initconst = | 23 | const struct imx_imx2_wdt_data imx21_imx2_wdt_data __initconst = |
21 | imx_imx2_wdt_data_entry_single(MX21, SZ_4K); | 24 | imx_imx2_wdt_data_entry_single(MX21, 0, , SZ_4K); |
22 | #endif /* ifdef CONFIG_SOC_IMX21 */ | 25 | #endif /* ifdef CONFIG_SOC_IMX21 */ |
23 | 26 | ||
24 | #ifdef CONFIG_SOC_IMX25 | 27 | #ifdef CONFIG_SOC_IMX25 |
25 | const struct imx_imx2_wdt_data imx25_imx2_wdt_data __initconst = | 28 | const struct imx_imx2_wdt_data imx25_imx2_wdt_data __initconst = |
26 | imx_imx2_wdt_data_entry_single(MX25, SZ_16K); | 29 | imx_imx2_wdt_data_entry_single(MX25, 0, , SZ_16K); |
27 | #endif /* ifdef CONFIG_SOC_IMX25 */ | 30 | #endif /* ifdef CONFIG_SOC_IMX25 */ |
28 | 31 | ||
29 | #ifdef CONFIG_SOC_IMX27 | 32 | #ifdef CONFIG_SOC_IMX27 |
30 | const struct imx_imx2_wdt_data imx27_imx2_wdt_data __initconst = | 33 | const struct imx_imx2_wdt_data imx27_imx2_wdt_data __initconst = |
31 | imx_imx2_wdt_data_entry_single(MX27, SZ_4K); | 34 | imx_imx2_wdt_data_entry_single(MX27, 0, , SZ_4K); |
32 | #endif /* ifdef CONFIG_SOC_IMX27 */ | 35 | #endif /* ifdef CONFIG_SOC_IMX27 */ |
33 | 36 | ||
34 | #ifdef CONFIG_SOC_IMX31 | 37 | #ifdef CONFIG_SOC_IMX31 |
35 | const struct imx_imx2_wdt_data imx31_imx2_wdt_data __initconst = | 38 | const struct imx_imx2_wdt_data imx31_imx2_wdt_data __initconst = |
36 | imx_imx2_wdt_data_entry_single(MX31, SZ_16K); | 39 | imx_imx2_wdt_data_entry_single(MX31, 0, , SZ_16K); |
37 | #endif /* ifdef CONFIG_SOC_IMX31 */ | 40 | #endif /* ifdef CONFIG_SOC_IMX31 */ |
38 | 41 | ||
39 | #ifdef CONFIG_SOC_IMX35 | 42 | #ifdef CONFIG_SOC_IMX35 |
40 | const struct imx_imx2_wdt_data imx35_imx2_wdt_data __initconst = | 43 | const struct imx_imx2_wdt_data imx35_imx2_wdt_data __initconst = |
41 | imx_imx2_wdt_data_entry_single(MX35, SZ_16K); | 44 | imx_imx2_wdt_data_entry_single(MX35, 0, , SZ_16K); |
42 | #endif /* ifdef CONFIG_SOC_IMX35 */ | 45 | #endif /* ifdef CONFIG_SOC_IMX35 */ |
43 | 46 | ||
44 | #ifdef CONFIG_SOC_IMX51 | 47 | #ifdef CONFIG_SOC_IMX51 |
45 | const struct imx_imx2_wdt_data imx51_imx2_wdt_data __initconst = | 48 | const struct imx_imx2_wdt_data imx51_imx2_wdt_data[] __initconst = { |
46 | imx_imx2_wdt_data_entry_single(MX51, SZ_16K); | 49 | #define imx51_imx2_wdt_data_entry(_id, _hwid) \ |
50 | imx_imx2_wdt_data_entry(MX51, _id, _hwid, SZ_16K) | ||
51 | imx51_imx2_wdt_data_entry(0, 1), | ||
52 | imx51_imx2_wdt_data_entry(1, 2), | ||
53 | }; | ||
47 | #endif /* ifdef CONFIG_SOC_IMX51 */ | 54 | #endif /* ifdef CONFIG_SOC_IMX51 */ |
48 | 55 | ||
49 | struct platform_device *__init imx_add_imx2_wdt( | 56 | struct platform_device *__init imx_add_imx2_wdt( |
@@ -56,6 +63,6 @@ struct platform_device *__init imx_add_imx2_wdt( | |||
56 | .flags = IORESOURCE_MEM, | 63 | .flags = IORESOURCE_MEM, |
57 | }, | 64 | }, |
58 | }; | 65 | }; |
59 | return imx_add_platform_device("imx2-wdt", 0, | 66 | return imx_add_platform_device("imx2-wdt", data->id, |
60 | res, ARRAY_SIZE(res), NULL, 0); | 67 | res, ARRAY_SIZE(res), NULL, 0); |
61 | } | 68 | } |
diff --git a/arch/arm/plat-mxc/include/mach/devices-common.h b/arch/arm/plat-mxc/include/mach/devices-common.h index 3640eaf88c02..8658c9caa650 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( | |||
67 | const struct mx21_usbh_platform_data *pdata); | 67 | const struct mx21_usbh_platform_data *pdata); |
68 | 68 | ||
69 | struct imx_imx2_wdt_data { | 69 | struct imx_imx2_wdt_data { |
70 | int id; | ||
70 | resource_size_t iobase; | 71 | resource_size_t iobase; |
71 | resource_size_t iosize; | 72 | resource_size_t iosize; |
72 | }; | 73 | }; |
diff --git a/arch/arm/plat-mxc/include/mach/mx51.h b/arch/arm/plat-mxc/include/mach/mx51.h index 8fddfef9b4e8..882f1f4e7f29 100644 --- a/arch/arm/plat-mxc/include/mach/mx51.h +++ b/arch/arm/plat-mxc/include/mach/mx51.h | |||
@@ -61,7 +61,7 @@ | |||
61 | #define MX51_GPIO3_BASE_ADDR (MX51_AIPS1_BASE_ADDR + 0x8c000) | 61 | #define MX51_GPIO3_BASE_ADDR (MX51_AIPS1_BASE_ADDR + 0x8c000) |
62 | #define MX51_GPIO4_BASE_ADDR (MX51_AIPS1_BASE_ADDR + 0x90000) | 62 | #define MX51_GPIO4_BASE_ADDR (MX51_AIPS1_BASE_ADDR + 0x90000) |
63 | #define MX51_KPP_BASE_ADDR (MX51_AIPS1_BASE_ADDR + 0x94000) | 63 | #define MX51_KPP_BASE_ADDR (MX51_AIPS1_BASE_ADDR + 0x94000) |
64 | #define MX51_WDOG_BASE_ADDR (MX51_AIPS1_BASE_ADDR + 0x98000) | 64 | #define MX51_WDOG1_BASE_ADDR (MX51_AIPS1_BASE_ADDR + 0x98000) |
65 | #define MX51_WDOG2_BASE_ADDR (MX51_AIPS1_BASE_ADDR + 0x9c000) | 65 | #define MX51_WDOG2_BASE_ADDR (MX51_AIPS1_BASE_ADDR + 0x9c000) |
66 | #define MX51_GPT1_BASE_ADDR (MX51_AIPS1_BASE_ADDR + 0xa0000) | 66 | #define MX51_GPT1_BASE_ADDR (MX51_AIPS1_BASE_ADDR + 0xa0000) |
67 | #define MX51_SRTC_BASE_ADDR (MX51_AIPS1_BASE_ADDR + 0xa4000) | 67 | #define MX51_SRTC_BASE_ADDR (MX51_AIPS1_BASE_ADDR + 0xa4000) |