Message ID | 20190228185854.11824-1-paul@crapouillou.net (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/2] drm/panel: simple: Add Sharp LS020B1DD01D panel support | expand |
Hi Paul. On Thu, Feb 28, 2019 at 03:58:52PM -0300, Paul Cercueil wrote: > The Sharp LS020B1DD01D is a simple 2.0" 240x160 16-bit TFT panel. > > Signed-off-by: Paul Cercueil <paul@crapouillou.net> > Tested-by: Artur Rojek <contact@artur-rojek.eu> > --- > drivers/gpu/drm/panel/panel-simple.c | 28 ++++++++++++++++++++++++++++ > 1 file changed, 28 insertions(+) > > diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c > index 9e8218f6a3f2..3ab604f5477e 100644 > --- a/drivers/gpu/drm/panel/panel-simple.c > +++ b/drivers/gpu/drm/panel/panel-simple.c > @@ -2278,6 +2278,31 @@ static const struct panel_desc sharp_lq150x1lg11 = { > .bus_format = MEDIA_BUS_FMT_RGB565_1X16, > }; > > +static const struct display_timing sharp_ls020b1dd01d_timing = { > + .pixelclock = { 2000000, 4200000, 5000000 }, > + .hactive = { 240, 240, 240 }, > + .hfront_porch = { 66, 66, 66 }, > + .hback_porch = { 1, 1, 1 }, > + .hsync_len = { 1, 1, 1 }, > + .vactive = { 160, 160, 160 }, > + .vfront_porch = { 52, 52, 52 }, > + .vback_porch = { 6, 6, 6 }, > + .vsync_len = { 10, 10, 10 }, > + .flags = DISPLAY_FLAGS_HSYNC_HIGH | DISPLAY_FLAGS_VSYNC_LOW, > +}; > + > +static const struct panel_desc sharp_ls020b1dd01d = { > + .timings = &sharp_ls020b1dd01d_timing, > + .num_timings = 1, > + .bpc = 6, > + .size = { > + .width = 42, > + .height = 28, > + }, > + .bus_format = MEDIA_BUS_FMT_RGB565_1X16, > + .bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_NEGEDGE, > +}; > + > static const struct drm_display_mode shelly_sca07010_bfn_lnn_mode = { > .clock = 33300, > .hdisplay = 800, > @@ -2767,6 +2792,9 @@ static const struct of_device_id platform_of_match[] = { > .compatible = "sharp,lq150x1lg11", > .data = &sharp_lq150x1lg11, > }, { > + .compatible = "sharp,ls020b1dd01d", > + .data = &sharp_ls020b1dd01d, > + }, { For all three patches I am missing dt-bindings documentation. also for all three patches you get a "+1" for adding all of .flags, .bus_format, .bus_flags. Sam
Hi, Le ven. 1 mars 2019 à 19:24, Sam Ravnborg <sam@ravnborg.org> a écrit : > Hi Paul. > > On Thu, Feb 28, 2019 at 03:58:52PM -0300, Paul Cercueil wrote: >> The Sharp LS020B1DD01D is a simple 2.0" 240x160 16-bit TFT panel. >> >> Signed-off-by: Paul Cercueil <paul@crapouillou.net> >> Tested-by: Artur Rojek <contact@artur-rojek.eu> >> --- >> drivers/gpu/drm/panel/panel-simple.c | 28 >> ++++++++++++++++++++++++++++ >> 1 file changed, 28 insertions(+) >> >> diff --git a/drivers/gpu/drm/panel/panel-simple.c >> b/drivers/gpu/drm/panel/panel-simple.c >> index 9e8218f6a3f2..3ab604f5477e 100644 >> --- a/drivers/gpu/drm/panel/panel-simple.c >> +++ b/drivers/gpu/drm/panel/panel-simple.c >> @@ -2278,6 +2278,31 @@ static const struct panel_desc >> sharp_lq150x1lg11 = { >> .bus_format = MEDIA_BUS_FMT_RGB565_1X16, >> }; >> >> +static const struct display_timing sharp_ls020b1dd01d_timing = { >> + .pixelclock = { 2000000, 4200000, 5000000 }, >> + .hactive = { 240, 240, 240 }, >> + .hfront_porch = { 66, 66, 66 }, >> + .hback_porch = { 1, 1, 1 }, >> + .hsync_len = { 1, 1, 1 }, >> + .vactive = { 160, 160, 160 }, >> + .vfront_porch = { 52, 52, 52 }, >> + .vback_porch = { 6, 6, 6 }, >> + .vsync_len = { 10, 10, 10 }, >> + .flags = DISPLAY_FLAGS_HSYNC_HIGH | DISPLAY_FLAGS_VSYNC_LOW, >> +}; >> + >> +static const struct panel_desc sharp_ls020b1dd01d = { >> + .timings = &sharp_ls020b1dd01d_timing, >> + .num_timings = 1, >> + .bpc = 6, >> + .size = { >> + .width = 42, >> + .height = 28, >> + }, >> + .bus_format = MEDIA_BUS_FMT_RGB565_1X16, >> + .bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_NEGEDGE, >> +}; >> + >> static const struct drm_display_mode shelly_sca07010_bfn_lnn_mode >> = { >> .clock = 33300, >> .hdisplay = 800, >> @@ -2767,6 +2792,9 @@ static const struct of_device_id >> platform_of_match[] = { >> .compatible = "sharp,lq150x1lg11", >> .data = &sharp_lq150x1lg11, >> }, { >> + .compatible = "sharp,ls020b1dd01d", >> + .data = &sharp_ls020b1dd01d, >> + }, { > For all three patches I am missing dt-bindings documentation. Yes, I looked at Documentation/devicetree/bindings/display/panel/simple-panel.txt, and saw that it was never documented with new compatible strings, so I thought that for this driver it wasn't needed. I didn't see the other files. I'll add the dt-bindings doc in V2. > also for all three patches you get a "+1" for adding all of > .flags, .bus_format, .bus_flags. > > Sam Thanks, -Paul
diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c index 9e8218f6a3f2..3ab604f5477e 100644 --- a/drivers/gpu/drm/panel/panel-simple.c +++ b/drivers/gpu/drm/panel/panel-simple.c @@ -2278,6 +2278,31 @@ static const struct panel_desc sharp_lq150x1lg11 = { .bus_format = MEDIA_BUS_FMT_RGB565_1X16, }; +static const struct display_timing sharp_ls020b1dd01d_timing = { + .pixelclock = { 2000000, 4200000, 5000000 }, + .hactive = { 240, 240, 240 }, + .hfront_porch = { 66, 66, 66 }, + .hback_porch = { 1, 1, 1 }, + .hsync_len = { 1, 1, 1 }, + .vactive = { 160, 160, 160 }, + .vfront_porch = { 52, 52, 52 }, + .vback_porch = { 6, 6, 6 }, + .vsync_len = { 10, 10, 10 }, + .flags = DISPLAY_FLAGS_HSYNC_HIGH | DISPLAY_FLAGS_VSYNC_LOW, +}; + +static const struct panel_desc sharp_ls020b1dd01d = { + .timings = &sharp_ls020b1dd01d_timing, + .num_timings = 1, + .bpc = 6, + .size = { + .width = 42, + .height = 28, + }, + .bus_format = MEDIA_BUS_FMT_RGB565_1X16, + .bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_NEGEDGE, +}; + static const struct drm_display_mode shelly_sca07010_bfn_lnn_mode = { .clock = 33300, .hdisplay = 800, @@ -2767,6 +2792,9 @@ static const struct of_device_id platform_of_match[] = { .compatible = "sharp,lq150x1lg11", .data = &sharp_lq150x1lg11, }, { + .compatible = "sharp,ls020b1dd01d", + .data = &sharp_ls020b1dd01d, + }, { .compatible = "shelly,sca07010-bfn-lnn", .data = &shelly_sca07010_bfn_lnn, }, {