From patchwork Wed Jun 11 18:27:02 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ajay Kumar X-Patchwork-Id: 4338911 Return-Path: X-Original-To: patchwork-dri-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 35376BEEE9 for ; Thu, 12 Jun 2014 00:23:31 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id E95452034A for ; Thu, 12 Jun 2014 00:23:29 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id 1FE2B202DD for ; Thu, 12 Jun 2014 00:23:28 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 43F6D6E8CE; Wed, 11 Jun 2014 17:23:25 -0700 (PDT) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mailout4.samsung.com (mailout4.samsung.com [203.254.224.34]) by gabe.freedesktop.org (Postfix) with ESMTP id BABDE6E892 for ; Wed, 11 Jun 2014 11:29:19 -0700 (PDT) Received: from epcpsbgr3.samsung.com (u143.gpu120.samsung.co.kr [203.254.230.143]) by mailout4.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0N7000L8KOOULA90@mailout4.samsung.com> for dri-devel@lists.freedesktop.org; Thu, 12 Jun 2014 03:29:19 +0900 (KST) Received: from epcpsbgm2.samsung.com ( [172.20.52.126]) by epcpsbgr3.samsung.com (EPCPMTA) with SMTP id 93.2D.14704.EFF98935; Thu, 12 Jun 2014 03:29:18 +0900 (KST) X-AuditID: cbfee68f-b7fef6d000003970-4b-53989ffee396 Received: from epmmp2 ( [203.254.227.17]) by epcpsbgm2.samsung.com (EPCPMTA) with SMTP id 30.0B.07139.EFF98935; Thu, 12 Jun 2014 03:29:18 +0900 (KST) Received: from chromebld-server.sisodomain.com ([107.108.73.106]) by mmp2.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTPA id <0N70000F9OO6ED50@mmp2.samsung.com>; Thu, 12 Jun 2014 03:29:18 +0900 (KST) From: Ajay Kumar To: dri-devel@lists.freedesktop.org, linux-samsung-soc@vger.kernel.org, devicetree@vger.kernel.org Subject: [PATCH V4 04/10] drm/panel: Add driver for lvds/edp based panels Date: Wed, 11 Jun 2014 23:57:02 +0530 Message-id: <1402511228-18945-5-git-send-email-ajaykumar.rs@samsung.com> X-Mailer: git-send-email 1.7.9.5 In-reply-to: <1402511228-18945-1-git-send-email-ajaykumar.rs@samsung.com> References: <1402511228-18945-1-git-send-email-ajaykumar.rs@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprPIsWRmVeSWpSXmKPExsWyRsSkTvff/BnBBjMemlsceH+QxWLDm4XM Fgsf3mW2mH/kHKvFla/v2Swm3Z/AYvF91xd2ixnn9zFZzDv0m9Fi1eEN7BZTFh1mtXi+8Aez xdyDuRY/d81jceDzmN1wkcVj77cFLB47Z91l91iwqdTjfvdxJo++LasYPT5vkgtgj+KySUnN ySxLLdK3S+DK+L9oK2vBjKiKY78dGxg/enUxcnJICJhINK2ZzAJhi0lcuLeerYuRi0NIYCmj xNbNu5lhirpvzGGHSExnlGhtmQZVNYFJYuqvI4wgVWwC2hLbpt8EGsXBISKQIvH8Lx9IDbPA AiaJXXsgVggLeEp8/HiJCcRmEVCV2PpzIxuIzSvgIfGv5R1Yr4SAgsScSTYgJidQ+e7dgSAV QkAVf+c1sICMlBC4xS4xseMVC8QYAYlvkw9BtcpKbDoAdbOkxMEVN1gmMAovYGRYxSiaWpBc UJyUXmSsV5yYW1yal66XnJ+7iREYOaf/PevfwXj3gPUhxmSgcROZpUST84GRl1cSb2hsZmRh amJqbGRuaUaasJI47/2HSUFCAumJJanZqakFqUXxRaU5qcWHGJk4OKUaGPk9jjhV3T+07tCr brn/F1YvnCFdezy6Zsm5nP5X7/xnH2y4kdPjynEj5+H1+V3bDs/10/3B9O9to8reCu6pRV+O hP+cLbFKeX8PjzUje61kxGa2z7VdtfeFWLx/uqiv4jLnMRE2aGqMvvjJO+htb4H1escj35fW FkT9fNbWe2zOabO9G/aFMyqxFGckGmoxFxUnAgCG/ekmsgIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrDIsWRmVeSWpSXmKPExsVy+t9jQd1/82cEG0xeqGNx4P1BFosNbxYy Wyx8eJfZYv6Rc6wWV76+Z7OYdH8Ci8X3XV/YLWac38dkMe/Qb0aLVYc3sFtMWXSY1eL5wh/M FnMP5lr83DWPxYHPY3bDRRaPvd8WsHjsnHWX3WPBplKP+93HmTz6tqxi9Pi8SS6APaqB0SYj NTEltUghNS85PyUzL91WyTs43jne1MzAUNfQ0sJcSSEvMTfVVsnFJ0DXLTMH6GQlhbLEnFKg UEBicbGSvh2mCaEhbroWMI0Rur4hQXA9RgZoIGENY8b/RVtZC2ZEVRz77djA+NGri5GTQ0LA RKL7xhx2CFtM4sK99WxdjFwcQgLTGSVaW6ZBOROYJKb+OsIIUsUmoC2xbfpNli5GDg4RgRSJ 53/5QGqYBRYwSezaM5kFpEZYwFPi48dLTCA2i4CqxNafG9lAbF4BD4l/Le/AeiUEFCTmTLIB MTmBynfvDgSpEAKq+DuvgWUCI+8CRoZVjKKpBckFxUnpuUZ6xYm5xaV56XrJ+bmbGMFx+Ux6 B+OqBotDjAIcjEo8vAy1M4KFWBPLiitzDzFKcDArifBGNAOFeFMSK6tSi/Lji0pzUosPMSYD 3TSRWUo0OR+YMvJK4g2NTcxNjU0tTSxMzCxJE1YS5z3Yah0oJJCeWJKanZpakFoEs4WJg1Oq gbE0Xs2NL7jsiu7T9beN2optL/kcezs3Od3kvIem/w3jpFUbFrwRyggLnrC1u26fg+bpMAGV 5idO7GlLS7kcnu6NCt1yqo/5r4BSfcb8w/Mm+yzzSnnq3DBB3EF+4oJPXobHi5KPx0kbX7Xr ymdeNFVM+ZrIntMbL4jvuWiwdKZXP0P71oLaXUosxRmJhlrMRcWJABa5ItkPAwAA DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected X-Mailman-Approved-At: Wed, 11 Jun 2014 17:23:23 -0700 Cc: seanpaul@google.com, daniel.vetter@ffwll.ch, joshi@samsung.com, ajaynumb@gmail.com, marcheu@chromium.org, prashanth.g@samsung.com, Ajay Kumar , Rahul Sharma X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Spam-Status: No, score=-4.8 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP This patch adds a simple driver to handle all the LCD and LED powerup/down routines needed to support eDP/LVDS panels. The LCD and LED units are usually powered up via regulators, and almost on all boards, we will have a BACKLIGHT_EN pin to enable/ disable the backlight. Sometimes, we can have LCD_EN switches as well. The routines in this driver can be used to control panel power sequence on such boards. Signed-off-by: Ajay Kumar Signed-off-by: Rahul Sharma --- .../devicetree/bindings/panel/panel-lvds.txt | 50 ++++ drivers/gpu/drm/panel/Kconfig | 10 + drivers/gpu/drm/panel/Makefile | 1 + drivers/gpu/drm/panel/panel-lvds.c | 262 ++++++++++++++++++++ 4 files changed, 323 insertions(+) create mode 100644 Documentation/devicetree/bindings/panel/panel-lvds.txt create mode 100644 drivers/gpu/drm/panel/panel-lvds.c diff --git a/Documentation/devicetree/bindings/panel/panel-lvds.txt b/Documentation/devicetree/bindings/panel/panel-lvds.txt new file mode 100644 index 0000000..7cb6084 --- /dev/null +++ b/Documentation/devicetree/bindings/panel/panel-lvds.txt @@ -0,0 +1,50 @@ +panel interface for eDP/lvds panels + +Required properties: + - compatible: "panel-lvds" + +Optional properties: + -lcd-en-gpio: + panel LCD poweron GPIO. + Indicates which GPIO needs to be powered up as output + to powerup/enable the switch to the LCD panel. + -led-en-gpio: + panel LED enable GPIO. + Indicates which GPIO needs to be powered up as output + to enable the backlight. + -panel-prepare-delay: + delay value in ms required for panel_prepare process + Delay in ms needed for the panel LCD unit to + powerup completely. + ex: delay needed till eDP panel throws HPD. + delay needed so that we cans tart reading edid. + -panel-enable-delay: + delay value in ms required for panel_enable process + Delay in ms needed for the panel backlight/LED unit + to powerup, and delay needed between video_enable and + backlight_enable. + -panel-disable-delay: + delay value in ms required for panel_disable process + Delay in ms needed for the panel backlight/LED unit + powerdown, and delay needed between backlight_disable + and video_disable. + -panel-unprepare-delay: + delay value in ms required for panel_post_disable process + Delay in ms needed for the panel LCD unit to + to powerdown completely, and the minimum delay needed + before powering it on again. + -panel-width-mm: physical panel width [mm] + -panel-height-mm: physical panel height [mm] + +Example: + + panel-lvds { + compatible = "panel-lvds"; + led-en-gpio = <&gpx3 0 1>; + panel-prepare-delay = <40>; + panel-enable-delay = <20>; + panel-disable-delay = <20>; + panel-unprepare-delay = <30>; + panel-width-mm = <256>; + panel-height-mm = <144>; + }; diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig index 4ec874d..8fe7ee5 100644 --- a/drivers/gpu/drm/panel/Kconfig +++ b/drivers/gpu/drm/panel/Kconfig @@ -30,4 +30,14 @@ config DRM_PANEL_S6E8AA0 select DRM_MIPI_DSI select VIDEOMODE_HELPERS +config DRM_PANEL_EDP_LVDS + tristate "support for eDP/LVDS panels" + depends on OF && DRM_PANEL + select VIDEOMODE_HELPERS + help + DRM panel driver for direct eDP panels or LVDS connected + via DP bridges, that need at most a regulator for LCD unit, + a regulator for LED unit and/or enable GPIOs for LCD or LED units. + Delay values can also be specified to support powerup and + powerdown process. endmenu diff --git a/drivers/gpu/drm/panel/Makefile b/drivers/gpu/drm/panel/Makefile index 8b92921..eaafa01 100644 --- a/drivers/gpu/drm/panel/Makefile +++ b/drivers/gpu/drm/panel/Makefile @@ -1,3 +1,4 @@ obj-$(CONFIG_DRM_PANEL_SIMPLE) += panel-simple.o obj-$(CONFIG_DRM_PANEL_LD9040) += panel-ld9040.o obj-$(CONFIG_DRM_PANEL_S6E8AA0) += panel-s6e8aa0.o +obj-$(CONFIG_DRM_PANEL_EDP_LVDS) += panel-lvds.o diff --git a/drivers/gpu/drm/panel/panel-lvds.c b/drivers/gpu/drm/panel/panel-lvds.c new file mode 100644 index 0000000..2124fcb --- /dev/null +++ b/drivers/gpu/drm/panel/panel-lvds.c @@ -0,0 +1,262 @@ +/* + * panel driver for lvds and eDP panels + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd + * + * Ajay Kumar + * + * 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. + */ + +#include +#include +#include +#include +#include +#include + +#include