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 结构体!

Touch panel DTS 分析(MSM8994平台,Atmel 芯片)相关推荐

  1. 【SemiDrive源码分析】【X9芯片启动流程】08 - X9平台 lk 目录源码分析 之 目录介绍

    [SemiDrive源码分析][X9芯片启动流程]08 - X9平台 lk 目录源码分析 之 目录介绍 一./rtos/lk/ 目录结构分析 1.1 /rtos/lk_boot/ 目录结构分析 1.2 ...

  2. Android Keyboard/Touch Panel分析

    分析一下 Android 是如何读取按键及Touch Panel 的驱动的.主要在 $(ANDROID_DIR)/frameworks/base/libs/ui/EventHub.cpp 这个文件中, ...

  3. 【SemiDrive源码分析】【X9芯片启动流程】09 - X9平台系统启动流程分析

    [SemiDrive源码分析][X9芯片启动流程]09 - X9平台系统启动流程分析 一.X9 芯片介绍 二.OSPI1_ONLY boot (0000)启动方式(Nor + eMMC) 2.1 Se ...

  4. MTK 驱动(64)---Mtk touch panel驱动/TP驱动详解

    Mtk touch panel驱动/TP驱动详解 TP还算是比LCM好理解的多. 在启动过程中,先注册/mediatek/custom/command/kernel/touchpanel目录下的具体驱 ...

  5. 【SemiDrive源码分析】【X9芯片启动流程】12 - freertos_safetyos目录Cortex-R5 DIL2.bin 之 sdm_display_init 显示初始化源码分析

    [SemiDrive源码分析][X9芯片启动流程]12 - freertos_safetyos目录Cortex-R5 DIL2.bin 之 sdm_display_init 显示初始化源码分析 一.s ...

  6. 【SemiDrive源码分析】【X9芯片启动流程】30 - AP1 Android Kernel 启动流程 start_kernel 函数详细分析(一)

    [SemiDrive源码分析][X9芯片启动流程]30 - AP1 Android Kernel 启动流程 start_kernel 函数详细分析(一) 一.Android Kernel 启动流程分析 ...

  7. 【SA8295P 源码分析】01 - SA8295P 芯片介绍

    [SA8295P 源码分析]01 - SA8295P 芯片介绍 一.Processors 处理器介绍 二.Memory 内存介绍 三.Multimedia 多媒体介绍 3.1 DPU 显示处理器:Ad ...

  8. 国家微生物科学数据中心推出免费一站式生物信息分析云平台

    产生了大量的微生物组学数据,想进行数据分析不知道使用什么工具?不会使用Linux系统?不会写代码?没有合适的参考数据库?计算资源不足?现在这些问题都可以通过国家微生物数据中心推出的一站式生物信息分析云 ...

  9. Countly 19.02.1 发布,实时移动和 web 分析报告平台

    百度智能云 云生态狂欢季 热门云产品1折起>>>   实时移动和 web 分析报告平台 Countly 19.02.1 发布了. 新版更新内容主要有: 新特性 [前端] 根据路由名称 ...

最新文章

  1. Raspberry PI 系列 —— 裸机点亮LED灯
  2. 使用Nginx代理和转发Websocket连接
  3. Java 8 CompletableFuture
  4. OpenCV:实现灰度直方图和单通道直方图拉伸
  5. 无法打开物理文件“E:\Database\VRVIES6841-FZ01-Global\VRVEIS.mdf”。操作系统错误 5:“5(拒绝访问。)”...
  6. Matlab归一化函数(mapminmax)
  7. Maven中安装本地Jar包到仓库中或将本地jar包上传
  8. flink 不设置水印_区分理解Flink水印延迟与窗口允许延迟的概念
  9. mysql lock trx id_MySQL中RR模式下死锁一例
  10. 全栈python_Pyodide:在浏览器端实现Python全栈科学计算
  11. 利用linux mutt 发送邮件(在Shell脚本中使用比较方便)
  12. 一个磁力API接口,可自动将磁力链接转换成种子文件提供下载,并返回磁力和磁力对应的种子的详细信息
  13. Hotspot 偏向锁BiasedLocking 源码解析
  14. (新手必备)电子电路里面你必须知道的知识!!!
  15. Python网络数据采集1(译者:哈雷)
  16. ps 毛发 边缘,抠图技巧,抠图后头发边缘的颜色怎处理
  17. 计算机系统限制某个用户只允许,Win10系统如何设置某些用户只能运行指定应用程序...
  18. dfasdfad大发
  19. Pulsar bk报错Unable to allocate memory, exiting bookie
  20. 贝塞尔曲线最小二乘法拟合(随意切向/切向方向统一)------路适用于绝大多数的最小二乘法拟合

热门文章

  1. OPPO加入连接标准联盟董事会;BOSE为领克09汽车打造Centerpoint环绕声音响系统 | 全球TMT...
  2. 小米OJ12月常规赛“数数字”题目详解与SG函数SG定理个人理解
  3. RSPO棕榈油供应链认证体系
  4. 如何编制试算平衡表_编制审计差异调整表和试算平衡表_审计实务教程
  5. (不重点考)试算平衡的分类
  6. APP是怎么精确统计下载数量?
  7. 软件项目接单渠道丨软件公司项目接单平台
  8. HTML鼠标放上去放大图片
  9. Conlletion集合框架总结大全
  10. Balsamiq-Mockups-Introduction.html