高通设备树架构电磁屏调试

xiaoxiao2021-02-27  405

电磁触摸屏和电容触摸屏原理虽然不同,但对驱动来讲,没有什么区别,都是input设备. 一,移植 kernel/drivers/input/touchscreen/ 添加驱动文件,修改Makefile,Kconfig kernel/arch/arm/configs/d801_defconfigd801_defconfig +CONFIG_TOUCHSCREEN_WACOM_I2C=y /arch/arm/mach-msm/board-8226-gpiomux.c 根据电路图在board-8226-gpiomux.c中配置用到的GPIO,注意要用宏把冲突的GPIO互斥掉 在d801.dtsi添加 根据电路图,此设备挂载在I2C5上,所以在i2c@f9927000结点下添加 +               wacom@9 { +                       compatible = "wacom,i2c"; +                       reg = <0x9>; +                       interrupt-parent = <&msmgpio>; +                       interrupts = <13 0x2>; +                       wacom,power-en-gpio = <&msmgpio 24 0x00>; +                       wacom,flash-rewrite-gpio = <&msmgpio 12 0x00>; +                       wacom,pen-detect-gpio = <&msmgpio 23 0x00>; +                       wacom,irq-gpio = <&msmgpio 13 0x00>; +                       wacom,reset-gpio = <&msmgpio 22 0x00>; +               }; 几个GPIO的配置也可以不加,可以在驱动程序中直接赋值,这样就不需要在驱动程序中解析了. 二,调试 这方面要多和"原厂FAE"深入详细沟通,因为datasheet和code都不靠谱,而且很多代理的FAE都不太懂. 这次FAE给的代码只要移植到本平台,根据我们的电路配置一下上电和引脚就可以读出数据,但数据不对. 原因:他们给的代码是读19byte,打印log发现读出的数据和datasheet上数据包的格式不匹配.后来按照datasheet读8byte,打印log发现读出的数据仍然和datasheet上数据包的格式不匹配.后来找到规律发现实际读出的数据是10byte一组.哎,经验不足,被同样经验不足的代理FAE忽悠来忽悠去,也没给出个合理解释,就一句话他们芯片没有问题,是我们软件的问题.最后问原厂FAE,原来是他们的datasheet错了,数据应该是10byte,按照新的位定义重新解析数据就可以了. 我们的手机是竖屏的,电磁屏的定义是横屏的,转换一下坐标就可以对应上了. 下面两个函数将tp的分辨率和屏的分辨率对应 input_set_abs_params(input, ABS_X, 0, pdata->x_max_logical, 0, 0); input_set_abs_params(input, ABS_Y, 0, pdata->y_max_logical, 0, 0); 下面代码用于创建一个设备节点,应用程序通过此节点控制电磁屏的开关. static struct device_attribute wacom_i2c_dev_attr = { .attr = { .name = "wacom_state", .mode = S_IRWXU|S_IRWXG|S_IRWXO, }, .show = wacom_i2c_show, .store = wacom_i2c_store, }; wacom_i2c_class = class_create(THIS_MODULE, "wacom"); wacom_i2c_dev = device_create(wacom_i2c_class, NULL, 0, NULL,  device_create_file(wacom_i2c_dev, &wacom_i2c_dev_attr); 下面代码注册回调,让TP根据LCD进行开关. wac_i2c->fb_notif.notifier_call = fb_notifier_callback; error = fb_register_client(&wac_i2c->fb_notif);
转载请注明原文地址: https://www.6miu.com/read-1793.html

最新回复(0)