I'm using customized LCD (1024*600)
Display signal : imx8mq(mipi_dsi) ->> sn65dsi (lvds) ->> LCD
How can I change fb0 video mode resolution ?
evk_8mq:/ # cat /sys/class/graphics/fb0/modes
U:1200x1920p-0
So, now only displayed partial screen of android full screen (1920*1200)
What driver or dts .. can I modify???
I want to display android image on 1024*600 LCD.
my dts file is below
&dcss {
status = "okay";
disp-dev = "mipi_disp";
dcss_disp0: port@0 {
reg = <0>;
dcss_disp0_mipi_dsi: mipi_dsi {
remote-endpoint = <&mipi_dsi_in>;
};
};
};
&mipi_dsi_phy {
status = "okay";
};
&mipi_dsi {
status = "okay";
assigned-clocks = <&clk IMX8MQ_CLK_DSI_PHY_REF_SRC>,
<&clk IMX8MQ_CLK_DSI_CORE_SRC>,
<&clk IMX8MQ_VIDEO_PLL1_REF_SEL>,
<&clk IMX8MQ_VIDEO_PLL1>;
assigned-clock-parents = <&clk IMX8MQ_VIDEO_PLL1_OUT>,
<&clk IMX8MQ_SYS1_PLL_266M>,
<&clk IMX8MQ_CLK_25M>;
assigned-clock-rates = <24000000>,
<266000000>,
<0>,
<599999999>;
port@1 {
mipi_dsi_in: endpoint {
remote-endpoint = <&dcss_disp0_mipi_dsi>;
};
};
};
&i2c2 {
clock-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c2>;
status = "okay";
sn65dsi:sn65dsi8x@2c{
compatible = "ti,sn65dsi8x"; /* instantiate the dsi85 driver */
reg = <0x2c>;
status = "okay";
};
}
&mipi_dsi_bridge {
status = "okay";
panel@0 {
//compatible = "raydium,rm67191";
compatible = "ti,panel-sn65dsi8x";
reg = <0>;
pinctrl-0 = <&pinctrl_mipi_dsi_en>;
reset-gpio = <&gpio5 6 GPIO_ACTIVE_HIGH>;
dsi-lanes = <4>;
panel-width-mm = <68>;
panel-height-mm = <121>;
//target = <&i2c2>;
device_en = <&gpio5 6 GPIO_ACTIVE_HIGH>;
backlight = <&lvds_backlight0>;
client-device = <&sn65dsi>;
port {
panel1_in: endpoint {
remote-endpoint = <&mipi_dsi_bridge_out>;
};
};
};
port@1 {
mipi_dsi_bridge_out: endpoint {
remote-endpoint = <&panel1_in>;
};
};
};
Sure, I already checked reference manual.
so, android screen displayed in my target board.
Now, problem is partial displayed (only left upper side of full screen)
evk_8mq:/ # cat /sys/class/graphics/fb0/modes
U:1200x1920p-0
I want to change fb0 device frame buffer video mode
Now, default 1200x1920
I want to change 600x1024 or 768x1024
please how can I change fb0 video mode???
>please how can I change fb0 video mode?
had you changed struct display_timing rad_default_timing[] ?
Best regards
igor
yes, done.
modified panel drm driver (based on panel-radium-rm67191.c)
video timing
static const struct display_timing sn65_7inchmip_timing = {
#if 1 //7inch
.pixelclock = { 80000000, 100000000, 132000000 },
.hactive = { 600, 600, 600 },
.hfront_porch = { 100, 100, 100 },
.hsync_len = { 8, 8, 8 },
.hback_porch = { 45, 45, 45 },
.vactive = { 1024, 1024, 1024 },
.vfront_porch = { 4, 4, 4 },
.vsync_len = { 1, 1, 1 },
.vback_porch = { 4, 4, 4 },
#endif
.flags = DISPLAY_FLAGS_HSYNC_LOW |
DISPLAY_FLAGS_VSYNC_LOW |
DISPLAY_FLAGS_DE_LOW |
DISPLAY_FLAGS_PIXDATA_NEGEDGE,
};
i don't know why fb0 video U:1200x1920p-0
#cat /sys/class/graphics/fb0/modes
#U:1200x1920p-0
are you using android O8, it has L4.9.51 kernel.
One can try L4.14.78 (Android P9.0.0 Pie P9.0.0_1.0.0, 4.14 kernel)
Hi sangwook
for LVDS bridge one can look and debug if necessary next linux drivers (panel-raydium-rm67191.c):
fsl-imx8mq-evk-dcss-rm67191.dts\freescale\dts\boot\arm64\arch - linux-imx - i.MX Linux kernel
timings are in struct display_timing rad_default_timing[] for adjusting custom panel timings.
panel-raydium-rm67191.c\panel\drm\gpu\drivers - linux-imx - i.MX Linux kernel
AN4553 Using Open Source Debugging Tools for Linux on i.MX Processors
https://www.nxp.com/docs/en/application-note/AN4553.pdf
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------