Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: imx: add i.mx6ul msl support

i.MX6UL is a new SOC, add MSL support

Signed-off-by: Frank Li <Frank.Li@freescale.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>

authored by

Frank Li and committed by
Shawn Guo
022d0716 d770e558

+61
+8
arch/arm/mach-imx/Kconfig
··· 548 548 help 549 549 This enables support for Freescale i.MX6 SoloX processor. 550 550 551 + config SOC_IMX6UL 552 + bool "i.MX6 UltraLite support" 553 + select PINCTRL_IMX6UL 554 + select SOC_IMX6 555 + 556 + help 557 + This enables support for Freescale i.MX6 UltraLite processor. 558 + 551 559 config SOC_IMX7D 552 560 bool "i.MX7 Dual support" 553 561 select PINCTRL_IMX7D
+1
arch/arm/mach-imx/Makefile
··· 83 83 obj-$(CONFIG_SOC_IMX6Q) += mach-imx6q.o 84 84 obj-$(CONFIG_SOC_IMX6SL) += mach-imx6sl.o 85 85 obj-$(CONFIG_SOC_IMX6SX) += mach-imx6sx.o 86 + obj-$(CONFIG_SOC_IMX6UL) += mach-imx6ul.o 86 87 obj-$(CONFIG_SOC_IMX7D) += mach-imx7d.o 87 88 88 89 ifeq ($(CONFIG_SUSPEND),y)
+3
arch/arm/mach-imx/cpu.c
··· 130 130 case MXC_CPU_IMX6Q: 131 131 soc_id = "i.MX6Q"; 132 132 break; 133 + case MXC_CPU_IMX6UL: 134 + soc_id = "i.MX6UL"; 135 + break; 133 136 case MXC_CPU_IMX7D: 134 137 soc_id = "i.MX7D"; 135 138 break;
+43
arch/arm/mach-imx/mach-imx6ul.c
··· 1 + /* 2 + * Copyright (C) 2015 Freescale Semiconductor, Inc. 3 + * 4 + * This program is free software; you can redistribute it and/or modify 5 + * it under the terms of the GNU General Public License version 2 as 6 + * published by the Free Software Foundation. 7 + */ 8 + #include <linux/irqchip.h> 9 + #include <linux/of_platform.h> 10 + #include <asm/mach/arch.h> 11 + #include <asm/mach/map.h> 12 + 13 + #include "common.h" 14 + 15 + static void __init imx6ul_init_machine(void) 16 + { 17 + struct device *parent; 18 + 19 + parent = imx_soc_device_init(); 20 + if (parent == NULL) 21 + pr_warn("failed to initialize soc device\n"); 22 + 23 + of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); 24 + imx_anatop_init(); 25 + } 26 + 27 + static void __init imx6ul_init_irq(void) 28 + { 29 + imx_init_revision_from_anatop(); 30 + imx_src_init(); 31 + irqchip_init(); 32 + } 33 + 34 + static const char *imx6ul_dt_compat[] __initconst = { 35 + "fsl,imx6ul", 36 + NULL, 37 + }; 38 + 39 + DT_MACHINE_START(IMX6UL, "Freescale i.MX6 Ultralite (Device Tree)") 40 + .init_irq = imx6ul_init_irq, 41 + .init_machine = imx6ul_init_machine, 42 + .dt_compat = imx6ul_dt_compat, 43 + MACHINE_END
+6
arch/arm/mach-imx/mxc.h
··· 38 38 #define MXC_CPU_IMX6DL 0x61 39 39 #define MXC_CPU_IMX6SX 0x62 40 40 #define MXC_CPU_IMX6Q 0x63 41 + #define MXC_CPU_IMX6UL 0x64 41 42 #define MXC_CPU_IMX7D 0x72 42 43 43 44 #define IMX_DDR_TYPE_LPDDR2 1 ··· 164 163 static inline bool cpu_is_imx6sx(void) 165 164 { 166 165 return __mxc_cpu_type == MXC_CPU_IMX6SX; 166 + } 167 + 168 + static inline bool cpu_is_imx6ul(void) 169 + { 170 + return __mxc_cpu_type == MXC_CPU_IMX6UL; 167 171 } 168 172 169 173 static inline bool cpu_is_imx6q(void)