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.

437x同时配置lcd和HDMI显示



前提:

SDK版本:ti-processor-sdk-linux-am437x-evm-06.03.00.106-Linux-x86-Install.bin
硬件:自制板卡+LCD显示屏+HDMI

硬件方案为RGB信号出来后分成两路信号,一路接LCD显示屏,一路接sii9022a芯片转HDMI

设备树中配置单独的LCD显示和单独的HDMI显示都是正常,现在想同时配置lcd和hdmi显示。官方437x开发板lcd和hdmi因硬件设计原因只能二选一不能同时显示。

我在设备树中配置lcd和hdmi始终不行,对于DRM驱动中链路port理解不够,求指点。查看设备树文档理解为:

DSS --> LCD 

DSS --> sii9022a -->hdmi

所以设备树配置如下(但是不能正常工作),求指点我哪个地方配置错误,目前此配置只有lcd正常:

/ {
        model = "AM43xx";
        compatible = "ti,am4372","ti,am43";

        aliases {
                display0 = &lcd0;
                display1 = &hdmi0;
        };

        memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x10000000>; /* 256 MB */
        };

        chosen {
                stdout-path = &uart0;
        };
       
        lcd0: display {
                compatible = "edp,n133hce_eaa", "panel-dpi";

                label = "lcd";

                pinctrl-names = "default";
                pinctrl-0 = <&lcd_pins>;
                backlight = <&lcd_bl>;
                enable-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>;

                port {
                        lcd_in: endpoint {
                                remote-endpoint = <&dpi_out>;
                        };
                };
        };

        hdmi0: connector {
                compatible = "hdmi-connector";
                label = "hdmi";

                type = "b";

                port {
                        hdmi_connector_in: endpoint {
                                remote-endpoint = <&sii9022_out>;
                        };
                };
        };

};

&am43xx_pinmux {
.....

};

&i2c0 {
        status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <&i2c0_pins>;
        clock-frequency = <100000>;


        sii9022: sii9022@3b {
                #sound-dai-cells = <0>;
                compatible = "sil,sii9022";
                reg = <0x3b>;

                interrupt-parent = <&gpio3>;
                interrupts = <14 IRQ_TYPE_LEVEL_LOW>;

                reset-gpios = <&gpio1 24 GPIO_ACTIVE_LOW>;


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

                        port@0 {
                                reg = <0>;

                                sii9022_in: endpoint {
                                        remote-endpoint = <&hdmi_out>;
                                };
                        };

                        port@1 {
                                reg = <1>;

                                sii9022_out: endpoint {
                                        remote-endpoint = <&hdmi_connector_in>;
                                };
                        };
                };

        };

};



&dss {
        status = "okay";

        pinctrl-names = "default";
        pinctrl-0 = <&dss_pins>;

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

                dpi_out: endpoint@0 {
                        reg = <0>;
                        remote-endpoint = <&lcd_in>;
                        data-lines = <16>;
                };

                hdmi_out: endpoint@1 {
                        reg = <1>;
                        remote-endpoint = <&sii9022_in>;

                };
        };

};