- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
210android平台电容触摸屏驱动
210android 平台电容触摸屏驱动
210 开发平台使用goodix 的驱动IC G801,支持五点触摸。在驱动中,充分的利用了linux
的输入子系统模型,I2C 模型,定时器模型以及工作队列模型。
首先了解下硬件接口:
电容屏采用I2C 通信方式,外加一个reset 口,一个中断口,即可将触摸的数据有效的采集回来。
这里CAP_WAKE 为GPJ2_6,CAP_INT 为EINT8,I2C 通道使用通道1。
驱动文件路径:kernel/drivers/input/touchscreen/goodix_touch.c
驱动加载后,在goodix_ts_init 函数中初始化GPIO,同时注册平台设备和平台驱动:
static int __init goodix_ts_init(void)
{
int res;
if(have_cap_touchscreen != 0)
return 0;
printk(Initial Goodix Touch Driver\n);
/*
* set cap touchscreens shutdown pin to low leve
*/
s3c_gpio_setpu (S5PV210_GPJ2(6), S3C_GPIO_PULL_DOWN);
s3c_gpio_cfgpin(S5PV210_GPJ2(6), S3C_GPIO_SFN(1));
gpio_set_value(S5PV210_GPJ2(6), 0);
/* wait a moment */
mdelay(50);
res = platform_device_register(goodix_ts_device);
if(res)
{
printk(failed to register platform device\n);
}
res = platform_driver_register(goodix_ts_driver);
if(res != 0)
{
printk(fail to register platform driver\n);
return res;
}
return 0;
}
第一句have_cap_touchscreen是一个全局变量,因为开发板同时支持goodix和索罗门的触摸屏,
故在这里加了一个变量判断,确保只加载一个电容触摸屏驱动。接着初始化GPIO,使电容屏进入正常工作状
态,然后注册平台设备和平台驱动,在goodix_ts_driver 结构中,探测函数goodix_ts_probe得到执
行。
static int goodix_ts_probe(struct platform_device * pdev)
{
struct i2c_adapter * adapter;
struct i2c_client * client;
struct i2c_board_info info;
int ret;
adapter = i2c_get_adapter(GOODIX_I2C_BUS);
if(adapter == NULL)
return -ENODEV;
memset(info, 0, sizeof(struct i2c_board_info));
info.addr = GOODIX_I2C_ADDRESS;
strlcpy(info.type, goodix-iic, I2C_NAME_SIZE);
client = i2c_new_device(adapter, info);
if(!client)
{
printk(Unable to add I2C device for 0x%x\n, info.addr);
return -ENODEV;
}
i2c_put_adapter(adapter);
ret = i2c_add_driver(goodix_iic_driver);
if(ret)
return ret;
return 0;
}
探
文档评论(0)