Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
036c37c5
Commit
036c37c5
authored
Jul 23, 2014
by
Kukjin Kim
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'v3.17-next/cleanup-samsung' into v3.17-next/power-exynos
parents
9a3c4145
fce9e5bb
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
77 additions
and
50 deletions
+77
-50
arch/arm/Kconfig.debug
arch/arm/Kconfig.debug
+4
-16
arch/arm/mach-exynos/common.h
arch/arm/mach-exynos/common.h
+1
-12
arch/arm/mach-exynos/exynos.c
arch/arm/mach-exynos/exynos.c
+41
-3
arch/arm/mach-exynos/headsmp.S
arch/arm/mach-exynos/headsmp.S
+0
-1
arch/arm/mach-exynos/hotplug.c
arch/arm/mach-exynos/hotplug.c
+1
-2
arch/arm/mach-exynos/include/mach/map.h
arch/arm/mach-exynos/include/mach/map.h
+1
-2
arch/arm/mach-exynos/include/mach/memory.h
arch/arm/mach-exynos/include/mach/memory.h
+1
-2
arch/arm/mach-exynos/platsmp.c
arch/arm/mach-exynos/platsmp.c
+1
-2
arch/arm/mach-exynos/pm.c
arch/arm/mach-exynos/pm.c
+1
-0
arch/arm/mach-exynos/pm_domains.c
arch/arm/mach-exynos/pm_domains.c
+4
-5
arch/arm/mach-exynos/pmu.c
arch/arm/mach-exynos/pmu.c
+0
-1
arch/arm/mach-exynos/regs-pmu.h
arch/arm/mach-exynos/regs-pmu.h
+0
-4
arch/arm/mach-exynos/regs-sys.h
arch/arm/mach-exynos/regs-sys.h
+22
-0
No files found.
arch/arm/Kconfig.debug
View file @
036c37c5
...
@@ -617,53 +617,41 @@ choice
...
@@ -617,53 +617,41 @@ choice
depends on PLAT_SAMSUNG
depends on PLAT_SAMSUNG
select DEBUG_EXYNOS_UART if ARCH_EXYNOS
select DEBUG_EXYNOS_UART if ARCH_EXYNOS
select DEBUG_S3C24XX_UART if ARCH_S3C24XX
select DEBUG_S3C24XX_UART if ARCH_S3C24XX
bool "Use S3C UART 0 for low-level debug"
bool "Use S
amsung S
3C UART 0 for low-level debug"
help
help
Say Y here if you want the debug print routines to direct
Say Y here if you want the debug print routines to direct
their output to UART 0. The port must have been initialised
their output to UART 0. The port must have been initialised
by the boot-loader before use.
by the boot-loader before use.
The uncompressor code port configuration is now handled
by CONFIG_S3C_LOWLEVEL_UART_PORT.
config DEBUG_S3C_UART1
config DEBUG_S3C_UART1
depends on PLAT_SAMSUNG
depends on PLAT_SAMSUNG
select DEBUG_EXYNOS_UART if ARCH_EXYNOS
select DEBUG_EXYNOS_UART if ARCH_EXYNOS
select DEBUG_S3C24XX_UART if ARCH_S3C24XX
select DEBUG_S3C24XX_UART if ARCH_S3C24XX
bool "Use S3C UART 1 for low-level debug"
bool "Use S
amsung S
3C UART 1 for low-level debug"
help
help
Say Y here if you want the debug print routines to direct
Say Y here if you want the debug print routines to direct
their output to UART 1. The port must have been initialised
their output to UART 1. The port must have been initialised
by the boot-loader before use.
by the boot-loader before use.
The uncompressor code port configuration is now handled
by CONFIG_S3C_LOWLEVEL_UART_PORT.
config DEBUG_S3C_UART2
config DEBUG_S3C_UART2
depends on PLAT_SAMSUNG
depends on PLAT_SAMSUNG
select DEBUG_EXYNOS_UART if ARCH_EXYNOS
select DEBUG_EXYNOS_UART if ARCH_EXYNOS
select DEBUG_S3C24XX_UART if ARCH_S3C24XX
select DEBUG_S3C24XX_UART if ARCH_S3C24XX
bool "Use S3C UART 2 for low-level debug"
bool "Use S
amsung S
3C UART 2 for low-level debug"
help
help
Say Y here if you want the debug print routines to direct
Say Y here if you want the debug print routines to direct
their output to UART 2. The port must have been initialised
their output to UART 2. The port must have been initialised
by the boot-loader before use.
by the boot-loader before use.
The uncompressor code port configuration is now handled
by CONFIG_S3C_LOWLEVEL_UART_PORT.
config DEBUG_S3C_UART3
config DEBUG_S3C_UART3
depends on PLAT_SAMSUNG && ARCH_EXYNOS
depends on PLAT_SAMSUNG && ARCH_EXYNOS
select DEBUG_EXYNOS_UART
select DEBUG_EXYNOS_UART
bool "Use S3C UART 3 for low-level debug"
bool "Use S
amsung S
3C UART 3 for low-level debug"
help
help
Say Y here if you want the debug print routines to direct
Say Y here if you want the debug print routines to direct
their output to UART 3. The port must have been initialised
their output to UART 3. The port must have been initialised
by the boot-loader before use.
by the boot-loader before use.
The uncompressor code port configuration is now handled
by CONFIG_S3C_LOWLEVEL_UART_PORT.
config DEBUG_S3C2410_UART0
config DEBUG_S3C2410_UART0
depends on ARCH_S3C24XX
depends on ARCH_S3C24XX
select DEBUG_S3C2410_UART
select DEBUG_S3C2410_UART
...
...
arch/arm/mach-exynos/common.h
View file @
036c37c5
...
@@ -111,25 +111,14 @@ IS_SAMSUNG_CPU(exynos5800, EXYNOS5800_SOC_ID, EXYNOS5_SOC_MASK)
...
@@ -111,25 +111,14 @@ IS_SAMSUNG_CPU(exynos5800, EXYNOS5800_SOC_ID, EXYNOS5_SOC_MASK)
#define soc_is_exynos5() (soc_is_exynos5250() || soc_is_exynos5410() || \
#define soc_is_exynos5() (soc_is_exynos5250() || soc_is_exynos5410() || \
soc_is_exynos5420() || soc_is_exynos5800())
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_ns_base_addr
;
extern
void
__iomem
*
sysram_base_addr
;
extern
void
__iomem
*
sysram_base_addr
;
void
exynos_init_io
(
void
);
extern
void
__iomem
*
pmu_base_addr
;
void
exynos_restart
(
enum
reboot_mode
mode
,
const
char
*
cmd
);
void
exynos_sysram_init
(
void
);
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
);
void
exynos_firmware_init
(
void
);
#ifdef CONFIG_PINCTRL_EXYNOS
extern
u32
exynos_get_eint_wake_mask
(
void
);
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
#ifdef CONFIG_PM_SLEEP
extern
void
__init
exynos_pm_init
(
void
);
extern
void
__init
exynos_pm_init
(
void
);
...
...
arch/arm/mach-exynos/exynos.c
View file @
036c37c5
...
@@ -19,6 +19,7 @@
...
@@ -19,6 +19,7 @@
#include <linux/of_platform.h>
#include <linux/of_platform.h>
#include <linux/platform_device.h>
#include <linux/platform_device.h>
#include <linux/pm_domain.h>
#include <linux/pm_domain.h>
#include <linux/irqchip.h>
#include <asm/cacheflush.h>
#include <asm/cacheflush.h>
#include <asm/hardware/cache-l2x0.h>
#include <asm/hardware/cache-l2x0.h>
...
@@ -29,6 +30,9 @@
...
@@ -29,6 +30,9 @@
#include "common.h"
#include "common.h"
#include "mfc.h"
#include "mfc.h"
#include "regs-pmu.h"
#include "regs-pmu.h"
#include "regs-sys.h"
void
__iomem
*
pmu_base_addr
;
static
struct
map_desc
exynos4_iodesc
[]
__initdata
=
{
static
struct
map_desc
exynos4_iodesc
[]
__initdata
=
{
{
{
...
@@ -143,7 +147,7 @@ static struct map_desc exynos5_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
;
struct
device_node
*
np
;
u32
val
=
0x1
;
u32
val
=
0x1
;
...
@@ -204,7 +208,7 @@ void __init exynos_sysram_init(void)
...
@@ -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"
))
if
(
of_machine_is_compatible
(
"samsung,exynos5440"
))
/* to be supported later */
/* to be supported later */
...
@@ -251,7 +255,7 @@ static void __init exynos_map_io(void)
...
@@ -251,7 +255,7 @@ static void __init exynos_map_io(void)
iotable_init
(
exynos5_iodesc
,
ARRAY_SIZE
(
exynos5_iodesc
));
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
();
debug_ll_io_init
();
...
@@ -263,6 +267,39 @@ void __init exynos_init_io(void)
...
@@ -263,6 +267,39 @@ void __init exynos_init_io(void)
exynos_map_io
();
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
)
static
void
__init
exynos_dt_machine_init
(
void
)
{
{
struct
device_node
*
i2c_np
;
struct
device_node
*
i2c_np
;
...
@@ -343,6 +380,7 @@ DT_MACHINE_START(EXYNOS_DT, "SAMSUNG EXYNOS (Flattened Device Tree)")
...
@@ -343,6 +380,7 @@ DT_MACHINE_START(EXYNOS_DT, "SAMSUNG EXYNOS (Flattened Device Tree)")
.
smp
=
smp_ops
(
exynos_smp_ops
),
.
smp
=
smp_ops
(
exynos_smp_ops
),
.
map_io
=
exynos_init_io
,
.
map_io
=
exynos_init_io
,
.
init_early
=
exynos_firmware_init
,
.
init_early
=
exynos_firmware_init
,
.
init_irq
=
exynos_init_irq
,
.
init_machine
=
exynos_dt_machine_init
,
.
init_machine
=
exynos_dt_machine_init
,
.
init_late
=
exynos_init_late
,
.
init_late
=
exynos_init_late
,
.
dt_compat
=
exynos_dt_compat
,
.
dt_compat
=
exynos_dt_compat
,
...
...
arch/arm/mach-exynos/headsmp.S
View file @
036c37c5
/*
/*
*
linux
/
arch
/
arm
/
mach
-
exynos4
/
headsmp
.
S
*
*
*
Cloned
from
linux
/
arch
/
arm
/
mach
-
realview
/
headsmp
.
S
*
Cloned
from
linux
/
arch
/
arm
/
mach
-
realview
/
headsmp
.
S
*
*
...
...
arch/arm/mach-exynos/hotplug.c
View file @
036c37c5
/* linux arch/arm/mach-exynos4/hotplug.c
/*
*
* Cloned from linux/arch/arm/mach-realview/hotplug.c
* Cloned from linux/arch/arm/mach-realview/hotplug.c
*
*
* Copyright (C) 2002 ARM Ltd.
* Copyright (C) 2002 ARM Ltd.
...
...
arch/arm/mach-exynos/include/mach/map.h
View file @
036c37c5
/* linux/arch/arm/mach-exynos/include/mach/map.h
/*
*
* Copyright (c) 2010-2011 Samsung Electronics Co., Ltd.
* Copyright (c) 2010-2011 Samsung Electronics Co., Ltd.
* http://www.samsung.com/
* http://www.samsung.com/
*
*
...
...
arch/arm/mach-exynos/include/mach/memory.h
View file @
036c37c5
/* linux/arch/arm/mach-exynos4/include/mach/memory.h
/*
*
* Copyright (c) 2010-2011 Samsung Electronics Co., Ltd.
* Copyright (c) 2010-2011 Samsung Electronics Co., Ltd.
* http://www.samsung.com
* http://www.samsung.com
*
*
...
...
arch/arm/mach-exynos/platsmp.c
View file @
036c37c5
/* linux/arch/arm/mach-exynos4/platsmp.c
/*
*
* Copyright (c) 2010-2011 Samsung Electronics Co., Ltd.
* Copyright (c) 2010-2011 Samsung Electronics Co., Ltd.
* http://www.samsung.com
* http://www.samsung.com
*
*
...
...
arch/arm/mach-exynos/pm.c
View file @
036c37c5
...
@@ -35,6 +35,7 @@
...
@@ -35,6 +35,7 @@
#include "common.h"
#include "common.h"
#include "regs-pmu.h"
#include "regs-pmu.h"
#include "regs-sys.h"
/**
/**
* struct exynos_wkup_irq - Exynos GIC to PMU IRQ mapping
* struct exynos_wkup_irq - Exynos GIC to PMU IRQ mapping
...
...
arch/arm/mach-exynos/pm_domains.c
View file @
036c37c5
...
@@ -23,8 +23,7 @@
...
@@ -23,8 +23,7 @@
#include <linux/of_platform.h>
#include <linux/of_platform.h>
#include <linux/sched.h>
#include <linux/sched.h>
#include "regs-pmu.h"
#define INT_LOCAL_PWR_EN 0x7
#define MAX_CLK_PER_DOMAIN 4
#define MAX_CLK_PER_DOMAIN 4
/*
/*
...
@@ -63,13 +62,13 @@ static int exynos_pd_power(struct generic_pm_domain *domain, bool power_on)
...
@@ -63,13 +62,13 @@ static int exynos_pd_power(struct generic_pm_domain *domain, bool power_on)
}
}
}
}
pwr
=
power_on
?
S5P_
INT_LOCAL_PWR_EN
:
0
;
pwr
=
power_on
?
INT_LOCAL_PWR_EN
:
0
;
__raw_writel
(
pwr
,
base
);
__raw_writel
(
pwr
,
base
);
/* Wait max 1ms */
/* Wait max 1ms */
timeout
=
10
;
timeout
=
10
;
while
((
__raw_readl
(
base
+
0x4
)
&
S5P_INT_LOCAL_PWR_EN
)
!=
pwr
)
{
while
((
__raw_readl
(
base
+
0x4
)
&
INT_LOCAL_PWR_EN
)
!=
pwr
)
{
if
(
!
timeout
)
{
if
(
!
timeout
)
{
op
=
(
power_on
)
?
"enable"
:
"disable"
;
op
=
(
power_on
)
?
"enable"
:
"disable"
;
pr_err
(
"Power domain %s %s failed
\n
"
,
domain
->
name
,
op
);
pr_err
(
"Power domain %s %s failed
\n
"
,
domain
->
name
,
op
);
...
@@ -231,7 +230,7 @@ static __init int exynos4_pm_init_power_domain(void)
...
@@ -231,7 +230,7 @@ static __init int exynos4_pm_init_power_domain(void)
no_clk:
no_clk:
platform_set_drvdata
(
pdev
,
pd
);
platform_set_drvdata
(
pdev
,
pd
);
on
=
__raw_readl
(
pd
->
base
+
0x4
)
&
S5P_
INT_LOCAL_PWR_EN
;
on
=
__raw_readl
(
pd
->
base
+
0x4
)
&
INT_LOCAL_PWR_EN
;
pm_genpd_init
(
&
pd
->
pd
,
NULL
,
!
on
);
pm_genpd_init
(
&
pd
->
pd
,
NULL
,
!
on
);
}
}
...
...
arch/arm/mach-exynos/pmu.c
View file @
036c37c5
...
@@ -11,7 +11,6 @@
...
@@ -11,7 +11,6 @@
#include <linux/io.h>
#include <linux/io.h>
#include <linux/kernel.h>
#include <linux/kernel.h>
#include <linux/bug.h>
#include "common.h"
#include "common.h"
#include "regs-pmu.h"
#include "regs-pmu.h"
...
...
arch/arm/mach-exynos/regs-pmu.h
View file @
036c37c5
...
@@ -15,7 +15,6 @@
...
@@ -15,7 +15,6 @@
#include <mach/map.h>
#include <mach/map.h>
#define S5P_PMUREG(x) (S5P_VA_PMU + (x))
#define S5P_PMUREG(x) (S5P_VA_PMU + (x))
#define S5P_SYSREG(x) (S3C_VA_SYS + (x))
#define S5P_CENTRAL_SEQ_CONFIGURATION S5P_PMUREG(0x0200)
#define S5P_CENTRAL_SEQ_CONFIGURATION S5P_PMUREG(0x0200)
...
@@ -127,7 +126,6 @@
...
@@ -127,7 +126,6 @@
#define S5P_PAD_RET_EBIB_OPTION S5P_PMUREG(0x31A8)
#define S5P_PAD_RET_EBIB_OPTION S5P_PMUREG(0x31A8)
#define S5P_CORE_LOCAL_PWR_EN 0x3
#define S5P_CORE_LOCAL_PWR_EN 0x3
#define S5P_INT_LOCAL_PWR_EN 0x7
/* Only for EXYNOS4210 */
/* Only for EXYNOS4210 */
#define S5P_CMU_CLKSTOP_LCD1_LOWPWR S5P_PMUREG(0x1154)
#define S5P_CMU_CLKSTOP_LCD1_LOWPWR S5P_PMUREG(0x1154)
...
@@ -188,8 +186,6 @@
...
@@ -188,8 +186,6 @@
/* For EXYNOS5 */
/* For EXYNOS5 */
#define EXYNOS5_SYS_I2C_CFG S5P_SYSREG(0x0234)
#define EXYNOS5_AUTO_WDTRESET_DISABLE S5P_PMUREG(0x0408)
#define EXYNOS5_AUTO_WDTRESET_DISABLE S5P_PMUREG(0x0408)
#define EXYNOS5_MASK_WDTRESET_REQUEST S5P_PMUREG(0x040C)
#define EXYNOS5_MASK_WDTRESET_REQUEST S5P_PMUREG(0x040C)
...
...
arch/arm/mach-exynos/regs-sys.h
0 → 100644
View file @
036c37c5
/*
* Copyright (c) 2014 Samsung Electronics Co., Ltd.
* http://www.samsung.com
*
* EXYNOS - system register definition
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#ifndef __ASM_ARCH_REGS_SYS_H
#define __ASM_ARCH_REGS_SYS_H __FILE__
#include <mach/map.h>
#define S5P_SYSREG(x) (S3C_VA_SYS + (x))
/* For EXYNOS5 */
#define EXYNOS5_SYS_I2C_CFG S5P_SYSREG(0x0234)
#endif
/* __ASM_ARCH_REGS_SYS_H */
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment