S5PV210(TQ210)学习笔记——触摸屏驱动编写
一 触控芯片分析
首先,卸下触摸屏的四个螺丝并翻过触摸屏来观察,可以在在触摸屏排线上看到触控芯片,仔细观察芯片型号(如果看不清可以用放大镜配合手电筒观看),我们可以看到,TQ210的触摸屏控制芯片是GT811,然后我找到了GT811的芯片手册(这些资料都上传到了我的CSDN资源里,请您支持一下),有了手册,编写驱动就不难了。
本文引用地址:https://www.eepw.com.cn/article/201611/322810.htmGT811引出了6根脚,分别是VCC、GND、I2CSDA、I2CSCL、INT和RESET,虽然INT脚不是必须的,但是开发高效省资源的触屏驱动程序往往都采用中断方式,下面是GT811的引脚图:
我用万能表实际测量了一下触控模块的各个引脚,实际线序是GND、SDA、SDL、INT、RESET和VDD。GT811的初始化顺序如下:
- (1)初始化INT脚为悬浮输入态并初始化RESET脚为输出态,并输出低电平
- (2)延时1ms
- (3)初始化RESET脚为悬浮输入态,并使能上拉
- (4)写入GT811寄存器配置表
- (5)根据需要配置INT脚
二 I2C驱动编写
I2C驱动也是基于总线结构的,不过分为两种,一种是Legacy方式,另一种是New Style方式,其中,Legacy方式在新内核中已经不支持了,不过韦东山老师的视频中还是分析的Legacy方式,New Style方式你可以自己用Source Insight追踪分析一下,我这里就不多说了,具体的可以参考下面的代码。
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- conststaticunsignedshortnormal_address[]={0x5d,I2C_CLIENT_END};
- staticunsignedgt811_rst;
- staticunsignedgt811_int;
- staticstructinput_dev*ts_input;
- staticstructworkqueue_struct*wq;
- staticstructwork_structwork;
- staticstructi2c_client*this_client=NULL;
- staticunsignedintstatus=0;
- staticinti2c_read_bytes(structi2c_client*client,uint8_t*buf,intlen)
- {
- structi2c_msgmsgs[2];
- intret=-1;
- msgs[0].flags=!I2C_M_RD;
- msgs[0].addr=client->addr;
- msgs[0].len=2;
- msgs[0].buf=&buf[0];
- msgs[1].flags=I2C_M_RD;
- msgs[1].addr=client->addr;
- msgs[1].len=len-2;
- msgs[1].buf=&buf[2];
- ret=i2c_transfer(client->adapter,msgs,2);
- returnret;
- }
- staticinti2c_write_bytes(structi2c_client*client,uint8_t*data,intlen)
- {
- structi2c_msgmsg;
- intret=-1;
- msg.flags=!I2C_M_RD;
- msg.addr=client->addr;
- msg.len=len;
- msg.buf=data;
- ret=i2c_transfer(client->adapter,&msg,1);
- returnret;
- }
- staticconststructi2c_device_idts_id[]={
- {"tq210-ts",0},
- {}
- };
- staticintts_init_panel(structi2c_client*client){
- shortret=-1;
- uint8_tconfig_info[]={
- 0x06,0xA2,
- 0x12,0x10,0x0E,0x0C,0x0A,0x08,0x06,0x04,0x02,0x00,0xE2,0x53,0xD2,0x53,0xC2,0x53,
- 0xB2,0x53,0xA2,0x53,0x92,0x53,0x82,0x53,0x72,0x53,0x62,0x53,0x52,0x53,0x42,0x53,
- 0x32,0x53,0x22,0x53,0x12,0x53,0x02,0x53,0xF2,0x53,0x0F,0x13,0x40,0x40,0x40,0x10,
- 0x10,0x10,0x0F,0x0F,0x0A,0x35,0x25,0x0C,0x03,0x00,0x05,0x20,0x03,0xE0,0x01,0x00,
- 0x00,0x34,0x2C,0x36,0x2E,0x00,0x00,0x03,0x19,0x03,0x08,0x00,0x00,0x00,0x00,0x00,
- 0x14,0x10,0xEC,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0D,0x40,
- 0x30,0x3C,0x28,0x00,0x00,0x00,0x00,0xC0,0x12,0x01
- };
关键词:
S5PV210触摸屏驱动编
评论