From patchwork Wed Jan 11 16:30:09 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chris Morgan X-Patchwork-Id: 13096932 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 BACDEC67871 for ; Wed, 11 Jan 2023 16:30:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=Y/LGP+euAupbWtYCeb1w3KDU7D11umdhFTM5+WYIlUs=; b=lwWT2YSbt6efjR UWoNKQOlaKgUQzasQpiY94lv6YvqQSlgVcqMt7lIOLAye0sVScpNyZy0hvdYDtHinZMPjxNqfZP+m B+/jy2ES3YTHU2Ky5ulp0a39K1jbG/Iv7emDlN8kizhgOsT1H+JSm+ehkRD2B3VUmWiX831skj5ss nTc5XFEKMx5wn8MMRPNrR/unljZFZVe3pD2X7YGmcAq2jBEyG/1Vki6JtAIm23cAJbL1ocfHgvNvl L6hwqwi0EVjDNhZyyIl7PqMNmOkLxVi9wLa61OlGK/UAtUAf4N1JlMqc38x5oh02PhnrcrzafAIZb Rpgoap6qFx5eWyWL1Szg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pFdzk-00CAii-46; Wed, 11 Jan 2023 16:30:32 +0000 Received: from mail-oa1-x31.google.com ([2001:4860:4864:20::31]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pFdzd-00CAeB-Pe for linux-rockchip@lists.infradead.org; Wed, 11 Jan 2023 16:30:28 +0000 Received: by mail-oa1-x31.google.com with SMTP id 586e51a60fabf-150debe2b7cso16157077fac.0 for ; Wed, 11 Jan 2023 08:30:22 -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=VwwjqZEQqL89o5Qipfs68ekF4SEARAAb31h873uGu3I=; b=hxuqHlBEX31XNEWNJ+lm4PxdAIlQCZFI7ze5ekEKhFo2PWDiLXr74ofVv85JSx131G x5pZUFKj/hW0Jya0xSeCxx/KAPhdMeO+uB/eiDrmkbVLXyueDWI9bNRMRnftLC+QGz64 7AagSqFyIYhSINUL0g1XDTDHZVna4bfcPEI3ryF+3k2dwWIk+q3kLURd8IRlq0ZmjlyU 3U/HYiRwLe2I6mP3FCGs5xxxOpZ1YhKlxoNUdjWcakNRad6kue/dGEmTv0IAmiCD7veT PJXraOkFFuRfFmnPoP3USo1RLWovdYucTk0E5J+pq0CRzekoRSV35S2TSChkqf5+YAQ0 6/Dg== 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=VwwjqZEQqL89o5Qipfs68ekF4SEARAAb31h873uGu3I=; b=rW7Du8c8/tVxZ/5t0MVS/OEIfQVBB1bue4pexuHmzUTPMoFYrifjpLdvqZWXycpK1z p8xNg2qH+tgd17Q9RdAJOe9lyXgoxLaNj44U8Uo+uCcPWasYUCSh8WTCb0XerhGm1uGM E1FLyL90m5Rjb6OZAy80oe6+XO49x+CCzRUlceuDoK8DA9bCkkvVruN0CCQNClZTb6Sl Jv9EIimLBybebLNARFn2A+X5OtsP01AqnDspu0aM8y4t3iXnvQca2S3MVdQEseQEvNBZ 7VYhhZXVQwK5nGHrTR3vMHJfvzGydqBre/8RraiLF7s35UP6KtguYQUjh1yJSZGzWG1/ E7mg== X-Gm-Message-State: AFqh2koWqAMWQBpnhIV9IcJLmLGbSuJsfNmMJTsPOQEl9CC/MJSD4e1B XIOs5VbffH5p9Se9xRCA7gFcOD8yKWI= X-Google-Smtp-Source: AMrXdXvqNvSS3oc3c4CMTnNdq7QvBogO9tkNBknq7QRo9gqFPE2Dni9QdPYtZ5sETlMRWwtu1ZqpJw== X-Received: by 2002:a05:6871:152:b0:155:37ac:d907 with SMTP id z18-20020a056871015200b0015537acd907mr1876320oab.18.1673454622331; Wed, 11 Jan 2023 08:30: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 z13-20020a056870738d00b0013ae39d0575sm7629003oam.15.2023.01.11.08.30.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Jan 2023 08:30:22 -0800 (PST) From: Chris Morgan To: dri-devel@lists.freedesktop.org Cc: linux-rockchip@lists.infradead.org, devicetree@vger.kernel.org, maccraft123mc@gmail.com, 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 Subject: [PATCH v9 1/4] drm: of: Add drm_of_get_dsi_bus helper function Date: Wed, 11 Jan 2023 10:30:09 -0600 Message-Id: <20230111163012.310945-2-macroalpha82@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230111163012.310945-1-macroalpha82@gmail.com> References: <20230111163012.310945-1-macroalpha82@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230111_083025_883329_F8917049 X-CRM114-Status: GOOD ( 19.11 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org 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 --- drivers/gpu/drm/drm_of.c | 70 ++++++++++++++++++++++++++++++++++++++++ include/drm/drm_of.h | 10 ++++++ 2 files changed, 80 insertions(+) diff --git a/drivers/gpu/drm/drm_of.c b/drivers/gpu/drm/drm_of.c index 7bbcb999bb75..4ebb5bc4b595 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,72 @@ 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) + * @info: DSI device info to be updated with correct DSI node + * + * Gets parent DSI bus for a DSI device controlled through a bus other + * than MIPI-DCS (SPI, I2C, etc.) using the Device Tree. + * + * Returns pointer to mipi_dsi_host if successful, -EINVAL if the + * request is unsupported, -EPROBE_DEFER if the DSI host is found but + * not available, or -ENODEV otherwise. + */ +struct mipi_dsi_host *drm_of_get_dsi_bus(struct device *dev, + struct mipi_dsi_device_info *info) +{ + struct mipi_dsi_host *dsi_host; + struct device_node *endpoint, *dsi_host_node; + + /* + * Exit immediately if we attempt to call this function when + * DRM_MIPI_DSI is not enabled, in the event CONFIG_OF is + * enabled. + */ + if (!IS_ENABLED(CONFIG_DRM_MIPI_DSI)) + return ERR_PTR(-EINVAL); + + /* + * Get first endpoint child from device. + */ + endpoint = of_graph_get_next_endpoint(dev->of_node, NULL); + if (!endpoint) + return ERR_PTR(-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 ERR_PTR(-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 dsi_host; + +error: + of_node_put(endpoint); + return ERR_PTR(-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..705ea2caa494 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,8 @@ 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); +struct mipi_dsi_host *drm_of_get_dsi_bus(struct device *dev, + 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 +131,12 @@ drm_of_get_data_lanes_count_ep(const struct device_node *port, { return -EINVAL; } +static inline struct +mipi_dsi_host *drm_of_get_dsi_bus(struct device *dev, + struct mipi_dsi_device_info *info) +{ + return ERR_PTR(-EINVAL); +} #endif /* From patchwork Wed Jan 11 16:30:10 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chris Morgan X-Patchwork-Id: 13096930 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 D42ABC5479D for ; Wed, 11 Jan 2023 16:30:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=4GG17SqRXXRrDHSkjlVLXtfpi8proW4ELECDJod9g4M=; b=FzBqeRrtlbFDuR xufFjMThPhji1zpnY/uIMnaWgjplKsIfq6edevII1CvJrRqUr9uoIaonFID/pcLplghZ+ugROMLY7 wibw+C/ddRb8QXdZWNtkijIjtbSRmJCDXXnOLkmy5nZgpcaG/JxV+L97fzcic3+c1PdbwGuzxSeTJ FnyCv/jMoDfO99l7xjaJxusSCtq+ly1Vt9Xkgy3eJfxy+mnB5Eh+RZT3tudk//xicysSfdOtgXq5S 0Tq9PAmNIY6i5qHnQA/w9OeEjUq/aZDSmE0RP93whZktel5XnSZJ6aUlL9WcziJR9t84B7cDUkBRy isrxVWkvHUUE0APCdVzg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pFdzj-00CAiR-M6; Wed, 11 Jan 2023 16:30:31 +0000 Received: from mail-oa1-x2b.google.com ([2001:4860:4864:20::2b]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pFdzd-00CAeN-Fl for linux-rockchip@lists.infradead.org; Wed, 11 Jan 2023 16:30:28 +0000 Received: by mail-oa1-x2b.google.com with SMTP id 586e51a60fabf-14455716674so16084092fac.7 for ; Wed, 11 Jan 2023 08:30: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=dgMx+QidzWwZB9d8EFxiQBvCTRSPbMX2JTxiBtWNFyk=; b=WT0lrls/1NRvzGaMWgki+Kf06c74litRYkqgkhusilCgueQRjinCNzh+VaMj0tlaSl nLNp24cq5/pqSwub4Lwy5Mnth0Tuy9fGHZQeUGGgSHs2ac9p9+hPTF1iQWAMgC7Z6tJc 8CkjUDNQHT5dO5FYBKUD3p5GovXwRJGOfYwhNRGLdq7cdrgyAKawkZ0iT33u07fvLEhP UFVeFTtkjf70xZKeki0jpFAYDvuhWCxGioGCEINVZz7yyKqjj30dUuMs87/d6CqnFD+1 QbGjwcnNdbUbn1rt3uxO2HNebrLLThPAxbSfGf6LPeb3+rYMvmWh0MHxOdroDVDKc3qh f12w== 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=dgMx+QidzWwZB9d8EFxiQBvCTRSPbMX2JTxiBtWNFyk=; b=kmuyCYKkx3MXrp/JHUv/s4QntdiPurzKYwqteVU5abPVNe7uHYbUw4KL/iDqmMV+pW ELA3oGY0BP71CSzQZxzSQiYkjGgD2Jm7O8s+ws98AWD17K/ErtCaiyfnw2E1JwWzs7nc d2Si3nYGhJBMrjXpCgmt5agQD67b1K1mLDuatjKOkGU1Ie/rkRtG3TdglKW+TTc4GZ9Y fLERlaWjB5j/WaaKEkwuGOqBBKk8In19DRAinguxz01dm7AO97NhU11ZHQqVvEZZJK2+ eHHBQyhyn2sFI3DYVlUm2tTxcDZzTJ26//+PvDq3fsQLli156083ioqk+91KRqUcTIpl nBsg== X-Gm-Message-State: AFqh2kospGJ6NK4Ui8IO5DV483KE5k/TLIJnKkeVguiv/KJj83PF+jg8 AvlkLM8cfeMrVNAFcMXL9DY= X-Google-Smtp-Source: AMrXdXvi7ggD51qa2JEi1p6UAGFPT4BlIR6rfPAnoDpSqqMNavNojmnZTQG9Z8I+WChJtPs68HdNDQ== X-Received: by 2002:a05:6871:4e93:b0:144:c5e3:643a with SMTP id uk19-20020a0568714e9300b00144c5e3643amr1594353oab.4.1673454623056; Wed, 11 Jan 2023 08:30: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 z13-20020a056870738d00b0013ae39d0575sm7629003oam.15.2023.01.11.08.30.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Jan 2023 08:30:22 -0800 (PST) From: Chris Morgan To: dri-devel@lists.freedesktop.org Cc: linux-rockchip@lists.infradead.org, devicetree@vger.kernel.org, maccraft123mc@gmail.com, 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 , Rob Herring Subject: [PATCH v9 2/4] dt-bindings: display: panel: Add Samsung AMS495QA01 Date: Wed, 11 Jan 2023 10:30:10 -0600 Message-Id: <20230111163012.310945-3-macroalpha82@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230111163012.310945-1-macroalpha82@gmail.com> References: <20230111163012.310945-1-macroalpha82@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230111_083025_565522_BEF3DF1D X-CRM114-Status: GOOD ( 12.05 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org From: Chris Morgan Add documentation for Samsung AMS495QA01 panel (with Magnachip D53E6EA8966 controller IC). Signed-off-by: Chris Morgan Signed-off-by: Maya Matuszczyk Reviewed-by: Rob Herring --- .../display/panel/samsung,ams495qa01.yaml | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 Documentation/devicetree/bindings/display/panel/samsung,ams495qa01.yaml diff --git a/Documentation/devicetree/bindings/display/panel/samsung,ams495qa01.yaml b/Documentation/devicetree/bindings/display/panel/samsung,ams495qa01.yaml new file mode 100644 index 000000000000..58fa073ce258 --- /dev/null +++ b/Documentation/devicetree/bindings/display/panel/samsung,ams495qa01.yaml @@ -0,0 +1,57 @@ +# 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: Samsung AMS495QA01 panel with Magnachip D53E6EA8966 controller + +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 Jan 11 16:30:11 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chris Morgan X-Patchwork-Id: 13096931 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 D77FAC54EBC for ; Wed, 11 Jan 2023 16:30:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=qJpM+BjxDoDFtD5x3Fh/7mwsofZfcP5M6m4s7YLABEc=; b=nZLWHTAKVIpRv6 fBtXnl1sVgPsBRB7kQJ+I7dzH7I9fpg1elUtRZR8XQZe4rHU8o5LK6mWi0FKTTidckjJ/+NDMRDb5 jgLKs7MyAqWavVak9D4D/olyU5Z6z0e/Mc4R8ZsI75mJWu3WmgwVnMrUMf/oAOGfIJSJAav4s8KNA NLzsQwsx/eiAhUBm/iZ/XSZ1IOfJUrGxAgQKEE36WwlXzfi1hyWCeN2VPuOnD8JZPzk66rci+NU3r MPAW9NwSKYi47KiPxSYF5DQIxlM2wCVViFnitA9T7EVs7WvRM7Qqpm94kym79S6NLY4Lbqd9xRFcR WZe5TaNz1gfb/5/u8dvw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pFdzj-00CAiG-7s; Wed, 11 Jan 2023 16:30:31 +0000 Received: from mail-oa1-x36.google.com ([2001:4860:4864:20::36]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pFdzc-00CAeU-Ob for linux-rockchip@lists.infradead.org; Wed, 11 Jan 2023 16:30:27 +0000 Received: by mail-oa1-x36.google.com with SMTP id 586e51a60fabf-150debe2b7cso16157150fac.0 for ; Wed, 11 Jan 2023 08:30: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=Ug9Qalu5EQh2ykE3eLRnhG5I3plTxJnHDwIw/1EQhJ8=; b=VtR+OrCVZbhFyS0t9lG0yMTWeKF5YHNYvH48cuNDc+maj3lSo1gcqwBzcdjJ5hUdry bKyEaDYOksoexlQnx70WwajoMQqvsX0ZdvW1ZDescJWTHnafcPZikr+wQ+qDap0zXqJy Agp7Bw2PpwbDKjypCyikUyxkx7SiBvKy1XgWhgtw0sfB4ORu16x+5x4YLOhKVxQH1pV3 LivmXjtYD46cTSkoN0PsTwlMqhe3nnPJ+3uII4coBuMIWP21kTiWFM2akATatFi7qmDv RFjBBPkpl7V5glOPPaEVgOIhRR3GrDo2ePvLeojidfVLLXTbXbB2+bRIzXbPzLv65Ofw 7/Xg== 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=Ug9Qalu5EQh2ykE3eLRnhG5I3plTxJnHDwIw/1EQhJ8=; b=NN8CedTiGXvvbf9O82HTFd+yRKtiqiQ4toO0KM+jHA2atLLL++DQV3Neb+9kDOOnlS cW9P2bSZEb6xpEVHmJI76te6uN+Tih0coPzilPPkCCWdWBxsUKXY8hbEWljiLiTvIDxN g3aXRqPgBRX/J8RhTG4LtZnWd7A9cIj9ErYXlXK1ipIaaIj+l+xBd9pn6TpMobEZ6WSu 3BEGjpv+nEQpON2cewO1+lEjOGhUYV854Fl6q/5tSid8MRBo+mT4yXWrQE2GzqsOe6lw unnxfF1dPwcmOO5wUY7NibJdk6sVfRaHYlSpPoxu0kEEQmvOgqjczD/Ea9/CXJSuMIp0 MWog== X-Gm-Message-State: AFqh2krpIB3joFHnmAs6QIHJC9gO/2FlcIvkrImAJW+MDfsf5T1fEO2e GhRGS7IyuUh6Tnnc/jflEC0= X-Google-Smtp-Source: AMrXdXs8aiaUa41cpYoWafAJ8VopY2MHpG6lH4II5rzZGR3LSPh3oC4rkO+ULWZoCv7Z/nFTWU1MTQ== X-Received: by 2002:a05:6871:8508:b0:15b:8fc1:fb14 with SMTP id sx8-20020a056871850800b0015b8fc1fb14mr4579135oab.33.1673454623741; Wed, 11 Jan 2023 08:30: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 z13-20020a056870738d00b0013ae39d0575sm7629003oam.15.2023.01.11.08.30.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Jan 2023 08:30:23 -0800 (PST) From: Chris Morgan To: dri-devel@lists.freedesktop.org Cc: linux-rockchip@lists.infradead.org, devicetree@vger.kernel.org, maccraft123mc@gmail.com, 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 Subject: [PATCH v9 3/4] drm/panel: Add Magnachip D53E6EA8966 Panel Driver Date: Wed, 11 Jan 2023 10:30:11 -0600 Message-Id: <20230111163012.310945-4-macroalpha82@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230111163012.310945-1-macroalpha82@gmail.com> References: <20230111163012.310945-1-macroalpha82@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230111_083024_843114_54CB6873 X-CRM114-Status: GOOD ( 21.78 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.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. Signed-off-by: Chris Morgan Signed-off-by: Maya Matuszczyk --- 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..09ee12f0a147 --- /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