2137314_ja-JP

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

2137314_ja-JP

2137314_ja-JP

ADV7535: ディスプレイに画像が出力されない

こんにちは、チーム

Verdin Yavia IMX8M Plus をベースにしたカスタムキャリアボードに、 DSI-HDMIコンバータ( ADV7535 )を搭載する作業を進めています。Toradexキャリアボードに付属する LT8912B MIPI DSI-HDMIブリッジを ADV7535に置き換えました 。ADV7535 DSI-HDMIブリッジ との通信には I2Cチャネル2 を使用していますが、Yaviaキャリアボードは別のI2Cチャネルを使用しています。この変更に伴い、デバイスツリーに以下の更新を加えました。

 rkathar_0-1753091144426.pngデバイスツリーの変更

1. verdin-imx8mp_dsi-to-hdmi_overlay.dts

  • 既存の hdmi_lontium_lt8912 ノード。
  • 新しい HDMI_adv7535 I2C2 ノードの下のノード。

2. imx8mp-verdin.dtsi

  • 削除された hdmi_lontium_lt8912 ノード。
  • Lontiumピン接続の詳細を削除しました HDMIコネクタ ノード。
  • 追加した HDMI_adv7535 I2C2 の子ノードとして。
    rkathar_7-1753091605150.pngrkathar_8-1753091613771.png rkathar_9-1753091622755.png

 

