How to set panel timing in the device tree for ccimx6ulsbcpro

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

How to set panel timing in the device tree for ccimx6ulsbcpro

1,397 Views
arturm
Contributor I

Hello,

can someone  explain how to properly set the display settings in the device tree?

I am modifying imx6ul-ccimx6ulsbcpro.dts

There are two node: panel and lcdif.

************************************************************

panel {
compatible = "auo,g101evn010";
power-supply = <&ldo4_ext>;
backlight = <&lcd_backlight>;

port {
panel_in: endpoint {
remote-endpoint = <&display_out>;
};
};
};

************************************************************

&lcdif {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_lcdif_dat0_17
&pinctrl_lcdif_clken
&pinctrl_lcdif_hvsync>;
lcd-supply = <&ldo4_ext>; /* BU90T82 LVDS bridge power */
status = "okay";
}

************************************************************

In the most examples I've come across to the lcdif nod it is added  the display property and display-timing sub-node.

************************************************************

display = <&display0>;
status = "okay";

display0 : display {
bits-per-pixel = <32>;
bus-width = <24>;

display-timing {
clock-frequency = <138500000>;
hactive = <1280>;
vactive = <720>;
hfront-porch = <0>;
hsync-len = <176>;
hback-porch = <0>;
vfront-porch = <0>;
vsync-len = <25>;
vback-porch = <0>;
hsync-active = <0>;
vsync-active = <0>;
pixelclk-active = <0>;
};
};

************************************************************

Then it turns out this way has been deprecated and panel-timing should be used instead .

So I added

************************************************************

bits-per-pixel = <32>;
bus-width = <24>;

************************************************************

to the lcdif node

and panel-timing to the panel node

************************************************************

panel {
compatible = "innolux,g121x1-l03"; //"innolux,p120zdg-bf1"; //"boe,tv080wum-nl0"; //"auo,g101evn010";"arm,rtsm";"innolux,g121x1-l03";
power-supply = <&ldo4_ext>;
backlight = <&lcd_backlight>;


port {
panel_in: endpoint {
remote-endpoint = <&display_out>;
};
};

panel-timing {
clock-frequency = <33260000>;
hactive = <1024>;
vactive = <768>;
hfront-porch = <50>;
hback-porch = <0>;
hsync-len = <128>;
vback-porch = <25>;
vfront-porch = <10>;
vsync-len = <10>;
hsync-active = <0>;
vsync-active = <0>;
de-active = <1>;
pixelclk-active = <0>;
};

};

************************************************************

I could change the display resolution only by changing the driver the one that has desired resolution

But the rest settings are not changed.

fbset

shows zeros

*********************************************************

# 0 MHz, H: 0 kHz, V: 0 Hz

*********************************************************

Thank you if you find time to provide any clarifications.

Regards,

Artur

 

 

 

 

 


 

 

 

0 Kudos
2 Replies

1,380 Views
arturm
Contributor I

Thank you for your suggestion. I use the kernel version 5.10.27 and as I understand this approach is deprecated for that version. It turns out for the board type I use i.e imx6ul-ccimx6ulsbcpro the port node is required to be defined in the device tree in order to have an LCD display configured.Otherwise this is what I got form the kernel booting:

2.226270] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[ 2.233308] [drm] No driver support for vblank timestamp query.
[ 2.240161] OF: graph: no port node found in /soc/aips-bus@2100000/lcdif@21c8000
[ 2.247870] mxsfb 21c8000.lcdif: Failed to create outputs
[ 2.325365] brd: module loaded

I will check how to modify the LCD display setting from the device tree for the linux kernel the one you sent the example. 

 

0 Kudos

1,384 Views
Zhiming_Liu
NXP TechSupport
NXP TechSupport
0 Kudos