Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
fc2a9f0b
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看板
提交
fc2a9f0b
编写于
5月 27, 2009
作者:
S
Sascha Hauer
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
MXC: i.MX25 timer support
Signed-off-by:
N
Sascha Hauer
<
s.hauer@pengutronix.de
>
上级
12b8eb86
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
9 addition
and
9 deletion
+9
-9
arch/arm/plat-mxc/time.c
arch/arm/plat-mxc/time.c
+9
-9
未找到文件。
arch/arm/plat-mxc/time.c
浏览文件 @
fc2a9f0b
...
...
@@ -47,7 +47,7 @@
#define MX2_TSTAT_CAPT (1 << 1)
#define MX2_TSTAT_COMP (1 << 0)
/* MX31, MX35 */
/* MX31, MX35
, MX25
*/
#define MX3_TCTL_WAITEN (1 << 3)
#define MX3_TCTL_CLK_IPG (1 << 6)
#define MX3_TCTL_FRR (1 << 9)
...
...
@@ -66,7 +66,7 @@ static inline void gpt_irq_disable(void)
{
unsigned
int
tmp
;
if
(
cpu_is_mx3
())
if
(
cpu_is_mx3
()
||
cpu_is_mx25
()
)
__raw_writel
(
0
,
timer_base
+
MX3_IR
);
else
{
tmp
=
__raw_readl
(
timer_base
+
MXC_TCTL
);
...
...
@@ -76,7 +76,7 @@ static inline void gpt_irq_disable(void)
static
inline
void
gpt_irq_enable
(
void
)
{
if
(
cpu_is_mx3
())
if
(
cpu_is_mx3
()
||
cpu_is_mx25
()
)
__raw_writel
(
1
<<
0
,
timer_base
+
MX3_IR
);
else
{
__raw_writel
(
__raw_readl
(
timer_base
+
MXC_TCTL
)
|
MX1_2_TCTL_IRQEN
,
...
...
@@ -90,7 +90,7 @@ static void gpt_irq_acknowledge(void)
__raw_writel
(
0
,
timer_base
+
MX1_2_TSTAT
);
if
(
cpu_is_mx2
())
__raw_writel
(
MX2_TSTAT_CAPT
|
MX2_TSTAT_COMP
,
timer_base
+
MX1_2_TSTAT
);
if
(
cpu_is_mx3
())
if
(
cpu_is_mx3
()
||
cpu_is_mx25
()
)
__raw_writel
(
MX3_TSTAT_OF1
,
timer_base
+
MX3_TSTAT
);
}
...
...
@@ -117,7 +117,7 @@ static int __init mxc_clocksource_init(struct clk *timer_clk)
{
unsigned
int
c
=
clk_get_rate
(
timer_clk
);
if
(
cpu_is_mx3
())
if
(
cpu_is_mx3
()
||
cpu_is_mx25
()
)
clocksource_mxc
.
read
=
mx3_get_cycles
;
clocksource_mxc
.
mult
=
clocksource_hz2mult
(
c
,
...
...
@@ -180,7 +180,7 @@ static void mxc_set_mode(enum clock_event_mode mode,
if
(
mode
!=
clockevent_mode
)
{
/* Set event time into far-far future */
if
(
cpu_is_mx3
())
if
(
cpu_is_mx3
()
||
cpu_is_mx25
()
)
__raw_writel
(
__raw_readl
(
timer_base
+
MX3_TCN
)
-
3
,
timer_base
+
MX3_TCMP
);
else
...
...
@@ -233,7 +233,7 @@ static irqreturn_t mxc_timer_interrupt(int irq, void *dev_id)
struct
clock_event_device
*
evt
=
&
clockevent_mxc
;
uint32_t
tstat
;
if
(
cpu_is_mx3
())
if
(
cpu_is_mx3
()
||
cpu_is_mx25
()
)
tstat
=
__raw_readl
(
timer_base
+
MX3_TSTAT
);
else
tstat
=
__raw_readl
(
timer_base
+
MX1_2_TSTAT
);
...
...
@@ -264,7 +264,7 @@ static int __init mxc_clockevent_init(struct clk *timer_clk)
{
unsigned
int
c
=
clk_get_rate
(
timer_clk
);
if
(
cpu_is_mx3
())
if
(
cpu_is_mx3
()
||
cpu_is_mx25
()
)
clockevent_mxc
.
set_next_event
=
mx3_set_next_event
;
clockevent_mxc
.
mult
=
div_sc
(
c
,
NSEC_PER_SEC
,
...
...
@@ -296,7 +296,7 @@ void __init mxc_timer_init(struct clk *timer_clk, void __iomem *base, int irq)
__raw_writel
(
0
,
timer_base
+
MXC_TCTL
);
__raw_writel
(
0
,
timer_base
+
MXC_TPRER
);
/* see datasheet note */
if
(
cpu_is_mx3
())
if
(
cpu_is_mx3
()
||
cpu_is_mx25
()
)
tctl_val
=
MX3_TCTL_CLK_IPG
|
MX3_TCTL_FRR
|
MX3_TCTL_WAITEN
|
MXC_TCTL_TEN
;
else
tctl_val
=
MX1_2_TCTL_FRR
|
MX1_2_TCTL_CLK_PCLK1
|
MXC_TCTL_TEN
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录