From patchwork Fri Aug 3 02:49:31 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Abhinav Kumar X-Patchwork-Id: 10554387 X-Patchwork-Delegate: agross@codeaurora.org Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 222F315E9 for ; Fri, 3 Aug 2018 02:49:45 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0FB172C451 for ; Fri, 3 Aug 2018 02:49:45 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 018AD2C499; Fri, 3 Aug 2018 02:49:44 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 855A32C451 for ; Fri, 3 Aug 2018 02:49:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727356AbeHCEnq (ORCPT ); Fri, 3 Aug 2018 00:43:46 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:39468 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726489AbeHCEnp (ORCPT ); Fri, 3 Aug 2018 00:43:45 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 55D0D60B11; Fri, 3 Aug 2018 02:49:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1533264581; bh=gpe+VFvHyxMrdGsIBpokeWC6GKjXKR+NVrjXgI5EDX4=; h=From:To:Cc:Subject:Date:From; b=llzQPptL9PFfNHiXJLiHrhXtV4DiWev3H+aar4x/83g6bldd4umTWoOKXfWGYBBRa OISMxOo/QlKIg6mqvvvXvYzhIduyHzaAlWeIl+kLQmITQ2f1B0SaKP9OBLAynaJLRx 9MdPoRypH6tkv0dQ/y2UCeb6K9+O2zN7okTEPXyo= Received: from abhinavk-linux.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: abhinavk@smtp.codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id 13917602B7; Fri, 3 Aug 2018 02:49:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1533264578; bh=gpe+VFvHyxMrdGsIBpokeWC6GKjXKR+NVrjXgI5EDX4=; h=From:To:Cc:Subject:Date:From; b=aTwG5fMLEXVSHP+TRiP3PC5nn+5d03OtwWWIhkVjY2D3fPJHKM/pLj6+ZhJIzbEB7 J4aLUhkdG5Ktx57A8B2m95Y/5K6JhAOi9SGYRNKat0DGbflxRLYIDR5va5hojLQpFd SztXCQPTsC4q/58GC5/0ui0/99rU9kHT5Y2A2ke0= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 13917602B7 Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=abhinavk@codeaurora.org From: Abhinav Kumar To: dri-devel@lists.freedesktop.org Cc: "abhinavk@codeaurora.org" , linux-arm-msm@vger.kernel.org, robdclark@gmail.com, thierry.reding@gmail.com, hoegsberg@google.com, chandanu@codeaurora.org, seanpaul@chromium.org, architt@codeaurora.org, robh@kernel.org, nganji@codeaurora.org, jsanka@codeaurora.org Subject: [PATCH v5 1/2] drm/panel: Add support for Truly NT35597 panel Date: Thu, 2 Aug 2018 19:49:31 -0700 Message-Id: <1533264572-6364-1-git-send-email-abhinavk@codeaurora.org> X-Mailer: git-send-email 1.9.1 Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: "abhinavk@codeaurora.org" Add support for Truly NT35597 panel used in MSM reference platforms. This panel supports both single DSI and dual DSI modes. However, this patch series adds support only for dual DSI mode. Changes in v5: - Added comments for the delays - Fix error messages and return code - Start using backlight_enable/disable helpers - Start using ARRAY_SIZE everywhere - Split the panel commands into three sets to remove redundant structure fields and simplify the DCS command sending method - Use of_get_drm_display_mode() and simplify get_modes function - Remove truly_wqxga_panel_del and do necessary cleanup - Replace dev_err with DRM_DEV_ERROR Signed-off-by: Archit Taneja Signed-off-by: Abhinav Kumar --- drivers/gpu/drm/panel/Kconfig | 8 + drivers/gpu/drm/panel/Makefile | 1 + drivers/gpu/drm/panel/panel-truly-nt35597.c | 680 ++++++++++++++++++++++++++++ 3 files changed, 689 insertions(+) create mode 100644 drivers/gpu/drm/panel/panel-truly-nt35597.c diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig index 6020c30..7ae74c2 100644 --- a/drivers/gpu/drm/panel/Kconfig +++ b/drivers/gpu/drm/panel/Kconfig @@ -186,4 +186,12 @@ config DRM_PANEL_SITRONIX_ST7789V Say Y here if you want to enable support for the Sitronix ST7789V controller for 240x320 LCD panels +config DRM_PANEL_TRULY_NT35597_WQXGA + tristate "Truly WQXGA" + depends on OF + depends on DRM_MIPI_DSI + select VIDEOMODE_HELPERS + help + Say Y here if you want to enable support for Truly NT35597 WQXGA Dual DSI + Video Mode panel endmenu diff --git a/drivers/gpu/drm/panel/Makefile b/drivers/gpu/drm/panel/Makefile index 5ccaaa9..80fd19f 100644 --- a/drivers/gpu/drm/panel/Makefile +++ b/drivers/gpu/drm/panel/Makefile @@ -19,3 +19,4 @@ obj-$(CONFIG_DRM_PANEL_SEIKO_43WVF1G) += panel-seiko-43wvf1g.o obj-$(CONFIG_DRM_PANEL_SHARP_LQ101R1SX01) += panel-sharp-lq101r1sx01.o obj-$(CONFIG_DRM_PANEL_SHARP_LS043T1LE01) += panel-sharp-ls043t1le01.o obj-$(CONFIG_DRM_PANEL_SITRONIX_ST7789V) += panel-sitronix-st7789v.o +obj-$(CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA) += panel-truly-nt35597.o diff --git a/drivers/gpu/drm/panel/panel-truly-nt35597.c b/drivers/gpu/drm/panel/panel-truly-nt35597.c new file mode 100644 index 0000000..938953b --- /dev/null +++ b/drivers/gpu/drm/panel/panel-truly-nt35597.c @@ -0,0 +1,680 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (c) 2018, The Linux Foundation. All rights reserved. + */ + +#include +#include +#include +#include + +#include