mach-imx6sx.c 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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. #include <linux/irqchip.h>
  9. #include <linux/of_platform.h>
  10. #include <asm/mach/arch.h>
  11. #include <asm/mach/map.h>
  12. #include "common.h"
  13. static void __init imx6sx_init_machine(void)
  14. {
  15. struct device *parent;
  16. mxc_arch_reset_init_dt();
  17. parent = imx_soc_device_init();
  18. if (parent == NULL)
  19. pr_warn("failed to initialize soc device\n");
  20. of_platform_populate(NULL, of_default_bus_match_table, NULL, parent);
  21. imx_anatop_init();
  22. }
  23. static void __init imx6sx_init_irq(void)
  24. {
  25. imx_init_revision_from_anatop();
  26. imx_init_l2cache();
  27. imx_src_init();
  28. imx_gpc_init();
  29. irqchip_init();
  30. }
  31. static const char *imx6sx_dt_compat[] __initconst = {
  32. "fsl,imx6sx",
  33. NULL,
  34. };
  35. DT_MACHINE_START(IMX6SX, "Freescale i.MX6 SoloX (Device Tree)")
  36. .map_io = debug_ll_io_init,
  37. .init_irq = imx6sx_init_irq,
  38. .init_machine = imx6sx_init_machine,
  39. .dt_compat = imx6sx_dt_compat,
  40. .restart = mxc_restart,
  41. MACHINE_END