Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
kernel_linux
提交
b3d6c800
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看板
提交
b3d6c800
编写于
10月 25, 2013
作者:
M
Mark Brown
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'spi/topic/qspi' into spi-next
上级
982d6287
dabefd56
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
16 addition
and
34 deletion
+16
-34
drivers/spi/spi-ti-qspi.c
drivers/spi/spi-ti-qspi.c
+16
-34
未找到文件。
drivers/spi/spi-ti-qspi.c
浏览文件 @
b3d6c800
...
...
@@ -41,9 +41,6 @@ struct ti_qspi_regs {
struct
ti_qspi
{
struct
completion
transfer_complete
;
/* IRQ synchronization */
spinlock_t
lock
;
/* list synchronization */
struct
mutex
list_lock
;
...
...
@@ -57,7 +54,6 @@ struct ti_qspi {
u32
spi_max_frequency
;
u32
cmd
;
u32
dc
;
u32
stat
;
};
#define QSPI_PID (0x0)
...
...
@@ -397,13 +393,12 @@ static irqreturn_t ti_qspi_isr(int irq, void *dev_id)
{
struct
ti_qspi
*
qspi
=
dev_id
;
u16
int_stat
;
u32
stat
;
irqreturn_t
ret
=
IRQ_HANDLED
;
spin_lock
(
&
qspi
->
lock
);
int_stat
=
ti_qspi_read
(
qspi
,
QSPI_INTR_STATUS_ENABLED_CLEAR
);
qspi
->
stat
=
ti_qspi_read
(
qspi
,
QSPI_SPI_STATUS_REG
);
stat
=
ti_qspi_read
(
qspi
,
QSPI_SPI_STATUS_REG
);
if
(
!
int_stat
)
{
dev_dbg
(
qspi
->
dev
,
"No IRQ triggered
\n
"
);
...
...
@@ -411,35 +406,14 @@ static irqreturn_t ti_qspi_isr(int irq, void *dev_id)
goto
out
;
}
ret
=
IRQ_WAKE_THREAD
;
ti_qspi_write
(
qspi
,
QSPI_WC_INT_DISABLE
,
QSPI_INTR_ENABLE_CLEAR_REG
);
ti_qspi_write
(
qspi
,
QSPI_WC_INT_DISABLE
,
QSPI_INTR_STATUS_ENABLED_CLEAR
);
if
(
stat
&
WC
)
complete
(
&
qspi
->
transfer_complete
);
out:
spin_unlock
(
&
qspi
->
lock
);
return
ret
;
}
static
irqreturn_t
ti_qspi_threaded_isr
(
int
this_irq
,
void
*
dev_id
)
{
struct
ti_qspi
*
qspi
=
dev_id
;
unsigned
long
flags
;
spin_lock_irqsave
(
&
qspi
->
lock
,
flags
);
if
(
qspi
->
stat
&
WC
)
complete
(
&
qspi
->
transfer_complete
);
spin_unlock_irqrestore
(
&
qspi
->
lock
,
flags
);
ti_qspi_write
(
qspi
,
QSPI_WC_INT_EN
,
QSPI_INTR_ENABLE_SET_REG
);
return
IRQ_HANDLED
;
}
static
int
ti_qspi_runtime_resume
(
struct
device
*
dev
)
{
struct
ti_qspi
*
qspi
;
...
...
@@ -472,7 +446,7 @@ static int ti_qspi_probe(struct platform_device *pdev)
if
(
!
master
)
return
-
ENOMEM
;
master
->
mode_bits
=
SPI_CPOL
|
SPI_CPHA
;
master
->
mode_bits
=
SPI_CPOL
|
SPI_CPHA
|
SPI_RX_DUAL
|
SPI_RX_QUAD
;
master
->
bus_num
=
-
1
;
master
->
flags
=
SPI_MASTER_HALF_DUPLEX
;
...
...
@@ -499,7 +473,6 @@ static int ti_qspi_probe(struct platform_device *pdev)
return
irq
;
}
spin_lock_init
(
&
qspi
->
lock
);
mutex_init
(
&
qspi
->
list_lock
);
qspi
->
base
=
devm_ioremap_resource
(
&
pdev
->
dev
,
r
);
...
...
@@ -508,8 +481,7 @@ static int ti_qspi_probe(struct platform_device *pdev)
goto
free_master
;
}
ret
=
devm_request_threaded_irq
(
&
pdev
->
dev
,
irq
,
ti_qspi_isr
,
ti_qspi_threaded_isr
,
0
,
ret
=
devm_request_irq
(
&
pdev
->
dev
,
irq
,
ti_qspi_isr
,
0
,
dev_name
(
&
pdev
->
dev
),
qspi
);
if
(
ret
<
0
)
{
dev_err
(
&
pdev
->
dev
,
"Failed to register ISR for IRQ %d
\n
"
,
...
...
@@ -543,12 +515,22 @@ static int ti_qspi_probe(struct platform_device *pdev)
return
ret
;
}
static
int
ti_qspi_remove
(
struct
platform_device
*
pdev
)
{
struct
ti_qspi
*
qspi
=
platform_get_drvdata
(
pdev
);
ti_qspi_write
(
qspi
,
QSPI_WC_INT_DISABLE
,
QSPI_INTR_ENABLE_CLEAR_REG
);
return
0
;
}
static
const
struct
dev_pm_ops
ti_qspi_pm_ops
=
{
.
runtime_resume
=
ti_qspi_runtime_resume
,
};
static
struct
platform_driver
ti_qspi_driver
=
{
.
probe
=
ti_qspi_probe
,
.
remove
=
ti_qspi_remove
,
.
driver
=
{
.
name
=
"ti,dra7xxx-qspi"
,
.
owner
=
THIS_MODULE
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录