Hi All,
I am trying to implement this display to be recognized under the panel-simple.c implementation in Linux.
(https://github.com/torvalds/linux/blob/master/drivers/gpu/drm/panel/panel-simple.c)
Here is the relevant section that I am adding to panel-simple.c
static const struct display_timing displaytech_dt070btft_timing = {
.pixelclock = { 45000000, 51200000, 57000000 },
.hactive = { 1024, 1024, 1024 },
.hfront_porch = { 160, 160, 160 },
.hback_porch = { 160, 160, 160 },
.hsync_len = { 20, 20, 20 },
.vactive = { 600, 600, 600 },
.vfront_porch = { 12, 12, 12 },
.vback_porch = { 23, 23, 23 },
.vsync_len = { 3, 3, 3 },
.flags = DISPLAY_FLAGS_HSYNC_HIGH | DISPLAY_FLAGS_VSYNC_LOW | DISPLAY_FLAGS_PIXDATA_NEGEDGE | DISPLAY_FLAGS_SYNC_NEGEDGE | DISPLAY_FLAGS_DE_HIGH,
};
static const struct panel_desc displaytech_dt070btft = {
.timings = &displaytech_dt070btft_timing,
.num_timings = 1,
.bpc = 8,
.size = {
.width = 154,
.height = 85,
},
.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
};
When I boot the Kernel, it does recognize that there is an entry for this screen and weston is able to start as well. However, there is no picture on the screen. Any ideas on what I'm doing wrong? I'm not completely confident in the flag options I have selected.
Another question, could I use a different panel to work correctly with this screen? Thanks!
Hi Joe,
Thank you for your patience, I apologize for the delay in our response. Your timing values look good as well as the panel configuration. I'm sure you've already referenced the source driver and TFT datasheets for the DT070BTFT.
One thing that we noticed about the flags in your code is that DISPLAY_FLAGS_HSYNC_HIGH should most likely be DISPLAY_FLAGS_HSYNC_LOW to match DISPLAY_FLAGS_VSYNC_LOW. They are active low signals that follow the falling edge of the input clock. See the 11.2.1 timing diagram snippet in the source driver datasheet for reference:
Please give that a try and let us know if that resolves the issue you've been seeing.
I'm not quite sure I understand your question. Could you elaborate on what you define to be a panel vs a screen?
Hi Thomas,
Thanks for your response!
It turned out to be the RESET Line was going low after a few seconds, causing the screen to fade to black. After we fixed the RESET line issue and modified my values a little bit, we are able indeed to see picture clearly now on the screen.
Here's what I'm currently using:
I'll try adjusting the FLAG when I have some time and let you know if there is any difference.
Joseph
Very glad to see that you found the issue and working solution! Thank you for responding and adding more insight.