1 // SPDX-License-Identifier: GPL-2.0-only 2 /* 3 * Copyright 2014 Freescale Semiconductor, Inc. 4 */ 5 6 #include <linux/irqchip.h> 7 #include <linux/of_platform.h> 8 #include <linux/regmap.h> 9 #include <linux/mfd/syscon.h> 10 #include <asm/mach/arch.h> 11 12 #include "common.h" 13 #include "cpuidle.h" 14 15 static void __init imx6sx_init_machine(void) 16 { 17 of_platform_default_populate(NULL, NULL, NULL); 18 19 imx_anatop_init(); 20 imx6sx_pm_init(); 21 } 22 23 static void __init imx6sx_init_irq(void) 24 { 25 imx_gpc_check_dt(); 26 imx_init_revision_from_anatop(); 27 imx_init_l2cache(); 28 imx_src_init(); 29 irqchip_init(); 30 imx6_pm_ccm_init("fsl,imx6sx-ccm"); 31 } 32 33 static void __init imx6sx_init_late(void) 34 { 35 imx6sx_cpuidle_init(); 36 37 if (IS_ENABLED(CONFIG_ARM_IMX6Q_CPUFREQ)) 38 platform_device_register_simple("imx6q-cpufreq", -1, NULL, 0); 39 } 40 41 static const char * const imx6sx_dt_compat[] __initconst = { 42 "fsl,imx6sx", 43 NULL, 44 }; 45 46 DT_MACHINE_START(IMX6SX, "Freescale i.MX6 SoloX (Device Tree)") 47 .l2c_aux_val = 0, 48 .l2c_aux_mask = ~0, 49 .init_irq = imx6sx_init_irq, 50 .init_machine = imx6sx_init_machine, 51 .dt_compat = imx6sx_dt_compat, 52 .init_late = imx6sx_init_late, 53 MACHINE_END 54