1.regulators 是什么?
linux 代码中对负载电源进行开关和稳压控制的模型叫做regulators,具体是如何实现的呢请看下面的图:

image.png
例如: usb otg 要对usb_otg1_vbus控制,这时需要一个电源控制芯片nx5p3290,同时需要对其管脚BB_USB_OTG1_PWR_ON进行控制。软件使用模型 reg_usb_otg1_vbus来进行电源开关控制。

参考:Documentation/devicetree/bindings/regulator/fixed-regulator.txt
下面通过:定义 解析 获取 使用 过程进行分析。

  1. usb otg 软件对 regulators 的 dts 定义:
    regulators { /fsl-imx8qxp-mek.dtsi 定义中 regulators/
    reg_usb_otg1_vbus: regulator@0 {
    compatible = “regulator-fixed”;
    reg = <0>;
    regulator-name = “usb_otg1_vbus”;
    regulator-min-microvolt = <5000000>;
    regulator-max-microvolt = <5000000>;
    gpio = <&pca9557_b 2 GPIO_ACTIVE_HIGH>;
    enable-active-high;
    };
    }

&usbotg1 { /fsl-imx8qxp-mek.dtsi 定义对regulators的使用/
vbus-supply = <&reg_usb_otg1_vbus>;
srp-disable;
hnp-disable;
adp-disable;
power-polarity-active-high;
disable-over-current;
status = “okay”;
};

usbotg1: usb@5b0d0000 { /fsl-imx8dx.dtsi 定义/
compatible = “fsl,imx8qm-usb”, “fsl,imx27-usb”;
reg = <0x0 0x5b0d0000 0x0 0x200>;
interrupt-parent = <&wu>;
status = “disabled”;
}
设备树属性 vbus-supply = <&reg_usb_otg1_vbus>; 使用文件 drivers\regulator\fixed.c 解析出来,解析代码如下:config->gpio = of_get_named_gpio(np, “gpio”, 0);

  1. 获取device tree vbus-supply属性的代码
    image.png

获取方法:
1.获取设备树vbus-supply属性,使用 platdata->reg_vbus = devm_regulator_get(dev, “vbus”); 获取
2.在函数of_get_regulator 中使用snprintf(prop_name, 32, “%s-supply”, supply);函数拼接最终获取regulator属性。
5.使用过程使用 vbus-supply属性控制外部电源,以usb otg为例:
1.当拔插 usb otg1 时出现如下调用Astah 图otg-pull-out.asta
2.当插入调用图Astah是 otg-pull-in.asta
作者:jackniu_ae28
链接:https://www.jianshu.com/p/b22abebb3089

imx8qxp Linux Regulators 使用相关推荐

  1. linux内核移植imx8,基于Toradex Imx8qxp 升级 Qnx Linux

    使用Toradex imx8qxp板子 更新 Qnx 方法 登陆 my Ubuntu 机器 短路开发板上的烧写连线,上电. 输入命令 lsusb 如下 log说明已经进入到烧写模式 >(Bus ...

  2. IMX8QXP内部M4移植rt-thread

    最近研究了一段时间的rt-thread,相对来说还是算比较有追求的设计.从风格上讲,与Linux类似,很多设计思想也是借鉴Linux,比如设备驱动:从设计上来说,精简,高效易扩展,做了很多不错的中间件 ...

  3. Linux ALSA声卡驱动之七:ASoC架构中的Codec

    1.  Codec简介 在移动设备中,Codec的作用可以归结为4种,分别是: 对PCM等信号进行D/A转换,把数字的音频信号转换为模拟信号 对Mic.Linein或者其他输入源的模拟信号进行A/D转 ...

  4. linux驱动编写(电源管理驱动)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 对于嵌入式设备来说,合适的电源管理,不仅可以延长电池的寿命,而且可以省电,延长设备运行时间,在提 ...

  5. linux 使用设备树点亮LED 实战

    文章目录 前言 一.使用设备树 1.1.使用寄存器函数读写 1.2.使用pinctrl和gpio子系统 前言 了解了设备树后,这一小节将使用设备树方式点亮LED 一.使用设备树 imx6ull-ali ...

  6. LINUX内核编译选项-5

    Device Drivers  ---> 驱动程序 Generic Driver Options  --->驱动程序通用选项 (/sbin/hotplug) path to uevent ...

  7. 基于tiny4412的Linux内核移植 -- 设备树的展开【转】

    转自:https://www.cnblogs.com/pengdonglin137/p/5248114.html#_lab2_3_1 阅读目录(Content) 作者信息 平台简介 摘要 正文 一.根 ...

  8. 基于tiny4412的Linux内核移植 -- 设备树的展开

    http://blog.csdn.net/ermuzhi/article/details/9298541 摘要 在Linux引入设备树之后,将原来写在代码中的大量的硬件信息全部移到了设备树中,然后在L ...

  9. Linux 驱动开发 四十四:platform 设备驱动实验(二)

    驱动测试通过操作 led 完成. 一.原理图 二.无设备树源码实现 无设备树时候通过 platform_device.name 和 platform_driver.driver.name 进行匹配. ...

最新文章

  1. window.name实现的跨域数据传输
  2. RBF(Radial Basis Function Network)+径向基网络
  3. BZOJ 2257: [Jsoi2009]瓶子和燃料【数论:裴蜀定理】
  4. 【STM32】FreeRTOS 时间管理
  5. 视图的概念以及使用视图的好处
  6. 微型计算机实验四答案,微型计算机技术实验指导书的答案.doc
  7. 更换Homebrew的更新源
  8. Linux socket等于0,Linux系统环境下的Socket编程详细解析
  9. JavaScript的注意事项
  10. java 中国标准时间_「标准时间」js代码,中国标准时间转换为yyyy-MM-dd - seo实验室...
  11. adb 连接某个wifi_Android中如何使用WIFI来连接ADB
  12. angular 子父页面传值以及调用方法
  13. laravel 微信支付easywechat
  14. WebStream生成vue项目报错Error: The project seems to require yarn but it‘s not installed.
  15. mp4 转 mp3 命令行工具(超快)
  16. Reverses the digits of an integer mathmatically
  17. Python之父-Guido van Rossum
  18. linux yum 安装的路径在哪,yum 下载软件的存放位置
  19. 张家界协力学校计算机班,张家界协力学校交通顽瘴痼疾整治见成效
  20. 微信授权登录(H5为例)

热门文章

  1. Vivado下的集成逻辑分析仪ILA 入门
  2. Docker Hub
  3. 有关于操作系统下载的方法(免费)
  4. makecert 制作数字证书
  5. 微信小程序H5射击游戏唤境制作教程分享
  6. 【芝士】%ff%ff%ff%ff%ff%ff%ff || 0xff0xff0xff0xff0xff0xff0xff 异或,~ 取反过rce 自己应该是弄明白了,
  7. 最近研究Scratch及Scratchjr,关于幼儿/青少年学电脑及编程
  8. PyG异质图神经网络NotImplementedError问题
  9. Java从小白到大牛第2篇 【面向对象】-关东升-专题视频课程
  10. 对学校的希望和寄语_对学校的祝福语简短 对学校的祝福语经典