Commit 5739b919 authored by Anson Huang's avatar Anson Huang Committed by Shawn Guo

ARM: imx: add msl support for imx7d

Add i.MX7D MSL support.
Signed-off-by: default avatarAnson Huang <b20788@freescale.com>
Signed-off-by: default avatarFrank Li <Frank.Li@freescale.com>
Signed-off-by: default avatarShawn Guo <shawn.guo@linaro.org>
parent 52d7aec2
...@@ -582,6 +582,13 @@ config SOC_IMX6SX ...@@ -582,6 +582,13 @@ config SOC_IMX6SX
help help
This enables support for Freescale i.MX6 SoloX processor. This enables support for Freescale i.MX6 SoloX processor.
config SOC_IMX7D
bool "i.MX7 Dual support"
select PINCTRL_IMX7D
select ARM_GIC
help
This enables support for Freescale i.MX7 Dual processor.
config SOC_VF610 config SOC_VF610
bool "Vybrid Family VF610 support" bool "Vybrid Family VF610 support"
select IRQ_DOMAIN_HIERARCHY select IRQ_DOMAIN_HIERARCHY
......
...@@ -85,6 +85,7 @@ endif ...@@ -85,6 +85,7 @@ endif
obj-$(CONFIG_SOC_IMX6Q) += mach-imx6q.o obj-$(CONFIG_SOC_IMX6Q) += mach-imx6q.o
obj-$(CONFIG_SOC_IMX6SL) += mach-imx6sl.o obj-$(CONFIG_SOC_IMX6SL) += mach-imx6sl.o
obj-$(CONFIG_SOC_IMX6SX) += mach-imx6sx.o obj-$(CONFIG_SOC_IMX6SX) += mach-imx6sx.o
obj-$(CONFIG_SOC_IMX7D) += mach-imx7d.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
......
/* /*
* Copyright (C) 2013 Freescale Semiconductor, Inc. * Copyright (C) 2013-2015 Freescale Semiconductor, Inc.
* *
* The code contained herein is licensed under the GNU General Public * The code contained herein is licensed under the GNU General Public
* License. You may obtain a copy of the GNU General Public License * License. You may obtain a copy of the GNU General Public License
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
#define ANADIG_USB2_CHRG_DETECT 0x210 #define ANADIG_USB2_CHRG_DETECT 0x210
#define ANADIG_DIGPROG 0x260 #define ANADIG_DIGPROG 0x260
#define ANADIG_DIGPROG_IMX6SL 0x280 #define ANADIG_DIGPROG_IMX6SL 0x280
#define ANADIG_DIGPROG_IMX7D 0x800
#define BM_ANADIG_REG_2P5_ENABLE_WEAK_LINREG 0x40000 #define BM_ANADIG_REG_2P5_ENABLE_WEAK_LINREG 0x40000
#define BM_ANADIG_REG_2P5_ENABLE_PULLDOWN 0x8 #define BM_ANADIG_REG_2P5_ENABLE_PULLDOWN 0x8
...@@ -121,6 +122,8 @@ void __init imx_init_revision_from_anatop(void) ...@@ -121,6 +122,8 @@ void __init imx_init_revision_from_anatop(void)
WARN_ON(!anatop_base); WARN_ON(!anatop_base);
if (of_device_is_compatible(np, "fsl,imx6sl-anatop")) if (of_device_is_compatible(np, "fsl,imx6sl-anatop"))
offset = ANADIG_DIGPROG_IMX6SL; offset = ANADIG_DIGPROG_IMX6SL;
if (of_device_is_compatible(np, "fsl,imx7d-anatop"))
offset = ANADIG_DIGPROG_IMX7D;
digprog = readl_relaxed(anatop_base + offset); digprog = readl_relaxed(anatop_base + offset);
iounmap(anatop_base); iounmap(anatop_base);
......
...@@ -130,6 +130,9 @@ struct device * __init imx_soc_device_init(void) ...@@ -130,6 +130,9 @@ struct device * __init imx_soc_device_init(void)
case MXC_CPU_IMX6Q: case MXC_CPU_IMX6Q:
soc_id = "i.MX6Q"; soc_id = "i.MX6Q";
break; break;
case MXC_CPU_IMX7D:
soc_id = "i.MX7D";
break;
default: default:
soc_id = "Unknown"; soc_id = "Unknown";
} }
......
/*
* Copyright (C) 2015 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 imx7d_init_machine(void)
{
struct device *parent;
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, NULL);
imx_anatop_init();
}
static void __init imx7d_init_irq(void)
{
imx_init_revision_from_anatop();
imx_src_init();
irqchip_init();
}
static const char *imx7d_dt_compat[] __initconst = {
"fsl,imx7d",
NULL,
};
DT_MACHINE_START(IMX7D, "Freescale i.MX7 Dual (Device Tree)")
.init_irq = imx7d_init_irq,
.init_machine = imx7d_init_machine,
.dt_compat = imx7d_dt_compat,
MACHINE_END
/* /*
* Copyright 2004-2007, 2010 Freescale Semiconductor, Inc. All Rights Reserved. * Copyright 2004-2007, 2010-2015 Freescale Semiconductor, Inc.
* Copyright (C) 2008 Juergen Beisert (kernel@pengutronix.de) * Copyright (C) 2008 Juergen Beisert (kernel@pengutronix.de)
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
...@@ -38,6 +38,7 @@ ...@@ -38,6 +38,7 @@
#define MXC_CPU_IMX6DL 0x61 #define MXC_CPU_IMX6DL 0x61
#define MXC_CPU_IMX6SX 0x62 #define MXC_CPU_IMX6SX 0x62
#define MXC_CPU_IMX6Q 0x63 #define MXC_CPU_IMX6Q 0x63
#define MXC_CPU_IMX7D 0x72
#define IMX_DDR_TYPE_LPDDR2 1 #define IMX_DDR_TYPE_LPDDR2 1
...@@ -169,6 +170,11 @@ static inline bool cpu_is_imx6q(void) ...@@ -169,6 +170,11 @@ static inline bool cpu_is_imx6q(void)
return __mxc_cpu_type == MXC_CPU_IMX6Q; return __mxc_cpu_type == MXC_CPU_IMX6Q;
} }
static inline bool cpu_is_imx7d(void)
{
return __mxc_cpu_type == MXC_CPU_IMX7D;
}
struct cpu_op { struct cpu_op {
u32 cpu_rate; u32 cpu_rate;
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment