diff options
author | Jason Liu <jason.hui@linaro.org> | 2011-09-09 05:17:47 -0400 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2011-09-20 03:54:50 -0400 |
commit | abca2e10feebbee8b739f5f92e9cd6e7e4c1ee35 (patch) | |
tree | 02c7e75807153b68ac6c022dc84a742065a9cc0a /arch/arm | |
parent | 93ee7a9340d64f20295aacc3fb6a22b759323280 (diff) |
ARM: mx5/mm: move i.MX50 mm stuff into mm.c
i.MX50 is similar enough to i.MX51/53 to handle it in a single file.
No functional change.
Signed-off-by: Jason Liu <jason.hui@linaro.org>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/mach-mx5/Makefile | 1 | ||||
-rw-r--r-- | arch/arm/mach-mx5/mm-mx50.c | 72 | ||||
-rw-r--r-- | arch/arm/mach-mx5/mm.c | 48 |
3 files changed, 43 insertions, 78 deletions
diff --git a/arch/arm/mach-mx5/Makefile b/arch/arm/mach-mx5/Makefile index 383e7cd3fbcb..60f756db8d76 100644 --- a/arch/arm/mach-mx5/Makefile +++ b/arch/arm/mach-mx5/Makefile | |||
@@ -4,7 +4,6 @@ | |||
4 | 4 | ||
5 | # Object file lists. | 5 | # Object file lists. |
6 | obj-y := cpu.o mm.o clock-mx51-mx53.o devices.o ehci.o system.o | 6 | obj-y := cpu.o mm.o clock-mx51-mx53.o devices.o ehci.o system.o |
7 | obj-$(CONFIG_SOC_IMX50) += mm-mx50.o | ||
8 | 7 | ||
9 | obj-$(CONFIG_PM) += pm-imx5.o | 8 | obj-$(CONFIG_PM) += pm-imx5.o |
10 | obj-$(CONFIG_CPU_FREQ_IMX) += cpu_op-mx51.o | 9 | obj-$(CONFIG_CPU_FREQ_IMX) += cpu_op-mx51.o |
diff --git a/arch/arm/mach-mx5/mm-mx50.c b/arch/arm/mach-mx5/mm-mx50.c deleted file mode 100644 index 77e374c726fa..000000000000 --- a/arch/arm/mach-mx5/mm-mx50.c +++ /dev/null | |||
@@ -1,72 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2010 Freescale Semiconductor, Inc. All Rights Reserved. | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License as published by | ||
6 | * the Free Software Foundation; either version 2 of the License, or | ||
7 | * (at your option) any later version. | ||
8 | |||
9 | * This program is distributed in the hope that it will be useful, | ||
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
12 | * GNU General Public License for more details. | ||
13 | |||
14 | * You should have received a copy of the GNU General Public License along | ||
15 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
16 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | ||
17 | * | ||
18 | * Create static mapping between physical to virtual memory. | ||
19 | */ | ||
20 | |||
21 | #include <linux/mm.h> | ||
22 | #include <linux/init.h> | ||
23 | |||
24 | #include <asm/mach/map.h> | ||
25 | |||
26 | #include <mach/hardware.h> | ||
27 | #include <mach/common.h> | ||
28 | #include <mach/iomux-v3.h> | ||
29 | #include <mach/irqs.h> | ||
30 | |||
31 | /* | ||
32 | * Define the MX50 memory map. | ||
33 | */ | ||
34 | static struct map_desc mx50_io_desc[] __initdata = { | ||
35 | imx_map_entry(MX50, TZIC, MT_DEVICE), | ||
36 | imx_map_entry(MX50, SPBA0, MT_DEVICE), | ||
37 | imx_map_entry(MX50, AIPS1, MT_DEVICE), | ||
38 | imx_map_entry(MX50, AIPS2, MT_DEVICE), | ||
39 | }; | ||
40 | |||
41 | /* | ||
42 | * This function initializes the memory map. It is called during the | ||
43 | * system startup to create static physical to virtual memory mappings | ||
44 | * for the IO modules. | ||
45 | */ | ||
46 | void __init mx50_map_io(void) | ||
47 | { | ||
48 | iotable_init(mx50_io_desc, ARRAY_SIZE(mx50_io_desc)); | ||
49 | } | ||
50 | |||
51 | void __init imx50_init_early(void) | ||
52 | { | ||
53 | mxc_set_cpu_type(MXC_CPU_MX50); | ||
54 | mxc_iomux_v3_init(MX50_IO_ADDRESS(MX50_IOMUXC_BASE_ADDR)); | ||
55 | mxc_arch_reset_init(MX50_IO_ADDRESS(MX50_WDOG_BASE_ADDR)); | ||
56 | } | ||
57 | |||
58 | void __init mx50_init_irq(void) | ||
59 | { | ||
60 | tzic_init_irq(MX50_IO_ADDRESS(MX50_TZIC_BASE_ADDR)); | ||
61 | } | ||
62 | |||
63 | void __init imx50_soc_init(void) | ||
64 | { | ||
65 | /* i.mx50 has the i.mx31 type gpio */ | ||
66 | mxc_register_gpio("imx31-gpio", 0, MX50_GPIO1_BASE_ADDR, SZ_16K, MX50_INT_GPIO1_LOW, MX50_INT_GPIO1_HIGH); | ||
67 | mxc_register_gpio("imx31-gpio", 1, MX50_GPIO2_BASE_ADDR, SZ_16K, MX50_INT_GPIO2_LOW, MX50_INT_GPIO2_HIGH); | ||
68 | mxc_register_gpio("imx31-gpio", 2, MX50_GPIO3_BASE_ADDR, SZ_16K, MX50_INT_GPIO3_LOW, MX50_INT_GPIO3_HIGH); | ||
69 | mxc_register_gpio("imx31-gpio", 3, MX50_GPIO4_BASE_ADDR, SZ_16K, MX50_INT_GPIO4_LOW, MX50_INT_GPIO4_HIGH); | ||
70 | mxc_register_gpio("imx31-gpio", 4, MX50_GPIO5_BASE_ADDR, SZ_16K, MX50_INT_GPIO5_LOW, MX50_INT_GPIO5_HIGH); | ||
71 | mxc_register_gpio("imx31-gpio", 5, MX50_GPIO6_BASE_ADDR, SZ_16K, MX50_INT_GPIO6_LOW, MX50_INT_GPIO6_HIGH); | ||
72 | } | ||
diff --git a/arch/arm/mach-mx5/mm.c b/arch/arm/mach-mx5/mm.c index baea6e5cddd9..999f0d3623c5 100644 --- a/arch/arm/mach-mx5/mm.c +++ b/arch/arm/mach-mx5/mm.c | |||
@@ -22,6 +22,16 @@ | |||
22 | #include <mach/iomux-v3.h> | 22 | #include <mach/iomux-v3.h> |
23 | 23 | ||
24 | /* | 24 | /* |
25 | * Define the MX50 memory map. | ||
26 | */ | ||
27 | static struct map_desc mx50_io_desc[] __initdata = { | ||
28 | imx_map_entry(MX50, TZIC, MT_DEVICE), | ||
29 | imx_map_entry(MX50, SPBA0, MT_DEVICE), | ||
30 | imx_map_entry(MX50, AIPS1, MT_DEVICE), | ||
31 | imx_map_entry(MX50, AIPS2, MT_DEVICE), | ||
32 | }; | ||
33 | |||
34 | /* | ||
25 | * Define the MX51 memory map. | 35 | * Define the MX51 memory map. |
26 | */ | 36 | */ |
27 | static struct map_desc mx51_io_desc[] __initdata = { | 37 | static struct map_desc mx51_io_desc[] __initdata = { |
@@ -46,11 +56,28 @@ static struct map_desc mx53_io_desc[] __initdata = { | |||
46 | * system startup to create static physical to virtual memory mappings | 56 | * system startup to create static physical to virtual memory mappings |
47 | * for the IO modules. | 57 | * for the IO modules. |
48 | */ | 58 | */ |
59 | void __init mx50_map_io(void) | ||
60 | { | ||
61 | iotable_init(mx50_io_desc, ARRAY_SIZE(mx50_io_desc)); | ||
62 | } | ||
63 | |||
49 | void __init mx51_map_io(void) | 64 | void __init mx51_map_io(void) |
50 | { | 65 | { |
51 | iotable_init(mx51_io_desc, ARRAY_SIZE(mx51_io_desc)); | 66 | iotable_init(mx51_io_desc, ARRAY_SIZE(mx51_io_desc)); |
52 | } | 67 | } |
53 | 68 | ||
69 | void __init mx53_map_io(void) | ||
70 | { | ||
71 | iotable_init(mx53_io_desc, ARRAY_SIZE(mx53_io_desc)); | ||
72 | } | ||
73 | |||
74 | void __init imx50_init_early(void) | ||
75 | { | ||
76 | mxc_set_cpu_type(MXC_CPU_MX50); | ||
77 | mxc_iomux_v3_init(MX50_IO_ADDRESS(MX50_IOMUXC_BASE_ADDR)); | ||
78 | mxc_arch_reset_init(MX50_IO_ADDRESS(MX50_WDOG_BASE_ADDR)); | ||
79 | } | ||
80 | |||
54 | void __init imx51_init_early(void) | 81 | void __init imx51_init_early(void) |
55 | { | 82 | { |
56 | mxc_set_cpu_type(MXC_CPU_MX51); | 83 | mxc_set_cpu_type(MXC_CPU_MX51); |
@@ -58,11 +85,6 @@ void __init imx51_init_early(void) | |||
58 | mxc_arch_reset_init(MX51_IO_ADDRESS(MX51_WDOG1_BASE_ADDR)); | 85 | mxc_arch_reset_init(MX51_IO_ADDRESS(MX51_WDOG1_BASE_ADDR)); |
59 | } | 86 | } |
60 | 87 | ||
61 | void __init mx53_map_io(void) | ||
62 | { | ||
63 | iotable_init(mx53_io_desc, ARRAY_SIZE(mx53_io_desc)); | ||
64 | } | ||
65 | |||
66 | void __init imx53_init_early(void) | 88 | void __init imx53_init_early(void) |
67 | { | 89 | { |
68 | mxc_set_cpu_type(MXC_CPU_MX53); | 90 | mxc_set_cpu_type(MXC_CPU_MX53); |
@@ -70,6 +92,11 @@ void __init imx53_init_early(void) | |||
70 | mxc_arch_reset_init(MX53_IO_ADDRESS(MX53_WDOG1_BASE_ADDR)); | 92 | mxc_arch_reset_init(MX53_IO_ADDRESS(MX53_WDOG1_BASE_ADDR)); |
71 | } | 93 | } |
72 | 94 | ||
95 | void __init mx50_init_irq(void) | ||
96 | { | ||
97 | tzic_init_irq(MX50_IO_ADDRESS(MX50_TZIC_BASE_ADDR)); | ||
98 | } | ||
99 | |||
73 | void __init mx51_init_irq(void) | 100 | void __init mx51_init_irq(void) |
74 | { | 101 | { |
75 | unsigned long tzic_addr; | 102 | unsigned long tzic_addr; |
@@ -138,6 +165,17 @@ static struct sdma_platform_data imx53_sdma_pdata __initdata = { | |||
138 | .script_addrs = &imx53_sdma_script, | 165 | .script_addrs = &imx53_sdma_script, |
139 | }; | 166 | }; |
140 | 167 | ||
168 | void __init imx50_soc_init(void) | ||
169 | { | ||
170 | /* i.mx50 has the i.mx31 type gpio */ | ||
171 | mxc_register_gpio("imx31-gpio", 0, MX50_GPIO1_BASE_ADDR, SZ_16K, MX50_INT_GPIO1_LOW, MX50_INT_GPIO1_HIGH); | ||
172 | mxc_register_gpio("imx31-gpio", 1, MX50_GPIO2_BASE_ADDR, SZ_16K, MX50_INT_GPIO2_LOW, MX50_INT_GPIO2_HIGH); | ||
173 | mxc_register_gpio("imx31-gpio", 2, MX50_GPIO3_BASE_ADDR, SZ_16K, MX50_INT_GPIO3_LOW, MX50_INT_GPIO3_HIGH); | ||
174 | mxc_register_gpio("imx31-gpio", 3, MX50_GPIO4_BASE_ADDR, SZ_16K, MX50_INT_GPIO4_LOW, MX50_INT_GPIO4_HIGH); | ||
175 | mxc_register_gpio("imx31-gpio", 4, MX50_GPIO5_BASE_ADDR, SZ_16K, MX50_INT_GPIO5_LOW, MX50_INT_GPIO5_HIGH); | ||
176 | mxc_register_gpio("imx31-gpio", 5, MX50_GPIO6_BASE_ADDR, SZ_16K, MX50_INT_GPIO6_LOW, MX50_INT_GPIO6_HIGH); | ||
177 | } | ||
178 | |||
141 | void __init imx51_soc_init(void) | 179 | void __init imx51_soc_init(void) |
142 | { | 180 | { |
143 | /* i.mx51 has the i.mx31 type gpio */ | 181 | /* i.mx51 has the i.mx31 type gpio */ |