From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D7EC6C4320A for ; Thu, 5 Aug 2021 13:36:19 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id A5B256105A for ; Thu, 5 Aug 2021 13:36:19 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org A5B256105A Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 0C0AA6EA57; Thu, 5 Aug 2021 13:36:16 +0000 (UTC) Received: from mail-lj1-x232.google.com (mail-lj1-x232.google.com [IPv6:2a00:1450:4864:20::232]) by gabe.freedesktop.org (Postfix) with ESMTPS id BE1E16EA57 for ; Thu, 5 Aug 2021 13:36:14 +0000 (UTC) Received: by mail-lj1-x232.google.com with SMTP id n6so7111929ljp.9 for ; Thu, 05 Aug 2021 06:36:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=wa2R63dFgTkwixEosOXtkJRWEQJGmEaf6S/uMfe3ers=; b=lPn4vcAFui0dr3VqKLN4dd+4t82Exo3Mw7tJXCyqPXfY98jyC5R3gjjRcdbTQuGRIt /s3N4MB2F4kSpi01+oP/bxkW6qGySvdV+e6FcrkNRLd8gXHKz57YLURsiCpRcrb4Di0b 5ZQjGYIAGVN6VW2dZu+zggyBHGwCDkOIgblFx1i6NvfmRnlMVsj4V8ZuxVKbZaKRXkvj NDrzZazd50VyL/3jHT70qoeBYtaeZLmIHcH/cIr//ZmaT16n6rwcO2Y871NS+ttyTsfQ +u7UYPV5zpJj6F2n8DeNR/j0OIL0ny6jHOGbsghH7stvb+b5LpZ97A54H6r+nL4yBeJp rpBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=wa2R63dFgTkwixEosOXtkJRWEQJGmEaf6S/uMfe3ers=; b=bKUa/s+uLhemraU/f8Ny2umoYlf6mWI3sFwYqdlwHpo6CgKAnFvXAz1yHWSU837vuB K7vlXnMZoUvuWWCbOsw66npqCd69LjpU9txXvoTU9WaT6g5V5Y/dV/omAuhnUMyaQVDV 8vu3Qe5ZM7DoTaD/CJcnEh1Z+iTSxzfClIBgU+Os56JTGT+Gu+rETggbxaiIp1VD19iv TSeCQSUDFnsDphgt5695FzNXsA+4ruE9PShkLjVqZjAlBD2MxDZZyqNynVycRvee1K3t 3a7Zahhqpj4iNZ/RzCQrDr0KSr2To+tvnKDquiDD1FYf6lKGnXaWoqblXnJfI5QBuF7V /PEQ== X-Gm-Message-State: AOAM53018LwE+kU/PUcw08pSoco67sMt56p1QNY+zCnS5kS2HN9Tu0A7 Ojr8jpGSlrD56gA/z3gcM88= X-Google-Smtp-Source: ABdhPJwQ3JA9zGZmFI5Oy5FmXqTy4HvTYhpY2Kx8+RAUWGUXtB9CxRMQDO7xUEK6H9aBuemmt4zDSg== X-Received: by 2002:a2e:9ec1:: with SMTP id h1mr3267838ljk.0.1628170572969; Thu, 05 Aug 2021 06:36:12 -0700 (PDT) Received: from nergzd-desktop.localdomain ([62.122.67.26]) by smtp.gmail.com with ESMTPSA id t3sm516232lfe.241.2021.08.05.06.36.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Aug 2021 06:36:12 -0700 (PDT) From: Markuss Broks To: linux-kernel@vger.kernel.org Cc: linus.walleij@linaro.org, phone-devel@vger.kernel.org, Markuss Broks , Thierry Reding , Sam Ravnborg , David Airlie , Daniel Vetter , Rob Herring , dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org Subject: [PATCH 2/2] drm/panel: s6d27a1: Add driver for Samsung S6D27A1 display panel Date: Thu, 5 Aug 2021 16:33:42 +0300 Message-Id: <20210805133343.27032-3-markuss.broks@gmail.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210805133343.27032-1-markuss.broks@gmail.com> References: <20210805133343.27032-1-markuss.broks@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" This adds a driver for Samsung S6D27A1 display controller and panel. This panel is found in the Samsung GT-I8160 mobile phone, and possibly some other mobile phones. This display needs manufacturer commands to configure it; the commands used in this driver were taken from downstream driver by Gareth Phillips; sadly, there is almost no documentation on what they actually do. This driver re-uses the DBI infrastructure to communicate with the display. This driver is heavily based on WideChips WS2401 display controller driver by Linus Walleij and on other panel drivers for reference. Signed-off-by: Markuss Broks v2 -> v3: fixed checkpatch warnings - not sure about MAINTAINERS, should I put my name up there? --- drivers/gpu/drm/panel/Kconfig | 11 + drivers/gpu/drm/panel/Makefile | 1 + drivers/gpu/drm/panel/panel-samsung-s6d27a1.c | 323 ++++++++++++++++++ 3 files changed, 335 insertions(+) create mode 100644 drivers/gpu/drm/panel/panel-samsung-s6d27a1.c diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig index beb581b96e..0b37849413 100644 --- a/drivers/gpu/drm/panel/Kconfig +++ b/drivers/gpu/drm/panel/Kconfig @@ -392,6 +392,17 @@ config DRM_PANEL_SAMSUNG_S6D16D0 depends on DRM_MIPI_DSI select VIDEOMODE_HELPERS +config DRM_PANEL_SAMSUNG_S6D27A1 + tristate "Samsung S6D27A1 DPI panel driver" + depends on OF && SPI && GPIOLIB + select DRM_MIPI_DBI + help + Say Y here if you want to enable support for the Samsung + S6D27A1 DPI 480x800 panel. + + This panel can be found in Samsung Galaxy Ace 2 + GT-I8160 mobile phone. + config DRM_PANEL_SAMSUNG_S6E3HA2 tristate "Samsung S6E3HA2 DSI video mode panel" depends on OF diff --git a/drivers/gpu/drm/panel/Makefile b/drivers/gpu/drm/panel/Makefile index c8132050bc..60c0149fc5 100644 --- a/drivers/gpu/drm/panel/Makefile +++ b/drivers/gpu/drm/panel/Makefile @@ -39,6 +39,7 @@ obj-$(CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20) += panel-samsung-atna33xc20.o obj-$(CONFIG_DRM_PANEL_SAMSUNG_DB7430) += panel-samsung-db7430.o 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_S6D27A1) += panel-samsung-s6d27a1.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 diff --git a/drivers/gpu/drm/panel/panel-samsung-s6d27a1.c b/drivers/gpu/drm/panel/panel-samsung-s6d27a1.c new file mode 100644 index 0000000000..6a77a15136 --- /dev/null +++ b/drivers/gpu/drm/panel/panel-samsung-s6d27a1.c @@ -0,0 +1,323 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Panel driver for the Samsung S6D27A1 480x800 DPI RGB panel. + * Found in the Samsung Galaxy Ace 2 GT-I8160 mobile phone. + */ + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include