0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux reset子系统有什么功能

麦辣鸡腿堡 来源:嵌入式Linux充电站 作者:Vincent 2023-09-27 14:06 次阅读

Linux reset子系统

reset子系统非常简单,与clock子系统非常类似,但在驱动实现上,reset驱动更简单。

因为clock驱动主要是时钟的实现,涉及到固定时钟、分频、门控等一些时钟的分级关系,需要弄清楚时钟树里每个时钟的关系。

而reset驱动有点相当于clock驱动的门控,它只有复位和解复位两个功能。

类似于clock子系统,reset子系统也分为了consumerprovider,结构体关系如下:

图片

consumer

reset API接口的使用者,内核提供了统一的reset接口:

devm_reset_control_get(struct device *dev, const char *id)//获取reset句柄
reset_control_deassert(struct reset_control *rstc)//解复位
reset_control_assert(struct reset_control *rstc)//复位
reset_control_reset(struct reset_control *rstc)//先复位,延迟一会,然后解复位

struct reset_control结构体表示一个reset句柄,驱动中使用reset API,需要先获取reset句柄

provider

reset提供者,即reset驱动。struct reset_controller_dev结构体代表一个reset控制器,内部包含了reset操作函数集合struct reset_control_ops,注册reset驱动时,需要分配一个struct reset_controller_dev结构体,然后填充成员,最后将该结构体注册。

struct reset_controller_dev{
    const struct reset_control_ops *ops;//复位控制操作函数
    struct list_head list;//全局链表,复位控制器注册后挂载到全局链表
    struct list_head reset_control_head;//各个模块复位的链表头
    struct device *dev;
    int of_reset_n_cells;//dts中引用时,需要几个参数
        
    //通过dts引用的参数,解析复位控制器中相应的参数
    int (*of_xlate)(struct reset_controller_dev *rcdev, const struct of_phandle_args *reset_spec);
    unsigned int nr_resets;//复位设备个数
}

struct reset_control_ops{
    int (*reset)(struct reset_controller_dev *rcdev, unsigned long id);//复位+解复位
    int (*assert)(struct reset_controller_dev *rcdev, unsigned long id);//复位
    int (*deassert)(struct reset_controller_dev *rcdev, unsigned long id);//解复位
    int (*status)(struct reset_controller_dev *rcdev, unsigned long id);//复位状态查询
}
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 驱动
    +关注

    关注

    11

    文章

    1718

    浏览量

    84353
  • Linux
    +关注

    关注

    87

    文章

    10992

    浏览量

    206744
  • 子系统
    +关注

    关注

    0

    文章

    100

    浏览量

    12265
收藏 人收藏

    评论

    相关推荐

    Linux下输入子系统上报触摸屏坐标

      在 Linux 中,输入子系统是由输入子系统设备驱动层、输入子系统核心层(Input Core)和输入子系统事件处理层(Event Ha
    的头像 发表于 09-25 08:56 1816次阅读
    <b class='flag-5'>Linux</b>下输入<b class='flag-5'>子系统</b>上报触摸屏坐标

    Linux reset子系统及驱动实例

    上篇讲了Linux clock驱动,今天说说Linuxreset驱动。
    发表于 05-31 16:16 622次阅读
    <b class='flag-5'>Linux</b> <b class='flag-5'>reset</b><b class='flag-5'>子系统</b>及驱动实例

    Linux LED子系统详解

    Linux LED子系统详解
    的头像 发表于 06-10 10:37 996次阅读
    <b class='flag-5'>Linux</b> LED<b class='flag-5'>子系统</b>详解

    Windows10内置Linux子系统使用

    周围的同学都已经用win10内置的Linux子系统了,在坚持过几个Linux实验后,我也怀着好奇心试了一把。
    发表于 07-26 07:10

    如何使用Linux内核中的input子系统

    的 input 子系统下提供的 API 函数接口,完成设备的注册即可。在本章节中我们来学习一下如何使用 Linux内核中的 input 子系统
    发表于 12-29 07:20

    linux I2C子系统的相关资料分享

    文章目录linux I2C子系统框架在设备树中添加从设备信息,mpu5060I2C driver 程序的编写mpu6050 I2C程序具体实现linux I2C子系统框架在之前的一篇文
    发表于 02-10 06:06

    Linux子系统中使用adb功能有哪几种方式呢

    Linux子系统中使用adb功能两种方式:1、使用Windows系统的adb2、在Linux
    发表于 04-19 16:37

    Arm Linux中断子系统先相关资料分享

    1. Arm Linux 中断子系统1.1. 中断硬件系统3个组成部分:外设(中断源)、中断控制器、CPU1.2. Linux中断子系统4个
    发表于 05-23 15:21

    基于Linux内核输入子系统的驱动研究

    Linux因其完全开放的特性和稳定优良的性能深受欢迎,当推出了内核输入子系统后,更方便了嵌入式领域的驱动开放。介绍了Linux的设备驱动基础,详细阐述了基于Linux内核输入
    发表于 09-12 16:38 23次下载

    Linux内核输入子系统的驱动研究

    Linux内核输入子系统的驱动研究
    发表于 10-31 14:41 14次下载
    <b class='flag-5'>Linux</b>内核输入<b class='flag-5'>子系统</b>的驱动研究

    详细了解Linux设备模型中的input子系统

    linux输入子系统linux input subsystem)从上到下由三层实现,分别为:输入子系统事件处理层(EventHandler)、输入
    发表于 05-12 09:04 949次阅读
    详细了解<b class='flag-5'>Linux</b>设备模型中的input<b class='flag-5'>子系统</b>

    Windows 子系统助力 Linux 2.0

    Windows 子系统助力 Linux 2.0
    的头像 发表于 01-04 11:17 415次阅读

    Linux系统中NFC子系统架构分析

    目前在Linux系统中,每个厂家都使用不同的方式实现NFC驱动,然后自己在应用层上面做适配。但是Linux也已经推出NFC子系统,很多厂家也逐步在统一。
    发表于 01-04 14:01 1398次阅读

    Linux内核之LED子系统(一)

    Linux内核的LED子系统是一种重要的框架,用于管理和控制设备上的LED指示灯。在嵌入式系统和物联网设备中,LED子系统发挥着关键作用,为开发者提供了一种统一的方式来控制和定制LED
    发表于 10-02 16:53 287次阅读
    <b class='flag-5'>Linux</b>内核之LED<b class='flag-5'>子系统</b>(一)

    Linux内核reset驱动实例

    reset驱动实例 类似于clock驱动,reset驱动也是编进内核的,在Linux启动时,完成reset驱动的加载。 设备树 reset
    的头像 发表于 09-27 14:21 350次阅读