diff options
author | A.s. Dong <aisheng.dong@nxp.com> | 2018-11-10 16:13:04 +0100 |
---|---|---|
committer | Shawn Guo <shawnguo@kernel.org> | 2018-12-10 01:56:30 +0100 |
commit | de70d0e9d43dd5fa899ce3a1560a4d2536b6b71e (patch) | |
tree | 66e4aa2cd3ecc2a6f195eb383900f94639e1b0bb /arch/arm/mach-imx/mach-imx7ulp.c | |
parent | ARM: debug-imx: only define DEBUG_IMX_UART_PORT if needed (diff) | |
download | linux-de70d0e9d43dd5fa899ce3a1560a4d2536b6b71e.tar.xz linux-de70d0e9d43dd5fa899ce3a1560a4d2536b6b71e.zip |
ARM: imx: add initial support for imx7ulp
The i.MX 7ULP family of processors features NXP's advanced implementation
of the Arm Cortex-A7 core, the Arm Cortex-M4 core, as well as a 3D and 2D
Graphics Processing Units (GPUs).
This patch aims to add an initial support for imx7ulp. Note that we need
configure power mode to Partial Stop mode 3 with system/bus clock enabled
first as the default enabled STOP mode will gate off system/bus clock when
execute WFI in MX7ULP SoC.
And there's still no MXC_CPU_IMX7ULP IDs read from register as ULP has no
anatop as before. So we encode one with 0xff in reverse order in case new
ones will be in the future.
Cc: Shawn Guo <shawnguo@kernel.org>
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
Diffstat (limited to 'arch/arm/mach-imx/mach-imx7ulp.c')
-rw-r--r-- | arch/arm/mach-imx/mach-imx7ulp.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/mach-imx7ulp.c b/arch/arm/mach-imx/mach-imx7ulp.c new file mode 100644 index 000000000000..33937ebf66b5 --- /dev/null +++ b/arch/arm/mach-imx/mach-imx7ulp.c @@ -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 |