From patchwork Wed Dec 14 18:06:08 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chris Morgan X-Patchwork-Id: 13073324 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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 3F5D2C4332F for ; Wed, 14 Dec 2022 18:06:50 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id DDB8910E43B; Wed, 14 Dec 2022 18:06:32 +0000 (UTC) Received: from mail-oa1-x36.google.com (mail-oa1-x36.google.com [IPv6:2001:4860:4864:20::36]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5BA3210E023 for ; Wed, 14 Dec 2022 18:06:23 +0000 (UTC) Received: by mail-oa1-x36.google.com with SMTP id 586e51a60fabf-14449b7814bso17641505fac.3 for ; Wed, 14 Dec 2022 10:06:23 -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=li1rcgSePKzYQom2Bzp4ApE+JydsHJh0h5VVFVmticY=; b=g+C/cMznNslTUXzx8ydstQQMyBOHoLyGLH3+YpxV30zUWS3tYUXlpMUnoxbayPRBgS k0dM0Vde9JIiXU5atfjFGA+Y+OfD5b5Cjoekz6oQiR58tDlxp5UL1ScMwRZCqbDBkPJM MF5YEXqF+GBsKMPYdpCT2b5uc1RJbP/k+PAfcMZdaUOJf5nUoADWxCGVQO2bkX24HXXe SGIWtpL8TEqYx8rXkLNdVw6WU8dujEbqOEvytghFvqtfcgDdCvggA4y+2bgHZ/T+7u1h IQG+xscTnSHeDbTcVJlmGBMXEwyR5sIwah9+epcvcfpKdSJ5T5tbFweXsW9VyAEzuXWL FJKw== 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=li1rcgSePKzYQom2Bzp4ApE+JydsHJh0h5VVFVmticY=; b=aOIASpFNsyiSzmrRQVAt0eXMfJbE7ve4dSPj1yK7mKmvKX2dBz/GdEnJEOJwU8N29J n+M1h1DLbTKg7cXsj1eYUoydTwfdJl6Tg/kbhvJeel3mXAuMw00NyyFLa8eQ+iQ6arEl tvN8+20o0ljKe/ZJHQPyrIKHpf78ZYnYRppGc6jZ3R3C5dmNEFVSCMzPSbCMFR9BvCup 2RUngOSIhCdiO1lY3lW8fmGF3APlPul7HDRWxJCa4ilef23FPlWQz+M1mvhqljZI9eCm EbrJQxeL7F36Esw+t+dT5kJa+cKBL1EpuUFSQalUkLamI3sdyMeYS/u9W98SYU6HBh+x A8gQ== X-Gm-Message-State: ANoB5pkTE7eKC19uJdkD3ZlZ7KUozTftq1QciaFwP/5FiuqrTximLpOp VL5bFjJTIFUVrJF8zXWo4OG1W8f3AhU= X-Google-Smtp-Source: AA0mqf7ouUJVKaPK7GsexpfPjbqTBOXdYQYnoNc0cvxcglHKCv3iNZciGosUyrWOYwgCpqjZVRq6wQ== X-Received: by 2002:a05:6870:6a91:b0:144:d50f:2f3 with SMTP id mv17-20020a0568706a9100b00144d50f02f3mr16942105oab.57.1671041181173; Wed, 14 Dec 2022 10:06:21 -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.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 14 Dec 2022 10:06:20 -0800 (PST) From: Chris Morgan To: dri-devel@lists.freedesktop.org Subject: [PATCH V5 1/4] drm: of: Add drm_of_get_dsi_bus helper function Date: Wed, 14 Dec 2022 12:06:08 -0600 Message-Id: <20221214180611.109651-2-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 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: , Cc: devicetree@vger.kernel.org, Chris Morgan , tzimmermann@suse.de, sam@ravnborg.org, robh+dt@kernel.org, thierry.reding@gmail.com, krzysztof.kozlowski+dt@linaro.org, Maya Matuszczyk Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" From: Chris Morgan Add helper function to find DSI host for devices where DSI panel is not a minor of a DSI bus (such as the Samsung AMS495QA01 panel or the official Raspberry Pi touchscreen display). Signed-off-by: Chris Morgan Signed-off-by: Maya Matuszczyk Reviewed-by: Linus Walleij --- drivers/gpu/drm/drm_of.c | 62 ++++++++++++++++++++++++++++++++++++++++ include/drm/drm_of.h | 11 +++++++ 2 files changed, 73 insertions(+) diff --git a/drivers/gpu/drm/drm_of.c b/drivers/gpu/drm/drm_of.c index 7bbcb999bb75..7d89ac164069 100644 --- a/drivers/gpu/drm/drm_of.c +++ b/drivers/gpu/drm/drm_of.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include @@ -493,3 +494,64 @@ int drm_of_get_data_lanes_count_ep(const struct device_node *port, return ret; } EXPORT_SYMBOL_GPL(drm_of_get_data_lanes_count_ep); + +/** + * drm_of_get_dsi_bus - find the DSI bus for a given device + * @dev: parent device of display (SPI, I2C) + * @dsi_host: DSI host to be populated + * @info: DSI device info to be updated with correct DSI node + * + * Given a panel device parented to a non-DSI device, follow the + * devicetree to find the correct DSI host node and populate the + * dsi_host with the correct host and info with the correct node. + * Returns zero if successful, -EPROBE_DEFER if the DSI host is + * found but not available, or -ENODEV otherwise. + */ +int drm_of_get_dsi_bus(struct device *dev, + struct mipi_dsi_host **dsi_host, + struct mipi_dsi_device_info *info) +{ + struct device_node *endpoint, *dsi_host_node; + + /* + * Get first endpoint child from device. + */ + endpoint = of_graph_get_next_endpoint(dev->of_node, NULL); + if (!endpoint) + return -ENODEV; + + /* + * Follow the first endpoint to get the DSI host node. + */ + dsi_host_node = of_graph_get_remote_port_parent(endpoint); + if (!dsi_host_node) + goto error; + + /* + * Get the DSI host from the DSI host node. If we get an error + * or the return is null assume we're not ready to probe just + * yet. Release the DSI host node since we're done with it. + */ + *dsi_host = of_find_mipi_dsi_host_by_node(dsi_host_node); + of_node_put(dsi_host_node); + if (IS_ERR_OR_NULL(*dsi_host)) { + of_node_put(endpoint); + return -EPROBE_DEFER; + } + + /* + * Set the node of the mipi_dsi_device_info to the correct node + * and then release the endpoint node since we're done with it. + */ + info->node = of_graph_get_remote_port(endpoint); + if (IS_ERR_OR_NULL(info->node)) + goto error; + + of_node_put(endpoint); + return 0; + +error: + of_node_put(endpoint); + return -ENODEV; +} +EXPORT_SYMBOL_GPL(drm_of_get_dsi_bus); diff --git a/include/drm/drm_of.h b/include/drm/drm_of.h index 10ab58c40746..a694ce71c3b2 100644 --- a/include/drm/drm_of.h +++ b/include/drm/drm_of.h @@ -15,6 +15,8 @@ struct drm_encoder; struct drm_panel; struct drm_bridge; struct device_node; +struct mipi_dsi_device_info; +struct mipi_dsi_host; /** * enum drm_lvds_dual_link_pixels - Pixel order of an LVDS dual-link connection @@ -56,6 +58,9 @@ int drm_of_get_data_lanes_count_ep(const struct device_node *port, int port_reg, int reg, const unsigned int min, const unsigned int max); +int drm_of_get_dsi_bus(struct device *dev, + struct mipi_dsi_host **dsi_host, + struct mipi_dsi_device_info *info); #else static inline uint32_t drm_of_crtc_port_mask(struct drm_device *dev, struct device_node *port) @@ -127,6 +132,12 @@ drm_of_get_data_lanes_count_ep(const struct device_node *port, { return -EINVAL; } +static int drm_of_get_dsi_bus(struct device *dev, + struct mipi_dsi_host **dsi_host, + struct mipi_dsi_device_info *info); +{ + return -EINVAL; +} #endif /* 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: 13073323 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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id CD443C4332F for ; Wed, 14 Dec 2022 18:06:42 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 230D710E034; Wed, 14 Dec 2022 18:06:31 +0000 (UTC) Received: from mail-oa1-x2d.google.com (mail-oa1-x2d.google.com [IPv6:2001:4860:4864:20::2d]) by gabe.freedesktop.org (Postfix) with ESMTPS id A852410E034 for ; Wed, 14 Dec 2022 18:06:23 +0000 (UTC) Received: by mail-oa1-x2d.google.com with SMTP id 586e51a60fabf-142b72a728fso17626839fac.9 for ; Wed, 14 Dec 2022 10:06:23 -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=nSLTqGs9ky7pfcUW5z2mab6iGPvFXKe4bhxPcSPy79ih8yj0xMXIUPuAsw7IFLynNi 1ZMOj7pVbvGP1sfZQsqY22KfwO4DR9ujPcnYuUaFJulBhz5diEVihMD5cNSUx197Go9D Gpw0wdprRibtDQJy5UopHaGJOcZGgDZhqIMaiZEXTONmNDsfq7ORnyO3iWykhWaQ2k58 V7CO/mjcVQ1WJxgbgd+v0Chl73tQn14ljKM6n58IhalRZ6L+NBr//YwFX5Ac2q/V9eG5 mRdN10y7Wc2B+E8/7Zk5XZdK5sZQKagndWRBdz9ldoinvVIaSKD9Bgbj80PFMysgfsP+ 7T/w== X-Gm-Message-State: ANoB5pkHpL5NsnXdtWDpF49jjYd9Js4ZtITbSanTw7WURG4glq5vOsJ6 KK1jjlqx4C6ZjG5qYTL0Vzz1ZMcrlRY= 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 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 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: , Cc: devicetree@vger.kernel.org, Chris Morgan , tzimmermann@suse.de, sam@ravnborg.org, robh+dt@kernel.org, thierry.reding@gmail.com, krzysztof.kozlowski+dt@linaro.org, Maya Matuszczyk Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" 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: 13073325 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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 7B1C9C4332F for ; Wed, 14 Dec 2022 18:06:57 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id EF02410E43D; Wed, 14 Dec 2022 18:06:34 +0000 (UTC) Received: from mail-oa1-x36.google.com (mail-oa1-x36.google.com [IPv6:2001:4860:4864:20::36]) by gabe.freedesktop.org (Postfix) with ESMTPS id B3FBD10E023 for ; Wed, 14 Dec 2022 18:06:24 +0000 (UTC) Received: by mail-oa1-x36.google.com with SMTP id 586e51a60fabf-144b21f5e5fso17611911fac.12 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=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=T4I+nSOUaY0ysT+2MCa3oRJDM663AQq73p3jpv4ba/cQuc1OkrtZXRq1e1UgWBZhOP joBv5j5jauPsQ96iwK4Ks2h83EzDlD2EMrliMUH2u0b8+n10LCHQLVM7FkJVbpgFuuM+ +AZK3E55IYGX/wwQBJX5DFMW2HfQ4+LeZFtjqAZDjDanZoZs1lAqCIjuZ5uuH5i/2FkU iHlO62QZrUtbZiOGihWoRfwIFYjyWM84HTjWrf6sR8r4eFMHjZtVClkwsZ5iW4ObErhJ PC4rPbM1pn5PvS2eYbAH08ZJlAgIrh5mxg3/Qr1DqiWTZmQSL5+iXNV4vX90pcOEy8Ub X3uQ== X-Gm-Message-State: ANoB5pnNWGcbesfBOG3EF3tQujI1H26cu1TyP2tDP35g2sPD3Brk50OX 3r7PsLYvSNpMMdyfxMnI84Y6mconNj4= 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 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 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: , Cc: devicetree@vger.kernel.org, Chris Morgan , tzimmermann@suse.de, sam@ravnborg.org, robh+dt@kernel.org, thierry.reding@gmail.com, krzysztof.kozlowski+dt@linaro.org, Maya Matuszczyk Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" 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 Reviewed-by: Linus Walleij --- 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