avdd-supply and vdd_io-supply两个属性解析调用regulator_get(dev, “vdd_io“)
Touch panel DTS 分析(MSM8994平台,Atmel 芯片)
在MSM8994平台下,Touch panel的DTS节点写在/kernel/arch/arm/boot/dts/qcom/msm8994-mtp.dtsi文件中。具体代码如下:
&soc {
i2c@f9924000 {
atmel_mxt_ts@4a {
compatible = "atmel,atmel_mxt_ts";
reg = <0x4a>;
interrupt-parent = <&msm_gpio>;
interrupts = <61 0x2008>;
avdd-supply = <&pm8994_l22>;
vdd_io-supply = <&pm8994_l14>;
.........
};
};
在DTS节点中,我们主要看一下avdd-supply and vdd_io-supply两个属性。这两个属性在C代码里的使用方式如下:
/kernel/drivers/input/touchscreen/atmel_mxt_ts.c
mxt_probe_regulators(struct mxt_data *data)
{
........
data->reg_vdd_io = regulator_get(dev, "vdd_io");
........
data->reg_avdd = regulator_get(dev, "avdd");
........
}
/kernel/drivers/regulator/core.c
struct regulator *regulator_get(struct device *dev, const char *id)
{
return _regulator_get(dev, id, 0);
}
static struct regulator *_regulator_get(struct device *dev, const char *id, int exclusive)
{
.......
rdev = regulator_dev_lookup(dev, id, &ret);
if(rdev)
goto found;
......
}
static struct regulator_dev *regulator_dev_lookup(struct devic *dev, const char *supply, int *ret)
{
struct regulator_dev *r;
struct device_node *node;
........
/* first do a dt based lookup */
if (dev && dev->of_node) {
node = of_get_regulator(dev, supply)
if (node) {
list_for_each_entry(r, ®ulator_list, list)
if ( r->dev.parent && node == r->dev.of_node)
return r;
........
}
}
}
static struct device_node *of_get_regulator(struct device *dev, const char *supply)
{
struct device_node *regnode = NULL;
char prop_name[32];
.......
snprintf(prop_name, 32, "%s-supply", supply);
regnode = of_parse_phandle(dev->of_node, prop_name, 0);
........
}
从上述代码大致上可以看到DTS里的vdd_io-supply and avdd-supply属性是如何解析和使用的。在mxt_probe()函数中将字符串“avdd”和“vdd_io”传给regulator_get()函数,一步步调用下来后,在of_get_regulator()函数中将字符串合并成DTS中符合要求的字符串属性,之后通过属性的值来找到相应的regulator_dev 结构体!
转载于:https://www.cnblogs.com/zzb-Dream-90Time/p/7764937.html
avdd-supply and vdd_io-supply两个属性解析调用regulator_get(dev, “vdd_io“)相关推荐
- Power Supply 文件节点和电池服务属性对照
背景 Android 电池服务是基于Android Linux的Power Supply驱动实现的,Power Supply驱动将电池各种状态属性值在发生改变时写入到sysfs文件系统下目录节点上,提 ...
- 《JAVA练习题目11》学生类有属性姓名(字符串类型)和选修课程信息(ArrayList<Course>对象)两个属性,和三个方法
学生类有属性姓名(字符串类型)和选修课程信息(ArrayList对象)两个属性,和三个方法 一个用于初始化学生名字的构造方法:一个添加选修课程的addCourse方法:一个获取所有课程平均分的getA ...
- timestamp的两个属性:CURRENT_TIMESTAMP 和ON UPDATE CURRENT_TIMESTAMP
timestamp有两个属性,分别是CURRENT_TIMESTAMP 和ON UPDATE CURRENT_TIMESTAMP两种,使用情况分别如下: 1. CURRENT_TIMESTAMP 当要 ...
- Java中实现根据一个List中的数据的两个属性相同划分为同一类
场景 有一个List,每一个元素是一个对象,根据每个对象的两个属性 是否相同划分为同一类,即两个属性都相同时才划为同一类. 并将同类中的num属性进行累加. 如图: 根据material_number ...
- JSP页面中的pageEncoding和contentType两种属性
关于JSP页面中的pageEncoding和contentType两种属性的区别: pageEncoding是jsp文件本身的编码 contentType的charset是指服务器发送给客户端时的内容 ...
- 服务器产品的特质和优势,亿速云裸金属服务器兼具“弹性”和“裸金属”两种属性,既有虚拟机的弹性,同时又保留了裸金属的一切性能、特性和优势!...
(原标题:亿速云裸金属服务器兼具"弹性"和"裸金属"两种属性,既有虚拟机的弹性,同时又保留了裸金属的一切性能.特性和优势!) 今天,我们来讲一讲亿速云弹性计算服 ...
- java定义一个长方形类,该类中具有长方形长宽两种属性,并具有相应的构造方法属性访问方法,计算长方形的周长和面积的方法,要求输出长是5,宽是4的长方形
定义一个长方形类,该类中具有长方形长宽两种属性,并具有相应的构造方法 属性访问方法,计算长方形的周长和面积的方法,要求输出长是5,宽是4的长方形 public class test3 {public ...
- android entries属性,ListPreference需要设置两个属性:android:entries和android:entryValues...
android:defaultValue="black" android:entries="@array/setting_skintheme" android: ...
- 给所有的Control加两个属性,实现回车键自动跳转到下一个控件
最近一个朋友要做一个操作非常方便的Windows应用程序,就是希望通过按回车键或者上下键,在输入项之间自动跳转,国人都不习惯 使用Tab/Shift Tab在输入项之间的跳转.我之前也使用了一些别的方 ...
最新文章
- CVPR 2022 | 一种有效提升点云语义分割边界性能的学习框架
- 学习opengl入门
- 使用POI进行数据导出excel时的OOM服务挂掉,cpu飙升的问题
- vs2008界面查看
- 【开源社区】如何参与JEECG开源团队?
- LeetCode003-无重复字符的最长子串(Length of longest substring)-Rust语言实现
- 【Elasticsearch】分片未分配 (UNASSIGNED) failed to obtain in-memory shard lock
- kettle 数据提取效率提升
- 为什么中国没有类似于windows的操作系统?
- Word 制作三线表
- VS解决方案目录和工程目录
- 肯德尔系数怎么分析_2020LPL春季赛3月15日比赛数据的数据分析(Python)
- Linux基础3-实用进阶
- 解决:keeps stopping(停止运行)
- 计算机文件夹操作教案,文件文件和文件夹教案
- 网络通信学习笔记之——计算机网络基础知识
- 网络设备的连接以及配置
- 国内主流云主机性能测试测评报告
- Listen 1添加下载功能(列表下载方法)(v2.6)
- 删除顽固的无法删除文件
热门文章
- 云计算大好前途下 头部厂商的激烈博弈
- 苹果电脑双系统如何切换,CrossOver兼容双系统无需切换轻松帮你解决
- 机器学习——霍夫丁不等式【转】
- Win10 64位+VS2015+Opencv3.3.0安装配置
- matplotlib 画图刻度尺控制
- 网易控股的立马理财逾期,网易前员工爆料:把内部员工当韭菜
- 中国医科大学网络教育学院计算机应用基础,中国医科大学网络教育学院试卷.doc...
- 我的博客园博客设计更新记录
- FFmpeg系列-视频解码后保存帧图片为ppm
- 浅显易懂入门大数据系列:二、MapReduce、YARN(超详细)