rkathar_1-1753091144431.png 変更後の観察結果

  1. ADV7535 の内部レジスタの読み取り/書き込みに成功しました。

    rkathar_2-1753091254723.png
    1. I2C データをダンプ可能:


      torizon@verdin-imx8mp-15404184:~$ i2cdump -y -f 1 0x39
      No size specified (using byte-data access)
           0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
      00: 14 00 00 00 00 00 00 00 00 00 41 0e bc 18 01 13    ?.........A?????
      10: 25 37 00 00 00 00 38 00 46 62 04 a8 00 00 1c 84    %7....8.Fb??..??
      20: 1c bf 04 a8 1e 70 02 1e 00 00 04 a8 08 12 1b ac    ?????p??..??????
      30: 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 b0    ...........?...?
      40: 00 50 f0 76 10 68 68 68 68 00 80 00 00 00 00 00    .P?v?hhhh.?.....
      50: 00 00 02 0d 6d 02 00 00 00 00 00 00 00 00 00 00    ..??m?..........
      60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
      70: 01 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ??..............
      80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
      90: 00 00 00 00 c0 00 40 00 03 02 e0 18 30 61 00 00    ....?.@.????0a..
      a0: 00 00 a4 a4 08 04 00 00 00 00 00 40 00 00 40 14    ..????.....@..@?
      b0: 00 00 00 00 00 00 00 00 00 00 10 00 00 00 00 00    ..........?.....
      c0: 00 00 00 00 00 00 06 00 00 03 00 00 02 00 01 04    ......?..?..?.??
      d0: 0c ff 80 80 80 00 00 00 00 00 00 00 00 00 88 01    ?.???.........??
      e0: d0 70 01 00 00 00 fd 00 00 00 52 46 00 00 00 00    ?p?...?...RF....
      f0: 95 04 ff 00 00 00 00 00 00 00 7d aa 1c 00 b0 00    ??........}??.?.
      1. HDMI ディスプレイが検出され、i.MX8MP で EDID データが取得されます。HDMI-A -1 は DSI から HDMI であり、HDMI-A-2 はネイティブ HDMI ポートです。
        rkathar_3-1753091284687.jpeg

      root@verdin-imx8mp-15288064:/home/torizon# cat /sys/class/drm/card0-HDMI-A-1/edid | edid-decode
      edid-decode (hex):
       
      00 ff ff ff ff ff ff 00 30 ae 86 10 01 01 01 01
      22 15 01 03 80 29 1a 78 ee e5 b5 a3 55 49 99 27
      13 50 54 af ef 00 61 40 81 c0 81 80 81 8a 81 90
      95 00 95 0f 01 01 64 19 00 40 41 00 26 30 18 88
      36 00 a0 1d 00 00 00 18 00 00 00 fc 00 4c 45 4e
      20 4c 31 39 35 30 77 44 0a 20 00 00 00 fd 00 32
      4c 1e 51 0e 00 0a 20 20 20 20 20 20 00 00 00 ff
      00 42 33 34 33 32 38 34 35 0a 20 20 20 20 01 0b
       
      02 03 21 71 4e 06 07 02 03 15 96 11 12 13 04 14
      05 1f 90 23 09 07 07 83 01 00 00 65 03 0c 00 10
      00 8c 0a d0 90 20 40 31 20 0c 40 55 00 b9 88 21
      00 00 18 01 1d 80 18 71 1c 16 20 58 2c 25 00 b9
      88 21 00 00 9e 01 1d 80 d0 72 1c 16 20 10 2c 25
      80 b9 88 21 00 00 9e 01 1d 00 bc 52 d0 1e 20 b8
      28 55 40 b9 88 21 00 00 1e 02 3a 80 d0 72 38 2d
      40 10 2c 45 80 b9 88 21 00 00 1e 00 00 00 00 d0

       

      rkathar_4-1753091284695.png遭遇した問題

      1. 画像出力なし コネクテッドHDMIディスプレイに表示されます。
      2. dmesg ログエラー:
         
        imx_sec_dsim_drv 32e60000.mipi_dsi: failed to get pmsk for: fin = 12000, fout = 0
        

       


      rkathar_5-1753091284691.pngトラブルシューティングの試み

      デバイス ツリー内の MIPI DSI コントローラのクロック設定を次のように変更しようとしました。

      mipi_dsi: mipi_dsi@32e60000 {
      				#address-cells = <1>;
      				#size-cells = <0>;
      				compatible = "fsl,imx8mp-mipi-dsim";
      				reg = <0x32e60000 0x10000>;
      				clocks = <&media_blk_ctrl IMX8MP_CLK_MEDIA_BLK_CTRL_MIPI_DSI_PCLK>,
      					 <&media_blk_ctrl IMX8MP_CLK_MEDIA_BLK_CTRL_MIPI_DSI_CLKREF>;
      				clock-names = "cfg", "pll-ref";
      				assigned-clocks = <&clk IMX8MP_CLK_MEDIA_MIPI_PHY1_REF>;
      				assigned-clock-parents = <&clk IMX8MP_CLK_24M>;
      				assigned-clock-rates = <11000000>;
      				interrupts = 18 IRQ_TYPE_LEVEL_HIGH>;
      				power-domains = <&mipi_phy1_pd>;
      				status = "disabled";
      
      				port@0 {
      					dsim_from_lcdif: endpoint {
      						remote-endpoint = <&lcdif_to_dsim>;
      					};
      				};
      			};

      ただし、デフォルトの頻度は次のように表示されます。 12MHz の中で dmesg ログ。


       

      rkathar_6-1753091284693.png説明の要請

      以下の点についてご指導いただければ幸いです。

      1. どうすれば正しく更新CANでしょうか フィン そして ファウト 解決するための値 プムスク エラー?
      2. 何かありますか 追加のデバイスツリーの変更 ADV7535 経由で適切な画像出力を有効にするために何が必要ですか?

      皆様のご意見やご提案をお待ちしております。


      添付の dmesg ログ、このThreadへのデバイス ツリー オーバーレイを参照してください。


      ありがとう、よろしく。
      ルペシュ・カタール

      IMX8MPLUS #ADV7535 #DSI #HDMI #MIPI #I2C #I2S
i.MX 8M | i.MX 8M ミニ | i.MX 8M ナノRe: ADV7535: No image output on display

5.15 を使用する場合は、ブランチを 5.15 に変更するだけです。ソースコードは NXPについて なので、ドライバ がどのようなものかはわかりませんが、nxp adv7535 ドライバ を参照してください。

Linux-imx/ドライバ/GPU/drm/bridge/adv7511/adv7511_drv.c at lf-5.15.y · nxp-imx/Linux-imx · GitHub

すべての解像度をサポートできるわけではありません。有効なクロックは以下の通りです。新しいクロックが必要な場合は、そこに追加し、クロックドライバに新しいクロックを追加する必要があります。

静的定数int valid_clocks[] = {
148500,
135000、
132000、
108000,
78750,
74250,
65000、
49500,
40000、
31500,
};
Re: ADV7535: No image output on display

こんにちは@joanxie

