ARM: imx: add initial support for VF610
authorJingchang Lu <b35083@freescale.com>
Tue, 28 May 2013 09:12:21 +0000 (17:12 +0800)
committerShawn Guo <shawn.guo@linaro.org>
Mon, 17 Jun 2013 07:45:16 +0000 (15:45 +0800)
Add initial support for Freescale Vybrid VF610 SoC.

Signed-off-by: Jingchang Lu <b35083@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
arch/arm/mach-imx/Kconfig
arch/arm/mach-imx/Makefile
arch/arm/mach-imx/mach-vf610.c [new file with mode: 0644]

index a402248..b7eddbd 100644 (file)
@@ -835,6 +835,21 @@ config SOC_IMX6SL
        help
          This enables support for Freescale i.MX6 SoloLite processor.
 
+config SOC_VF610
+       bool "Vybrid Family VF610 support"
+       select CPU_V7
+       select ARM_GIC
+       select CLKSRC_OF
+       select PINCTRL
+       select PINCTRL_VF610
+       select VF_PIT_TIMER
+       select PL310_ERRATA_588369 if CACHE_PL310
+       select PL310_ERRATA_727915 if CACHE_PL310
+       select PL310_ERRATA_769419 if CACHE_PL310
+
+       help
+         This enable support for Freescale Vybrid VF610 processor.
+
 endif
 
 source "arch/arm/mach-imx/devices/Kconfig"
index 2a4754d..054f039 100644 (file)
@@ -112,4 +112,6 @@ obj-$(CONFIG_MACH_EUKREA_MBIMXSD51_BASEBOARD) += eukrea_mbimxsd51-baseboard.o
 obj-$(CONFIG_MACH_IMX51_DT) += imx51-dt.o
 obj-$(CONFIG_SOC_IMX53) += mach-imx53.o
 
+obj-$(CONFIG_SOC_VF610) += clk-vf610.o mach-vf610.o
+
 obj-y += devices/
diff --git a/arch/arm/mach-imx/mach-vf610.c b/arch/arm/mach-imx/mach-vf610.c
new file mode 100644 (file)
index 0000000..816991d
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2012-2013 Freescale Semiconductor, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ */
+
+#include <linux/of_platform.h>
+#include <linux/clocksource.h>
+#include <linux/irqchip.h>
+#include <linux/clk-provider.h>
+#include <asm/mach/arch.h>
+#include <asm/hardware/cache-l2x0.h>
+
+#include "common.h"
+
+static void __init vf610_init_machine(void)
+{
+       mxc_arch_reset_init_dt();
+       of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
+}
+
+static void __init vf610_init_irq(void)
+{
+       l2x0_of_init(0, ~0UL);
+       irqchip_init();
+}
+
+static void __init vf610_init_time(void)
+{
+       of_clk_init(NULL);
+       clocksource_of_init();
+}
+
+static const char *vf610_dt_compat[] __initdata = {
+       "fsl,vf610",
+       NULL,
+};
+
+DT_MACHINE_START(VYBRID_VF610, "Freescale Vybrid VF610 (Device Tree)")
+       .init_irq       = vf610_init_irq,
+       .init_time      = vf610_init_time,
+       .init_machine   = vf610_init_machine,
+       .dt_compat      = vf610_dt_compat,
+       .restart        = mxc_restart,
+MACHINE_END