Merge tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull arm SoC platform updates from Olof Johansson: "SoC updates, mostly refactorings and cleanups of old legacy platforms, but also a few more things: New SoC support this release: - NXP/Freescale i.MX7ULP (1x Cortex-A7, Cortex-M4, graphics, etc) - Allwinner F1C100, older platform with an ARM926-EJS (ARMv5) core Cleanups of various platforms: - OMAP1 ams-delta does some GPIO cleanups - Davinci removes of at24 platform data - Samsung cleans up old wakeup, PM debug and secondary core boot code - Renesas moves around config options and PM code to drivers/soc for sharing with 64-bit and more consistency - i.MX, Broadcom and SoCFPGA all have tweaks to lowlevel debug console setups - SoCFPGA adds explicit selection of ARM errata and removes some unused code This also contains a few patches that I had queued up as fixes for 4.20 but didn't send in before the release" * tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (68 commits) arm64: dts: renesas: draak: Fix CVBS input ARM: omap2: avoid section mismatch warning ARM: tegra: avoid section mismatch warning ARM: ks8695: fix section mismatch warning ARM: pxa: avoid section mismatch warning ARM: mmp: fix pxa168_device_usb_phy use on aspenite ARM: mmp: fix timer_init calls ARM: OMAP1: fix USB configuration for device-only setups ARM: OMAP1: add MMC configuration for Palm Tungsten E ARM: imx: fix dependencies on imx7ulp ARM: meson: select HAVE_ARM_TWD and ARM_GLOBAL_TIMER MAINTAINERS: add drivers/soc/amlogic/ to amlogic list ARM: imx: add initial support for imx7ulp ARM: debug-imx: only define DEBUG_IMX_UART_PORT if needed ARM: dts: Fix OMAP4430 SDP Ethernet startup ARM: dts: am335x-pdu001: Fix polarity of card detection input ARM: OMAP1: ams-delta: Fix audio permanently muted ARM: dts: omap5: Fix dual-role mode on Super-Speed port arm64: dts: rockchip: fix rk3399-rockpro64 regulator gpios ARM: davinci: da850-evm: remove unnecessary include ...
This commit is contained in:
@@ -558,6 +558,15 @@ config SOC_IMX7D
|
||||
help
|
||||
This enables support for Freescale i.MX7 Dual processor.
|
||||
|
||||
config SOC_IMX7ULP
|
||||
bool "i.MX7ULP support"
|
||||
select CLKSRC_IMX_TPM
|
||||
select PINCTRL_IMX7ULP
|
||||
select SOC_IMX7D_CA7 if ARCH_MULTI_V7
|
||||
select SOC_IMX7D_CM4 if ARM_SINGLE_ARMV7M
|
||||
help
|
||||
This enables support for Freescale i.MX7 Ultra Low Power processor.
|
||||
|
||||
config SOC_VF610
|
||||
bool "Vybrid Family VF610 support"
|
||||
select ARM_GIC if ARCH_MULTI_V7
|
||||
|
@@ -83,6 +83,7 @@ obj-$(CONFIG_SOC_IMX6SX) += mach-imx6sx.o
|
||||
obj-$(CONFIG_SOC_IMX6UL) += mach-imx6ul.o
|
||||
obj-$(CONFIG_SOC_IMX7D_CA7) += mach-imx7d.o
|
||||
obj-$(CONFIG_SOC_IMX7D_CM4) += mach-imx7d-cm4.o
|
||||
obj-$(CONFIG_SOC_IMX7ULP) += mach-imx7ulp.o pm-imx7ulp.o
|
||||
|
||||
ifeq ($(CONFIG_SUSPEND),y)
|
||||
AFLAGS_suspend-imx6.o :=-Wa,-march=armv7-a
|
||||
|
@@ -120,6 +120,7 @@ void imx6dl_pm_init(void);
|
||||
void imx6sl_pm_init(void);
|
||||
void imx6sx_pm_init(void);
|
||||
void imx6ul_pm_init(void);
|
||||
void imx7ulp_pm_init(void);
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
void imx51_pm_init(void);
|
||||
|
@@ -145,6 +145,9 @@ struct device * __init imx_soc_device_init(void)
|
||||
case MXC_CPU_IMX7D:
|
||||
soc_id = "i.MX7D";
|
||||
break;
|
||||
case MXC_CPU_IMX7ULP:
|
||||
soc_id = "i.MX7ULP";
|
||||
break;
|
||||
default:
|
||||
soc_id = "Unknown";
|
||||
}
|
||||
|
31
arch/arm/mach-imx/mach-imx7ulp.c
Normal file
31
arch/arm/mach-imx/mach-imx7ulp.c
Normal file
@@ -0,0 +1,31 @@
|
||||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* Copyright (C) 2016 Freescale Semiconductor, Inc.
|
||||
* Copyright 2017-2018 NXP
|
||||
* Author: Dong Aisheng <aisheng.dong@nxp.com>
|
||||
*/
|
||||
|
||||
#include <linux/irqchip.h>
|
||||
#include <linux/of_platform.h>
|
||||
#include <asm/mach/arch.h>
|
||||
|
||||
#include "common.h"
|
||||
#include "hardware.h"
|
||||
|
||||
static void __init imx7ulp_init_machine(void)
|
||||
{
|
||||
imx7ulp_pm_init();
|
||||
|
||||
mxc_set_cpu_type(MXC_CPU_IMX7ULP);
|
||||
of_platform_default_populate(NULL, NULL, imx_soc_device_init());
|
||||
}
|
||||
|
||||
static const char *const imx7ulp_dt_compat[] __initconst = {
|
||||
"fsl,imx7ulp",
|
||||
NULL,
|
||||
};
|
||||
|
||||
DT_MACHINE_START(IMX7ulp, "Freescale i.MX7ULP (Device Tree)")
|
||||
.init_machine = imx7ulp_init_machine,
|
||||
.dt_compat = imx7ulp_dt_compat,
|
||||
MACHINE_END
|
@@ -44,6 +44,7 @@
|
||||
#define MXC_CPU_IMX6ULZ 0x6b
|
||||
#define MXC_CPU_IMX6SLL 0x67
|
||||
#define MXC_CPU_IMX7D 0x72
|
||||
#define MXC_CPU_IMX7ULP 0xff
|
||||
|
||||
#define IMX_DDR_TYPE_LPDDR2 1
|
||||
|
||||
|
29
arch/arm/mach-imx/pm-imx7ulp.c
Normal file
29
arch/arm/mach-imx/pm-imx7ulp.c
Normal file
@@ -0,0 +1,29 @@
|
||||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* Copyright (C) 2016 Freescale Semiconductor, Inc.
|
||||
* Copyright 2017-2018 NXP
|
||||
* Author: Dong Aisheng <aisheng.dong@nxp.com>
|
||||
*/
|
||||
|
||||
#include <linux/io.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_address.h>
|
||||
|
||||
#define SMC_PMCTRL 0x10
|
||||
#define BP_PMCTRL_PSTOPO 16
|
||||
#define PSTOPO_PSTOP3 0x3
|
||||
|
||||
void __init imx7ulp_pm_init(void)
|
||||
{
|
||||
struct device_node *np;
|
||||
void __iomem *smc1_base;
|
||||
|
||||
np = of_find_compatible_node(NULL, NULL, "fsl,imx7ulp-smc1");
|
||||
smc1_base = of_iomap(np, 0);
|
||||
WARN_ON(!smc1_base);
|
||||
|
||||
/* Partial Stop mode 3 with system/bus clock enabled */
|
||||
writel_relaxed(PSTOPO_PSTOP3 << BP_PMCTRL_PSTOPO,
|
||||
smc1_base + SMC_PMCTRL);
|
||||
iounmap(smc1_base);
|
||||
}
|
Reference in New Issue
Block a user