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.

SN65DSI84-Q1: SN65DSI84-Q1 linux device tree

Part Number: SN65DSI84-Q1
Other Parts Discussed in Thread: SN65DSI84, SN65DSI83

Tool/software:

We are using the SN65DSI840Q1 chip as a bridge from MIPI to LVDS.
The MIPI signal comes from the Orange Pi CM4, and the LVDS output is connected to the LCD input.
We are using the Orange Pi CM4 with Linux OS, so we created a driver and a device tree.
However, it's not working properly, so we need some help to check if the device tree is incorrect.

Device tree 

------------------------------------------------------------------------------------------------------------------------------------

/dts-v1/;

/plugin/;

 

/ {

    compatible = "rockchip,rk3566";

 

    fragment@1 {

        target = <&i2c1>;

        __overlay__ {

            status = "okay";

            #address-cells = <1>;

            #size-cells = <0>;

 

            sn65dsi84@2d {

                compatible = "ti,sn65dsi83";

                reg = <0x2d>;

                enable-gpios = <&gpio4 0 1>;

 

                ports {

                    #address-cells = <1>;

                    #size-cells = <0>;

 

                    port@0 {

                        reg = <0>;

                        bridge_in: endpoint {

                            remote-endpoint = <&dsi_out>;

                            data-lanes = <0 1 2 3>;

                        };

                    };

 

                    port@2 {

                        reg = <2>;

                        bridge_out_a: endpoint {

                                                    remote-endpoint = <&panel_in_a>;

                                            };

                    };

                                    

                                     port@3 {

                                            reg = <3>;

                                            bridge_out_b: endpoint {

                                                    remote-endpoint = <&panel_in_b>;

                                            };

                                     };

                                    

                                    

                };

            };

        };

    };

      

       fragment@2 {

        target = <&dsi_dphy0>;

        __overlay__ {

            status = "okay";

        };

    };

 

    fragment@3 {

        target = <&dsi0>;

        __overlay__ {

            status = "okay";

                     

                      port {

                              dsi_out: endpoint {

                                     remote-endpoint = <&bridge_in>;

                                     data-lanes = <0 1 2>;

                              };

                      };

        };

    };

 

    fragment@4 {

        target-path = "/";

        __overlay__ {

            panel_lvds: panel-lvds {

                compatible = "panel-lvds";

                status = "okay";

 

                width-mm = <344>;

                height-mm = <193>;

                data-mapping = "vesa-24";

 

                panel-timing {

                    clock-frequency = <177840000>;

                    hactive = <3840>;

                    vactive = <720>;

                    hfront-porch = <80>;

                    hsync-len = <120>;

                    hback-porch = <70>;

                    vfront-porch = <15>;

                    vback-porch = <6>;

                    vsync-len = <1>;

                };

            };

 

            ports {

                #address-cells = <1>;

                #size-cells = <0>;

               

                port@2 {

                    reg = <2>;

                    dual-lvds-odd-pixels;

                    panel_in_a: endpoint {

                        remote-endpoint = <&bridge_out_a>;

                    };

                };

 

                port@3 {

                    reg = <3>;

                    dual-lvds-even-pixels;

                    panel_in_b: endpoint {

                        remote-endpoint = <&bridge_out_b>;

                    };

                };

            };

        };

    };

 

    __fixups__ {

        i2c1 = "/fragment@1:target:0";

               dsi_dphy0 = "/fragment@2:target:0";

        dsi0 = "/fragment@3:target:0";

    };

};

------------------------------------------------------------------------------------------------------------------------------------
Here is a suspicious log message.

[    2.291076] i2c 1-002d: Fixed dependency cycle(s) with /dsi@fe060000/port/endpoint