LINUX驱动--触摸屏

本文详细介绍了在LINUX系统中进行触摸屏驱动的移植过程,包括设备树配置、Makefile的修改以及源码级别的调试方法。
摘要由CSDN通过智能技术生成

Touch panel 移植说明

	TP 一般采用 I2C 作为数据读写的接口,所以TP 驱动也可以归类为I2C 驱动。

设备树

	根据产品获取当前使用TP的 初始化脚和中断脚。然后在响应 I2C中添加 对应设备树。
如下例:	
sitronix@55 {
   
	compatible = "sitronix_ts";
	reg = <0x55>;
	...
	rst-gpio = <&msmgpio 16 0x00>;
	irq-gpio = <&msmgpio 17 0x00>;
}

Makefile

	严格意义来说TP应属于Input设备,所以TP源码应放在kernel/drivers/input/touchscreen目录下。
	编写Makefile,如下例:
obj-m += sitronix-ts.o
sitronix-ts-objs	= sitronix_ts.o sitronix_ts_i2c.o sitronix_ts_utility.o sitronix_ts_mt.o sitronix_ts_nodes.o sitronix_ts_upgrade.o

源码调试

	几乎每个linux驱动都有个module_init(与module_exit的定义在Init.h (/include/linux) 中)。
	没错,驱动的加载就靠它。
	通过module_init将模块初始化函数统一别名为init_module,这样以后insmod时候,就会加载对应的驱动。
	module_init(sitronix_ts_init);
	module_exit(sitronix_ts_exit);
	of_match_table表中的厂商和设备树中条目compatible(包含供应商字符串) 的厂商必须匹配。
	否则TP加载必然失败,如果匹配,则调用驱动里边实现的probe函数。
parse_dt(struct device *dev,
			   struct sitronix_i2c_touch_platform_data *pdata)
{
   
	reset_gpio = of_get_named_gpio_flags(np, "rst-gpio",0,&pdata->reset_gpio_flags);	
	stinf("%s,pdata->reset_gpio=%d\n",__FUNCTION__,pdata->reset_gpio);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值