2016-07-11 17 views
0

私はkontron smarc-samx6iボードをnxp imx6qプロセッサで実行しています。私は現在、yoctoを使って作業しています。私はft5316のタッチスクリーンとI2Cをインターフェースする必要があります。そのために、次のように私は、デバイスツリーを編集した:タッチスクリーン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 **のような2つのコマンドを使用しています。 –

+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のロジックを使った2つのFT5316ベースのタッチスクリーンを見ました。それは適切に処理されるべきかもしれません。 – Sanchayan

+0

** i2cdetect **コマンドをチェックすると、デバイスアドレスが** 0x39 **であることが示されます。なぜその値を与えるのですか?また、** i2cget **コマンドを使って確認しました。正しいデバイスのデータを取得しています。また大丈夫です。 1.8Vのロジックも担当しています。 –

関連する問題