On Sat, Jul 24, 2021 at 01:33:58PM +0300, Artjom Vejsel wrote: > The Gopher 2b LCD panel is used in Gopher 2b handhelds. > It's simple panel with NewVision NV3047 driver, but SPI lines are not connected. > It has no specific name, since it's unique to that handhelds. > lot name at AliExpress: 4.3 inch 40PIN TFT LCD Screen COG NV3047 Drive IC 480(RGB)*272 No Touch 24Bit RGB Interface > > Signed-off-by: Artjom Vejsel <akawolf0@xxxxxxxxx> > --- > drivers/gpu/drm/panel/panel-simple.c | 43 ++++++++++++++++++++++++++++ > 1 file changed, 43 insertions(+) > > diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c > index 9b286bd4444f..9676e25accb3 100644 > --- a/drivers/gpu/drm/panel/panel-simple.c > +++ b/drivers/gpu/drm/panel/panel-simple.c > @@ -4306,6 +4306,46 @@ static const struct panel_desc yes_optoelectronics_ytc700tlag_05_201c = { > .connector_type = DRM_MODE_CONNECTOR_LVDS, > }; > > +static const struct drm_display_mode qishenglong_gopher2b_lcd_panel_modes[] = { > + { /* 60 Hz */ > + .clock = 10800, > + .hdisplay = 480, > + .hsync_start = 480 + 77, > + .hsync_end = 480 + 77 + 41, > + .htotal = 480 + 77 + 41 + 2, > + .vdisplay = 272, > + .vsync_start = 272 + 16, > + .vsync_end = 272 + 16 + 10, > + .vtotal = 272 + 16 + 10 + 2, > + .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC, > + }, > + { /* 50 Hz */ > + .clock = 10800, > + .hdisplay = 480, > + .hsync_start = 480 + 17, > + .hsync_end = 480 + 17 + 41, > + .htotal = 480 + 17 + 41 + 2, > + .vdisplay = 272, > + .vsync_start = 272 + 116, > + .vsync_end = 272 + 116 + 10, > + .vtotal = 272 + 116 + 10 + 2, > + .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC, > + }, > +}; > + > +static const struct panel_desc qishenglong_gopher2b_lcd_panel = { > + .modes = qishenglong_gopher2b_lcd_panel_modes, > + .num_modes = ARRAY_SIZE(qishenglong_gopher2b_lcd_panel_modes), > + .bpc = 8, > + .size = { > + .width = 95, > + .height = 54, > + }, > + .bus_format = MEDIA_BUS_FMT_RGB888_1X24, > + .bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_SAMPLE_NEGEDGE, > + .connector_type = DRM_MODE_CONNECTOR_DPI, > +}; > + > static const struct drm_display_mode arm_rtsm_mode[] = { > { > .clock = 65000, > @@ -4753,6 +4793,9 @@ static const struct of_device_id platform_of_match[] = { > }, { > .compatible = "yes-optoelectronics,ytc700tlag-05-201c", > .data = &yes_optoelectronics_ytc700tlag_05_201c, > + }, { > + .compatible = "qishenglong,gopher2b-lcd-panel", > + .data = &qishenglong_gopher2b_lcd_panel, > }, { This list shall also be sorted alphabetically, after the compatible. Same goes for the definition of the variable &qishenglong_gopher2b_lcd_panel that shall be listed in the same order as here. Sorry for the nit-picking - but if we do not ask to have it fixed then we quickly have a mess. Sam