From patchwork Mon Jan 23 15:46:02 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chris Morgan X-Patchwork-Id: 646255 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id BC6E6C38142 for ; Mon, 23 Jan 2023 15:46:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231667AbjAWPqR (ORCPT ); Mon, 23 Jan 2023 10:46:17 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52594 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232877AbjAWPqQ (ORCPT ); Mon, 23 Jan 2023 10:46:16 -0500 Received: from mail-oi1-x22f.google.com (mail-oi1-x22f.google.com [IPv6:2607:f8b0:4864:20::22f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1747AC64C for ; Mon, 23 Jan 2023 07:46:14 -0800 (PST) Received: by mail-oi1-x22f.google.com with SMTP id p133so10689581oig.8 for ; Mon, 23 Jan 2023 07:46:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=X9C9l31vmX/uLkMgug4h6HrQE75VLn1xj4RM0NSYXDs=; b=RKqnUvM85OlbBx2vqGLj3+88iLzH4uNu2xuZJWw412EH0DxRXqng0Lo3PrdC+BNerX rmxWb19Z7xbWYawE7I/kBpl4ME37xXFk6aAz8uH8rPfV6cMVbAabX0/XHDq6B2cXn8i1 FLA7UZIOHgDbxFeOB4mdJhwg5zUKrYQ8gpFqACH2cPKiwJtYTMRtyfCWssAEYGa29Tlb iMwO16kJh3ob6SuSi+8cneJOrP4rFLAnpgsuIKMToDH52RA9mIqvioZmjivaxr4IPOmS RZ7Iw8oqaT6kH9w4GGh9DNw8Jpd2NAn4+Ddit+pw/AcBiLV1E5HARtnKMaabRXbUJaQJ ptZg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=X9C9l31vmX/uLkMgug4h6HrQE75VLn1xj4RM0NSYXDs=; b=dPW/Br4S4TP2wHBFOYVbkVt6arfjs42yL6IOtaH5/XpYomloBawWyIxF0vxxT5slUE erzGv3OUoTjQ1/4fHJwV6WausCVJurtaiUU8mcjUp3C7V07i93zcncXdNanEaDDefvBe 3AEEkZJLfyCQ8AkPIBwjYc3SbgwLcgLZPkVkXkSylIeG04opKLT8TM25pGSLdTgdQff3 k9/bWWqjb70qoLV+U0QoKLD4+vGHXhpe+7IIAbaxc3i6k1NQ3YozsSF9kyFE7dtGX4N8 SzM3u5C6qHHXyM/aGwksS0HD536IWg72+8NJKhFBI9AiaSdzjzsrWAtlIJeIWRLeC2dK ti2A== X-Gm-Message-State: AFqh2krpO78C68kc44tRCZ60OK8ywFp7iUCciGl2y75wro4B6WHmokJs KTGBfnn/37h58rmJdQcCGkc= X-Google-Smtp-Source: AMrXdXtvl1MIEqzDVhzBRz2e6gPHIJ+A9tR8uYbs/nU7OPsSGszTqpt1PXIE+JZh2NilNkKL2BRsmg== X-Received: by 2002:aca:280e:0:b0:36e:b295:543d with SMTP id 14-20020aca280e000000b0036eb295543dmr6824461oix.34.1674488773327; Mon, 23 Jan 2023 07:46:13 -0800 (PST) Received: from localhost.localdomain ([76.244.6.13]) by smtp.gmail.com with ESMTPSA id w13-20020a056808140d00b0035e7ed5daa1sm10040132oiv.26.2023.01.23.07.46.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Jan 2023 07:46:13 -0800 (PST) From: Chris Morgan To: dri-devel@lists.freedesktop.org Cc: devicetree@vger.kernel.org, linux-rockchip@lists.infradead.org, tzimmermann@suse.de, mripard@kernel.org, maarten.lankhorst@linux.intel.com, heiko@sntech.de, krzysztof.kozlowski+dt@linaro.org, robh+dt@kernel.org, daniel@ffwll.ch, airlied@gmail.com, sam@ravnborg.org, thierry.reding@gmail.com, linus.walleij@linaro.org, Chris Morgan , Maya Matuszczyk Subject: [PATCH V12 3/4] drm/panel: Add Magnachip D53E6EA8966 Panel Driver Date: Mon, 23 Jan 2023 09:46:02 -0600 Message-Id: <20230123154603.1315112-4-macroalpha82@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230123154603.1315112-1-macroalpha82@gmail.com> References: <20230123154603.1315112-1-macroalpha82@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org From: Chris Morgan Support Magnachip D53E6EA8966 based panels such as the Samsung AMS495QA01 panel as found on the Anbernic RG503. Note this driver supports only the AMS495QA01 today which receives video signals via DSI, however it receives commands via 3-wire SPI using DBI. Co-developed-by: Maya Matuszczyk Signed-off-by: Maya Matuszczyk Signed-off-by: Chris Morgan --- drivers/gpu/drm/panel/Kconfig | 11 + drivers/gpu/drm/panel/Makefile | 1 + .../drm/panel/panel-magnachip-d53e6ea8966.c | 522 ++++++++++++++++++ 3 files changed, 534 insertions(+) create mode 100644 drivers/gpu/drm/panel/panel-magnachip-d53e6ea8966.c diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig index 737edcdf9eef..204b84a83604 100644 --- a/drivers/gpu/drm/panel/Kconfig +++ b/drivers/gpu/drm/panel/Kconfig @@ -298,6 +298,17 @@ config DRM_PANEL_LG_LG4573 Say Y here if you want to enable support for LG4573 RGB panel. To compile this driver as a module, choose M here. +config DRM_PANEL_MAGNACHIP_D53E6EA8966 + tristate "Magnachip D53E6EA8966 DSI panel" + depends on OF && SPI + depends on DRM_MIPI_DSI + depends on BACKLIGHT_CLASS_DEVICE + select DRM_MIPI_DBI + help + DRM panel driver for the Samsung AMS495QA01 panel controlled + with the Magnachip D53E6EA8966 panel IC. This panel receives + video data via DSI but commands via 9-bit SPI using DBI. + config DRM_PANEL_NEC_NL8048HL11 tristate "NEC NL8048HL11 RGB panel" depends on GPIOLIB && OF && SPI diff --git a/drivers/gpu/drm/panel/Makefile b/drivers/gpu/drm/panel/Makefile index f8f9d9f6a307..20de312aa5e9 100644 --- a/drivers/gpu/drm/panel/Makefile +++ b/drivers/gpu/drm/panel/Makefile @@ -27,6 +27,7 @@ obj-$(CONFIG_DRM_PANEL_LEADTEK_LTK050H3146W) += panel-leadtek-ltk050h3146w.o obj-$(CONFIG_DRM_PANEL_LEADTEK_LTK500HD1829) += panel-leadtek-ltk500hd1829.o obj-$(CONFIG_DRM_PANEL_LG_LB035Q02) += panel-lg-lb035q02.o obj-$(CONFIG_DRM_PANEL_LG_LG4573) += panel-lg-lg4573.o +obj-$(CONFIG_DRM_PANEL_MAGNACHIP_D53E6EA8966) += panel-magnachip-d53e6ea8966.o obj-$(CONFIG_DRM_PANEL_NEC_NL8048HL11) += panel-nec-nl8048hl11.o obj-$(CONFIG_DRM_PANEL_NEWVISION_NV3051D) += panel-newvision-nv3051d.o obj-$(CONFIG_DRM_PANEL_NEWVISION_NV3052C) += panel-newvision-nv3052c.o diff --git a/drivers/gpu/drm/panel/panel-magnachip-d53e6ea8966.c b/drivers/gpu/drm/panel/panel-magnachip-d53e6ea8966.c new file mode 100644 index 000000000000..6ee4d577e67f --- /dev/null +++ b/drivers/gpu/drm/panel/panel-magnachip-d53e6ea8966.c @@ -0,0 +1,522 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Magnachip d53e6ea8966 MIPI-DSI panel driver + * Copyright (C) 2023 Chris Morgan + */ + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include