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