diff options
Diffstat (limited to 'arch/arm/mach-imx/mach-imx6ul.c')
-rw-r--r-- | arch/arm/mach-imx/mach-imx6ul.c | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/mach-imx6ul.c b/arch/arm/mach-imx/mach-imx6ul.c new file mode 100644 index 0000000000..cb6d29c2bb --- /dev/null +++ b/arch/arm/mach-imx/mach-imx6ul.c @@ -0,0 +1,51 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Copyright (C) 2015 Freescale Semiconductor, Inc. + */ +#include <linux/irqchip.h> +#include <linux/of_platform.h> +#include <asm/mach/arch.h> + +#include "common.h" +#include "cpuidle.h" +#include "hardware.h" + +static void __init imx6ul_init_machine(void) +{ + imx_print_silicon_rev(cpu_is_imx6ull() ? "i.MX6ULL" : "i.MX6UL", + imx_get_soc_revision()); + + of_platform_default_populate(NULL, NULL, NULL); + imx_anatop_init(); + imx6ul_pm_init(); +} + +static void __init imx6ul_init_irq(void) +{ + imx_init_revision_from_anatop(); + imx_src_init(); + irqchip_init(); + imx6_pm_ccm_init("fsl,imx6ul-ccm"); +} + +static void __init imx6ul_init_late(void) +{ + imx6sx_cpuidle_init(); + + if (IS_ENABLED(CONFIG_ARM_IMX6Q_CPUFREQ)) + platform_device_register_simple("imx6q-cpufreq", -1, NULL, 0); +} + +static const char * const imx6ul_dt_compat[] __initconst = { + "fsl,imx6ul", + "fsl,imx6ull", + "fsl,imx6ulz", + NULL, +}; + +DT_MACHINE_START(IMX6UL, "Freescale i.MX6 Ultralite (Device Tree)") + .init_irq = imx6ul_init_irq, + .init_machine = imx6ul_init_machine, + .init_late = imx6ul_init_late, + .dt_compat = imx6ul_dt_compat, +MACHINE_END |