diff options
author | Fabio Estevam <fabio.estevam@freescale.com> | 2015-03-13 09:31:55 -0400 |
---|---|---|
committer | Shawn Guo <shawn.guo@linaro.org> | 2015-03-13 10:14:57 -0400 |
commit | 6869a22fcf10ba9e32ad9a6301ee3fe326625fd6 (patch) | |
tree | e6069d3a0e43cfac28728124edc63e3a07715785 /arch/arm/mach-imx | |
parent | 8b88f7ef31ddecd943e3312d6b61e1b1c6eab3d0 (diff) |
ARM: mx25: Remove static memory mapping
We use dynamic memory mapping when using dt, so remove all the static mappings.
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Diffstat (limited to 'arch/arm/mach-imx')
-rw-r--r-- | arch/arm/mach-imx/Makefile | 2 | ||||
-rw-r--r-- | arch/arm/mach-imx/common.h | 4 | ||||
-rw-r--r-- | arch/arm/mach-imx/mach-imx25.c | 20 | ||||
-rw-r--r-- | arch/arm/mach-imx/mm-imx25.c | 89 |
4 files changed, 19 insertions, 96 deletions
diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile index 86c6470f33c5..3244cf1d2773 100644 --- a/arch/arm/mach-imx/Makefile +++ b/arch/arm/mach-imx/Makefile | |||
@@ -3,7 +3,7 @@ obj-y := time.o cpu.o system.o irq-common.o | |||
3 | obj-$(CONFIG_SOC_IMX1) += clk-imx1.o mm-imx1.o | 3 | obj-$(CONFIG_SOC_IMX1) += clk-imx1.o mm-imx1.o |
4 | obj-$(CONFIG_SOC_IMX21) += clk-imx21.o mm-imx21.o | 4 | obj-$(CONFIG_SOC_IMX21) += clk-imx21.o mm-imx21.o |
5 | 5 | ||
6 | obj-$(CONFIG_SOC_IMX25) += clk-imx25.o mm-imx25.o cpu-imx25.o mach-imx25.o | 6 | obj-$(CONFIG_SOC_IMX25) += clk-imx25.o cpu-imx25.o mach-imx25.o |
7 | 7 | ||
8 | obj-$(CONFIG_SOC_IMX27) += cpu-imx27.o pm-imx27.o | 8 | obj-$(CONFIG_SOC_IMX27) += cpu-imx27.o pm-imx27.o |
9 | obj-$(CONFIG_SOC_IMX27) += clk-imx27.o mm-imx27.o ehci-imx27.o | 9 | obj-$(CONFIG_SOC_IMX27) += clk-imx27.o mm-imx27.o ehci-imx27.o |
diff --git a/arch/arm/mach-imx/common.h b/arch/arm/mach-imx/common.h index a12b52d3152f..771ecfe96c14 100644 --- a/arch/arm/mach-imx/common.h +++ b/arch/arm/mach-imx/common.h | |||
@@ -23,13 +23,11 @@ struct of_device_id; | |||
23 | 23 | ||
24 | void mx1_map_io(void); | 24 | void mx1_map_io(void); |
25 | void mx21_map_io(void); | 25 | void mx21_map_io(void); |
26 | void mx25_map_io(void); | ||
27 | void mx27_map_io(void); | 26 | void mx27_map_io(void); |
28 | void mx31_map_io(void); | 27 | void mx31_map_io(void); |
29 | void mx35_map_io(void); | 28 | void mx35_map_io(void); |
30 | void imx1_init_early(void); | 29 | void imx1_init_early(void); |
31 | void imx21_init_early(void); | 30 | void imx21_init_early(void); |
32 | void imx25_init_early(void); | ||
33 | void imx27_init_early(void); | 31 | void imx27_init_early(void); |
34 | void imx31_init_early(void); | 32 | void imx31_init_early(void); |
35 | void imx35_init_early(void); | 33 | void imx35_init_early(void); |
@@ -37,13 +35,11 @@ void mxc_init_irq(void __iomem *); | |||
37 | void tzic_init_irq(void); | 35 | void tzic_init_irq(void); |
38 | void mx1_init_irq(void); | 36 | void mx1_init_irq(void); |
39 | void mx21_init_irq(void); | 37 | void mx21_init_irq(void); |
40 | void mx25_init_irq(void); | ||
41 | void mx27_init_irq(void); | 38 | void mx27_init_irq(void); |
42 | void mx31_init_irq(void); | 39 | void mx31_init_irq(void); |
43 | void mx35_init_irq(void); | 40 | void mx35_init_irq(void); |
44 | void imx1_soc_init(void); | 41 | void imx1_soc_init(void); |
45 | void imx21_soc_init(void); | 42 | void imx21_soc_init(void); |
46 | void imx25_soc_init(void); | ||
47 | void imx27_soc_init(void); | 43 | void imx27_soc_init(void); |
48 | void imx31_soc_init(void); | 44 | void imx31_soc_init(void); |
49 | void imx35_soc_init(void); | 45 | void imx35_soc_init(void); |
diff --git a/arch/arm/mach-imx/mach-imx25.c b/arch/arm/mach-imx/mach-imx25.c index 25defbdb06c4..9379fd0a7b4d 100644 --- a/arch/arm/mach-imx/mach-imx25.c +++ b/arch/arm/mach-imx/mach-imx25.c | |||
@@ -10,12 +10,29 @@ | |||
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/irq.h> | 12 | #include <linux/irq.h> |
13 | #include <linux/of_address.h> | ||
13 | #include <linux/of_irq.h> | 14 | #include <linux/of_irq.h> |
14 | #include <linux/of_platform.h> | 15 | #include <linux/of_platform.h> |
15 | #include <asm/mach/arch.h> | 16 | #include <asm/mach/arch.h> |
16 | #include <asm/mach/time.h> | 17 | #include <asm/mach/time.h> |
17 | #include "common.h" | 18 | #include "common.h" |
18 | #include "mx25.h" | 19 | #include "hardware.h" |
20 | |||
21 | static void __init imx25_init_early(void) | ||
22 | { | ||
23 | mxc_set_cpu_type(MXC_CPU_MX25); | ||
24 | } | ||
25 | |||
26 | static void __init mx25_init_irq(void) | ||
27 | { | ||
28 | struct device_node *np; | ||
29 | void __iomem *avic_base; | ||
30 | |||
31 | np = of_find_compatible_node(NULL, NULL, "fsl,avic"); | ||
32 | avic_base = of_iomap(np, 0); | ||
33 | BUG_ON(!avic_base); | ||
34 | mxc_init_irq(avic_base); | ||
35 | } | ||
19 | 36 | ||
20 | static const char * const imx25_dt_board_compat[] __initconst = { | 37 | static const char * const imx25_dt_board_compat[] __initconst = { |
21 | "fsl,imx25", | 38 | "fsl,imx25", |
@@ -23,7 +40,6 @@ static const char * const imx25_dt_board_compat[] __initconst = { | |||
23 | }; | 40 | }; |
24 | 41 | ||
25 | DT_MACHINE_START(IMX25_DT, "Freescale i.MX25 (Device Tree Support)") | 42 | DT_MACHINE_START(IMX25_DT, "Freescale i.MX25 (Device Tree Support)") |
26 | .map_io = mx25_map_io, | ||
27 | .init_early = imx25_init_early, | 43 | .init_early = imx25_init_early, |
28 | .init_irq = mx25_init_irq, | 44 | .init_irq = mx25_init_irq, |
29 | .dt_compat = imx25_dt_board_compat, | 45 | .dt_compat = imx25_dt_board_compat, |
diff --git a/arch/arm/mach-imx/mm-imx25.c b/arch/arm/mach-imx/mm-imx25.c deleted file mode 100644 index 5211f62c624e..000000000000 --- a/arch/arm/mach-imx/mm-imx25.c +++ /dev/null | |||
@@ -1,89 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) 1999,2000 Arm Limited | ||
3 | * Copyright (C) 2000 Deep Blue Solutions Ltd | ||
4 | * Copyright (C) 2002 Shane Nay (shane@minirl.com) | ||
5 | * Copyright 2005-2007 Freescale Semiconductor, Inc. All Rights Reserved. | ||
6 | * - add MX31 specific definitions | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License as published by | ||
10 | * the Free Software Foundation; either version 2 of the License, or | ||
11 | * (at your option) any later version. | ||
12 | * | ||
13 | * This program is distributed in the hope that it will be useful, | ||
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
16 | * GNU General Public License for more details. | ||
17 | */ | ||
18 | |||
19 | #include <linux/mm.h> | ||
20 | #include <linux/init.h> | ||
21 | #include <linux/err.h> | ||
22 | #include <linux/pinctrl/machine.h> | ||
23 | |||
24 | #include <asm/pgtable.h> | ||
25 | #include <asm/mach/map.h> | ||
26 | |||
27 | #include "common.h" | ||
28 | #include "devices/devices-common.h" | ||
29 | #include "hardware.h" | ||
30 | #include "iomux-v3.h" | ||
31 | #include "mx25.h" | ||
32 | |||
33 | /* | ||
34 | * This table defines static virtual address mappings for I/O regions. | ||
35 | * These are the mappings common across all MX25 boards. | ||
36 | */ | ||
37 | static struct map_desc mx25_io_desc[] __initdata = { | ||
38 | imx_map_entry(MX25, AVIC, MT_DEVICE_NONSHARED), | ||
39 | imx_map_entry(MX25, AIPS1, MT_DEVICE_NONSHARED), | ||
40 | imx_map_entry(MX25, AIPS2, MT_DEVICE_NONSHARED), | ||
41 | }; | ||
42 | |||
43 | /* | ||
44 | * This function initializes the memory map. It is called during the | ||
45 | * system startup to create static physical to virtual memory mappings | ||
46 | * for the IO modules. | ||
47 | */ | ||
48 | void __init mx25_map_io(void) | ||
49 | { | ||
50 | iotable_init(mx25_io_desc, ARRAY_SIZE(mx25_io_desc)); | ||
51 | } | ||
52 | |||
53 | void __init imx25_init_early(void) | ||
54 | { | ||
55 | mxc_set_cpu_type(MXC_CPU_MX25); | ||
56 | mxc_iomux_v3_init(MX25_IO_ADDRESS(MX25_IOMUXC_BASE_ADDR)); | ||
57 | } | ||
58 | |||
59 | void __init mx25_init_irq(void) | ||
60 | { | ||
61 | mxc_init_irq(MX25_IO_ADDRESS(MX25_AVIC_BASE_ADDR)); | ||
62 | } | ||
63 | |||
64 | static struct sdma_platform_data imx25_sdma_pdata __initdata = { | ||
65 | .fw_name = "sdma-imx25.bin", | ||
66 | }; | ||
67 | |||
68 | static const struct resource imx25_audmux_res[] __initconst = { | ||
69 | DEFINE_RES_MEM(MX25_AUDMUX_BASE_ADDR, SZ_16K), | ||
70 | }; | ||
71 | |||
72 | void __init imx25_soc_init(void) | ||
73 | { | ||
74 | mxc_arch_reset_init(MX25_IO_ADDRESS(MX25_WDOG_BASE_ADDR)); | ||
75 | mxc_device_init(); | ||
76 | |||
77 | /* i.mx25 has the i.mx35 type gpio */ | ||
78 | mxc_register_gpio("imx35-gpio", 0, MX25_GPIO1_BASE_ADDR, SZ_16K, MX25_INT_GPIO1, 0); | ||
79 | mxc_register_gpio("imx35-gpio", 1, MX25_GPIO2_BASE_ADDR, SZ_16K, MX25_INT_GPIO2, 0); | ||
80 | mxc_register_gpio("imx35-gpio", 2, MX25_GPIO3_BASE_ADDR, SZ_16K, MX25_INT_GPIO3, 0); | ||
81 | mxc_register_gpio("imx35-gpio", 3, MX25_GPIO4_BASE_ADDR, SZ_16K, MX25_INT_GPIO4, 0); | ||
82 | |||
83 | pinctrl_provide_dummies(); | ||
84 | /* i.mx25 has the i.mx35 type sdma */ | ||
85 | imx_add_imx_sdma("imx35-sdma", MX25_SDMA_BASE_ADDR, MX25_INT_SDMA, &imx25_sdma_pdata); | ||
86 | /* i.mx25 has the i.mx31 type audmux */ | ||
87 | platform_device_register_simple("imx31-audmux", 0, imx25_audmux_res, | ||
88 | ARRAY_SIZE(imx25_audmux_res)); | ||
89 | } | ||