From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrzej Hajda Subject: Re: [PATCH v3 2/2] drm/panel: Add driver for Samsung S6E63M0 panel Date: Mon, 11 Feb 2019 16:35:19 +0100 Message-ID: <82ccf31e-13c3-1cd5-d87a-0c3291eb0224@samsung.com> References: <20190202142748.6830-1-pawel.mikolaj.chmiel@gmail.com> <20190202142748.6830-2-pawel.mikolaj.chmiel@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Return-path: In-Reply-To: <20190202142748.6830-2-pawel.mikolaj.chmiel@gmail.com> Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org To: =?UTF-8?Q?Pawe=c5=82_Chmiel?= , thierry.reding@gmail.com Cc: mark.rutland@arm.com, devicetree@vger.kernel.org, airlied@linux.ie, linux-kernel@vger.kernel.org, krzk@kernel.org, robh+dt@kernel.org, dri-devel@lists.freedesktop.org, m.szyprowski@samsung.com List-Id: devicetree@vger.kernel.org On 02.02.2019 15:27, Paweł Chmiel wrote: > This patch adds Samsung S6E63M0 AMOLED LCD panel driver, connected over > spi. It's based on already removed, non dt s6e63m0 driver and > panel-samsung-ld9040. It can be found for example in some of Samsung > Aries based phones. > > Signed-off-by: Paweł Chmiel > Reviewed-by: Sam Ravnborg > --- > Changes from v2: > - VIDEOMODE_HELPERS is not needed in Kconfig > - Added help text to Kconfig > - Remove unneeded videomode includes/fields > - Add sentinel comment in s6e63m0_of_match struct > - Handle errors during registration of backlight device. We shouldn't > register panel if we fail to register backlight device > - Added Reviewed-by > > Changes from v1: > - Correct order of Kconfig/Makefile entry > - Fix SPDX tag, so it matches value of MODULE_LICENSE > - Remove inclusion of drmP.h > - Fix code formatting > - Use DRM_DEV_ERROR/DEBUG > - Extract hardcoded values > - Remove possibility to change gamma through sysfs, leaving only one > gamma table values > - Fix reset_gpio handling, so it'll be asserted in power_on and > deasserted in power_off. Also do it before turning voltage on. > - Disable backlight and enter sleep mode in disable callback. > Previously it was done in unprepare > - Enable display and backlight in enable callback. Previously it was > done in prepare > - Hardcode display timings and delays. Previously they were readed > from device tree > - We're using SPDX, so we don't need to have license body > - Use MIPI_DCS_EXIT_SLEEP_MODE and MIPI_DCS_SET_DISPLAY_ON > - Rename MAX_GAMMA_LEVEL to NUM_GAMMA_LEVELS > - Ommit get_brightness callback > - Use backlight_enable/disable API, like it's done in other panel > drivers (for example panel-simple) > - Make set_brightness called only from backlight api, like it's done > in other panel drivers (for example panel-simple). > - Reset gpio should be set to GPIOD_OUT_HIGH. It's declared as active > low in device tree > - Don't call power_off in remove callback > --- > drivers/gpu/drm/panel/Kconfig | 9 + > drivers/gpu/drm/panel/Makefile | 1 + > drivers/gpu/drm/panel/panel-samsung-s6e63m0.c | 517 ++++++++++++++++++ > 3 files changed, 527 insertions(+) > create mode 100644 drivers/gpu/drm/panel/panel-samsung-s6e63m0.c > > diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig > index 3f3537719beb..45e9ab4b7857 100644 > --- a/drivers/gpu/drm/panel/Kconfig > +++ b/drivers/gpu/drm/panel/Kconfig > @@ -158,6 +158,15 @@ config DRM_PANEL_SAMSUNG_S6E63J0X03 > depends on BACKLIGHT_CLASS_DEVICE > select VIDEOMODE_HELPERS > > +config DRM_PANEL_SAMSUNG_S6E63M0 > + tristate "Samsung S6E63M0 RGB/SPI panel" > + depends on OF > + depends on SPI > + depends on BACKLIGHT_CLASS_DEVICE > + help > + Say Y here if you want to enable support for Samsung s6e63m0 > + AMOLED LCD panel. > + > config DRM_PANEL_SAMSUNG_S6E8AA0 > tristate "Samsung S6E8AA0 DSI video mode panel" > depends on OF > diff --git a/drivers/gpu/drm/panel/Makefile b/drivers/gpu/drm/panel/Makefile > index 4396658a7996..4507a2d253ac 100644 > --- a/drivers/gpu/drm/panel/Makefile > +++ b/drivers/gpu/drm/panel/Makefile > @@ -16,6 +16,7 @@ obj-$(CONFIG_DRM_PANEL_SAMSUNG_LD9040) += panel-samsung-ld9040.o > obj-$(CONFIG_DRM_PANEL_SAMSUNG_S6D16D0) += panel-samsung-s6d16d0.o > obj-$(CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2) += panel-samsung-s6e3ha2.o > obj-$(CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03) += panel-samsung-s6e63j0x03.o > +obj-$(CONFIG_DRM_PANEL_SAMSUNG_S6E63M0) += panel-samsung-s6e63m0.o > obj-$(CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0) += panel-samsung-s6e8aa0.o > obj-$(CONFIG_DRM_PANEL_SEIKO_43WVF1G) += panel-seiko-43wvf1g.o > obj-$(CONFIG_DRM_PANEL_SHARP_LQ101R1SX01) += panel-sharp-lq101r1sx01.o > diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c b/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c > new file mode 100644 > index 000000000000..4312aa3e4386 > --- /dev/null > +++ b/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c > @@ -0,0 +1,517 @@ > +// SPDX-License-Identifier: GPL-2.0 > +/* > + * S6E63M0 AMOLED LCD drm_panel driver. > + * > + * Copyright (C) 2019 Paweł Chmiel > + * Derived from drivers/gpu/drm/panel-samsung-ld9040.c > + * > + * Andrzej Hajda > + */ > + > +#include > +#include > +#include > + > +#include > +#include > +#include > +#include > +#include > +#include > + > +#include