From mboxrd@z Thu Jan 1 00:00:00 1970 From: a.hajda@samsung.com (Andrzej Hajda) Date: Mon, 29 Dec 2014 11:50:35 +0100 Subject: [PATCH RFC v6 16/21] drm: panel: Add support for Himax HX8369A MIPI DSI panel In-Reply-To: <54A127D2.7080904@freescale.com> References: <1419835168-9034-1-git-send-email-Ying.Liu@freescale.com> <1419835168-9034-17-git-send-email-Ying.Liu@freescale.com> <54A11A65.1040509@samsung.com> <54A127D2.7080904@freescale.com> Message-ID: <54A131FB.8040809@samsung.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On 12/29/2014 11:07 AM, Liu Ying wrote: > On 12/29/2014 05:09 PM, Andrzej Hajda wrote: >> On 12/29/2014 07:39 AM, Liu Ying wrote: >>> This patch adds support for Himax HX8369A MIPI DSI panel. >>> >>> Signed-off-by: Liu Ying >>> --- >>> v5->v6: >>> * Make the checkpatch.pl script be happier. >>> * Do not set the dsi channel number to be zero in probe(), because the MIPI DSI >>> bus driver would set it. >>> >>> v4->v5: >>> * Address Andrzej Hajda's comments. >>> * Get the bs-gpios property instead of the bs[3:0]-gpios properties. >>> * Implement error propagation for panel register configurations. >>> * Other minor changes to improve the code quality. >>> >>> v3->v4: >>> * Move the relevant dt-bindings to a separate patch to address Stefan >>> Wahren's comment. >>> >>> v2->v3: >>> * Sort the included header files alphabetically. >>> >>> v1->v2: >>> * Address almost all comments from Thierry Reding. >>> * Remove several DT properties as they can be implied by the compatible string. >>> * Add the HIMAX/himax prefixes to the driver's Kconfig name and driver name. >>> * Move the driver's Makefile entry place to sort the entries alphabetically. >>> * Reuse several standard DCS functions instead of inventing wheels. >>> * Move the panel resetting and power logics to the driver probe/remove stages. >>> This may simplify panel prepare/unprepare hooks. The power consumption should >>> not change a lot at DPMS since the panel enters sleep mode at that time. >>> * Add the module author. >>> * Other minor changes, such as coding style issues. >>> >>> drivers/gpu/drm/panel/Kconfig | 5 + >>> drivers/gpu/drm/panel/Makefile | 1 + >>> drivers/gpu/drm/panel/panel-himax-hx8369a.c | 614 ++++++++++++++++++++++++++++ >>> 3 files changed, 620 insertions(+) >>> create mode 100644 drivers/gpu/drm/panel/panel-himax-hx8369a.c >>> >>> diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig >>> index 024e98e..81b0bf0 100644 >>> --- a/drivers/gpu/drm/panel/Kconfig >>> +++ b/drivers/gpu/drm/panel/Kconfig >>> @@ -16,6 +16,11 @@ config DRM_PANEL_SIMPLE >>> that it can be automatically turned off when the panel goes into a >>> low power state. >>> >>> +config DRM_PANEL_HIMAX_HX8369A >>> + tristate "Himax HX8369A panel" >>> + depends on OF >>> + select DRM_MIPI_DSI >>> + >>> config DRM_PANEL_LD9040 >>> tristate "LD9040 RGB/SPI panel" >>> depends on OF && SPI >>> diff --git a/drivers/gpu/drm/panel/Makefile b/drivers/gpu/drm/panel/Makefile >>> index 4b2a043..d5dbe06 100644 >>> --- a/drivers/gpu/drm/panel/Makefile >>> +++ b/drivers/gpu/drm/panel/Makefile >>> @@ -1,4 +1,5 @@ >>> obj-$(CONFIG_DRM_PANEL_SIMPLE) += panel-simple.o >>> +obj-$(CONFIG_DRM_PANEL_HIMAX_HX8369A) += panel-himax-hx8369a.o >>> obj-$(CONFIG_DRM_PANEL_LD9040) += panel-ld9040.o >>> obj-$(CONFIG_DRM_PANEL_S6E8AA0) += panel-s6e8aa0.o >>> obj-$(CONFIG_DRM_PANEL_SHARP_LQ101R1SX01) += panel-sharp-lq101r1sx01.o >>> diff --git a/drivers/gpu/drm/panel/panel-himax-hx8369a.c b/drivers/gpu/drm/panel/panel-himax-hx8369a.c >>> new file mode 100644 >>> index 0000000..eee36a7 >>> --- /dev/null >>> +++ b/drivers/gpu/drm/panel/panel-himax-hx8369a.c >>> @@ -0,0 +1,614 @@ >>> +/* >>> + * Himax HX8369A panel driver. >>> + * >>> + * Copyright (C) 2011-2014 Freescale Semiconductor, Inc. >>> + * >>> + * This program is free software; you can redistribute it and/or modify >>> + * it under the terms of the GNU General Public License version 2 as >>> + * published by the Free Software Foundation. >>> + * >>> + * This driver is based on Samsung s6e8aa0 panel driver. >>> + */ >>> + >>> +#include >>> +#include >>> +#include >>> + >>> +#include >>> +#include >>> +#include >>> + >>> +#include