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
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 S
amsung S
3C 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 S
amsung S
3C 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 S
amsung S
3C 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 S
amsung S
3C 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
...
...
arch/arm/mach-exynos/common.h
浏览文件 @
036c37c5
...
...
@@ -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
);
...
...
arch/arm/mach-exynos/exynos.c
浏览文件 @
036c37c5
...
...
@@ -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
,
...
...
arch/arm/mach-exynos/headsmp.S
浏览文件 @
036c37c5
/*
*
linux
/
arch
/
arm
/
mach
-
exynos4
/
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
*
* 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.
* 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.
* 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.
* http://www.samsung.com
*
...
...
arch/arm/mach-exynos/pm.c
浏览文件 @
036c37c5
...
...
@@ -35,6 +35,7 @@
#include "common.h"
#include "regs-pmu.h"
#include "regs-sys.h"
/**
* struct exynos_wkup_irq - Exynos GIC to PMU IRQ mapping
...
...
arch/arm/mach-exynos/pm_domains.c
浏览文件 @
036c37c5
...
...
@@ -23,8 +23,7 @@
#include <linux/of_platform.h>
#include <linux/sched.h>
#include "regs-pmu.h"
#define INT_LOCAL_PWR_EN 0x7
#define MAX_CLK_PER_DOMAIN 4
/*
...
...
@@ -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
);
/* Wait max 1ms */
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
)
{
op
=
(
power_on
)
?
"enable"
:
"disable"
;
pr_err
(
"Power domain %s %s failed
\n
"
,
domain
->
name
,
op
);
...
...
@@ -231,7 +230,7 @@ static __init int exynos4_pm_init_power_domain(void)
no_clk:
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
);
}
...
...
arch/arm/mach-exynos/pmu.c
浏览文件 @
036c37c5
...
...
@@ -11,7 +11,6 @@
#include <linux/io.h>
#include <linux/kernel.h>
#include <linux/bug.h>
#include "common.h"
#include "regs-pmu.h"
...
...
arch/arm/mach-exynos/regs-pmu.h
浏览文件 @
036c37c5
...
...
@@ -15,7 +15,6 @@
#include <mach/map.h>
#define S5P_PMUREG(x) (S5P_VA_PMU + (x))
#define S5P_SYSREG(x) (S3C_VA_SYS + (x))
#define S5P_CENTRAL_SEQ_CONFIGURATION S5P_PMUREG(0x0200)
...
...
@@ -127,7 +126,6 @@
#define S5P_PAD_RET_EBIB_OPTION S5P_PMUREG(0x31A8)
#define S5P_CORE_LOCAL_PWR_EN 0x3
#define S5P_INT_LOCAL_PWR_EN 0x7
/* Only for EXYNOS4210 */
#define S5P_CMU_CLKSTOP_LCD1_LOWPWR S5P_PMUREG(0x1154)
...
...
@@ -188,8 +186,6 @@
/* For EXYNOS5 */
#define EXYNOS5_SYS_I2C_CFG S5P_SYSREG(0x0234)
#define EXYNOS5_AUTO_WDTRESET_DISABLE S5P_PMUREG(0x0408)
#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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录