1879c0e5eSFabio Estevam // SPDX-License-Identifier: GPL-2.0-or-later
2879c0e5eSFabio Estevam /*
3879c0e5eSFabio Estevam * Copyright 2012 Sascha Hauer, Pengutronix
4879c0e5eSFabio Estevam */
5879c0e5eSFabio Estevam
6*86fa0707SFabio Estevam #include <linux/init.h>
7879c0e5eSFabio Estevam #include <asm/mach/arch.h>
8*86fa0707SFabio Estevam #include <asm/mach/map.h>
9879c0e5eSFabio Estevam
10879c0e5eSFabio Estevam #include "common.h"
11*86fa0707SFabio Estevam #include "hardware.h"
12879c0e5eSFabio Estevam #include "mx27.h"
13879c0e5eSFabio Estevam
14*86fa0707SFabio Estevam /* MX27 memory map definition */
15*86fa0707SFabio Estevam static struct map_desc imx27_io_desc[] __initdata = {
16*86fa0707SFabio Estevam /*
17*86fa0707SFabio Estevam * this fixed mapping covers:
18*86fa0707SFabio Estevam * - AIPI1
19*86fa0707SFabio Estevam * - AIPI2
20*86fa0707SFabio Estevam * - AITC
21*86fa0707SFabio Estevam * - ROM Patch
22*86fa0707SFabio Estevam * - and some reserved space
23*86fa0707SFabio Estevam */
24*86fa0707SFabio Estevam imx_map_entry(MX27, AIPI, MT_DEVICE),
25*86fa0707SFabio Estevam /*
26*86fa0707SFabio Estevam * this fixed mapping covers:
27*86fa0707SFabio Estevam * - CSI
28*86fa0707SFabio Estevam * - ATA
29*86fa0707SFabio Estevam */
30*86fa0707SFabio Estevam imx_map_entry(MX27, SAHB1, MT_DEVICE),
31*86fa0707SFabio Estevam /*
32*86fa0707SFabio Estevam * this fixed mapping covers:
33*86fa0707SFabio Estevam * - EMI
34*86fa0707SFabio Estevam */
35*86fa0707SFabio Estevam imx_map_entry(MX27, X_MEMC, MT_DEVICE),
36*86fa0707SFabio Estevam };
37*86fa0707SFabio Estevam
38*86fa0707SFabio Estevam /*
39*86fa0707SFabio Estevam * Initialize the memory map. It is called during the
40*86fa0707SFabio Estevam * system startup to create static physical to virtual
41*86fa0707SFabio Estevam * memory map for the IO modules.
42*86fa0707SFabio Estevam */
mx27_map_io(void)43*86fa0707SFabio Estevam static void __init mx27_map_io(void)
44*86fa0707SFabio Estevam {
45*86fa0707SFabio Estevam iotable_init(imx27_io_desc, ARRAY_SIZE(imx27_io_desc));
46*86fa0707SFabio Estevam }
47*86fa0707SFabio Estevam
imx27_init_early(void)48*86fa0707SFabio Estevam static void __init imx27_init_early(void)
49*86fa0707SFabio Estevam {
50*86fa0707SFabio Estevam mxc_set_cpu_type(MXC_CPU_MX27);
51*86fa0707SFabio Estevam }
52*86fa0707SFabio Estevam
53879c0e5eSFabio Estevam static const char * const imx27_dt_board_compat[] __initconst = {
54879c0e5eSFabio Estevam "fsl,imx27",
55879c0e5eSFabio Estevam NULL
56879c0e5eSFabio Estevam };
57879c0e5eSFabio Estevam
58879c0e5eSFabio Estevam DT_MACHINE_START(IMX27_DT, "Freescale i.MX27 (Device Tree Support)")
59879c0e5eSFabio Estevam .map_io = mx27_map_io,
60879c0e5eSFabio Estevam .init_early = imx27_init_early,
61879c0e5eSFabio Estevam .init_late = imx27_pm_init,
62879c0e5eSFabio Estevam .dt_compat = imx27_dt_board_compat,
63879c0e5eSFabio Estevam MACHINE_END
64