regulator 小记

分为两部分,一是稳压器的注册,二是通过customer去使用稳压器,它们的关系如下图

设备1 等可以是另外一个驱动,里面去使用注册的这个稳压器

  • 稳压器部分 struct regulator_dev
    这里直接参考内核的regulator样例代码 /drivers/regulator/dummy.c
    主要涉及两个结构体,
    (1)struct regulator_des 稳压器属性和操作的封装

    操作就是struct regulator_ops 结构体,里面有很多回调函数的接口,需要按需写好;

    (2)struct regulator_config  一些配置信息的封装,解析设备树后的信息就放在这里

    struct regulator_config 结构体中的struct regulator_init_data 结构体用来存放一些默认的配置信息

    主要存在struct regulation_constraints 结构体里面,包括设置的最大、最小电压或电流

    而这些配置信息我们往往按regulator子系统的格式写好在设备树上

    (3)注册


    参数就是(1)(2)中的;
  • 使用者customer 部分
    主要使用regulator子系统提供的api

    (1)


    通过名字otg_name 获取指向对应稳压器的struct regulator结构体变量,他们互存了一下
    (2)

    类似这样的api,就是通过(1)获得的struct regulator结构体变量来使用其他地方定义了的稳压器struct regulator_dev里面的ops,这些ops实现了对应的硬件操作,一般有如下几个

 

 

 

 

 

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值