1879c0e5eSFabio Estevam // SPDX-License-Identifier: GPL-2.0-or-later
2879c0e5eSFabio Estevam /*
3879c0e5eSFabio Estevam * Copyright 2012 Sascha Hauer, Pengutronix
4879c0e5eSFabio Estevam */
5879c0e5eSFabio Estevam
686fa0707SFabio Estevam #include <linux/init.h>
7879c0e5eSFabio Estevam #include <asm/mach/arch.h>
886fa0707SFabio Estevam #include <asm/mach/map.h>
9879c0e5eSFabio Estevam
10879c0e5eSFabio Estevam #include "common.h"
1186fa0707SFabio Estevam #include "hardware.h"
12879c0e5eSFabio Estevam #include "mx27.h"
13879c0e5eSFabio Estevam
1486fa0707SFabio Estevam /* MX27 memory map definition */
1586fa0707SFabio Estevam static struct map_desc imx27_io_desc[] __initdata = {
1686fa0707SFabio Estevam /*
1786fa0707SFabio Estevam * this fixed mapping covers:
1886fa0707SFabio Estevam * - AIPI1
1986fa0707SFabio Estevam * - AIPI2
2086fa0707SFabio Estevam * - AITC
2186fa0707SFabio Estevam * - ROM Patch
2286fa0707SFabio Estevam * - and some reserved space
2386fa0707SFabio Estevam */
2486fa0707SFabio Estevam imx_map_entry(MX27, AIPI, MT_DEVICE),
2586fa0707SFabio Estevam /*
2686fa0707SFabio Estevam * this fixed mapping covers:
2786fa0707SFabio Estevam * - CSI
2886fa0707SFabio Estevam * - ATA
2986fa0707SFabio Estevam */
3086fa0707SFabio Estevam imx_map_entry(MX27, SAHB1, MT_DEVICE),
3186fa0707SFabio Estevam /*
3286fa0707SFabio Estevam * this fixed mapping covers:
3386fa0707SFabio Estevam * - EMI
3486fa0707SFabio Estevam */
3586fa0707SFabio Estevam imx_map_entry(MX27, X_MEMC, MT_DEVICE),
3686fa0707SFabio Estevam };
3786fa0707SFabio Estevam
3886fa0707SFabio Estevam /*
3986fa0707SFabio Estevam * Initialize the memory map. It is called during the
4086fa0707SFabio Estevam * system startup to create static physical to virtual
4186fa0707SFabio Estevam * memory map for the IO modules.
4286fa0707SFabio Estevam */
mx27_map_io(void)4386fa0707SFabio Estevam static void __init mx27_map_io(void)
4486fa0707SFabio Estevam {
4586fa0707SFabio Estevam iotable_init(imx27_io_desc, ARRAY_SIZE(imx27_io_desc));
4686fa0707SFabio Estevam }
4786fa0707SFabio Estevam
imx27_init_early(void)4886fa0707SFabio Estevam static void __init imx27_init_early(void)
4986fa0707SFabio Estevam {
5086fa0707SFabio Estevam mxc_set_cpu_type(MXC_CPU_MX27);
5186fa0707SFabio Estevam }
5286fa0707SFabio 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