2016-07-11 127 views
0

我使用kontron smarc-samx6i板与nxp imx6q处理器一起运行。我目前正在使用yocto因为我需要通过I2C接口连接ft5316的触摸屏。对于我编辑设备树如下:触摸屏ft5x06没有响应?

polytouch: [email protected] { 
     compatible = "edt","edt_ft5x06","edt-ft5x06"; 
     reg = <0x39>; 
     pinctrl-names = "default"; 
     pinctrl-0 = <&pinctrl_smx6_i2c_gpio_1>; 
     irq_pin=<&gpio3 1 0>; 
     interrupt-parent = <&gpio3>; 
     interrupts = <0 70 0x04>; 
}; 

当我使用i2cdump命令的触摸屏响应成功,但是当我与模块的工作也不会回应。

当我使用下面的命令,我得到下面的输出

[email protected]:~# cat /proc/bus/input/devices 
I: Bus=0019 Vendor=0001 Product=0001 Version=0100 

N: Name="gpio-keys.27" 

P: Phys=gpio-keys/input0 

S: Sysfs=/devices/soc0/gpio-keys.27/input/input0 

U: Uniq= 

H: Handlers=kbd event0 evbug 

B: PROP=0 

B: EV=23 

B: KEY=4000 100000 0 0 0 

B: SW=1 

我的设备没有探测和同时使用命令实例化的设备我没有得到任何错误:

echo edt_ft5x06 0x39> /sys/bus/i2c/devices/i2c-1/new_device 
Instantiated device edt_ft5x06 at 0x39 device 

我怎样才能使它工作!

+0

当你编辑你的设备树时,你是否更新/重建你的initramfs?如果你没有,那么它将无法加载启动,但会允许登录后手动注册,这似乎是你遇到的问题。 – CJxD

+0

当我修改设备树时,我每次都使用** bitbake linux-smx6 -f -c compile **和** bitbake linux-smx6 **这两个命令。 –

+0

您可以提供BitBake配方,以便我们看到它的功能吗?从预感到,运行'update-initramfs -u -k $(uname -r)'。这假设有一个钩子,用于将所有设备树二进制文件添加到应该存在的initramfs中。 – CJxD

回答

0

我假设“使用模块时它不会响应”,您的意思是它不会响应触摸屏上的任何触摸事件。驱动器模块是否正确加载?它是内置的还是用作可加载模块?您是否检查过“dmesg”以确认驱动程序已正确加载或输出lsmod?如果驱动程序正确加载,你会得到中断吗?

“cat/proc/interrupts”的输出是什么?按下触摸屏后,您是否看到中断请求增加?如果不是那么,那么你有一个中断问题。如果你看到中断,你可以用“evtest”这样的工具来检查你是否得到了触摸屏事件吗?

+0

是的,我同意模块不会响应任何触摸事件。而且模块可以加载,它不是一个内置的模块。但是我们自己给了我们一个这个特定触摸屏的模块。当我加载这个模块时,没有错误显示,并且lsmod命令显示模块已插入,但触摸屏的中断没有列在/ proc/interrupts文件中。 –

+0

虽然lsmod可以显示驱动模块已加载,但并不一定暗示驱动程序的探测功能被调用,必须被调用并且驱动程序才能工作。我也看到你使用地址0x39。你确定这是正确的吗?我相信它应该是0x38。另外我不确定,但我已经看到至少两个使用1.8V逻辑的基于FT5316的触摸屏。可能是应该妥善照顾的。 – Sanchayan

+0

当我检查** i2cdetect **命令显示设备地址是** 0x39 **这就是为什么我给这个值,我也验证使用** i2cget **命令,我在哪里获取正确的设备的数据,它是也很好。并且我们也关心那个1.8V逻辑。 –