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

RK3568平台 (camera篇)点亮gc2053/gc2093 第二部分和MIPI相关的,需要MIPI进行图像传输,所以驱动应该就有这一部分的驱动,这部分一般是由SOC厂家提供。第三部分就是ISP部分,有些SOC有ISP图像处理模块,经过MIPI传输的图像进入SOC之后需要在传入SOC的ISP模块对图像进一步进行加工,所以一定是有一部分驱动是描述ISP模块的。一般情况下,Camera和SOC有两个接口进行连接,分为为MIPI接口和I2C接口,其中MIPI接口用来传输图像的数据,数据传输路径为从Sensor传输到SOC。 阅读详情

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

Linux kernel regulator简介 一般情况下在驱动程序中probe函数中调用先调用struct regulator *regulator_get struct device *dev, const char *id,int exclusive函数。通过查表找到设备。 返回一个struct regulator *结构体指针。 立即下载

相关推荐

atmel_mxt_ts.rar_MXT_android_atmel_mxt_ts.c_atmel_mxt_ts.ko_atme

ATMEL 多点触摸屏linux 驱动程序,支持QT,Android

使用regulator_get时的一个小注意事项

Linux kernel 使用 regulator 框架来管理电源,比如 PMIC 芯片上常见的LDO。使用 regulator的常规流程如以下代码所示: void set_vbus_voltage(struct device *dev) { struct regulator *vbus; ​ vbus = regulator_get(dev, "vbus"); if (IS_ERR(vbus)) { ret = PTR_ERR(vbus); goto reg_put; ..

nidongla的博客 2130

告别串口升级!手把手教你为STM32H750的W25Q32制作MDK下载算法(QSPI篇)

本文详细介绍了为STM32H750的W25Q32制作MDK下载算法(QSPI篇)的完整流程,帮助开发者告别低效的串口烧录方式。通过定制下载算法,可实现20倍以上的烧录速度提升,支持完整的调试功能,显著提高开发效率。文章涵盖环境准备、核心算法实现、性能优化及常见问题解决方案,适合嵌入式开发者参考。

weixin_30735745的博客 403

Linux驱动之Regulator子系统

该数据结构描述regulator device的约束信息,包括输出电压范围、输出电流范围、regulator device支持的模式(fast、normal、idle、standby等)、regulator device支持的操作模式,包括change volt、change current、change bypass mode等、regulator device支持的suspend 状态下的输出控制(如在suspend to disk状态下的输出控制等)。在这一章中将介绍regulator的内部实现。

Android系统攻城狮 3534

2-6-1-1 QNX编程入门之进程和线程(一)

文章围绕进程和线程展开介绍。先是将进程类比为房子,线程类比为居住者,阐述其基本概念,如进程占用内存,线程可共享内存。接着讲解同步相关内容,介绍了互斥,线程通过互斥锁来控制对特定资源的访问,像使用浴室一样。还提到优先级,线程按优先级和等待时长来决定获取资源顺序。此外,说明了信号量,以厨房为例,区分计数为 1 和大于 1 的信号情况,且指出信号量可当互斥锁用,但互斥锁是特殊用途信号量,二者存在区别,最后提及后续会介绍其他同步机制。

星原飞火的博客 1323

电力工程师必看:GOOSE/SV/MMS三协议在智能变电站中的分工与联动实例

本文深入解析了智能变电站中GOOSE、SV、MMS三大核心通信协议的分工与协同机制。GOOSE协议作为过程层的“闪电信使”,负责毫秒级传输跳闸命令等事件信息;SV协议则传输精确同步的电流电压采样值流;而MMS协议作为站控层的“管理语言”,实现设备监控与数据管理。三者基于IEC 61850标准,在过程层、间隔层和站控层之间高效联动,共同构建了智能变电站稳定可靠的通信骨架。

jj890的博客 364

【Android驱动】驱动中regulator_get解析和regulator_set_voltage设置电源脚电压的一个问题

背景: 延续上一篇写的从app控制gpio电平,想从app通过framework--jni--driver来控制ldo,也就是pm8909_l8这种电源脚。 代码: diff --git a/kernel/drivers/misc/chaoDriver/gpio_control.c b/kernel/drivers/misc/chaoDriver/gpio_control.c index a93f6c1..df33b71 100755 --- a/kernel/drivers/misc.

John_chaos的博客 4163

Diffusion:如何从噪声中生成清晰图像

扩散模型是当前AI图像生成领域的核心基础,如Stable Diffusion、DALL·E等热门模型均采用该技术。其原理分为训练和推理两个阶段:训练时通过逐步加噪图片,让AI学习如何去除噪声;推理时则从随机噪声出发,结合文本提示逐步去噪生成清晰图像。模型架构通常包含文本编码器、生成模型(如U-Net)和解码器三部分,通过多轮迭代将低维潜在空间表示转化为最终图像。这种技术模拟了艺术家从混沌中雕琢作品的过程,实现了从随机噪声到目标图像的智能生成。

laumy的学习笔记 1273

regulator_get

Regulator Consumer Driver InterfaceThis text describes the regulator interface for consumer device drivers. Please see overview.txt for a description of the terms used in this text.1. Consumer Regulat

新生代CV搬运工 1285

SAP GR(Group Reporting)配置篇(五)

1.5、合并的货币换算1.5.1指定折算比率菜单路径组报表的SAP S4HANA >合并的货币换算>-指定折算汇率事务代码GCRF说 明1.5.2维护汇率菜单路径组报表的SAP S4HANA >合并的货币换算>维护汇率事务代码CXCC/OB08说 明实际测试的时候根据实际情况维护汇率。输入换算比率。1.5.3定义汇率标识符菜单路径组报表的SAP S4HANA >合并的货币换算>定义汇率标识符事务代码OC41说 明配置了月末汇率和平均汇率。

weixin_43853754的博客 554

【论文精读】Graph WaveNet-深度时空图模型

Graph WaveNet构建了一个自适应邻接矩阵,它能保留隐藏的空间依赖关系,能够自动从数据中发现未见的图结构。提出了一个有效且高效的框架,可同时捕捉空间和时间依赖关系。其核心思想是将其提出的图卷积与扩张因果卷积相结合,使每个图卷积层都能处理空间依赖关系。在交通数据集上评估了提出的模型,并以较低的计算成本获得了最先进的结果。

打酱油的葫芦娃 1007

linux regulator电源管理

regulator_get(dev, "vtp")详细看相关链接:【转】linux电源框架——Regulator_regulator 框架-优快云博客

m0_60113841的博客 1030

Lammps实现Ar的沸腾过程(包含in文件)

Lammps实现简单的沸腾过程

Rockyoung 3501

了解/linux-5.4.31/drivers/regulator/devres.c中的devm_regulator_get()和devm_regulator_bulk_get()

devm_regulator_get()和devm_regulator_bulk_get()的区别。

weixin_42550185的博客 1589

[Python图像处理] 二.OpenCV+Numpy库读取与修改像素

该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门、OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子、图像增强技术、图像分割等,后期结合深度学习研究图像识别、图像分类应用。希望文章对您有所帮助,如果有不足之处,还请海涵~ 同时推荐作者的C++图像系列知识: [数字图像处理] 一.MFC详解显示BMP格式图片 [数字图像处理] 二.MFC单文档分...

杨秀璋的专栏 3万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Linux下的regulator调试

先看regular使用的小demo,如 i2c8{ touchscreen@28 { vddcama-supply = <&xxxxx>; }; } int ret; struct regulator *power; static int ts_probe(struct i2c_client *client,const struct...

Android开发 4520

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Linux下regulator驱动程序分析

原文地址::http://blog.csdn.net/lishuiwang/article/details/6130299     // /*regulator 是驱动中电源管理的基础设施。要先注册到内核中,然后使用这些电压输出的模块get其regulator,在驱动中的init里,在适当时间中进行电压电流的设置. 与 gpio 差不多? 一样是基础设施? */ // Li

xqhrs232的专栏 6074

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Android 10平台移植atmel_mxt触摸屏驱动

项目场景: SOC:NXP imx8mq Android 10平台移植触摸屏touch驱动:atmel_mxt_ts.c流程及debug记录 流程: 由于NXP平台自带atmel_mxt_ts.c驱动文件,所以移植方式较简单 驱动位置: ./drivers/input/touchscreen/atmel_mxt_ts.c 添加相关信息到dts文件中 文件位置: ./arch/arm64/boot/dts/freescale/imx8mq-evk-pcie1-m2.dts &i2c2 { c

玩嵌入式的精神小伙 1529

devm_regulator_get

设备树中配置资源结点,然后通过供应商接口调用devm_regulator_get来获取资源 /** * devm_regulator_get - Resource managed regulator_get() * @dev: device for regulator "consumer" * @id: Supply name or regulator ID. * * Managed regulator_get(). Regulators returned from this function a

wangkai6666的博客 7738

Linux内核regulator架构和编写

电源种类介绍       (百度百科)LDO是low dropout regulator,意为低压差线性稳压器,是相对于传统的线性稳压器来说的。传统的线性稳压器,如78xx系列的芯片都要求输入电压要比输出电压高出2v~3V以上,否则就不能正常工作。但是在一些情况下,这样的条件显然是太苛刻了,如5v转3.3v,输入与输出的压差只有1.7v,显然是不满足条件的。针对这种情况,才有了LDO类的电源转换

lurayvis的专栏 6051

regulator

        原文地址:http://lhsblog01.blog.163.com/blog/static/1020045192010221104120218/        regulator是驱动中电源管理的基础设施。要先注册到内核中,然后使用这些电压输出的模块get其regulator,在驱动中的init里,在适当时间中进行电压电流的设置.

Embedded Girl 2598

RK3568驱动OV13850摄像头模组调试过程

品牌:Omnivision型号:CMK-OV13850接口:MIPI像素:1320WOV13850彩色图像传感器是一款低电压、高性能1/3.06英寸1320万像素CMOS图像传感器,使用OmniBSI+?技术提供了单-1320万像素(4224×3136)摄像头的功能。通过串行摄像头控制总线(SCCB)接口的控制,它提供了全帧、下采样、开窗的10位MIPI图像。

fhqlongteng的博客 9054

Regulator 框架(二):Regulators 消费者接口

转载来源于:https://www.cnblogs.com/wanglouxiaozi/p/15091263.html 消费者接口只要求驱动程序包含一个头文件: #include <linux/regulator/consumer.h> 消费者可以是静态的,也可以是动态的。静态调节器只需要一个固定的电源,而动态调节器需要在运行时对调节器进行主动管理。从消费者的角度来看,调节器设备在内核中被表示为一个struct regulator 结构的实例,在drivers/regulator/interna

qq_33472414的博客 2342
上一篇: 编译警告(Warning)
下一篇: Git使用基础篇
计算机与认知
博客等级 码龄14年 31粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值