前提:
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>;
};
};
};