xref: /linux/arch/arm/mach-imx/mach-imx27.c (revision a1c613ae4c322ddd58d5a8539dbfba2a0380a8c0)
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