時鐘和復(fù)位是兩個不同的驅(qū)動,但通常都是由負責(zé)clock驅(qū)動的人,把reset驅(qū)動完成。同樣,reset驅(qū)動也是由芯片廠商去完成的。
reset API使用示例
基本步驟:
1、調(diào)用devm_reset_control_get()
獲取reset句柄
2、調(diào)用reset_control_assert()
進行復(fù)位操作
3、調(diào)用reset_control_deassert()
進行解復(fù)位操作
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、復(fù)位 */
ret = reset_control_assert(host- >rstc);
if (ret) {
dev_err(&pdev- >dev, "unable to reset_control_assertn");
return ret;
}
udelay(1);
/* 3、解復(fù)位 */
ret = reset_control_deassert(host- >rstc);
if (ret) {
dev_err(&pdev- >dev, "unable to reset_control_deassertn");
return ret;
}
}
......
}
-
驅(qū)動
+關(guān)注
關(guān)注
12文章
1838瀏覽量
85262 -
Linux
+關(guān)注
關(guān)注
87文章
11292瀏覽量
209323 -
API
+關(guān)注
關(guān)注
2文章
1499 -
reset
+關(guān)注
關(guān)注
0文章
34瀏覽量
12877
發(fā)布評論請先 登錄
相關(guān)推薦
評論