A20 触摸屏配置

A20 源码里现在支持的触摸屏应该是三种,ft5x, gt82x, gslX680

源码分别是   ft5x_ts.c, gt82x.c gslX680.c。

在这三个文件头部都有触摸屏配置结构体的引用。

extern struct ctp_config_info config_info;

搜索源码可以看到用到了以下几处。

ctp_get_system_config里(被ft5x_ts_init调用)

        twi_id = config_info.twi_id;
        screen_max_x = config_info.screen_max_x;
        screen_max_y = config_info.screen_max_y;
        revert_x_flag = config_info.revert_x_flag;
        revert_y_flag = config_info.revert_y_flag;
        exchange_x_y_flag = config_info.exchange_x_y_flag;

ft5x_ts_init函数里

       config_info.ctp_used

很明显触摸屏几个关键参数是从外部的config_info这个结构体得到了。搜寻这个结构体。

在include/linux/ctp.h里找到他的定义

struct ctp_config_info{
        int ctp_used;
        __u32 twi_id;
        int screen_max_x;
        int screen_max_y;
        int revert_x_flag;
        int revert_y_flag;
        int exchange_x_y_flag;
        u32 irq_gpio_number;
        u32 wakeup_gpio_number;
#ifdef TOUCH_KEY_LIGHT_SUPPORT
        u32 key_light_gpio_number;
#endif             
};

在/drivers/input/init_ctp.c里找到变量的定义。

struct ctp_config_info config_info;

并且在ctp_fetch_sysconfig_para这个函数中给config_info赋值。

都是通过script_get_item从配置文件里取出值来给config_info赋值。

script_get_item("ctp_para", "ctp_used", &val)

config_info.ctp_used = val.val;


script_get_item("ctp_para", "ctp_twi_id", &val)

config_info.twi_id = val.val;


script_get_item("ctp_para", "ctp_screen_max_x", &val)

config_info.screen_max_x = val.val;


script_get_item("ctp_para", "ctp_screen_max_y", &val)

config_info.screen_max_y = val.val;


script_get_item("ctp_para", "ctp_revert_x_flag", &val)

config_info.revert_x_flag = val.val;


script_get_item("ctp_para", "ctp_revert_y_flag", &val)

config_info.revert_y_flag = val.val;


script_get_item("ctp_para", "ctp_exchange_x_y_flag", &val)

config_info.exchange_x_y_flag = val.val;


但是,从上面的代码可以看到,ctp_name没有用到,那内核是如何知道我们用的是哪种触摸屏呢。

搜索了内核源码发现这个文件,drivers/input/device.c

发现这个结构体定义和赋值

struct base_info{
        char name[NAME_LENGTH];
        unsigned short i2c_address[ADDRESS_NUMBER];
        unsigned short chip_id_reg;
        unsigned short chip_id_reg_value[REG_VALUE_NUMBER];
};

static struct base_info ctps[] = {
        { "ft5x_ts", {      0x38},   0xa3, {0x55,0x08,0x02,0x06,0xa3}},
        {   "gt82x", {      0x5d},  0xf7d, {0x13,0x27,0x28          }},
        { "gslX680", {      0x40},   0x00, {0x00                    }},
        {"gt9xx_ts", {0x14, 0x5d}, 0x8140, {0x39                    }},
        {   "gt811", {      0x5d},  0x715, {0x11                    }},
};

从这里基本可以判端出,内核是从这个表里取得触摸芯片的信息的。但是不用配置文件,如何知道是哪个,

可以基本推测,内核是在i2c总线上去根据上面表中的芯片i2c地址通信来测试其是否存在。

好,现在我看来验证这个事情。

i2c_detect_device

        i2c_device_i2c_test     用ctps里的每一个i2c地址来尝试通信,最终找到一个能用的i2c地址

        chip_id_detect              用ctps里的chip_id_reg找到芯片里的id,并且和chip_id_reg_value里的值进行

                                                匹配,实际就是找到芯片后,再确认一下芯片的id

        i2c_update_device_name    将找到的ctps项中的name,就是芯片名称,拷贝到全局变量ctp_name中。

通过以上分析,发现全志的配置文件中关于触摸屏这块的配置,ctp_name, ctp_twi_addr这两个键实际是没有用的。ctp_twi_id应该配置成chip_id_reg_value里面的一个。



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/433686.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java进阶07 嵌套类

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 到现在为止,我们都是在Java文件中直接定义类。这样的类出现在包(package)的级别上。Java允许类的嵌套定义。 这里将讲解如何在一个类…

MySQL笔记——DQL查询数据

DQL查询包括以下这些内容: • 基础查询 • 条件查询(WHERE) • 分组查询(GROUP BY) • 排序查询(ORDER BY) • 分页查询(LIMIT)(一)、基础查询 1、查询多个字段 SELECT 字段列表 FROM 表名; SELECT * FROM 表名; 当前表中数据如下: 2、去除重复记录 …

c++两个vector合并_数据结构——算法初步(4)——合并排序算法

从之前的学习可以看到,对大型vectory要求的排序,选择排序算法显然不符合要求,因为运行时间与输入问题规模大小的平方成比例增加,对于以线性顺序处理向量的元素的大多数排序算法也是如此。 所以要采用不同的方法来开发…

asterisk 互联

如上图所示,两个sip客户端分别注册在A,B两个asterisk服务器下,让A和B通过各自的asterisk服务器来相互通信。 xlite A的账号为2001,xlite B的账号为5001 asterisk A的sip.conf如下配置: [general] contextunauthenticated allow…

dll文件懒加载_一步步学习NHibernate(5)——多对一,一对多,懒加载(2)

