2016-07-11 35 views
0

Ich benutze Kontron Smarc-Samx6i Board mit NXP Imx6q Prozessor laufen. Ich arbeite gerade mit yocto In diesem muss ich einen Touch Screen von ft5316 durch I2C anschließen. Für das bearbeitete ich den Gerätebaum wie folgt:Touchscreen ft5x06 reagiert nicht?

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>; 
}; 

Wenn ich i2cdump Befehl bin mit der Touchscreen erfolgreich reagiert, aber wenn ich mit dem Modul arbeite wird es nicht antworten.

Wenn ich den folgenden Befehl verwende ich erhalte Ausgabe folgende

[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 

Mein Gerät Sonde nicht und ich bin keine Störung zu erhalten, während das Gerät Instanziieren dem Befehl:

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

Wie kann ich es funktionieren lassen !!

+0

Haben Sie beim Bearbeiten Ihrer Gerätestruktur Ihren initramfs aktualisiert/neu erstellt? Wenn dies nicht der Fall ist, kann es beim Booten nicht geladen werden, ermöglicht aber die manuelle Registrierung, sobald es eingeloggt ist. Dies scheint das Problem zu sein, das Sie haben. – CJxD

+0

Wenn ich den Gerätebaum verändere, verwende ich die beiden Befehle wie ** bitbake linux-smx6 -f -c kompilieren ** und ** bitbake linux-smx6 ** für jedes Mal. –

+0

Können Sie das BitBake-Rezept bereitstellen, damit wir sehen können, was es macht? Führen Sie 'update-initramfs -u -k $ (uname -r)' aus. Dies setzt voraus, dass ein Hook geschrieben wurde, um alle Gerätebaum-Binärdateien zu dem initramfs hinzuzufügen, der dort sein sollte. – CJxD

Antwort

0

Ich gehe davon aus, dass "bei der Arbeit mit dem Modul wird nicht reagiert" meinten, dass es nicht auf Berührungsereignisse auf dem Touchscreen reagiert. Wurde das Treibermodul korrekt geladen? Ist es eingebaut oder wird es als ladbares Modul verwendet? Haben Sie "dmesg" überprüft, um zu bestätigen, dass der Treiber korrekt geladen wurde oder lsmod ausgegeben wurde? Wenn der Treiber ordnungsgemäß geladen wird, erhalten Sie Interrupts?

Was ist die Ausgabe von "cat/proc/interrupts"? Sehen Sie, dass die Unterbrechungsanforderungen zunehmen, wenn Sie auf den Touchscreen drücken? Wenn nicht, dann haben Sie ein Problem mit Unterbrechungen. Wenn Sie die Interrupts sehen, können Sie mit einem Dienstprogramm wie "evtest" überprüfen, ob Sie Touchscreen-Ereignisse erhalten?

+0

Ja ich stimme zu, dass das Modul nicht auf ein Berührungsereignis reagiert. Und das Modul kommt als ladbar und es ist kein eingebautes Modul. Aber wir das yocto es selbst gibt uns ein Modul für diesen bestimmten Bildschirm. Wenn ich dieses Modul lade, wird kein Fehler angezeigt und der Befehl lsmod zeigt an, dass das Modul eingefügt wurde, aber der Interrupt für den Touchscreen nicht in der Datei/proc/interrupts aufgeführt ist. –

+0

Während lsmod das Treibermodul als geladen anzeigen kann, bedeutet dies nicht unbedingt dass die Treibersondenfunktion aufgerufen wurde, die aufgerufen und erfolgreich sein muss, damit der Treiber funktioniert. Ich sehe auch, dass Sie die Adresse 0x39 verwenden. Bist du sicher, dass das korrekt ist? Ich glaube, es sollte 0x38 sein. Ich bin mir auch nicht sicher, aber ich habe mindestens zwei FT5316 basierte Touchscreen gesehen, die 1.8V Logik verwendet haben. Kann sein, dass man sich richtig darum kümmern sollte. – Sanchayan

+0

Wenn ich den ** i2cdetect ** Befehl überprüfe zeigt die Geräteadresse ist ** 0x39 ** das ist, warum ich diesen Wert gebe und auch verifiziere ich mit ** i2cget ** Befehl, dass, wo ich die Daten des richtigen Gerätes bekomme auch gut. und wir kümmern uns auch um diese 1,8 V Logik. –