ARM: imx: add basic imx6sx SoC support
Add basic suppport for i.MX6 SoloX SoC. Signed-off-by: Anson Huang <b20788@freescale.com> Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
This commit is contained in:
parent
d551356890
commit
d9654dceb3
5 changed files with 69 additions and 0 deletions
|
@ -763,6 +763,14 @@ config SOC_IMX6SL
|
||||||
help
|
help
|
||||||
This enables support for Freescale i.MX6 SoloLite processor.
|
This enables support for Freescale i.MX6 SoloLite processor.
|
||||||
|
|
||||||
|
config SOC_IMX6SX
|
||||||
|
bool "i.MX6 SoloX support"
|
||||||
|
select PINCTRL_IMX6SX
|
||||||
|
select SOC_IMX6
|
||||||
|
|
||||||
|
help
|
||||||
|
This enables support for Freescale i.MX6 SoloX processor.
|
||||||
|
|
||||||
config SOC_VF610
|
config SOC_VF610
|
||||||
bool "Vybrid Family VF610 support"
|
bool "Vybrid Family VF610 support"
|
||||||
select ARM_GIC
|
select ARM_GIC
|
||||||
|
|
|
@ -101,6 +101,7 @@ obj-$(CONFIG_SMP) += headsmp.o platsmp.o
|
||||||
obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o
|
obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o
|
||||||
obj-$(CONFIG_SOC_IMX6Q) += clk-imx6q.o mach-imx6q.o
|
obj-$(CONFIG_SOC_IMX6Q) += clk-imx6q.o mach-imx6q.o
|
||||||
obj-$(CONFIG_SOC_IMX6SL) += clk-imx6sl.o mach-imx6sl.o
|
obj-$(CONFIG_SOC_IMX6SL) += clk-imx6sl.o mach-imx6sl.o
|
||||||
|
obj-$(CONFIG_SOC_IMX6SX) += clk-imx6sx.o mach-imx6sx.o
|
||||||
|
|
||||||
ifeq ($(CONFIG_SUSPEND),y)
|
ifeq ($(CONFIG_SUSPEND),y)
|
||||||
AFLAGS_suspend-imx6.o :=-Wa,-march=armv7-a
|
AFLAGS_suspend-imx6.o :=-Wa,-march=armv7-a
|
||||||
|
|
|
@ -111,6 +111,9 @@ struct device * __init imx_soc_device_init(void)
|
||||||
case MXC_CPU_IMX6DL:
|
case MXC_CPU_IMX6DL:
|
||||||
soc_id = "i.MX6DL";
|
soc_id = "i.MX6DL";
|
||||||
break;
|
break;
|
||||||
|
case MXC_CPU_IMX6SX:
|
||||||
|
soc_id = "i.MX6SX";
|
||||||
|
break;
|
||||||
case MXC_CPU_IMX6Q:
|
case MXC_CPU_IMX6Q:
|
||||||
soc_id = "i.MX6Q";
|
soc_id = "i.MX6Q";
|
||||||
break;
|
break;
|
||||||
|
|
51
arch/arm/mach-imx/mach-imx6sx.c
Normal file
51
arch/arm/mach-imx/mach-imx6sx.c
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2014 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 version 2 as
|
||||||
|
* published by the Free Software Foundation.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <linux/irqchip.h>
|
||||||
|
#include <linux/of_platform.h>
|
||||||
|
#include <asm/mach/arch.h>
|
||||||
|
#include <asm/mach/map.h>
|
||||||
|
|
||||||
|
#include "common.h"
|
||||||
|
|
||||||
|
static void __init imx6sx_init_machine(void)
|
||||||
|
{
|
||||||
|
struct device *parent;
|
||||||
|
|
||||||
|
mxc_arch_reset_init_dt();
|
||||||
|
|
||||||
|
parent = imx_soc_device_init();
|
||||||
|
if (parent == NULL)
|
||||||
|
pr_warn("failed to initialize soc device\n");
|
||||||
|
|
||||||
|
of_platform_populate(NULL, of_default_bus_match_table, NULL, parent);
|
||||||
|
|
||||||
|
imx_anatop_init();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void __init imx6sx_init_irq(void)
|
||||||
|
{
|
||||||
|
imx_init_revision_from_anatop();
|
||||||
|
imx_init_l2cache();
|
||||||
|
imx_src_init();
|
||||||
|
imx_gpc_init();
|
||||||
|
irqchip_init();
|
||||||
|
}
|
||||||
|
|
||||||
|
static const char *imx6sx_dt_compat[] __initconst = {
|
||||||
|
"fsl,imx6sx",
|
||||||
|
NULL,
|
||||||
|
};
|
||||||
|
|
||||||
|
DT_MACHINE_START(IMX6SX, "Freescale i.MX6 SoloX (Device Tree)")
|
||||||
|
.map_io = debug_ll_io_init,
|
||||||
|
.init_irq = imx6sx_init_irq,
|
||||||
|
.init_machine = imx6sx_init_machine,
|
||||||
|
.dt_compat = imx6sx_dt_compat,
|
||||||
|
.restart = mxc_restart,
|
||||||
|
MACHINE_END
|
|
@ -36,6 +36,7 @@
|
||||||
#define MXC_CPU_MX53 53
|
#define MXC_CPU_MX53 53
|
||||||
#define MXC_CPU_IMX6SL 0x60
|
#define MXC_CPU_IMX6SL 0x60
|
||||||
#define MXC_CPU_IMX6DL 0x61
|
#define MXC_CPU_IMX6DL 0x61
|
||||||
|
#define MXC_CPU_IMX6SX 0x62
|
||||||
#define MXC_CPU_IMX6Q 0x63
|
#define MXC_CPU_IMX6Q 0x63
|
||||||
|
|
||||||
#define IMX_CHIP_REVISION_1_0 0x10
|
#define IMX_CHIP_REVISION_1_0 0x10
|
||||||
|
@ -163,6 +164,11 @@ static inline bool cpu_is_imx6dl(void)
|
||||||
return __mxc_cpu_type == MXC_CPU_IMX6DL;
|
return __mxc_cpu_type == MXC_CPU_IMX6DL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline bool cpu_is_imx6sx(void)
|
||||||
|
{
|
||||||
|
return __mxc_cpu_type == MXC_CPU_IMX6SX;
|
||||||
|
}
|
||||||
|
|
||||||
static inline bool cpu_is_imx6q(void)
|
static inline bool cpu_is_imx6q(void)
|
||||||
{
|
{
|
||||||
return __mxc_cpu_type == MXC_CPU_IMX6Q;
|
return __mxc_cpu_type == MXC_CPU_IMX6Q;
|
||||||
|
|
Loading…
Add table
Reference in a new issue