From patchwork Wed Dec 14 18:06:09 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chris Morgan X-Patchwork-Id: 634000 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 AD84DC001B2 for ; Wed, 14 Dec 2022 18:07:30 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239143AbiLNSH3 (ORCPT ); Wed, 14 Dec 2022 13:07:29 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37498 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238738AbiLNSHC (ORCPT ); Wed, 14 Dec 2022 13:07:02 -0500 Received: from mail-oa1-x33.google.com (mail-oa1-x33.google.com [IPv6:2001:4860:4864:20::33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D5AEB2A94C for ; Wed, 14 Dec 2022 10:06:24 -0800 (PST) Received: by mail-oa1-x33.google.com with SMTP id 586e51a60fabf-1445ca00781so17642337fac.1 for ; Wed, 14 Dec 2022 10:06:24 -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=5lJuELApsBW0bc4szk9ypcA4YHRJo5ia7+cbg67UL5U=; b=fQA4VQ3OCWwd4w7xebn1Qy4gZqGHSwP5LXVazCqCe8zjxYEn2DuQpUNeQn1UV3xRfc 5T4/Pb3zcFy2cfW8Jt37iwM3ll42EkIw3gzS/7KJ006EVaVOQNWxBMrEsr9xLHMPq8+c yCrVR/QKBFkfidQKQZArP1zg53V9jcnx3CwWSHnZiNc0tKMPvYlnpy2a0M2+zF8/Ji9y YxZbgEuq7W3ilpe1WySlDOec1kG/bHjI9tFXf+dBP56VYaL+Rs9c4WJimct7U3DTfhBC OjH2THC0ZXm7dcTU2I0HtlxkYVQJUijBSjA1H1mQKzPxA251jMEKptNBK9PFmVwEcRYZ 1mJA== 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=5lJuELApsBW0bc4szk9ypcA4YHRJo5ia7+cbg67UL5U=; b=h8L0tutb425oyJML41HYtExIlNhJb8gfv2SMMuh4OwvMu+erPy1uX6tBktjZPIWNtW c9bRVguK0zywQauL3NmCKjh1mE5l8QhyffOzLpKbt8zlZZ2FSBKFM5Chgj+TeFalzZYA QdxTs6DDI0diix6Vpih3K32txNdJmuWFVUAKLUWTNjBURTXKfQUzBz9TqkOMJ4YFJTUQ 9esJPiGXb+GSMkV9dfM3gSl8y9ia84kWGTWBJ53+FpWJn+09rUFtm1DW6bAzbUV+Qcw9 d9OgESRW27qKTZGzAWoQ2JSpm+whZpXX6cj/ni+0QyOoia+iQ7fDz3ArkhgNWKrM/KwM IliQ== X-Gm-Message-State: ANoB5pn11twnuxo7Ei1t9jxzVqRyXc+Q6YGXEeqX7jDVSZLskR8fv3ND l+5NSENPVkfDaqATv7bQl/c= X-Google-Smtp-Source: AA0mqf6CRpxND5wX8WG7PknsUegtAvu6jzYKe5UJkUYKfgSI1v4Wo1cOWfkO7nuSIfYbb++M3voP3g== X-Received: by 2002:a05:6870:8c1d:b0:144:ee4d:b687 with SMTP id ec29-20020a0568708c1d00b00144ee4db687mr10323543oab.19.1671041182006; Wed, 14 Dec 2022 10:06:22 -0800 (PST) Received: from localhost.localdomain (76-244-6-13.lightspeed.rcsntx.sbcglobal.net. [76.244.6.13]) by smtp.gmail.com with ESMTPSA id y8-20020a056870b00800b0013b0b19100fsm3034008oae.32.2022.12.14.10.06.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 14 Dec 2022 10:06:21 -0800 (PST) From: Chris Morgan To: dri-devel@lists.freedesktop.org Cc: devicetree@vger.kernel.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 V5 2/4] dt-bindings: display: panel: Add Magnachip D53E6EA8966 Date: Wed, 14 Dec 2022 12:06:09 -0600 Message-Id: <20221214180611.109651-3-macroalpha82@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221214180611.109651-1-macroalpha82@gmail.com> References: <20221214180611.109651-1-macroalpha82@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org From: Chris Morgan Add documentation for Magnachip D53E6EA8966 based panels such as the Samsung AMS495QA01 panel. Signed-off-by: Chris Morgan Signed-off-by: Maya Matuszczyk --- .../display/panel/magnachip,d53e6ea8966.yaml | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 Documentation/devicetree/bindings/display/panel/magnachip,d53e6ea8966.yaml diff --git a/Documentation/devicetree/bindings/display/panel/magnachip,d53e6ea8966.yaml b/Documentation/devicetree/bindings/display/panel/magnachip,d53e6ea8966.yaml new file mode 100644 index 000000000000..0a57a303a758 --- /dev/null +++ b/Documentation/devicetree/bindings/display/panel/magnachip,d53e6ea8966.yaml @@ -0,0 +1,62 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/panel/samsung,ams495qa01.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Magnachip D53E6EA8966 based display panel + +description: | + Magnachip D53E6EA8966 based display panels, such as the one found on + the Anbernic RG503 that is combined with a 940x544 OLED Samsung + AMS495QA01. + +maintainers: + - Chris Morgan + +allOf: + - $ref: panel-common.yaml# + +properties: + compatible: + const: samsung,ams495qa01 + + reg: true + reset-gpios: + description: reset gpio, must be GPIO_ACTIVE_LOW + elvdd-supply: + description: regulator that supplies voltage to the panel display + enable-gpios: true + port: true + vdd-supply: + description: regulator that supplies voltage to panel logic + +required: + - compatible + - reg + - reset-gpios + - vdd-supply + +additionalProperties: false + +examples: + - | + #include + spi { + #address-cells = <1>; + #size-cells = <0>; + panel@0 { + compatible = "samsung,ams495qa01"; + reg = <0>; + reset-gpios = <&gpio4 0 GPIO_ACTIVE_LOW>; + vdd-supply = <&vcc_3v3>; + + port { + mipi_in_panel: endpoint { + remote-endpoint = <&mipi_out_panel>; + }; + }; + }; + }; + +... From patchwork Wed Dec 14 18:06:10 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chris Morgan X-Patchwork-Id: 633999 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 239B1C4332F for ; Wed, 14 Dec 2022 18:07:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239026AbiLNSHb (ORCPT ); Wed, 14 Dec 2022 13:07:31 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37528 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238819AbiLNSHF (ORCPT ); Wed, 14 Dec 2022 13:07:05 -0500 Received: from mail-oa1-x35.google.com (mail-oa1-x35.google.com [IPv6:2001:4860:4864:20::35]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 745E82A952 for ; Wed, 14 Dec 2022 10:06:25 -0800 (PST) Received: by mail-oa1-x35.google.com with SMTP id 586e51a60fabf-1433ef3b61fso17610191fac.10 for ; Wed, 14 Dec 2022 10:06:25 -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=Im6kcd4sbmkKStNVEAWChqLptZ+EpwHUmadj/iD4xaE=; b=a/Q5dxNmLSuZ7svjAp2qgHUIJRdpgMAvNkkqDz4sZECZVeT8Sfg4zFzUsNxDqA8R/2 yeFLy2CoQJ0K91f3QNln2HmwJyndFC5DEw7sb0uBngd7W8/lfpTeyFGocT6sJY9zfsro EgZBKQTLZoU/kUYFfYrft5uzc5UfAucpoz491bJzxRHoKKFTxoMcdAyDisKgtsBccz2D GDI+VoN216+G9BHntwKSYphi+DAfpGektyUG53m6PoSafEfDJYye4fhcSUfg2PkyQjCf TSGC2xEZAV4SWYiqH/iQ8kMxuqRkfAlCvy1ryKDYBpwW/rACyMCU9jQ70wM6ptknsSwA RGkA== 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=Im6kcd4sbmkKStNVEAWChqLptZ+EpwHUmadj/iD4xaE=; b=hr93CvlCTKnBmOtXU6ZfNhfkKsYt+uCBPh2ntofvm7JBweLUT9+ULfpB50eM3AAiR7 ZsOivTCew2J6ocnJ8NFfnCAxmZ41oGOSyopAGyZ25Lx2+iqXU7/4g/QuaTNd66Y4Q8SK ITwWIl5i4w9ez+YUbOfQK//EyUdcIKkXnlxUWDxJWZuDZ20uo7HU/kzWXa/48alCwhSF U7TqrQpMPt6q5I+Ao7hVEw/Ghdirz36zwoc51dCBX0Zw5iC+/minBngk8QFy+OR9Pj0H rdd69sQiYSG8ogM2/G0oHfaw81wOBaaOKGmuOsDrQ4i8W5iRhnYmVXDKHRPJmyWryasl IVyQ== X-Gm-Message-State: ANoB5plJBMU0CQQQ9sZu7eI/k4lOEnpBleqocUAxtAsO/O89/jngSLQm 9CvkjouTN4Z6WlrCunwDCdQkKw+v6CY= X-Google-Smtp-Source: AA0mqf7KC8L0eXWOpowkgGqwVJzsE5kTt9YYyGsXtGEpwsh/xzuPrUFf0ycMlGZF53uE5VXoYdoC0A== X-Received: by 2002:a05:6870:e90:b0:144:a164:1c70 with SMTP id mm16-20020a0568700e9000b00144a1641c70mr14790000oab.49.1671041183421; Wed, 14 Dec 2022 10:06:23 -0800 (PST) Received: from localhost.localdomain (76-244-6-13.lightspeed.rcsntx.sbcglobal.net. [76.244.6.13]) by smtp.gmail.com with ESMTPSA id y8-20020a056870b00800b0013b0b19100fsm3034008oae.32.2022.12.14.10.06.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 14 Dec 2022 10:06:22 -0800 (PST) From: Chris Morgan To: dri-devel@lists.freedesktop.org Cc: devicetree@vger.kernel.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 V5 3/4] drm/panel: Add Magnachip D53E6EA8966 Panel Driver Date: Wed, 14 Dec 2022 12:06:10 -0600 Message-Id: <20221214180611.109651-4-macroalpha82@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221214180611.109651-1-macroalpha82@gmail.com> References: <20221214180611.109651-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. Signed-off-by: Chris Morgan Signed-off-by: Maya Matuszczyk --- drivers/gpu/drm/panel/Kconfig | 10 + drivers/gpu/drm/panel/Makefile | 1 + .../drm/panel/panel-magnachip-d53e6ea8966.c | 515 ++++++++++++++++++ 3 files changed, 526 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 a582ddd583c2..1f81fe8a2f8a 100644 --- a/drivers/gpu/drm/panel/Kconfig +++ b/drivers/gpu/drm/panel/Kconfig @@ -288,6 +288,16 @@ 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 + 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 3-Wire 9-bit SPI. + 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 34e717382dbb..7c09cd480c69 100644 --- a/drivers/gpu/drm/panel/Makefile +++ b/drivers/gpu/drm/panel/Makefile @@ -26,6 +26,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..c1b80f2f296c --- /dev/null +++ b/drivers/gpu/drm/panel/panel-magnachip-d53e6ea8966.c @@ -0,0 +1,515 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Magnachip d53e6ea8966 MIPI-DSI panel driver + * Copyright (C) 2022 Chris Morgan + */ + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include