Kernel 5.x, LVDS, rockchipdrm problem
Hello! Has anyone tried to run the 5.x kernel with lvds panel support? I can't get lvds to work ( I have enabled lvds in DT, but when rockchipdrm module is loading I get this messages:[ 29.355853] rockchip-vop ff930000.vop: Adding to iommu group 0
[ 29.362659] rockchip-vop ff940000.vop: Adding to iommu group 1
[ 29.371731] rockchip-drm display-subsystem: bound ff930000.vop (ops vop_component_ops )
[ 29.382206] rockchip-drm display-subsystem: bound ff940000.vop (ops vop_component_ops )
[ 29.392482] rockchip-lvds ff96c000.lvds: ] *ERROR* failed to find panel and bridge node
[ 29.405058] rockchip-drm display-subsystem: failed to bind ff96c000.lvds (ops rockchip_lvds_component_ops ): -517
[ 29.417924] rockchip-drm display-subsystem: master bind failed: -517
DTS:
/ {
...
lvds_panel: lvds-panel {
compatible = "simple-panel";
enable-gpios = <&gpio7 3 GPIO_ACTIVE_HIGH>;
bus-format = <0x1009>;
rockchip,data-mapping = "vesa";
rockchip,data-width = <24>;
rockchip,output = "lvds";
status = "okay";
display-timings {
native-mode = <&timing0>;
timing0: timing0 {
clock-frequency = <85000000>;
hactive = <1280>;
vactive = <480>;
hback-porch = <24>;
hfront-porch = <368>;
vback-porch = <9>;
vfront-porch = <33>;
hsync-len = <16>;
vsync-len = <3>;
hsync-active = <0>;
vsync-active = <0>;
de-active = <0>;
pixelclk-active = <0>;
};
};
ports {
port {
panel_in_lvds: endpoint {
remote-endpoint = <&lvds_out_panel>;
};
};
};
};
...
};
&lvds {
rockchip,output = "lvds";
rockchip,panel = <&lvds_panel>;
status = "okay";
ports {
lvds_out: port@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
lvds_out_panel: endpoint@0 {
reg = <0>;
remote-endpoint = <&panel_in_lvds>;
};
};
};
};
可能原因:
1.dts配置节点里面compatible = "panel-simple";这个没有起到作用;
2.由于enable-gpios 配置错误或者被其他节点占用;
3.没有配置背光节点。 举例(平台RK3326+Linux 4.4):
backlight: backlight {
compatible = "pwm-backlight";
pwms = <&pwm1 0 25000 0>;
brightness-levels = <
0 1 2 3 4 5 6 7
(省略N行)
248 249 250 251 252 253 254 255>;
default-brightness-level = <200>;
enable-gpios = <&gpio3 RK_PC0 GPIO_ACTIVE_HIGH>;
};
panel {
status = "okay";
compatible = "simple-panel";
backlight = <&backlight>;
power-supply = <&vcc_3v0>;
init-delay-ms = <20>;
enable-delay-ms = <20>;
prepare-delay-ms = <20>;
unprepare-delay-ms = <20>;
disable-delay-ms = <20>;
bus-format = <MEDIA_BUS_FMT_RGB888_1X7X4_SPWG>;
enable-gpios = <&gpio3 RK_PB5 GPIO_ACTIVE_HIGH>;
standby-gpios = <&gpio3 RK_PB6 GPIO_ACTIVE_HIGH>;
reset-gpios = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
width-mm = <217>;
height-mm = <136>;
rockchip,output = "lvds";
display-timings {
native-mode = <&timing0>;
timing0: timing0 {
clock-frequency = <46000000>;
hactive = <1024>;
vactive = <600>;
hback-porch = <90>;
hfront-porch = <160>;
vback-porch = <13>;
vfront-porch = <12>;
hsync-len = <70>;
vsync-len = <10>;
hsync-active = <0>;
vsync-active = <0>;
de-active = <0>;
pixelclk-active = <0>;
};
};
port {
panel_in_lvds: endpoint {
remote-endpoint = <&lvds_out_panel>;
};
};
};
Page:
[1]