Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
4d8506b8
R
raspberrypi-kernel
项目概览
openeuler
/
raspberrypi-kernel
通知
13
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
raspberrypi-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
4d8506b8
编写于
7月 29, 2007
作者:
R
Ralf Baechle
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[MIPS] Delete unused arch/mips/gt64120/common/
Signed-off-by:
N
Ralf Baechle
<
ralf@linux-mips.org
>
上级
7f18f151
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
0 addition
and
106 deletion
+0
-106
arch/mips/gt64120/common/Makefile
arch/mips/gt64120/common/Makefile
+0
-5
arch/mips/gt64120/common/time.c
arch/mips/gt64120/common/time.c
+0
-101
未找到文件。
arch/mips/gt64120/common/Makefile
已删除
100644 → 0
浏览文件 @
7f18f151
#
# Makefile for common code of gt64120-based boards.
#
obj-y
+=
time.o
arch/mips/gt64120/common/time.c
已删除
100644 → 0
浏览文件 @
7f18f151
/*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* Galileo Technology chip interrupt handler
*/
#include <linux/interrupt.h>
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/kernel_stat.h>
#include <asm/irq_regs.h>
#include <asm/gt64120.h>
/*
* These are interrupt handlers for the GT on-chip interrupts. They all come
* in to the MIPS on a single interrupt line, and have to be handled and ack'ed
* differently than other MIPS interrupts.
*/
static
irqreturn_t
gt64120_irq
(
int
irq
,
void
*
dev_id
)
{
unsigned
int
irq_src
,
int_high_src
,
irq_src_mask
,
int_high_src_mask
;
int
handled
=
0
;
irq_src
=
GT_READ
(
GT_INTRCAUSE_OFS
);
irq_src_mask
=
GT_READ
(
GT_INTRMASK_OFS
);
int_high_src
=
GT_READ
(
GT_HINTRCAUSE_OFS
);
int_high_src_mask
=
GT_READ
(
GT_HINTRMASK_OFS
);
irq_src
=
irq_src
&
irq_src_mask
;
int_high_src
=
int_high_src
&
int_high_src_mask
;
if
(
irq_src
&
0x00000800
)
{
/* Check for timer interrupt */
handled
=
1
;
irq_src
&=
~
0x00000800
;
do_timer
(
1
);
#ifndef CONFIG_SMP
update_process_times
(
user_mode
(
get_irq_regs
()));
#endif
}
GT_WRITE
(
GT_INTRCAUSE_OFS
,
0
);
GT_WRITE
(
GT_HINTRCAUSE_OFS
,
0
);
return
IRQ_HANDLED
;
}
/*
* Initializes timer using galileo's built in timer.
*/
#ifdef CONFIG_SYSCLK_100
#define Sys_clock (100 * 1000000) // 100 MHz
#endif
#ifdef CONFIG_SYSCLK_83
#define Sys_clock (83.333 * 1000000) // 83.333 MHz
#endif
#ifdef CONFIG_SYSCLK_75
#define Sys_clock (75 * 1000000) // 75 MHz
#endif
/*
* This will ignore the standard MIPS timer interrupt handler that is passed in
* as *irq (=irq0 in ../kernel/time.c). We will do our own timer interrupt
* handling.
*/
void
__init
plat_timer_setup
(
struct
irqaction
*
irq
)
{
static
struct
irqaction
timer
;
/* Disable timer first */
GT_WRITE
(
GT_TC_CONTROL_OFS
,
0
);
/* Load timer value for 100 Hz */
GT_WRITE
(
GT_TC3_OFS
,
Sys_clock
/
HZ
);
/*
* Create the IRQ structure entry for the timer. Since we're too early
* in the boot process to use the "request_irq()" call, we'll hard-code
* the values to the correct interrupt line.
*/
timer
.
handler
=
gt64120_irq
;
timer
.
flags
=
IRQF_SHARED
|
IRQF_DISABLED
;
timer
.
name
=
"timer"
;
timer
.
dev_id
=
NULL
;
timer
.
next
=
NULL
;
timer
.
mask
=
CPU_MASK_NONE
;
irq_desc
[
GT_TIMER
].
action
=
&
timer
;
enable_irq
(
GT_TIMER
);
/* Enable timer ints */
GT_WRITE
(
GT_TC_CONTROL_OFS
,
0xc0
);
/* clear Cause register first */
GT_WRITE
(
GT_INTRCAUSE_OFS
,
0x0
);
/* Unmask timer int */
GT_WRITE
(
GT_INTRMASK_OFS
,
0x800
);
/* Clear High int register */
GT_WRITE
(
GT_HINTRCAUSE_OFS
,
0x0
);
/* Mask All interrupts at High cause interrupt */
GT_WRITE
(
GT_HINTRMASK_OFS
,
0x0
);
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录