Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
036c37c5
K
Kernel
项目概览
openeuler
/
Kernel
1 年多 前同步成功
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
036c37c5
编写于
7月 23, 2014
作者:
K
Kukjin Kim
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'v3.17-next/cleanup-samsung' into v3.17-next/power-exynos
上级
9a3c4145
fce9e5bb
变更
13
显示空白变更内容
内联
并排
Showing
13 changed file
with
77 addition
and
50 deletion
+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
未找到文件。
arch/arm/Kconfig.debug
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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 */
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录