NXP カーネル ソースへの案内をありがとうございます。
デバイス ツリーを NXP カーネル 5.15y (共有された 6.12 ではありません) の imx8mp-evk.dts に合わせて作成し、ディスプレイは特定の解像度で動作していますが、ターゲットとする解像度 (1024x768) では動作しません。
adv7535 のデバイス ツリー以外、他の変更は行っていません。Toradex カーネル 5.15.2.x の場合。

以下に、機能しているものと機能していないものを示した表を示します。

分解能アスペクト比規格一般的なリフレッシュレートRealtek ディスプレイDellモニター
640×4804:3両方60 Hz働く働く
800×6004:3ヴェサ60~75 Hz働く働く
1024×7684:3ヴェサ60~75 Hz無効時に空白/ちらつき
内部タイミングジェネレータ
出力なし
1280×7685:3ヴェサ60 Hz出力なし出力なし
1280×72016:9両方24/25/30/50/60 Hz働く働く
1366×76816:9ヴェサ60 Hz出力なし出力なし
1920×1080p16:9両方24/25/30/50/60 Hz働く働く


1024x768 のみが動作しない理由は何でしょうか?他の解像度は、HDMI を接続するだけで正常に動作します。

Re: ADV7535: No image output on display

私はすでにimx8mp dtsファイルを共有しましたが、まず、このブリッジをdtsで正しく設定する必要があります。その後、adv7535ドライバが

https://github.com/nxp-imx/linux-imx/blob/lf-6.12.y/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c

Re: ADV7535: No image output on display

こんにちは@joanxie

ちなみに、私たちはToradexのYaviaキャリアボードに似たカスタムキャリアボードを使用しています。唯一の変更点は、Lontium DSI から HDMI へのアダプタが ADV7535 に置き換えられたことです。NXP の一部製品でも使用されているため、ADV7535 を選択しました。

そのため、Toradex が提供するYavia-wifi dtsのデバイスツリーとその親デバイスツリーソースに基づいて、デバイスツリーの変更を行いました。

デバイスツリーノードは、
1. Mipi-dsi - ここでは何も変更していません(前回の投稿とは異なり、デフォルトに戻しました)。他の NXP デバイスでも同様に使用する必要があります。

2. ADV7535 固有のノードとオーバーレイ。これは前回の投稿で提供したものです。

ドライバはsec_mipi_dsim-imx.cです、 sec-dsim.cadv7511_drv.cadv7533.c

次に、デバイス ツリー オーバーレイを微調整します。fin, fout エラーはもう発生しません。

上記ドライバの dev_dbg ログは次のとおりです。

