xref: /linux/arch/arm/mach-imx/mach-imx7ulp.c (revision 6d45a4028c8a6bc0a1e92438283ef7d4ed6ffe71)
1de70d0e9SA.s. Dong // SPDX-License-Identifier: GPL-2.0+
2de70d0e9SA.s. Dong /*
3de70d0e9SA.s. Dong  * Copyright (C) 2016 Freescale Semiconductor, Inc.
4de70d0e9SA.s. Dong  * Copyright 2017-2018 NXP
5de70d0e9SA.s. Dong  *   Author: Dong Aisheng <aisheng.dong@nxp.com>
6de70d0e9SA.s. Dong  */
7de70d0e9SA.s. Dong 
8de70d0e9SA.s. Dong #include <linux/irqchip.h>
9de70d0e9SA.s. Dong #include <linux/of_platform.h>
10de70d0e9SA.s. Dong #include <asm/mach/arch.h>
11de70d0e9SA.s. Dong 
12de70d0e9SA.s. Dong #include "common.h"
13*6d45a402SAnson Huang #include "cpuidle.h"
14de70d0e9SA.s. Dong #include "hardware.h"
15de70d0e9SA.s. Dong 
16de70d0e9SA.s. Dong static void __init imx7ulp_init_machine(void)
17de70d0e9SA.s. Dong {
18de70d0e9SA.s. Dong 	imx7ulp_pm_init();
19de70d0e9SA.s. Dong 
20de70d0e9SA.s. Dong 	mxc_set_cpu_type(MXC_CPU_IMX7ULP);
21de70d0e9SA.s. Dong 	of_platform_default_populate(NULL, NULL, imx_soc_device_init());
22de70d0e9SA.s. Dong }
23de70d0e9SA.s. Dong 
24de70d0e9SA.s. Dong static const char *const imx7ulp_dt_compat[] __initconst = {
25de70d0e9SA.s. Dong 	"fsl,imx7ulp",
26de70d0e9SA.s. Dong 	NULL,
27de70d0e9SA.s. Dong };
28de70d0e9SA.s. Dong 
29*6d45a402SAnson Huang static void __init imx7ulp_init_late(void)
30*6d45a402SAnson Huang {
31*6d45a402SAnson Huang 	imx7ulp_cpuidle_init();
32*6d45a402SAnson Huang }
33*6d45a402SAnson Huang 
34de70d0e9SA.s. Dong DT_MACHINE_START(IMX7ulp, "Freescale i.MX7ULP (Device Tree)")
35de70d0e9SA.s. Dong 	.init_machine	= imx7ulp_init_machine,
36de70d0e9SA.s. Dong 	.dt_compat	= imx7ulp_dt_compat,
37*6d45a402SAnson Huang 	.init_late	= imx7ulp_init_late,
38de70d0e9SA.s. Dong MACHINE_END
39