imx8qxp Linux Regulators 使用
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
下面通过:定义 解析 获取 使用 过程进行分析。
- 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 = <®_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 = <®_usb_otg1_vbus>; 使用文件 drivers\regulator\fixed.c 解析出来,解析代码如下:config->gpio = of_get_named_gpio(np, “gpio”, 0);
- 获取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 使用相关推荐
- linux内核移植imx8,基于Toradex Imx8qxp 升级 Qnx Linux
使用Toradex imx8qxp板子 更新 Qnx 方法 登陆 my Ubuntu 机器 短路开发板上的烧写连线,上电. 输入命令 lsusb 如下 log说明已经进入到烧写模式 >(Bus ...
- IMX8QXP内部M4移植rt-thread
最近研究了一段时间的rt-thread,相对来说还是算比较有追求的设计.从风格上讲,与Linux类似,很多设计思想也是借鉴Linux,比如设备驱动:从设计上来说,精简,高效易扩展,做了很多不错的中间件 ...
- Linux ALSA声卡驱动之七:ASoC架构中的Codec
1. Codec简介 在移动设备中,Codec的作用可以归结为4种,分别是: 对PCM等信号进行D/A转换,把数字的音频信号转换为模拟信号 对Mic.Linein或者其他输入源的模拟信号进行A/D转 ...
- linux驱动编写(电源管理驱动)
[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 对于嵌入式设备来说,合适的电源管理,不仅可以延长电池的寿命,而且可以省电,延长设备运行时间,在提 ...
- linux 使用设备树点亮LED 实战
文章目录 前言 一.使用设备树 1.1.使用寄存器函数读写 1.2.使用pinctrl和gpio子系统 前言 了解了设备树后,这一小节将使用设备树方式点亮LED 一.使用设备树 imx6ull-ali ...
- LINUX内核编译选项-5
Device Drivers ---> 驱动程序 Generic Driver Options --->驱动程序通用选项 (/sbin/hotplug) path to uevent ...
- 基于tiny4412的Linux内核移植 -- 设备树的展开【转】
转自:https://www.cnblogs.com/pengdonglin137/p/5248114.html#_lab2_3_1 阅读目录(Content) 作者信息 平台简介 摘要 正文 一.根 ...
- 基于tiny4412的Linux内核移植 -- 设备树的展开
http://blog.csdn.net/ermuzhi/article/details/9298541 摘要 在Linux引入设备树之后,将原来写在代码中的大量的硬件信息全部移到了设备树中,然后在L ...
- Linux 驱动开发 四十四:platform 设备驱动实验(二)
驱动测试通过操作 led 完成. 一.原理图 二.无设备树源码实现 无设备树时候通过 platform_device.name 和 platform_driver.driver.name 进行匹配. ...
最新文章
- window.name实现的跨域数据传输
- RBF(Radial Basis Function Network)+径向基网络
- BZOJ 2257: [Jsoi2009]瓶子和燃料【数论:裴蜀定理】
- 【STM32】FreeRTOS 时间管理
- 视图的概念以及使用视图的好处
- 微型计算机实验四答案,微型计算机技术实验指导书的答案.doc
- 更换Homebrew的更新源
- Linux socket等于0,Linux系统环境下的Socket编程详细解析
- JavaScript的注意事项
- java 中国标准时间_「标准时间」js代码,中国标准时间转换为yyyy-MM-dd - seo实验室...
- adb 连接某个wifi_Android中如何使用WIFI来连接ADB
- angular 子父页面传值以及调用方法
- laravel 微信支付easywechat
- WebStream生成vue项目报错Error: The project seems to require yarn but it‘s not installed.
- mp4 转 mp3 命令行工具(超快)
- Reverses the digits of an integer mathmatically
- Python之父-Guido van Rossum
- linux yum 安装的路径在哪,yum 下载软件的存放位置
- 张家界协力学校计算机班,张家界协力学校交通顽瘴痼疾整治见成效
- 微信授权登录(H5为例)
热门文章
- Vivado下的集成逻辑分析仪ILA 入门
- Docker Hub
- 有关于操作系统下载的方法(免费)
- makecert 制作数字证书
- 微信小程序H5射击游戏唤境制作教程分享
- 【芝士】%ff%ff%ff%ff%ff%ff%ff || 0xff0xff0xff0xff0xff0xff0xff 异或,~ 取反过rce 自己应该是弄明白了,
- 最近研究Scratch及Scratchjr,关于幼儿/青少年学电脑及编程
- PyG异质图神经网络NotImplementedError问题
- Java从小白到大牛第2篇 【面向对象】-关东升-专题视频课程
- 对学校的希望和寄语_对学校的祝福语简短 对学校的祝福语经典