Device Tree Configuration

A DTS/DTSI file is used to store all the device tree configuration.

vout DTS Port

In the file starfive_devkits.dts, to configure vout dts port, you can find the device tree configuration of vout DSI as the following code block:
/u-boot/arch/riscv/dts/starfive_devkits.dts
    &dc8200 {
        status = "okay";

        vopb_out: port {
                #address-cells = <1>;
                #size-cells = <0>;
                vopb_out_mipi: endpoint@0 {
                        reg = <0>;
                        remote-endpoint = <&mipi_in_vopb>;
                };

                vopb_out_hdmi: endpoint@1 {
                        reg = <1>;
                        remote-endpoint = <&hdmi_in_vopb>;
                };

        };
};
    &mipi_dsi0 {
        status = "okay";
        starfive,panel = <&seeed_panel>;
        data-lanes-num = <1>;
        status = "okay";

        ports {
                mipi_in: port {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        mipi_in_vopb: endpoint@0 {
                                reg = <0>;
                                remote-endpoint = <&vopb_out_mipi>;
                        };
                };
        };

};

    &hdmi{
        pinctrl-names = "default";
        pinctrl-0 = <&hdmi_pins>;
        status = "okay";

        ports {
                hdmi_in: port {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        hdmi_in_vopb: endpoint@0 {
                                reg = <0>;
                                remote-endpoint = <&vopb_out_hdmi>;
                        };
                };
        };
};
The following list provides explanations for the parameters included in the above code block.
  • status: The work status of the LCD module. To enable the module, set this bit as "okay" or to disable the module, set this bit as "disabled".
  • reg: Register base address "0x295e0000" and range "0x10000".
  • port: The port(s) used by the LCD driver.
  • data-lanes-num: The number of data lanes.

I2C2

In the file jh7110-devkits.dts, to configure lt8911exb, the lt8911exb dts port should be added into i2c2. You can find the device tree configuration of i2c2 as the following code block:
linux/arch/riscv/boot/dts/starfive/jh7110-devkits.dts:
&i2c2 {
        clock-frequency = <100000>;
        i2c-sda-hold-time-ns = <300>;
        i2c-sda-falling-time-ns = <510>;
        i2c-scl-falling-time-ns = <510>;
        auto_calc_scl_lhcnt;
        pinctrl-names = "default";
        pinctrl-0 = <&i2c2_pins>;
        status = "okay";

        lt8911exb_i2c@29 {
                compatible = "lontium,lt8911exb";
                reg = <0x29>;
                reset-gpio = <&gpio 41 1>;
                pwm-gpio = <&gpio 33 1>;
                bl-gpio = <&ext_gpio 6 GPIO_ACTIVE_LOW>;

                port {
                                lt8911exb_in: endpoint {
                                        remote-endpoint = <&dsi0_output>;
                                };
                        };
        };
};

In the above code block, the parameters of pinctrl-names and pinctrl-0 are used to configure the i2c2 pin configuration settings.

&MIPI DST

In the file jh7110-devkits.dts, configure remote-end point for connecting DSI and panel. You can find the device tree configuration of &MIPI DST as the following code block:
linux/arch/riscv/boot/dts/starfive/jh7110-devkits.dts:
&mipi_dsi {
        status = "okay";

        ports {
                #address-cells = <1>;
                #size-cells = <0>;

                port@0 {
                        reg = <0>;
                        #address-cells = <1>;
                        #size-cells = <0>;

                        dsi0_output: endpoint@0 {
                                reg = <0>;
                                remote-endpoint = <&lt8911exb_in>;
                        };

                        dsi1_output: endpoint@1 {
                                reg = <1>;
                                remote-endpoint = <&panel_dsi_port>;
                        };

                        dsi2_output: endpoint@2 {
                                reg = <2>;
                                remote-endpoint = <&radxa_in>;
                        };
                };

                port@1{
                        reg = <1>;
                        dsi_in_port: endpoint {
                                remote-endpoint = <&mipi_out>;
                        };
                };

        };
};