Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+7 −0
Original line number Original line Diff line number Diff line
@@ -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
+1 −0
Original line number Original line Diff line number Diff line
@@ -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
+4 −1
Original line number Original line Diff line number Diff line
/*
/*
 * 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 @@
#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)
	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);


+3 −0
Original line number Original line Diff line number Diff line
@@ -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";
	}
	}
+43 −0
Original line number Original line Diff line number Diff line
/*
 * 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
Loading