torizon@verdin-imx8mp-15404184:~$ dmesg | grep drm
[ 0.000000] Kernel command line: root=LABEL=otaroot rootfstype=ext4 quiet logo.nologo vt.global_cursor_defau lt=0 plymouth.ignore-serial-consoles splash fbcon=map:3 ostree=/ostree/boot.1/torizon/7b778d635701b4e0bbc49652c 421a587ae63ff3c6cbfc07d964084a23df7631d/0
[ 2.771129] imx-drm display-subsystem: bound imx-lcdifv3-crtc.0 (ops lcdifv3_crtc_ops)
[ 2.771181] imx-drm display-subsystem: bound imx-lcdifv3-crtc.1 (ops lcdifv3_crtc_ops)
[ 2.772099] imx-drm display-subsystem: bound 32e60000.mipi_dsi (ops imx_sec_dsim_ops [sec_mipi_dsim_imx])
[ 2.772141] imx-drm display-subsystem: bound 32fd8000.hdmi (ops dw_hdmi_imx_ops)
[ 2.772468] [drm] Initialized imx-drm 1.0.0 20120507 for display-subsystem on minor 0
[ 2.869610] imx-drm display-subsystem: [drm] fb0: imx-drmdrmfb frame buffer device
[ 5.099098] systemd[1]: Starting Load Kernel Module drm...
[ 5.188031] systemd[1]: [email protected]: Deactivated successfully.
[ 5.188992] systemd[1]: Finished Load Kernel Module drm.
[ 5.262319] [drm] Initialized vivante 1.0.0 20170808 for 40000000.mix_gpu_ml on minor 1
torizon@verdin-imx8mp-15404184:~$ dmesg | grep dsim
[ 0.000000] Kernel command line: root=LABEL=otaroot rootfstype=ext4 quiet logo.nologo vt.global_cursor_defau lt=0 plymouth.ignore-serial-consoles splash fbcon=map:3 ostree=/ostree/boot.1/torizon/7b778d635701b4e0bbc49652c 421a587ae63ff3c6cbfc07d964084a23df7631d/0 dy
[ 2.759952] Kernel module loaded from ramdisk: sec_dsim - result: 0
[ 2.771246] imx_sec_dsim_drv 32e60000.mipi_dsi: sec-dsim bridge bind begin
[ 2.771290] imx_sec_dsim_drv 32e60000.mipi_dsi: version number is 0x1060200
[ 2.772085] imx_sec_dsim_drv 32e60000.mipi_dsi: sec-dsim bridge bind end
[ 2.772099] imx-drm display-subsystem: bound 32e60000.mipi_dsi (ops imx_sec_dsim_ops [sec_mipi_dsim_imx])
[ 2.916294] Kernel module loaded from ramdisk: sec_mipi_dsim_imx - result: 0
[ 3.259164] imx_sec_dsim_drv 32e60000.mipi_dsi: p: min = 1, max = 6, m: min = 88, max = 1023, s: min = 0, ma x = 5
[ 3.259252] imx_sec_dsim_drv 32e60000.mipi_dsi: fout = 390000, fin = 12000, m = 130, p = 1, s = 2, best_delt a = 0
[ 3.259262] imx_sec_dsim_drv 32e60000.mipi_dsi: no pre-exist hpar can be used
[ 18.521539] imx_sec_dsim_drv 32e60000.mipi_dsi: p: min = 1, max = 6, m: min = 88, max = 1023, s: min = 0, ma x = 5
[ 18.521629] imx_sec_dsim_drv 32e60000.mipi_dsi: fout = 390000, fin = 12000, m = 130, p = 1, s = 2, best_delt a = 0
[ 18.521640] imx_sec_dsim_drv 32e60000.mipi_dsi: no pre-exist hpar can be used
torizon@verdin-imx8mp-15404184:~$ dmesg | grep adv
[ 0.000000] Kernel command line: root=LABEL=otaroot rootfstype=ext4 quiet logo.nologo vt.global_cursor_default=0 plymouth.ignore-serial-consoles splash fbcon=map:3 ostree=/ostree/boot.1/torizon/7b778d635701b4e0bbc49652c421a587ae63ff3c6cbfc07d964084a23df7631d/0
[ 1.052362] adv7511 1-0039: Rev. 20
[ 4.325789] systemd[1]: System time before build time, advancing clock.
torizon@verdin-imx8mp-15404184:~$ 



これにより、i2cset を使用して ADV7535 のレジスタを直接設定することでテスト カラーバー パターンを生成することもできます。これは、ADV7535 から HDMI シンク ディスプレイへの接続が正しく動作していることを意味します。問題は、iMX8MP が ADV7535 と通信する方法にあります。
まだディスプレイに何も出力されません。

NXP が自社製品に ADV7535 を実装した方法と、当社がソフトウェアとハードウェアのアプローチの観点から ADV7535 を実装する方法に違いがあるかどうかを理解したいと思います。




Re: ADV7535: No image output on display

このエラーメッセージは、あなたのドライバからのようです。NXPドライバのソースコードからは見つけられませんでした。この設定は正しくありません。希望するクロックを得ることができません。クロックの親は24MHzで、11MHzに設定すると、24/2=12MHzしか得られません。

assigned-clock-parents = <&clk IMX8MP_CLK_24M>;
				assigned-clock-rates = <11000000>;

参考までにNXPのソースコードを参照し、LCDIF、MIPI DS1、ADV7535の設定が正しいかどうかを確認してください。

linux-imx/arch/arm64/boot/dts/freescale/imx8mp-evk.dts at lf-6.12.y · nxp-imx/linux-imx · GitHub

linux-imx/arch/arm64/boot/dts/freescale/imx8mp.dtsi at lf-6.12.y · nxp-imx/linux-imx · GitHub

ログを参照してください。PLL設定が正しくないようです。PLLドライバが

Linux-imx/ドライバ/GPU/drm/imx/sec_mipi_pll_1432x.h at lf-6.12.y · nxp-imx/Linux-imx · GitHub

もう一度確認することできます


标记 (1)
无评分
版本历史
最后更新:
‎11-20-2025 04:47 PM
更新人: