Touch panel DTS 分析(MSM8994平台,Atmel 芯片)

在MSM8994平台,Touch panel的DTS写节点/kernel/arch/arm/boot/dts/qcom/msm8994-mtp.dtsi文件里。详细代码例如以下:

&soc {

[email protected] {

[email protected] {

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

版权声明:本文博客原创文章。博客,未经同意,不得转载。

时间: 2024-11-05 11:24:15

Touch panel DTS 分析(MSM8994平台,Atmel 芯片)的相关文章

分析USB平台设备模型框架(1)

start_kernel rest_init(); kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND); do_basic_setup(); driver_init(); void __init driver_init(void) void __init driver_init(void) { /* These are the core pieces */ devices_init(); 表示在/sys/devices /sys/

ELK服务搭建(开源实时日志分析ELK平台部署)(低版本—简单部署)

开源实时日志分析ELK平台部署 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误. 通常,日志被分散的储存不同的设备上.如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志.这样是不是感觉很繁琐和效率低下.当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收集汇总. 集中化管理日志后,日志的

日志分析ELK平台搭建

当服务器数量以及应用达到一定的数量后,操作系统日志以及应用软件日志数量庞大,遇到问题时日志是第一手资料.平时用的sed.grep.awk已经难以满足我们的需求.随着互联网技术的发展,好多大型互联网公司研发了不同的日志分析产品,例如开源的Graylog.ELK还有Splunk等,同时Splunk也是一个商业产品,功能很强大,但是在目前的互联网领域里ELK的使用应该是更广泛.接下来会根据官网资料搭建ELK平台. 环境介绍: 操作系统  CentOS 7.4 Java版本:openjdk 1.8.0_

旅游研究院大数据挖掘与分析科研平台建设方案

一. 背景 一.1 数据挖掘和大数据分析行业背景和发展趋势 移动互联网.电子商务以及社交媒体的快速发展使得企业需要面临的数据量成指数增长.根据 IDC <数字宇宙>(Digital Universe)研究报告显示,2020 年全球新建和复制的信息量已经超过 40ZB,是2015年的12倍;而中国的数据量则会在2020年超过8ZB,比2015年增长22倍.数据量的飞速增长带来了大数据技术和服务市场的繁荣发展.IDC亚太区(不含日本)最新关于大数据和分析(BDA)领域的市场研究表明,大数据技术和服

日志分析ELK平台部署

工作原理如下如所示: 部署流程: 1.安装logstash的JDK环境: # tar zvxf jdk-8u73-linux-x64.tar.gz # mv jdk-8u73-linux-x64 /usr/local/java # vim /etc/profile export JAVA_HOME=/usr/local/java CLASSPATH=/usr/local/java/lib/dt.jar/usr/local/java/lib/tools.jar PATH=/usr/local/ja

开源实时日志分析ELK平台部署

最近简单了解了关于ELK的知识: ELK 由ElasticSearch . Logstash 和 Kiabana 三个开源工具组成 官方网站:https://www.elastic.co/products |   Elasticsearch 是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制, restful 风格接口,多数据源,自动搜索负载等. l   Logstash 是一个完全开源的工具,他可以对你的日志进行收集.分析,并将其存储供以后使用(如,搜索)

slowlog分析anemometer平台搭建

slowlog监控服务器的anemometer配置 slowlog监控平台搭建步骤: 一.安装percona-toolkit-2.2.14 二.准备相关php模块 yum -y install php-common php-bcmath php-mysql php-dba php-cli php-gd php php-pdo vim /etc/php.ini ----- date.timezone = Asia/Shanghai ----- 三.下载并配置Anemometer https://g

互联网分布式微服务云平台规划分析--系统管理平台

1.介绍 鸿鹄云架构[系统管理平台]是一个大型企业.分布式.微服务.云架构的JavaEE体系快速研发平台,基于模块化.微服务化.原子化.热部署的设计思想,使用成熟领先的无商业限制的主流开源技术构建. 采用服务化的组件开发模式,可实现复杂的业务功能.使用Maven进行项目的构建管理,采用Jenkins进行持续集成,主要定位于大型分布式企业系统或大型分布式互联网产品的架构.使用当前最流行最先进的开源技术实现服务组件化及管理,真正为企业打造分布式微服务云架构平台. ? ?2.平台基础功能 首页统计 待

Android视频播放方案选择——深刻分析android平台的视频播放优缺点

https://zhuanlan.zhihu.com/p/27029577?utm_source=qq&utm_medium=social Android我还可以相信你多少系列文章二之音视频播放 音频视频播放在现在的应用里面很常见,传统应用发展到一定阶段多少会引入音视频资源,特别是现在短视频被看作下一个增长爆发点,和之相关的创业层出不穷,作为开发者如何进行音视频技术选型非常关键 MediaPlayer和VideoView给我们提供了非常方便的播放音视频的能力,几乎不需要要写几行代码就可以完成.