こんにちは、
私はAndroid 15イメージを実行するカスタムRSB-3720 i.MX8MPボードに取り組んでいます。同じ I2C ピン構成が Android 11 イメージで正しく動作しているにもかかわらず、I2C バス上の I2C デバイスを検出できません。デバイスは Android 11 では問題なく検出されましたが、Android 15 では表示されません。以下に私のボードのデバッグ ログを添付します。
rsb3720_a1:/ # i2cdetect -y 0
0 1 2 3 4 5 6 7 8 9 ABCDEF
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- うう -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
rsb3720_a1:/ # i2cdump -y 0 0x0a
0 1 2 3 4 5 6 7 8 9 アブデフ 0123456789アブデフ
00: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
10: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
20: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
30: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
40: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
50: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
60: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
70: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
80: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
90: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
a0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
b0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
c0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
d0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
e0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
f0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
0x0a は sgtl5000 デバイスのアドレスです。RSB-3720 ボードと統合しようとしています。
rsb3720_a1:/ # dmesg | grep i2c
[ 0.102013] /soc@0/bus@30800000/i2c@30a30000/adv7535@3d: /soc@0/bus@32c00000/mipi_dsi@32e60000 との依存関係の循環を修正しました
[ 0.102070] /soc@0/bus@30800000/i2c@30a30000/ov5640_mipi@3c: /soc@0/bus@32c00000/camera/csi@32e40000 との依存関係の循環を修正しました
[ 0.102143] /soc@0/bus@30800000/i2c@30a30000/tcpc@50: /soc@0/usb@32f10100/usb@38100000 との依存関係の循環を修正しました
[ 0.102343] /soc@0/bus@32c00000/mipi_dsi@32e60000: /soc@0/bus@30800000/i2c@30a30000/adv7535@3d との依存関係の循環を修正しました
[ 0.102651] /soc@0/bus@32c00000/camera/csi@32e40000: /soc@0/bus@30800000/i2c@30a30000/ov5640_mipi@3c との依存関係の循環を修正しました
[ 0.103380] /soc@0/usb@32f10100/usb@38100000: /soc@0/bus@30800000/i2c@30a30000/tcpc@50 との依存関係の循環を修正しました
[ 0.111294] /soc@0/bus@30800000/i2c@30a30000/adv7535@3d: /soc@0/bus@32c00000/mipi_dsi@32e60000 との依存関係の循環を修正しました
[ 0.111353] /soc@0/bus@30800000/i2c@30a30000/ov5640_mipi@3c: /soc@0/bus@32c00000/camera/csi@32e40000 との依存関係の循環を修正しました
[ 0.111480] /soc@0/bus@30800000/i2c@30a30000/tcpc@50: /soc@0/usb@32f10100/usb@38100000 との依存関係の循環を修正しました
[ 0.114139] /soc@0/bus@30800000/i2c@30a30000/adv7535@3d: /soc@0/bus@32c00000/mipi_dsi@32e60000 との依存関係の循環を修正しました
[ 0.114268] /soc@0/bus@30800000/i2c@30a30000/ov5640_mipi@3c: /soc@0/bus@32c00000/camera/csi@32e40000 との依存関係の循環を修正しました
[ 0.114419] /soc@0/bus@30800000/i2c@30a30000/tcpc@50: /soc@0/usb@32f10100/usb@38100000 との依存関係の循環を修正しました
[ 0.117165] /soc@0/bus@32c00000/mipi_dsi@32e60000: /soc@0/bus@30800000/i2c@30a30000/adv7535@3d との依存関係の循環を修正しました
[ 0.117603] /soc@0/bus@32c00000/camera/csi@32e40000: /soc@0/bus@30800000/i2c@30a30000/ov5640_mipi@3c との依存関係の循環を修正しました
[ 0.117833] /soc@0/bus@30800000/i2c@30a30000/adv7535@3d: /soc@0/bus@32c00000/mipi_dsi@32e60000 との依存関係の循環を修正しました
[ 0.117917] /soc@0/bus@32c00000/mipi_dsi@32e60000: /soc@0/bus@30800000/i2c@30a30000/adv7535@3d との依存関係の循環を修正しました
[ 0.120905] /soc@0/bus@32c00000/camera/csi@32e40000: /soc@0/bus@30800000/i2c@30a30000/ov5640_mipi@3c との依存関係の循環を修正しました
[ 0.121458] /soc@0/bus@30800000/i2c@30a30000/ov5640_mipi@3c: /soc@0/bus@32c00000/camera/csi@32e40000 との依存関係の循環を修正しました
[ 0.121563] /soc@0/bus@32c00000/camera/csi@32e40000: /soc@0/bus@30800000/i2c@30a30000/ov5640_mipi@3c との依存関係の循環を修正しました
[ 0.129720] /soc@0/usb@32f10100/usb@38100000: /soc@0/bus@30800000/i2c@30a30000/tcpc@50 との依存関係の循環を修正しました
[ 0.130851] /ldb-display-controller/lvds-channel@0: /soc@0/bus@30800000/i2c@30a30000/lvds-to-hdmi-bridge@4c との依存関係サイクルを修正しました
[ 0.136503] /soc@0/bus@30800000/i2c@30a30000/tcpc@50/connector: /cbtl04gp との依存関係の循環を修正しました
[ 0.136609] /cbtl04gp: /soc@0/bus@30800000/i2c@30a30000/tcpc@50/connector との依存関係の循環を修正しました
[ 8.086566] i2c i2c-0: IMX I2Cアダプタが登録されました
[ 8.092846] /soc@0/bus@32c00000/mipi_dsi@32e60000: /soc@0/bus@30800000/i2c@30a30000/adv7535@3d との依存関係サイクルを修正しました
[ 8.104975] /soc@0/bus@30800000/i2c@30a30000/adv7535@3d: /soc@0/bus@32c00000/mipi_dsi@32e60000 との依存関係の循環を修正しました
[ 8.117168] /ldb-display-controller/lvds-channel@0: /soc@0/bus@30800000/i2c@30a30000/lvds-to-hdmi-bridge@4c との依存関係サイクルを修正しました
[ 8.130396] /soc@0/bus@30800000/i2c@30a30000/lvds-to-hdmi-bridge@4c: /ldb-display-controller/lvds-channel@0 との依存関係サイクルを修正しました
[ 8.143729] /soc@0/bus@32c00000/camera/csi@32e40000: /soc@0/bus@30800000/i2c@30a30000/ov5640_mipi@3c との依存関係の循環を修正しました
[ 8.156414] /soc@0/bus@30800000/i2c@30a30000/ov5640_mipi@3c: /soc@0/bus@32c00000/camera/csi@32e40000 との依存関係の循環を修正しました
[ 8.169329] /soc@0/usb@32f10100/usb@38100000: /soc@0/bus@30800000/i2c@30a30000/tcpc@50 との依存関係サイクルを修正しました
[ 8.180803] /soc@0/bus@30800000/i2c@30a30000/tcpc@50: /soc@0/usb@32f10100/usb@38100000 との依存関係の循環を修正しました
[ 8.192205] /soc@0/bus@30800000/i2c@30a30000/tcpc@50/connector: /cbtl04gp との依存関係の循環を修正しました
[ 8.203306] i2c i2c-1: IMX I2Cアダプタが登録されました
[ 8.210066] i2c i2c-2: IMX I2Cアダプタが登録されました
[ 8.218219] i2c_dev: i2c /dev エントリ ドライバー
[ 8.699175] /soc@0/bus@30800000/i2c@30a30000/tcpc@50: /soc@0/usb@32f10100/usb@38100000 との依存関係サイクルを修正しました
[ 8.710727] /soc@0/usb@32f10100/usb@38100000: /soc@0/bus@30800000/i2c@30a30000/tcpc@50 との依存関係サイクルを修正しました
ありがとう、よろしく。
スバシュ・P.
こんにちは@Chavira
PMIC ドライバ ファイルを変更することで問題を解決しました。Android 15でI2Cデバイスを検出できるようになりました
ありがとう、よろしく。
スバシュ・P.
こんにちは@subash_p !
ボードの回路図を共有していただけますか?
これにより、ハードウェア構成をより深く理解し、より正確なサポートを提供できるようになります。
よろしくお願いします、
チャビラ
こんにちは @チャビラ、
同じカーネル DTS ファイルを Android 15 からカーネル バージョンが 6.6.52 の Yocto Project 5.0 にコピーしました。この設定では、dts ファイルにノードを追加せずに、I2C1 ポートにコネクテッドされた I2C デバイス アドレスを検出できます。
以下は I2C1 にコネクテッドされている I2C デバイスです。
TI TCA9538
ST33HTPH2
TI MSP430G2202
SEIKO S-35390A このアドレスはi2c検出によって検出されています
フリースケール SGTL5000
注: 私のRSB 3720ボードにはi2cエクスパンダーはコネクテッドされていません
Android 11 ログ:
u-boot=> i2c dev 0
バスを0に設定する
u-boot=> i2cプローブ
有効なチップアドレス: 25 29 2E 30 31 32 33 34 35 36 37 70 71
u-boot=>
rsb3720_a1:/ # i2cdetect -y 0
0 1 2 3 4 5 6 7 8 9 ABCDEF
00: -- -- -- -- -- -- -- うう -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- うう -- -- -- 29 -- -- -- -- 2e --
30: うううううううううううううううう -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: ううううう――――――――――
Android 15 ログ:
u-boot=> i2c dev 0
バスを0に設定する
u-boot=> i2cプローブ
有効なチップアドレス: 25
u-boot=>
evk_8mp:/ # i2cdetect -y 0
0 1 2 3 4 5 6 7 8 9 ABCDEF
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- うう -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
こんにちは@subash_p !
メッセージをありがとうございます。
Android_11_kernel.dts ファイルと Android_15_kernel.dts ファイルを比較すると、I2C1 ノード構成の違いに気付きました。具体的には、Android 11 では 2 つの GPIO エクスパンダーが宣言されていますが、Android 15 ではこれらのエクスパンダーがありません。
私の理論は次のとおりです。SGTL5000 コーデックには、CTRL_MODE と呼ばれる構成ピンが含まれています。このピンをローにすると、SGTL5000 は I2C インターフェースを有効にし、ハイにすると SPI モードにスイッチします。
CTRL_MODE ピンがローになっていることを確認してください。GPIO エクスパンダーの 1 つにコネクテッドされている場合は、適切な初期化を確実に行うために、デバイス ツリーでそれらのエクスパンダーも宣言する必要がある場合があります。
また、ボードの回路図を共有していただけますか?
これにより、ハードウェア構成をより深く理解し、より正確なサポートを提供できるようになります。
よろしくお願いします、
チャビラ
こんにちは@Chavira
Android 11 DTS と Android 15 DTS の両方のファイルを添付します。
(注:I2C-0ノードに6つのI2Cデバイスがコネクテッド、PMICが動作しています)
ありがとう、よろしく。
スバシュ・P
こんにちは@subash_p !
NXP サポートにお問い合わせいただきありがとうございます。
提供された dmesg 出力に基づくと、I2C1 バスがアクティブではないようです。
さらにサポートするために、デバイス ツリーまたはその関連部分を共有していただけますか?これは、構成上の問題を特定するのに役立ちます。
デバイスツリーを共有できない場合は、Android 11 バージョンと Android 15 バージョン間でデバイスツリー ファイルを比較することをお勧めします。さらに、ボード固有のガイダンスがある可能性があるため、Advantech サポートに問い合わせてさらに支援を受けることもできます。
よろしくお願いします、
チャビラ