请注明转载地址:http://www.cnblogs.com/arhat通过上一章的学习,我们建立了Student和Clazz之间的关联属性,并从Student(many)的一方查看了Clazz的信息,同时我们使用了懒加载技术和立即执行的方式来实现了对象的关联查询&#xff0…

python代码加密 混淆_Python程序的混淆和加密

混淆 为了增加代码阅读的难度, 源代码的混淆非常必要, 一个在线的Python代码混淆网站. 如果你觉得有用, 可以购买离线版本. 同时需要注意的是, 这个混淆其实还是被很多人怀疑的, 因为即使混淆了, 也没有改变代码的结构. 所以, 必要的话, 在编程的时候, 可以故意做点提高逆向难度…

[活动通知]Nanjing GDG 2013年4月活动

致各位亲爱的 Google 技术爱好者 很高兴的通知各位朋友,Nanjing GDG 将在本周日 (04/21) 举办我们 Nanjing GDG 的 4月份活动,热烈欢迎大家报名参加。 主题:利用开放社区和代码库来构建 Android 应用 时间: 4月21 日 (周日) 下午 …

python linux运维教程 推荐_Linux运维人员成长之路学习书籍推荐

原标题:Linux运维人员成长之路学习书籍推荐一、入门书:《鸟哥的私房菜(基础篇)》《鸟哥的私房菜(服务篇)》《Linux命令行与Shell脚本编程大全(第2版)》《UNIX/Linux 系统管理技术手册》《UNIX编程艺术》二、计算机及操作系统原理书:《深入理解…

MySQL笔记——外键约束和表关系(一对一,多对一,多对多)

一、外键约束 概念:外键用来让两个表的数据之间建立链接,保证数据的一致性和完整性。语法:(1)添加约束-- 创建表是添加外键约束CREATE TABLE 表名(列名 数据类型,…[CONSTRAINT] [外键名称] FOREIGN KEY(外键列名) REF…

asterisk 学习笔记1

一: Asterisk为特定的目标指定了一些extension名称。 i:Invalid s:Start h:Hangup t:Timeout T:AbsoluteTimeout o:Operator 一般常用的是i和t 二: asterisk拨号方案的调试可以用NoOp()函数,这个函数什么也不做,…

hashCode()方法的作用使用分析

一直以来都想写篇文章来说明下hashCode的作用以及相关的知识,许久没动笔,最近找了点资料,自己整理了一下,于是就诞生了下面的东西! (1)前言,想要明白hashCode的作用,你必须要先知道Java中的集合…

仿个人税务 app html5_【注意】你下载的可能是个假的个税App

新个税法从1月初开始实施。国家税务总局推出“个人所得税”APP,方便纳税人线上填报资料进行专项抵扣。几天来,这款APP的下载量和注册量大幅增长。随之而来的是,很多商业公司制作的各类“个税”APP也成为热门。这其中有不少纯属蹭热点&#xf…

MySQL笔记——多表查询

多表查询不能使用 SELECT * from emp, dept; 会产生笛卡尔积。 笛卡尔积,有A,B两个集合,A中有5条信息,B中有4条信息,那么查询结果就是5*420条一、内连接查询 -- 隐式内连接SELECT 字段列表 FROM 表1,表2,… WHERE 条件…

遇见王沥川的人生感悟_23岁酱油泡饭默默无闻,31岁逆袭人生,王彦霖有何魅力?...

文/小白说娱S姐 原创精品,请勿转载如果兜里只剩下1块钱,生活所迫你会怎样过?王彦霖23岁刚毕业熬过了1元危机,他永远都不会想到当年咬牙坚持熬成就了如今的综艺诸葛。《元气满满的哥哥》连播六期多次排名第一,成为芒果台…

antd vue form 手动校验_参与《开课吧》vue训练营笔记(Day1)

大神说的目标:Vue 挑战20k组件间通信component 官网 详解组件间的传递方式:父传子 直接属性传递子传父 this.$emit 时间传递兄弟组件 利用父组件搭桥组件和子孙 provide / inject子孙 -> 祖先 this.$dispatch 或provide 获取组件元素实例$listeners $…

细学PHP 14 mysql-4

预留转载于:https://www.cnblogs.com/cnmice/archive/2013/04/17/3027102.html

Asterisk针对Mysql的extconfig.conf配置

Asterisk针对Mysql的extconfig.conf配置,这其中涉及到的表的structure [setting] sipusers > mysql,general,sip_buddies sippeers > mysql,general,sip_buddies queues > mysql,general,queue_table queue_members >mysql,general,queue_member_tabl…

ipfs 云服务器_IPFS加速云服务生机和分布式存储

如果能把一个安卓系统或IOS系统安装到分布式存储里,不管人们在做什么,各项数据都可以通过面部识别就可以确认ID,数据的响应性快,安全性和便捷性更高。IPFS的节点上,未来访问网站不再需要HTTP,而是IPFS。分布…

MySQL笔记——打开日志

在my.ini文件中输入如下命令:log_outputFILE general_logon general_log_file"D:\\SoftwareTools\\Mysql\\mysqllog\\mysql.log" slow_query_logon long_query_time 2 slow_query_log_file"D:\\SoftwareTools\\Mysql\\mysqllog\\mysql_slow.log"…

链表怎么输出最后一个元素无空格_剑指offer系列----从尾到头打印链表

从尾到头打印链表信息卡片时间:2020-03-23题目:从尾到头打印链表tag:list题目描述输入一个链表,按链表从尾到头的顺序返回一个 ArrayList。01调用 reverse 函数解题思路这是一种简单粗暴的解法。先遍历一遍链表,在遍历…