時鐘和復位是兩個不同的驅動,但通常都是由負責clock驅動的人,把reset驅動完成。同樣,reset驅動也是由芯片廠商去完成的。
reset API使用示例
基本步驟:
1、調用devm_reset_control_get()
獲取reset句柄
2、調用reset_control_assert()
進行復位操作
3、調用reset_control_deassert()
進行解復位操作
static int xx_probe(struct platform_device *pdev)
{
struct device_node* np = pdev- >dev.of_node;
......
/* 1、獲取reset句柄 */
host- >rstc = devm_reset_control_get(&pdev- >dev, np- >name);
if (IS_ERR(host- >rstc)) {
dev_err(&pdev- >dev, "No reset controller specifiedn");
return PTR_ERR(host- >rstc);
}
if (host- >rstc) {
/* 2、復位 */
ret = reset_control_assert(host- >rstc);
if (ret) {
dev_err(&pdev- >dev, "unable to reset_control_assertn");
return ret;
}
udelay(1);
/* 3、解復位 */
ret = reset_control_deassert(host- >rstc);
if (ret) {
dev_err(&pdev- >dev, "unable to reset_control_deassertn");
return ret;
}
}
......
}
-
驅動
+關注
關注
12文章
1838瀏覽量
85262 -
Linux
+關注
關注
87文章
11292瀏覽量
209328 -
API
+關注
關注
2文章
1499瀏覽量
61962 -
reset
+關注
關注
0文章
34瀏覽量
12877
發布評論請先 登錄
相關推薦
評論