Re: [PATCH 5/6] drm/panel: simple: Add NewEast Optoelectronics CO., LTD WJFH116008A panel support
From: Vasily Khoruzhick
Date: Thu Feb 20 2020 - 16:37:56 EST
On Thu, Feb 20, 2020 at 5:59 AM Laurent Pinchart
<laurent.pinchart@xxxxxxxxxxxxxxxx> wrote:
>
> Hi Vasily,
Hi Laurent,
>
> Thank you for the patch.
>
> On Thu, Feb 20, 2020 at 12:35:07AM -0800, Vasily Khoruzhick wrote:
> > This commit adds support for the NewEast Optoelectronics CO., LTD
> > WJFH116008A 11.6" 1920x1080 TFT LCD panel.
> >
> > Signed-off-by: Vasily Khoruzhick <anarsoul@xxxxxxxxx>
> > ---
> > drivers/gpu/drm/panel/panel-simple.c | 47 ++++++++++++++++++++++++++++
> > 1 file changed, 47 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
> > index e14c14ac62b5..aa04afaf3d26 100644
> > --- a/drivers/gpu/drm/panel/panel-simple.c
> > +++ b/drivers/gpu/drm/panel/panel-simple.c
> > @@ -2224,6 +2224,50 @@ static const struct panel_desc netron_dy_e231732 = {
> > .bus_format = MEDIA_BUS_FMT_RGB666_1X18,
> > };
> >
> > +static const struct drm_display_mode neweast_wjfh116008a_modes[] = {
> > +{
> > + .clock = 138500,
> > + .hdisplay = 1920,
> > + .hsync_start = 1920 + 48,
> > + .hsync_end = 1920 + 48 + 32,
> > + .htotal = 1920 + 48 + 32 + 80,
> > + .vdisplay = 1080,
> > + .vsync_start = 1080 + 3,
> > + .vsync_end = 1080 + 3 + 5,
> > + .vtotal = 1080 + 3 + 5 + 23,
> > + .vrefresh = 60,
> > + .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
> > +}, {
> > + .clock = 110920,
> > + .hdisplay = 1920,
> > + .hsync_start = 1920 + 48,
> > + .hsync_end = 1920 + 48 + 32,
> > + .htotal = 1920 + 48 + 32 + 80,
> > + .vdisplay = 1080,
> > + .vsync_start = 1080 + 3,
> > + .vsync_end = 1080 + 3 + 5,
> > + .vtotal = 1080 + 3 + 5 + 23,
> > + .vrefresh = 48,
> > + .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
> > +} };
>
> This should be indented one step to the right, see boe_nv101wxmn51_modes
> for instance.
Will do.
> The only different between the two modes is the clock, leading to
> different refresh rates. Are only those two clock frequencies supported,
> or does the panel support anything in-between as well ? In the latter
> case, would it make sense to use display_timing instead of
> drm_display_mode ? See dlc_dlc0700yzg_1_timing for an example.
These are coming from EDID. The datasheet [1] says typical frequency
is 138.5MHz and min/max are not specified, so I'm not sure whether it
supports anything in between. I did check that both modes work though.
[1] http://files.pine64.org/doc/datasheet/pinebook/11.6inches-1080P-IPS-LCD-Panel-spec-WJFH116008A.pdf
> > +
> > +static const struct panel_desc neweast_wjfh116008a = {
> > + .modes = neweast_wjfh116008a_modes,
> > + .num_modes = 2,
> > + .bpc = 6,
> > + .size = {
> > + .width = 260,
> > + .height = 150,
> > + },
> > + .delay = {
> > + .prepare = 110,
> > + .enable = 20,
> > + .unprepare = 500,
> > + },
> > + .bus_format = MEDIA_BUS_FMT_RGB666_1X18,
> > + .connector_type = DRM_MODE_CONNECTOR_eDP,
> > +};
> > +
> > static const struct drm_display_mode newhaven_nhd_43_480272ef_atxl_mode = {
> > .clock = 9000,
> > .hdisplay = 480,
> > @@ -3399,6 +3443,9 @@ static const struct of_device_id platform_of_match[] = {
> > }, {
> > .compatible = "netron-dy,e231732",
> > .data = &netron_dy_e231732,
> > + }, {
> > + .compatible = "neweast,wjfh116008a",
> > + .data = &neweast_wjfh116008a,
> > }, {
> > .compatible = "newhaven,nhd-4.3-480272ef-atxl",
> > .data = &newhaven_nhd_43_480272ef_atxl,
>
> --
> Regards,
>
> Laurent Pinchart