mirror of
https://github.com/torvalds/linux.git
synced 2024-11-26 06:02:05 +00:00
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
@ -763,6 +763,14 @@ config SOC_IMX6SL
|
||||
help
|
||||
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
|
||||
bool "Vybrid Family VF610 support"
|
||||
select ARM_GIC
|
||||
|
@ -101,6 +101,7 @@ obj-$(CONFIG_SMP) += headsmp.o platsmp.o
|
||||
obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o
|
||||
obj-$(CONFIG_SOC_IMX6Q) += clk-imx6q.o mach-imx6q.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)
|
||||
AFLAGS_suspend-imx6.o :=-Wa,-march=armv7-a
|
||||
|
@ -111,6 +111,9 @@ struct device * __init imx_soc_device_init(void)
|
||||
case MXC_CPU_IMX6DL:
|
||||
soc_id = "i.MX6DL";
|
||||
break;
|
||||
case MXC_CPU_IMX6SX:
|
||||
soc_id = "i.MX6SX";
|
||||
break;
|
||||
case MXC_CPU_IMX6Q:
|
||||
soc_id = "i.MX6Q";
|
||||
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_IMX6SL 0x60
|
||||
#define MXC_CPU_IMX6DL 0x61
|
||||
#define MXC_CPU_IMX6SX 0x62
|
||||
#define MXC_CPU_IMX6Q 0x63
|
||||
|
||||
#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;
|
||||
}
|
||||
|
||||
static inline bool cpu_is_imx6sx(void)
|
||||
{
|
||||
return __mxc_cpu_type == MXC_CPU_IMX6SX;
|
||||
}
|
||||
|
||||
static inline bool cpu_is_imx6q(void)
|
||||
{
|
||||
return __mxc_cpu_type == MXC_CPU_IMX6Q;
|
||||
|
Loading…
Reference in New Issue
Block a user