2016-07-11 2 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

"모듈로 작업 할 때 응답하지 않습니다"라는 것은 터치 스크린의 모든 터치 이벤트에 응답하지 않는다고 가정합니다. 드라이버 모듈이 올바르게로드 되었습니까? 내장형입니까, 아니면로드 가능한 모듈로 사용됩니까? 드라이버를 제대로로드했는지 또는 lsmod의 출력을 확인하기 위해 "dmesg"를 확인 했습니까? 드라이버가 제대로로드 된 경우 인터럽트가 발생합니까?

"cat/proc/interrupts"의 출력은 무엇입니까? 터치 스크린을 누를 때 인터럽트 요청이 늘어나는 것을 보시겠습니까? 그렇지 않다면 인터럽트에 문제가 있습니다. 인터럽트가 표시되면 "evtest"와 같은 유틸리티를 사용하여 터치 스크린 이벤트가 발생하는지 확인할 수 있습니까?

+0

예 모듈이 터치 이벤트에 응답하지 않는다는 것에 동의합니다. 그리고 모듈은로드 가능한 상태로오고 있습니다. 모듈에 내장되어 있지 않습니다.하지만 우리는이 특정 터치 스크린을위한 모듈을 제공합니다. 이 모듈을로드 할 때 오류가 표시되지 않고 lsmod 명령은 모듈이 삽입되었지만 터치 스크린에 대한 인터럽트가/proc/interrupts 파일에 나열되어 있지 않음을 보여줍니다. –

+0

lsmod는 드라이버 모듈을로드 된 것으로 표시 할 수 있지만 반드시 그런 것은 아닙니다 드라이버의 프로브 기능이 호출되어 드라이버가 작동하도록 호출되어야합니다. 나는 또한 당신이 주소 0x39를 사용하는 것을 본다. 그게 틀림 없습니까? 나는 그것이 0x38이어야한다고 생각한다. 또한 확실하지는 않지만 1.8V 논리를 사용하는 적어도 두 개의 FT5316 기반 터치 스크린을 보았습니다. 제대로 돌봐야 할 수도 있습니다. – Sanchayan

+0

** i2cdetect ** 명령을 확인하면 장치 주소가 ** 0x39 **로 표시되는 이유는 무엇인지, 그리고 ** i2cget ** 명령을 사용하여 확인한 이유는 올바른 장치의 데이터를 가져 오는 위치입니다. 또한 괜찮아. 또한 1.8V 논리를 처리합니다. –