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, &regulator_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“)相关推荐

  1. Power Supply 文件节点和电池服务属性对照

    背景 Android 电池服务是基于Android Linux的Power Supply驱动实现的,Power Supply驱动将电池各种状态属性值在发生改变时写入到sysfs文件系统下目录节点上,提 ...

  2. 《JAVA练习题目11》学生类有属性姓名(字符串类型)和选修课程信息(ArrayList<Course>对象)两个属性,和三个方法

    学生类有属性姓名(字符串类型)和选修课程信息(ArrayList对象)两个属性,和三个方法 一个用于初始化学生名字的构造方法:一个添加选修课程的addCourse方法:一个获取所有课程平均分的getA ...

  3. timestamp的两个属性:CURRENT_TIMESTAMP 和ON UPDATE CURRENT_TIMESTAMP

    timestamp有两个属性,分别是CURRENT_TIMESTAMP 和ON UPDATE CURRENT_TIMESTAMP两种,使用情况分别如下: 1. CURRENT_TIMESTAMP 当要 ...

  4. Java中实现根据一个List中的数据的两个属性相同划分为同一类

    场景 有一个List,每一个元素是一个对象,根据每个对象的两个属性 是否相同划分为同一类,即两个属性都相同时才划为同一类. 并将同类中的num属性进行累加. 如图: 根据material_number ...

  5. JSP页面中的pageEncoding和contentType两种属性

    关于JSP页面中的pageEncoding和contentType两种属性的区别: pageEncoding是jsp文件本身的编码 contentType的charset是指服务器发送给客户端时的内容 ...

  6. 服务器产品的特质和优势,亿速云裸金属服务器兼具“弹性”和“裸金属”两种属性,既有虚拟机的弹性,同时又保留了裸金属的一切性能、特性和优势!...

    (原标题:亿速云裸金属服务器兼具"弹性"和"裸金属"两种属性,既有虚拟机的弹性,同时又保留了裸金属的一切性能.特性和优势!) 今天,我们来讲一讲亿速云弹性计算服 ...

  7. java定义一个长方形类,该类中具有长方形长宽两种属性,并具有相应的构造方法属性访问方法,计算长方形的周长和面积的方法,要求输出长是5,宽是4的长方形

    定义一个长方形类,该类中具有长方形长宽两种属性,并具有相应的构造方法 属性访问方法,计算长方形的周长和面积的方法,要求输出长是5,宽是4的长方形 public class test3 {public ...

  8. android entries属性,ListPreference需要设置两个属性:android:entries和android:entryValues...

    android:defaultValue="black" android:entries="@array/setting_skintheme" android: ...

  9. 给所有的Control加两个属性,实现回车键自动跳转到下一个控件

    最近一个朋友要做一个操作非常方便的Windows应用程序,就是希望通过按回车键或者上下键,在输入项之间自动跳转,国人都不习惯 使用Tab/Shift Tab在输入项之间的跳转.我之前也使用了一些别的方 ...

最新文章

  1. CVPR 2022 | 一种有效提升点云语义分割边界性能的学习框架
  2. 学习opengl入门
  3. 使用POI进行数据导出excel时的OOM服务挂掉,cpu飙升的问题
  4. vs2008界面查看
  5. 【开源社区】如何参与JEECG开源团队?
  6. LeetCode003-无重复字符的最长子串(Length of longest substring)-Rust语言实现
  7. 【Elasticsearch】分片未分配 (UNASSIGNED) failed to obtain in-memory shard lock
  8. kettle 数据提取效率提升
  9. 为什么中国没有类似于windows的操作系统?
  10. Word 制作三线表
  11. VS解决方案目录和工程目录
  12. 肯德尔系数怎么分析_2020LPL春季赛3月15日比赛数据的数据分析(Python)
  13. Linux基础3-实用进阶
  14. 解决:keeps stopping(停止运行)
  15. 计算机文件夹操作教案,文件文件和文件夹教案
  16. 网络通信学习笔记之——计算机网络基础知识
  17. 网络设备的连接以及配置
  18. 国内主流云主机性能测试测评报告
  19. Listen 1添加下载功能(列表下载方法)(v2.6)
  20. 删除顽固的无法删除文件

热门文章

  1. 云计算大好前途下 头部厂商的激烈博弈
  2. 苹果电脑双系统如何切换,CrossOver兼容双系统无需切换轻松帮你解决
  3. 机器学习——霍夫丁不等式【转】
  4. Win10 64位+VS2015+Opencv3.3.0安装配置
  5. matplotlib 画图刻度尺控制
  6. 网易控股的立马理财逾期,网易前员工爆料:把内部员工当韭菜
  7. 中国医科大学网络教育学院计算机应用基础,中国医科大学网络教育学院试卷.doc...
  8. 我的博客园博客设计更新记录
  9. FFmpeg系列-视频解码后保存帧图片为ppm
  10. 浅显易懂入门大数据系列:二、MapReduce、YARN(超详细)