ARM: imx: Add basic msl support for imx6sll
Add basic MSL support for i.MX6SLL. The i.MX 6SoloLiteLite application processors are NXP's latest additions to a growing family of multimedia-focused products offering high-performance processing optimized for lowest power consumption. The i.MX 6SoloLiteLite processors feature NXP's advanced implementation of the ARM Cortex-A9 core, which can be interfaced with LPDDR3 and LPDDR2 DRAM memory devices. Signed-off-by: Bai Ping <ping.bai@nxp.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
This commit is contained in:
parent
258172f96f
commit
dee5dee2a5
|
@ -499,6 +499,13 @@ config SOC_IMX6SL
|
|||
help
|
||||
This enables support for Freescale i.MX6 SoloLite processor.
|
||||
|
||||
config SOC_IMX6SLL
|
||||
bool "i.MX6 SoloLiteLite support"
|
||||
select SOC_IMX6
|
||||
|
||||
help
|
||||
This enables support for Freescale i.MX6 SoloLiteLite processor.
|
||||
|
||||
config SOC_IMX6SX
|
||||
bool "i.MX6 SoloX support"
|
||||
select PINCTRL_IMX6SX
|
||||
|
|
|
@ -77,6 +77,7 @@ obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o
|
|||
endif
|
||||
obj-$(CONFIG_SOC_IMX6Q) += mach-imx6q.o
|
||||
obj-$(CONFIG_SOC_IMX6SL) += mach-imx6sl.o
|
||||
obj-$(CONFIG_SOC_IMX6SLL) += mach-imx6sl.o
|
||||
obj-$(CONFIG_SOC_IMX6SX) += mach-imx6sx.o
|
||||
obj-$(CONFIG_SOC_IMX6UL) += mach-imx6ul.o
|
||||
obj-$(CONFIG_SOC_IMX7D) += mach-imx7d.o
|
||||
|
|
|
@ -135,6 +135,9 @@ struct device * __init imx_soc_device_init(void)
|
|||
case MXC_CPU_IMX6ULL:
|
||||
soc_id = "i.MX6ULL";
|
||||
break;
|
||||
case MXC_CPU_IMX6SLL:
|
||||
soc_id = "i.MX6SLL";
|
||||
break;
|
||||
case MXC_CPU_IMX7D:
|
||||
soc_id = "i.MX7D";
|
||||
break;
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
|
||||
#include "common.h"
|
||||
#include "cpuidle.h"
|
||||
#include "hardware.h"
|
||||
|
||||
static int imx6sl_enter_wait(struct cpuidle_device *dev,
|
||||
struct cpuidle_driver *drv, int index)
|
||||
|
@ -21,9 +22,11 @@ static int imx6sl_enter_wait(struct cpuidle_device *dev,
|
|||
* Software workaround for ERR005311, see function
|
||||
* description for details.
|
||||
*/
|
||||
imx6sl_set_wait_clk(true);
|
||||
if (cpu_is_imx6sl())
|
||||
imx6sl_set_wait_clk(true);
|
||||
cpu_do_idle();
|
||||
imx6sl_set_wait_clk(false);
|
||||
if (cpu_is_imx6sl())
|
||||
imx6sl_set_wait_clk(false);
|
||||
imx6_set_lpm(WAIT_CLOCKED);
|
||||
|
||||
return index;
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
|
||||
#include "common.h"
|
||||
#include "cpuidle.h"
|
||||
#include "hardware.h"
|
||||
|
||||
static void __init imx6sl_fec_init(void)
|
||||
{
|
||||
|
@ -54,7 +55,8 @@ static void __init imx6sl_init_machine(void)
|
|||
|
||||
of_platform_default_populate(NULL, NULL, parent);
|
||||
|
||||
imx6sl_fec_init();
|
||||
if (cpu_is_imx6sl())
|
||||
imx6sl_fec_init();
|
||||
imx_anatop_init();
|
||||
imx6sl_pm_init();
|
||||
}
|
||||
|
@ -66,11 +68,15 @@ static void __init imx6sl_init_irq(void)
|
|||
imx_init_l2cache();
|
||||
imx_src_init();
|
||||
irqchip_init();
|
||||
imx6_pm_ccm_init("fsl,imx6sl-ccm");
|
||||
if (cpu_is_imx6sl())
|
||||
imx6_pm_ccm_init("fsl,imx6sl-ccm");
|
||||
else
|
||||
imx6_pm_ccm_init("fsl,imx6sll-ccm");
|
||||
}
|
||||
|
||||
static const char * const imx6sl_dt_compat[] __initconst = {
|
||||
"fsl,imx6sl",
|
||||
"fsl,imx6sll",
|
||||
NULL,
|
||||
};
|
||||
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
#define MXC_CPU_IMX6Q 0x63
|
||||
#define MXC_CPU_IMX6UL 0x64
|
||||
#define MXC_CPU_IMX6ULL 0x65
|
||||
#define MXC_CPU_IMX6SLL 0x67
|
||||
#define MXC_CPU_IMX7D 0x72
|
||||
|
||||
#define IMX_DDR_TYPE_LPDDR2 1
|
||||
|
@ -79,6 +80,11 @@ static inline bool cpu_is_imx6ull(void)
|
|||
return __mxc_cpu_type == MXC_CPU_IMX6ULL;
|
||||
}
|
||||
|
||||
static inline bool cpu_is_imx6sll(void)
|
||||
{
|
||||
return __mxc_cpu_type == MXC_CPU_IMX6SLL;
|
||||
}
|
||||
|
||||
static inline bool cpu_is_imx6q(void)
|
||||
{
|
||||
return __mxc_cpu_type == MXC_CPU_IMX6Q;
|
||||
|
|
Loading…
Reference in New Issue