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

Commit 036c37c5 authored by Kukjin Kim's avatar Kukjin Kim
Browse files

Merge branch 'v3.17-next/cleanup-samsung' into v3.17-next/power-exynos

parents 9a3c4145 fce9e5bb
Loading
Loading
Loading
Loading
+4 −16
Original line number Diff line number Diff line
@@ -617,53 +617,41 @@ choice
		depends on PLAT_SAMSUNG
		select DEBUG_EXYNOS_UART if ARCH_EXYNOS
		select DEBUG_S3C24XX_UART if ARCH_S3C24XX
		bool "Use S3C UART 0 for low-level debug"
		bool "Use Samsung S3C UART 0 for low-level debug"
		help
		  Say Y here if you want the debug print routines to direct
		  their output to UART 0. The port must have been initialised
		  by the boot-loader before use.

		  The uncompressor code port configuration is now handled
		  by CONFIG_S3C_LOWLEVEL_UART_PORT.

	config DEBUG_S3C_UART1
		depends on PLAT_SAMSUNG
		select DEBUG_EXYNOS_UART if ARCH_EXYNOS
		select DEBUG_S3C24XX_UART if ARCH_S3C24XX
		bool "Use S3C UART 1 for low-level debug"
		bool "Use Samsung S3C UART 1 for low-level debug"
		help
		  Say Y here if you want the debug print routines to direct
		  their output to UART 1. The port must have been initialised
		  by the boot-loader before use.

		  The uncompressor code port configuration is now handled
		  by CONFIG_S3C_LOWLEVEL_UART_PORT.

	config DEBUG_S3C_UART2
		depends on PLAT_SAMSUNG
		select DEBUG_EXYNOS_UART if ARCH_EXYNOS
		select DEBUG_S3C24XX_UART if ARCH_S3C24XX
		bool "Use S3C UART 2 for low-level debug"
		bool "Use Samsung S3C UART 2 for low-level debug"
		help
		  Say Y here if you want the debug print routines to direct
		  their output to UART 2. The port must have been initialised
		  by the boot-loader before use.

		  The uncompressor code port configuration is now handled
		  by CONFIG_S3C_LOWLEVEL_UART_PORT.

	config DEBUG_S3C_UART3
		depends on PLAT_SAMSUNG && ARCH_EXYNOS
		select DEBUG_EXYNOS_UART
		bool "Use S3C UART 3 for low-level debug"
		bool "Use Samsung S3C UART 3 for low-level debug"
		help
		  Say Y here if you want the debug print routines to direct
		  their output to UART 3. The port must have been initialised
		  by the boot-loader before use.

		  The uncompressor code port configuration is now handled
		  by CONFIG_S3C_LOWLEVEL_UART_PORT.

	config DEBUG_S3C2410_UART0
		depends on ARCH_S3C24XX
		select DEBUG_S3C2410_UART
+1 −12
Original line number Diff line number Diff line
@@ -111,25 +111,14 @@ IS_SAMSUNG_CPU(exynos5800, EXYNOS5800_SOC_ID, EXYNOS5_SOC_MASK)
#define soc_is_exynos5() (soc_is_exynos5250() || soc_is_exynos5410() || \
			  soc_is_exynos5420() || soc_is_exynos5800())

void mct_init(void __iomem *base, int irq_g0, int irq_l0, int irq_l1);

struct map_desc;
extern void __iomem *sysram_ns_base_addr;
extern void __iomem *sysram_base_addr;
void exynos_init_io(void);
void exynos_restart(enum reboot_mode mode, const char *cmd);
extern void __iomem *pmu_base_addr;
void exynos_sysram_init(void);
void exynos_cpuidle_init(void);
void exynos_cpufreq_init(void);
void exynos_init_late(void);

void exynos_firmware_init(void);

#ifdef CONFIG_PINCTRL_EXYNOS
extern u32 exynos_get_eint_wake_mask(void);
#else
static inline u32 exynos_get_eint_wake_mask(void) { return 0xffffffff; }
#endif

#ifdef CONFIG_PM_SLEEP
extern void __init exynos_pm_init(void);
+41 −3
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@
#include <linux/of_platform.h>
#include <linux/platform_device.h>
#include <linux/pm_domain.h>
#include <linux/irqchip.h>

#include <asm/cacheflush.h>
#include <asm/hardware/cache-l2x0.h>
@@ -29,6 +30,9 @@
#include "common.h"
#include "mfc.h"
#include "regs-pmu.h"
#include "regs-sys.h"

void __iomem *pmu_base_addr;

static struct map_desc exynos4_iodesc[] __initdata = {
	{
@@ -143,7 +147,7 @@ static struct map_desc exynos5_iodesc[] __initdata = {
	},
};

void exynos_restart(enum reboot_mode mode, const char *cmd)
static void exynos_restart(enum reboot_mode mode, const char *cmd)
{
	struct device_node *np;
	u32 val = 0x1;
@@ -204,7 +208,7 @@ void __init exynos_sysram_init(void)
	}
}

void __init exynos_init_late(void)
static void __init exynos_init_late(void)
{
	if (of_machine_is_compatible("samsung,exynos5440"))
		/* to be supported later */
@@ -251,7 +255,7 @@ static void __init exynos_map_io(void)
		iotable_init(exynos5_iodesc, ARRAY_SIZE(exynos5_iodesc));
}

void __init exynos_init_io(void)
static void __init exynos_init_io(void)
{
	debug_ll_io_init();

@@ -263,6 +267,39 @@ void __init exynos_init_io(void)
	exynos_map_io();
}

static const struct of_device_id exynos_dt_pmu_match[] = {
	{ .compatible = "samsung,exynos3250-pmu" },
	{ .compatible = "samsung,exynos4210-pmu" },
	{ .compatible = "samsung,exynos4212-pmu" },
	{ .compatible = "samsung,exynos4412-pmu" },
	{ .compatible = "samsung,exynos5250-pmu" },
	{ .compatible = "samsung,exynos5420-pmu" },
	{ /*sentinel*/ },
};

static void exynos_map_pmu(void)
{
	struct device_node *np;

	np = of_find_matching_node(NULL, exynos_dt_pmu_match);
	if (np)
		pmu_base_addr = of_iomap(np, 0);

	if (!pmu_base_addr)
		panic("failed to find exynos pmu register\n");
}

static void __init exynos_init_irq(void)
{
	irqchip_init();
	/*
	 * Since platsmp.c needs pmu base address by the time
	 * DT is not unflatten so we can't use DT APIs before
	 * init_irq
	 */
	exynos_map_pmu();
}

static void __init exynos_dt_machine_init(void)
{
	struct device_node *i2c_np;
@@ -343,6 +380,7 @@ DT_MACHINE_START(EXYNOS_DT, "SAMSUNG EXYNOS (Flattened Device Tree)")
	.smp		= smp_ops(exynos_smp_ops),
	.map_io		= exynos_init_io,
	.init_early	= exynos_firmware_init,
	.init_irq	= exynos_init_irq,
	.init_machine	= exynos_dt_machine_init,
	.init_late	= exynos_init_late,
	.dt_compat	= exynos_dt_compat,
+0 −1
Original line number Diff line number Diff line
/*
 *  linux/arch/arm/mach-exynos4/headsmp.S
 *
 *  Cloned from linux/arch/arm/mach-realview/headsmp.S
 *
+1 −2
Original line number Diff line number Diff line
/* linux arch/arm/mach-exynos4/hotplug.c
 *
/*
 *  Cloned from linux/arch/arm/mach-realview/hotplug.c
 *
 *  Copyright (C) 2002 ARM Ltd.
Loading