reset API使用示例步骤

描述

时钟和复位是两个不同的驱动,但通常都是由负责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;
  }
 }
 ......
}
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分