如果要修改显示分辨率,比如改成480x480,有哪些相关的地方,需要做哪些修改
离线
f1c100s 改 u-boot 的参数:
CONFIG_VIDEO_LCD_MODE="x:800,y:480,depth:18,pclk_khz:33000,le:87,ri:40,up:31,lo:13,hs:1,vs:1,sync:3,vmode:0"
1. 在哪个选项下有这个设置,没看到有。看到有
ARM architecture -> [//*] Enable graphical uboot console on HDMI, LCD or VGA
2. 修改这个分辨率,kernel下也会使用这个分辨率吗 ?
离线
我记得 V3s 只要改一次 u-boot 的分辨率就行, Linux 自动跟着修改了。
可能由于Linux4.14 之后显示驱动架构修改了, 所以 linux 的 dts 还要调整一次 lcd 的分辨率等参数。
dts没看到有分辨率的参数
离线
等待楼下大神出现
离线
找 dts 文件, 关于 panel 那段代码
panel: panel {
compatible = "lg,lb070wv8", "simple-panel";
#address-cells = <1>;
#size-cells = <0>;
enable-gpios = <&pio 4 6 GPIO_ACTIVE_HIGH>;
port@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
panel_input: endpoint@0 {
reg = <0>;
remote-endpoint = <&tcon0_out_lcd>;
};
};
};
panel里面哪有分辨率一说
离线
panel-simple.c里面
static const struct drm_display_mode lg_lb070wv8_mode = {
.clock = 33246,
.hdisplay = 800,
.hsync_start = 800 + 88,
.hsync_end = 800 + 88 + 80,
.htotal = 800 + 88 + 80 + 88,
.vdisplay = 480,
.vsync_start = 480 + 10,
.vsync_end = 480 + 10 + 25,
.vtotal = 480 + 10 + 25 + 10,
.vrefresh = 60,
};
static const struct panel_desc lg_lb070wv8 = {
.modes = &lg_lb070wv8_mode,
.num_modes = 1,
.bpc = 16,
.size = {
.width = 151,
.height = 91,
},
.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
};
应该改哪个
离线
换屏幕,现在屏幕是480x480分辨率
离线
似乎没有
离线
.hsync_start = 800 + 88,
.hsync_end = 800 + 88 + 80,
.htotal = 800 + 88 + 80 + 88,
.vsync_start = 480 + 10,
.vsync_end = 480 + 10 + 25,
.vtotal = 480 + 10 + 25 + 10,
1. 这些后面加的是什么意思
2..bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,这个参数是什么意思,硬件上一般接法不应该是RGB666吗,这个RGB888为啥还能正常显示?如果硬件设计时使用的RGB565,可以省出两个IO口,这个时候应该怎么修改
离线
有没有大神一一解答一下
离线
只需要在设备树中修改引脚配置,其他地方无需修改吗
离线