bashi18
2021年8月31日 10時47分
X1で製品開発を行っております。
表示機能を持たせたく、640用オプションのLCDを接続しようと試行錯誤しています。
どうにかサンプルのQTプログラムが表示されるところまでこぎつけたのですが、
タッチパネルが反応してくれません。
おそらく /dev/input/event* とタッチパネル(CON8のI2C3+GPIO3_23)が
紐づいていないためだと考えております。
root@armalo01:~# ll /dev/input/* crw-rw---- 1 root input 13, 64 Aug 31 09:48 /dev/input/event0 crw-rw---- 1 root input 13, 65 Aug 31 09:48 /dev/input/event1 crw-rw---- 1 root input 13, 63 Aug 31 09:48 /dev/input/mice /dev/input/by-path: total 0 lrwxrwxrwx 1 root root 9 Aug 31 09:48 platform-30370000.snvs:snvs-powerkey-event -> ../event0 lrwxrwxrwx 1 root root 9 Aug 31 09:48 platform-gpio-keys-event -> ../event1
拡張ボードのLCDを使用する場合はブートイメージを書き換えるようですが
この辺りが関係するのでしょうか?
現在は標準のイメージを使っております。
https://armadillo.atmark-techno.com/files/downloads/armadillo-x1/image/…
拡張ボード用はソースがないので比較もできず手掛かりがなく途方にくれています。
ちなみにマニュアルの269ページの記載(添付JPEG)が、話が結びつかず若干混乱しております。
単なる誤記でしょうか?
また、使用しているdtsファイルを添付します。
(実際はdtsiファイルで、armadillo_x1.dtsでインクルードする形ですが、
dtsiがアップできないのでdtsにしています)
ファイル | ファイルの説明 |
---|---|
マニュアル269ページ.jpg | |
armadillo_x1-lcd70ext-l00.dts |
コメント
bashi18
入江様ありがとうございます。
# CONFIG_I2C_HID is not set
でしたので、menuconfigを実行し
[armadillo]# zcat /proc/config.gz | grep I2C_HID CONFIG_I2C_HID=y
の状態にしましたが結果は変わらずでした。
fingerpaint 実行時、以下のメッセージが表示されます。
evdevtouch: /dev/input/event1: Invalid ABS limits, behavior unspecified
最初の質問の
> おそらく /dev/input/event* とタッチパネル(CON8のI2C3+GPIO3_23)が
> 紐づいていないためだと考えております。
root@armalo01:~# ll /dev/input/* crw-rw---- 1 root input 13, 64 Aug 31 09:48 /dev/input/event0 crw-rw---- 1 root input 13, 65 Aug 31 09:48 /dev/input/event1 crw-rw---- 1 root input 13, 63 Aug 31 09:48 /dev/input/mice /dev/input/by-path: total 0 lrwxrwxrwx 1 root root 9 Aug 31 09:48 platform-30370000.snvs:snvs-powerkey-event -> ../event0 lrwxrwxrwx 1 root root 9 Aug 31 09:48 platform-gpio-keys-event -> ../event1
についてはいかがでしょうか?
マニュアルの誤記は番号だけの問題のようですので、
・event2 が存在しない
・event1 もi2cに紐づいていないように見える
ことから、おそらく何か手順を飛ばしてしまっているせいだと考えております。
よろしくお願いいたします。
at_akihito.irie
入江です。
>
> root@armalo01:~# ll /dev/input/* > crw-rw---- 1 root input 13, 64 Aug 31 09:48 /dev/input/event0 > crw-rw---- 1 root input 13, 65 Aug 31 09:48 /dev/input/event1 > crw-rw---- 1 root input 13, 63 Aug 31 09:48 /dev/input/mice > > /dev/input/by-path: > total 0 > lrwxrwxrwx 1 root root 9 Aug 31 09:48 platform-30370000.snvs:snvs-powerkey-event -> ../event0 > lrwxrwxrwx 1 root root 9 Aug 31 09:48 platform-gpio-keys-event -> ../event1 >
> についてはいかがでしょうか?
I2C3はCON7で既に使用されており、CON8と同時にI2C3にアサインして使用した
ことが原因で、I2Cデバイスであるタッチパネルが正しく認識されず、結果
/dev/input/以下にeventファイルが生成されないことに繋がっているものかと
思われます。
解決策としまして、タッチパネル用のI2Cをi2c-gpioにすることが挙げられます。
Armadillo-640では当該のLCD使用時のDTSではi2c-gpioを用いていますので、
そちらが参考になるかと思います。
https://github.com/atmark-techno/linux-4.14-at/blob/master/arch/arm/boo…
i2c-gpioに使用するピンのmuxはGPIOにしてください。
MX7D_PAD_LCD_DATA20__GPIO3_IO25 0x4000007f /* SCL */ MX7D_PAD_LCD_DATA21__GPIO3_IO26 0x4000007f /* SDA */
以上、よろしくお願いいたします。
bashi18
入江様、ありがとうございます。
> 解決策としまして、タッチパネル用のI2Cをi2c-gpioにすることが挙げられます。
最初はi2c-gpioで試しておりまして結果変わらずでした。
ただ、その際はDTSだけ編集したのですが、以下
https://armadillo.atmark-techno.com/blog/615/1312
https://armadillo.atmark-techno.com/blog/615/1530
によるとソース変更も必要そうでしたのでX1でのやり方がわからず
I2C3を使う方法を試していた次第です。
X1で i2c-gpio を使用する場合の変更箇所を教えていただくことは可能でしょうか?
また、dts の書き方が悪かった可能性もあるので添付しますので確認いただけないでしょうか。
よろしくお願いいたします。
ファイル | ファイルの説明 |
---|---|
armadillo_x1-lcd70ext-l00_i2c_gpio.dts |
at_akihito.irie
入江です。
> X1で i2c-gpio を使用する場合の変更箇所を教えていただくことは可能でしょうか?
> また、dts の書き方が悪かった可能性もあるので添付しますので確認いただけないでしょうか。
全体を見て原因の調査を行いますので、
- I2C_HIDが有効
- dtbでi2c-gpioに設定している
ときの、以下の2点を送っていただけますでしょうか。
1. dmesgの出力
2. Armadillo-X1に書き込み、使用しているarmadillo_x1.dtb
[armadillo]# mount /dev/mmcblk2p1 /mnt [armadillo]# ls /mnt/armadillo_x1.dtb /mnt/armadillo_x1.dtb <- これを送ってください
お手数おかけしますが、よろしくお願いいたします。
bashi18
入江様
> 1. dmesgの出力
> 2. Armadillo-X1に書き込み、使用しているarmadillo_x1.dtb
2点添付いたします。
お手数おかけしますが、よろしくお願いいたします。
ファイル | ファイルの説明 |
---|---|
dmesg_dtb.zip |
at_akihito.irie
入江です。
お返事が遅くなってしまい申し訳ございません。
今一度確認ですが、ご使用のLCDは以下のもので間違いありませんでしょうか。
https://armadillo.atmark-techno.com/option-products/OP-LCD70EXT-L00
また、I2Cとしている2ピン(LCD_DATA20、LCD_DATA21)はそれぞれ、LCDの何番
ピンに接続されているかご確認いただけますでしょうか。
以上、よろしくお願いいたします。
bashi18
入江様
確認ありがとうございます。
> 今一度確認ですが、ご使用のLCDは以下のもので間違いありませんでしょうか。
> https://armadillo.atmark-techno.com/option-products/OP-LCD70EXT-L00
はい。間違いありません。
> また、I2Cとしている2ピン(LCD_DATA20、LCD_DATA21)はそれぞれ、LCDの何番
> ピンに接続されているかご確認いただけますでしょうか。
再度確認しまして
[X1]LCD_DATA20(CON8_97) <-> [LCD]41番ピン
[X1]LCD_DATA21(CON8_98) <-> [LCD]40番ピン
でした。導通も問題ありませんでした。
よろしくお願いいたします。
at_akihito.irie
bashi18
入江様
ありがとうございます。
<*> HID MUltitouch panels <- これを有効化
こちらを試したところ、サンプルが動作してくれました。
(指でなぞったところに黄色のラインが引かれる)
ただ、動作が不安定で以下のメッセージが表示されてサンプルが死んでしまうことがあります。
(表示されるけど動き続ける、表示されずに固まるといった場合もあり)
i2c_hid 4-0051: i2c_hid_get_input: incomplete report (20/4116) i2c_hid 4-0051: i2c_hid_get_input: incomplete report (20/8212)
> また、起動時にU-bootにて以下のコマンドを実行して起動し、その際のブート
> ログをいただけますでしょうか。
添付いたしました。
ご確認いただけますでしょうか。
よろしくお願いいたします。
ファイル | ファイルの説明 |
---|---|
hid.debug=1起動ログ.log |
at_akihito.irie
bashi18
at_akihito.irie
2021年8月31日 15時16分
入江です。
> どうにかサンプルのQTプログラムが表示されるところまでこぎつけたのですが、
> タッチパネルが反応してくれません。
確認のため、起動後のArmadillo-X1上で以下のコマンドを実行し、その出力を
教えていただけますでしょうか。
> 拡張ボードのLCDを使用する場合はブートイメージを書き換えるようですが
> この辺りが関係するのでしょうか?
いいえ、関係ありません。
拡張ボード用のu-bootは通常のArmadillo-X1用u-bootと比べて、拡張ボード上
のEthernet PHYの初期化をu-boot上で行うためのコンフィグレーションが追加
されている以外に違いはありません。
> ちなみにマニュアルの269ページの記載(添付JPEG)が、話が結びつかず若干混乱しております。
> 単なる誤記でしょうか?
申し訳ございません。こちらはおそらく誤記です。
正確には改めて社内で確認してからマニュアル修正を行いますが、
が正しいと思います。
お手数おかけしますがよろしくお願いいたします。