1 // SPDX-License-Identifier: GPL-2.0-or-later
2 /*
3  *  Copyright (C) 2014 Alexander Shiyan <shc_work@mail.ru>
4  */
5 
6 #include <linux/of_platform.h>
7 #include <asm/mach/arch.h>
8 #include <asm/mach/map.h>
9 
10 #include "common.h"
11 #include "hardware.h"
12 
13 #define MX1_AVIC_ADDR	0x00223000
14 
imx1_init_early(void)15 static void __init imx1_init_early(void)
16 {
17 	mxc_set_cpu_type(MXC_CPU_MX1);
18 }
19 
imx1_init_irq(void)20 static void __init imx1_init_irq(void)
21 {
22 	void __iomem *avic_addr;
23 
24 	avic_addr = ioremap(MX1_AVIC_ADDR, SZ_4K);
25 	WARN_ON(!avic_addr);
26 
27 	mxc_init_irq(avic_addr);
28 }
29 
30 static const char * const imx1_dt_board_compat[] __initconst = {
31 	"fsl,imx1",
32 	NULL
33 };
34 
35 DT_MACHINE_START(IMX1_DT, "Freescale i.MX1 (Device Tree Support)")
36 	.init_early	= imx1_init_early,
37 	.init_irq	= imx1_init_irq,
38 	.dt_compat	= imx1_dt_board_compat,
39 	.restart	= mxc_restart,
40 MACHINE_END
41