1 | // SPDX-License-Identifier: GPL-2.0-only |
2 | /* |
3 | * Copyright (C) 2015 Freescale Semiconductor, Inc. |
4 | */ |
5 | #include <linux/irqchip.h> |
6 | #include <linux/of_platform.h> |
7 | #include <asm/mach/arch.h> |
8 | |
9 | #include "common.h" |
10 | #include "cpuidle.h" |
11 | #include "hardware.h" |
12 | |
13 | static void __init imx6ul_init_machine(void) |
14 | { |
15 | imx_print_silicon_rev(cpu: cpu_is_imx6ull() ? "i.MX6ULL" : "i.MX6UL" , |
16 | srev: imx_get_soc_revision()); |
17 | |
18 | of_platform_default_populate(NULL, NULL, NULL); |
19 | imx_anatop_init(); |
20 | imx6ul_pm_init(); |
21 | } |
22 | |
23 | static void __init imx6ul_init_irq(void) |
24 | { |
25 | imx_init_revision_from_anatop(); |
26 | imx_src_init(); |
27 | irqchip_init(); |
28 | imx6_pm_ccm_init(ccm_compat: "fsl,imx6ul-ccm" ); |
29 | } |
30 | |
31 | static void __init imx6ul_init_late(void) |
32 | { |
33 | imx6sx_cpuidle_init(); |
34 | |
35 | if (IS_ENABLED(CONFIG_ARM_IMX6Q_CPUFREQ)) |
36 | platform_device_register_simple(name: "imx6q-cpufreq" , id: -1, NULL, num: 0); |
37 | } |
38 | |
39 | static const char * const imx6ul_dt_compat[] __initconst = { |
40 | "fsl,imx6ul" , |
41 | "fsl,imx6ull" , |
42 | "fsl,imx6ulz" , |
43 | NULL, |
44 | }; |
45 | |
46 | DT_MACHINE_START(IMX6UL, "Freescale i.MX6 Ultralite (Device Tree)" ) |
47 | .init_irq = imx6ul_init_irq, |
48 | .init_machine = imx6ul_init_machine, |
49 | .init_late = imx6ul_init_late, |
50 | .dt_compat = imx6ul_dt_compat, |
51 | MACHINE_END |
52 | |