Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
b7a5b7ac
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看板
提交
b7a5b7ac
编写于
5月 26, 2010
作者:
B
Ben Dooks
浏览文件
操作
浏览文件
下载
差异文件
ARM: Merge next-samsung
Merge branch 'next-samsung' into for-linus/2634-git-updates
上级
f7b4dc7a
459f2a32
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
42 addition
and
33 deletion
+42
-33
arch/arm/mach-s5p6440/include/mach/irqs.h
arch/arm/mach-s5p6440/include/mach/irqs.h
+8
-1
arch/arm/mach-s5p6442/include/mach/irqs.h
arch/arm/mach-s5p6442/include/mach/irqs.h
+3
-2
arch/arm/mach-s5pc100/include/mach/irqs.h
arch/arm/mach-s5pc100/include/mach/irqs.h
+0
-3
arch/arm/mach-s5pc100/include/mach/regs-gpio.h
arch/arm/mach-s5pc100/include/mach/regs-gpio.h
+2
-5
arch/arm/mach-s5pv210/include/mach/irqs.h
arch/arm/mach-s5pv210/include/mach/irqs.h
+2
-12
arch/arm/mach-s5pv210/include/mach/regs-gpio.h
arch/arm/mach-s5pv210/include/mach/regs-gpio.h
+9
-5
arch/arm/plat-s5p/Kconfig
arch/arm/plat-s5p/Kconfig
+1
-0
arch/arm/plat-s5p/include/plat/irqs.h
arch/arm/plat-s5p/include/plat/irqs.h
+7
-0
arch/arm/plat-s5p/irq-eint.c
arch/arm/plat-s5p/irq-eint.c
+10
-5
未找到文件。
arch/arm/mach-s5p6440/include/mach/irqs.h
浏览文件 @
b7a5b7ac
...
...
@@ -72,7 +72,14 @@
#define S5P_IRQ_EINT_BASE (S5P_IRQ_VIC1(31) + 6)
#define S5P_EINT(x) ((x) + S5P_IRQ_EINT_BASE)
#define IRQ_EINT(x) S5P_EINT(x)
#define S5P_EINT_BASE1 (S5P_IRQ_EINT_BASE)
/*
* S5P6440 has 0-15 external interrupts in group 0. Only these can be used
* to wake up from sleep. If request is beyond this range, by mistake, a large
* return value for an irq number should be indication of something amiss.
*/
#define S5P_EINT_BASE2 (0xf0000000)
/*
* Next the external interrupt groups. These are similar to the IRQ_EINT(x)
...
...
arch/arm/mach-s5p6442/include/mach/irqs.h
浏览文件 @
b7a5b7ac
...
...
@@ -77,8 +77,9 @@
#define S5P_IRQ_EINT_BASE (IRQ_VIC_END + 1)
#define IRQ_EINT(x) ((x) < 16 ? S5P_IRQ_VIC0(x) : \
(S5P_IRQ_EINT_BASE + (x)-16))
#define S5P_EINT_BASE1 (S5P_IRQ_VIC0(0))
#define S5P_EINT_BASE2 (S5P_IRQ_EINT_BASE)
/* Set the default NR_IRQS */
#define NR_IRQS (IRQ_EINT(31) + 1)
...
...
arch/arm/mach-s5pc100/include/mach/irqs.h
浏览文件 @
b7a5b7ac
...
...
@@ -100,9 +100,6 @@
#define S5P_EINT_BASE1 (S5P_IRQ_VIC0(0))
#define S5P_EINT_BASE2 (IRQ_VIC_END + 1)
#define IRQ_EINT(x) ((x) < 16 ? S5P_IRQ_VIC0(x) : \
(S5P_EINT_BASE2 + (x) - 16))
#define S3C_IRQ_GPIO_BASE (IRQ_EINT(31) + 1)
#define S3C_IRQ_GPIO(x) (S3C_IRQ_GPIO_BASE + (x))
...
...
arch/arm/mach-s5pc100/include/mach/regs-gpio.h
浏览文件 @
b7a5b7ac
...
...
@@ -60,12 +60,9 @@
#define S5PC100EINT30PEND (S5P_VA_GPIO + 0xF40)
#define S5P_EINT_PEND(x) (S5PC100EINT30PEND + ((x) * 0x4))
#define eint_offset(irq) ((irq) < IRQ_EINT16_31 ? ((irq) - IRQ_EINT(0)) : \
(((irq) - S5P_EINT_BASE2)))
#define EINT_REG_NR(x) (EINT_OFFSET(x) >> 3)
#define EINT_REG_NR(x) (eint_offset(x) >> 3)
#define eint_irq_to_bit(irq) (1 << (eint_offset(irq) & 0x7))
#define eint_irq_to_bit(irq) (1 << (EINT_OFFSET(irq) & 0x7))
/* values for S5P_EXTINT0 */
#define S5P_EXTINT_LOWLEV (0x00)
...
...
arch/arm/mach-s5pv210/include/mach/irqs.h
浏览文件 @
b7a5b7ac
...
...
@@ -118,22 +118,12 @@
#define IRQ_MDNIE3 S5P_IRQ_VIC3(8)
#define IRQ_VIC_END S5P_IRQ_VIC3(31)
#define S5P_EINT_16_31_BASE (IRQ_VIC_END + 1)
#define EINT_MODE S3C_GPIO_SFN(0xf)
#define IRQ_EINT(x) ((x) < 16 ? ((x) + S5P_IRQ_VIC0(0)) \
: ((x) + S5P_EINT_16_31_BASE))
#define S5P_EINT_BASE1 (S5P_IRQ_VIC0(0))
#define S5P_EINT_BASE2 (IRQ_VIC_END + 1)
/* Set the default NR_IRQS */
#define NR_IRQS (IRQ_EINT(31) + 1)
#define EINT_GPIO_0(x) S5PV210_GPH0(x)
#define EINT_GPIO_1(x) S5PV210_GPH1(x)
#define EINT_GPIO_2(x) S5PV210_GPH2(x)
#define EINT_GPIO_3(x) S5PV210_GPH3(x)
/* Compatibility */
#define IRQ_LCD_FIFO IRQ_LCD0
#define IRQ_LCD_VSYNC IRQ_LCD1
...
...
arch/arm/mach-s5pv210/include/mach/regs-gpio.h
浏览文件 @
b7a5b7ac
...
...
@@ -27,12 +27,9 @@
#define S5PV210_EINT30PEND (S5P_VA_GPIO + 0xF40)
#define S5P_EINT_PEND(x) (S5PV210_EINT30PEND + ((x) * 0x4))
#define eint_offset(irq) ((irq) < IRQ_EINT16_31 ? ((irq) - IRQ_EINT(0)) \
: ((irq) - S5P_EINT_16_31_BASE))
#define EINT_REG_NR(x) (EINT_OFFSET(x) >> 3)
#define EINT_REG_NR(x) (eint_offset(x) >> 3)
#define eint_irq_to_bit(irq) (1 << (eint_offset(irq) & 0x7))
#define eint_irq_to_bit(irq) (1 << (EINT_OFFSET(irq) & 0x7))
/* values for S5P_EXTINT0 */
#define S5P_EXTINT_LOWLEV (0x00)
...
...
@@ -41,4 +38,11 @@
#define S5P_EXTINT_RISEEDGE (0x03)
#define S5P_EXTINT_BOTHEDGE (0x04)
#define EINT_MODE S3C_GPIO_SFN(0xf)
#define EINT_GPIO_0(x) S5PV210_GPH0(x)
#define EINT_GPIO_1(x) S5PV210_GPH1(x)
#define EINT_GPIO_2(x) S5PV210_GPH2(x)
#define EINT_GPIO_3(x) S5PV210_GPH3(x)
#endif
/* __ASM_ARCH_REGS_GPIO_H */
arch/arm/plat-s5p/Kconfig
浏览文件 @
b7a5b7ac
...
...
@@ -29,3 +29,4 @@ config S5P_EXT_INT
bool
help
Use the external interrupts (other than GPIO interrupts.)
Note: Do not choose this for S5P6440.
arch/arm/plat-s5p/include/plat/irqs.h
浏览文件 @
b7a5b7ac
...
...
@@ -87,4 +87,11 @@
#define IRQ_TIMER3 S5P_TIMER_IRQ(3)
#define IRQ_TIMER4 S5P_TIMER_IRQ(4)
#define IRQ_EINT(x) ((x) < 16 ? ((x) + S5P_EINT_BASE1) \
: ((x) - 16 + S5P_EINT_BASE2))
#define EINT_OFFSET(irq) ((irq) < S5P_EINT_BASE2 ? \
((irq) - S5P_EINT_BASE1) : \
((irq) + 16 - S5P_EINT_BASE2))
#endif
/* __ASM_PLAT_S5P_IRQS_H */
arch/arm/plat-s5p/irq-eint.c
浏览文件 @
b7a5b7ac
...
...
@@ -60,7 +60,7 @@ static void s5p_irq_eint_maskack(unsigned int irq)
static
int
s5p_irq_eint_set_type
(
unsigned
int
irq
,
unsigned
int
type
)
{
int
offs
=
eint_offset
(
irq
);
int
offs
=
EINT_OFFSET
(
irq
);
int
shift
;
u32
ctrl
,
mask
;
u32
newvalue
=
0
;
...
...
@@ -139,17 +139,16 @@ static struct irq_chip s5p_irq_eint = {
*/
static
inline
void
s5p_irq_demux_eint
(
unsigned
int
start
)
{
u32
status
;
u32
status
=
__raw_readl
(
S5P_EINT_PEND
(
EINT_REG_NR
(
start
)))
;
u32
mask
=
__raw_readl
(
S5P_EINT_MASK
(
EINT_REG_NR
(
start
)));
unsigned
int
irq
;
status
=
__raw_readl
(
S5P_EINT_PEND
(
EINT_REG_NR
(
start
)));
status
&=
~
mask
;
status
&=
0xff
;
while
(
status
)
{
irq
=
fls
(
status
);
generic_handle_irq
(
irq
-
1
+
start
);
irq
=
fls
(
status
)
-
1
;
generic_handle_irq
(
irq
+
start
);
status
&=
~
(
1
<<
irq
);
}
}
...
...
@@ -162,12 +161,18 @@ static void s5p_irq_demux_eint16_31(unsigned int irq, struct irq_desc *desc)
static
inline
void
s5p_irq_vic_eint_mask
(
unsigned
int
irq
)
{
void
__iomem
*
base
=
get_irq_chip_data
(
irq
);
s5p_irq_eint_mask
(
irq
);
writel
(
1
<<
EINT_OFFSET
(
irq
),
base
+
VIC_INT_ENABLE_CLEAR
);
}
static
void
s5p_irq_vic_eint_unmask
(
unsigned
int
irq
)
{
void
__iomem
*
base
=
get_irq_chip_data
(
irq
);
s5p_irq_eint_unmask
(
irq
);
writel
(
1
<<
EINT_OFFSET
(
irq
),
base
+
VIC_INT_ENABLE
);
}
static
inline
void
s5p_irq_vic_eint_ack
(
unsigned
int
irq
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录