1 /* 2 * Copyright 2014 Freescale Semiconductor, Inc. 3 * 4 * This program is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License version 2 as 6 * published by the Free Software Foundation. 7 */ 8 9 #include <linux/irqchip.h> 10 #include <linux/of_platform.h> 11 #include <asm/mach/arch.h> 12 #include <asm/mach/map.h> 13 14 #include "common.h" 15 16 static void __init imx6sx_init_machine(void) 17 { 18 struct device *parent; 19 20 mxc_arch_reset_init_dt(); 21 22 parent = imx_soc_device_init(); 23 if (parent == NULL) 24 pr_warn("failed to initialize soc device\n"); 25 26 of_platform_populate(NULL, of_default_bus_match_table, NULL, parent); 27 28 imx_anatop_init(); 29 } 30 31 static void __init imx6sx_init_irq(void) 32 { 33 imx_init_revision_from_anatop(); 34 imx_init_l2cache(); 35 imx_src_init(); 36 imx_gpc_init(); 37 irqchip_init(); 38 } 39 40 static const char *imx6sx_dt_compat[] __initconst = { 41 "fsl,imx6sx", 42 NULL, 43 }; 44 45 DT_MACHINE_START(IMX6SX, "Freescale i.MX6 SoloX (Device Tree)") 46 .map_io = debug_ll_io_init, 47 .init_irq = imx6sx_init_irq, 48 .init_machine = imx6sx_init_machine, 49 .dt_compat = imx6sx_dt_compat, 50 .restart = mxc_restart, 51 MACHINE_END 52