Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
kernel_linux
提交
93a93d19
K
kernel_linux
项目概览
OpenHarmony
/
kernel_linux
上一次同步 4 年多
通知
15
Star
8
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
kernel_linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
93a93d19
编写于
11月 22, 2014
作者:
J
Jason Cooper
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'mvebu/fixes' into mvebu/soc
上级
172ed82c
2eb04ae0
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
35 addition
and
5 deletion
+35
-5
arch/arm/mach-mvebu/board-v7.c
arch/arm/mach-mvebu/board-v7.c
+1
-1
arch/arm/mach-mvebu/coherency.c
arch/arm/mach-mvebu/coherency.c
+2
-0
arch/arm/plat-orion/gpio.c
arch/arm/plat-orion/gpio.c
+32
-4
未找到文件。
arch/arm/mach-mvebu/board-v7.c
浏览文件 @
93a93d19
...
@@ -126,7 +126,7 @@ static void __init i2c_quirk(void)
...
@@ -126,7 +126,7 @@ static void __init i2c_quirk(void)
static
void
__init
mvebu_dt_init
(
void
)
static
void
__init
mvebu_dt_init
(
void
)
{
{
if
(
of_machine_is_compatible
(
"
plathome,openblocks-ax3-4
"
))
if
(
of_machine_is_compatible
(
"
marvell,armadaxp
"
))
i2c_quirk
();
i2c_quirk
();
if
(
of_machine_is_compatible
(
"marvell,a375-db"
))
if
(
of_machine_is_compatible
(
"marvell,a375-db"
))
external_abort_quirk
();
external_abort_quirk
();
...
...
arch/arm/mach-mvebu/coherency.c
浏览文件 @
93a93d19
...
@@ -400,6 +400,8 @@ int __init coherency_init(void)
...
@@ -400,6 +400,8 @@ int __init coherency_init(void)
type
==
COHERENCY_FABRIC_TYPE_ARMADA_380
)
type
==
COHERENCY_FABRIC_TYPE_ARMADA_380
)
armada_375_380_coherency_init
(
np
);
armada_375_380_coherency_init
(
np
);
of_node_put
(
np
);
return
0
;
return
0
;
}
}
...
...
arch/arm/plat-orion/gpio.c
浏览文件 @
93a93d19
...
@@ -497,6 +497,34 @@ static void orion_gpio_dbg_show(struct seq_file *s, struct gpio_chip *chip)
...
@@ -497,6 +497,34 @@ static void orion_gpio_dbg_show(struct seq_file *s, struct gpio_chip *chip)
#define orion_gpio_dbg_show NULL
#define orion_gpio_dbg_show NULL
#endif
#endif
static
void
orion_gpio_unmask_irq
(
struct
irq_data
*
d
)
{
struct
irq_chip_generic
*
gc
=
irq_data_get_irq_chip_data
(
d
);
struct
irq_chip_type
*
ct
=
irq_data_get_chip_type
(
d
);
u32
reg_val
;
u32
mask
=
d
->
mask
;
irq_gc_lock
(
gc
);
reg_val
=
irq_reg_readl
(
gc
->
reg_base
+
ct
->
regs
.
mask
);
reg_val
|=
mask
;
irq_reg_writel
(
reg_val
,
gc
->
reg_base
+
ct
->
regs
.
mask
);
irq_gc_unlock
(
gc
);
}
static
void
orion_gpio_mask_irq
(
struct
irq_data
*
d
)
{
struct
irq_chip_generic
*
gc
=
irq_data_get_irq_chip_data
(
d
);
struct
irq_chip_type
*
ct
=
irq_data_get_chip_type
(
d
);
u32
mask
=
d
->
mask
;
u32
reg_val
;
irq_gc_lock
(
gc
);
reg_val
=
irq_reg_readl
(
gc
->
reg_base
+
ct
->
regs
.
mask
);
reg_val
&=
~
mask
;
irq_reg_writel
(
reg_val
,
gc
->
reg_base
+
ct
->
regs
.
mask
);
irq_gc_unlock
(
gc
);
}
void
__init
orion_gpio_init
(
struct
device_node
*
np
,
void
__init
orion_gpio_init
(
struct
device_node
*
np
,
int
gpio_base
,
int
ngpio
,
int
gpio_base
,
int
ngpio
,
void
__iomem
*
base
,
int
mask_offset
,
void
__iomem
*
base
,
int
mask_offset
,
...
@@ -565,8 +593,8 @@ void __init orion_gpio_init(struct device_node *np,
...
@@ -565,8 +593,8 @@ void __init orion_gpio_init(struct device_node *np,
ct
=
gc
->
chip_types
;
ct
=
gc
->
chip_types
;
ct
->
regs
.
mask
=
ochip
->
mask_offset
+
GPIO_LEVEL_MASK_OFF
;
ct
->
regs
.
mask
=
ochip
->
mask_offset
+
GPIO_LEVEL_MASK_OFF
;
ct
->
type
=
IRQ_TYPE_LEVEL_HIGH
|
IRQ_TYPE_LEVEL_LOW
;
ct
->
type
=
IRQ_TYPE_LEVEL_HIGH
|
IRQ_TYPE_LEVEL_LOW
;
ct
->
chip
.
irq_mask
=
irq_gc_mask_clr_bit
;
ct
->
chip
.
irq_mask
=
orion_gpio_mask_irq
;
ct
->
chip
.
irq_unmask
=
irq_gc_mask_set_bit
;
ct
->
chip
.
irq_unmask
=
orion_gpio_unmask_irq
;
ct
->
chip
.
irq_set_type
=
gpio_irq_set_type
;
ct
->
chip
.
irq_set_type
=
gpio_irq_set_type
;
ct
->
chip
.
name
=
ochip
->
chip
.
label
;
ct
->
chip
.
name
=
ochip
->
chip
.
label
;
...
@@ -575,8 +603,8 @@ void __init orion_gpio_init(struct device_node *np,
...
@@ -575,8 +603,8 @@ void __init orion_gpio_init(struct device_node *np,
ct
->
regs
.
ack
=
GPIO_EDGE_CAUSE_OFF
;
ct
->
regs
.
ack
=
GPIO_EDGE_CAUSE_OFF
;
ct
->
type
=
IRQ_TYPE_EDGE_RISING
|
IRQ_TYPE_EDGE_FALLING
;
ct
->
type
=
IRQ_TYPE_EDGE_RISING
|
IRQ_TYPE_EDGE_FALLING
;
ct
->
chip
.
irq_ack
=
irq_gc_ack_clr_bit
;
ct
->
chip
.
irq_ack
=
irq_gc_ack_clr_bit
;
ct
->
chip
.
irq_mask
=
irq_gc_mask_clr_bit
;
ct
->
chip
.
irq_mask
=
orion_gpio_mask_irq
;
ct
->
chip
.
irq_unmask
=
irq_gc_mask_set_bit
;
ct
->
chip
.
irq_unmask
=
orion_gpio_unmask_irq
;
ct
->
chip
.
irq_set_type
=
gpio_irq_set_type
;
ct
->
chip
.
irq_set_type
=
gpio_irq_set_type
;
ct
->
handler
=
handle_edge_irq
;
ct
->
handler
=
handle_edge_irq
;
ct
->
chip
.
name
=
ochip
->
chip
.
label
;
ct
->
chip
.
name
=
ochip
->
chip
.
label
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录