This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

SN65DSI86EVM: Display Bridge Evaluation Board usage problem

Part Number: SN65DSI86EVM
Other Parts Discussed in Thread: SN65DSI86

Hello,

I am trying to use the SN65DSI86EVM MIPI to eDP bridge to connect my board on Debian Linux with the NXP i.MX8MP processor to a display with Display Port. I installed the necessary ti-sn65dsi86 driver as kernel module and wrote a device tree overlay. However the bridge doesn't seem to create any output. The dmesg show following regarding the bridge:


~# dmesg | grep dsi
[    0.304040] i2c 1-002d: Fixing up cyclic dependency with 32e60000.mipi_dsi
[    1.165697] ti_sn65dsi86 1-002d: GPIO lookup for consumer enable
[    1.165713] ti_sn65dsi86 1-002d: using device tree for GPIO lookup
[    1.165725] of_get_named_gpiod_flags: can't parse 'enable-gpios' property of node '/soc@0/bus@30800000/i2c@30a30000/sn65dsi86@2d[0]'
[    1.165755] of_get_named_gpiod_flags: can't parse 'enable-gpio' property of node '/soc@0/bus@30800000/i2c@30a30000/sn65dsi86@2d[0]'
[    1.165778] ti_sn65dsi86 1-002d: using lookup tables for GPIO lookup
[    1.165783] ti_sn65dsi86 1-002d: No GPIO consumer enable found
[    1.165790] ti_sn65dsi86 1-002d: Looking up vcca-supply from device tree
[    1.165806] ti_sn65dsi86 1-002d: Looking up vcca-supply property in node /soc@0/bus@30800000/i2c@30a30000/sn65dsi86@2d failed
[    1.165842] ti_sn65dsi86 1-002d: supply vcca not found, using dummy regulator
[    1.166003] ti_sn65dsi86 1-002d: Looking up vcc-supply from device tree
[    1.166017] ti_sn65dsi86 1-002d: Looking up vcc-supply property in node /soc@0/bus@30800000/i2c@30a30000/sn65dsi86@2d failed
[    1.166044] ti_sn65dsi86 1-002d: supply vcc not found, using dummy regulator
[    1.166088] ti_sn65dsi86 1-002d: Looking up vccio-supply from device tree
[    1.166100] ti_sn65dsi86 1-002d: Looking up vccio-supply property in node /soc@0/bus@30800000/i2c@30a30000/sn65dsi86@2d failed
[    1.166124] ti_sn65dsi86 1-002d: supply vccio not found, using dummy regulator
[    1.166172] ti_sn65dsi86 1-002d: Looking up vpll-supply from device tree
[    1.166184] ti_sn65dsi86 1-002d: Looking up vpll-supply property in node /soc@0/bus@30800000/i2c@30a30000/sn65dsi86@2d failed
[    1.166207] ti_sn65dsi86 1-002d: supply vpll not found, using dummy regulator
[   11.234765] auxiliary ti_sn65dsi86.bridge.0: deferred probe pending

Looks like the driver is looking for the necessary

- enable-gpios
- vccio-supply
- vpll-supply
- vcca-supply
- vcc-supply

But should they be specified in this case where we're using the Evaluation board?

The i2c address of the chip is being detected:

~# i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- 2d -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

And when the dsi86-kernel module is inserted, the 0x2d address shows "UU".

I would appriciate any help on what I am doing wrong.

dts-v1/;

/plugin/;


&i2c2 {
    status = "okay";
    sn65dsi86@2d {
        compatible = "ti,sn65dsi86";
        reg = <0x2d>;
        status = "okay";
        ports {

            //IN(DSI===>SN65DSI)
            port@0 {
                reg = <0>;
                sn65_from_dsim: endpoint {
                    remote-endpoint = <&dsim_to_sn65>;
                };
            };
            //OUT(SN65DSI===>Panel)
            port@1 {
                reg = <1>;
                sn65_to_panel: endpoint {
                    remote-endpoint = <&panel_from_sn65>;
                };
            };
        };
    };
};


&mipi_dsi {
    status = "okay";
    port@1 {
        dsim_to_sn65: endpoint {
            remote-endpoint = <&sn65_from_dsim>;
        };
    };
    panel@0 {
        compatible = "ti,sn65dsi86";
        reg = <0>;
        status = "okay";
        ports {
            panel_int: port {
                panel_from_sn65: endpoint {
                    remote-endpoint = <&sn65_to_panel>;
                };
            };
        };
    };
};