From patchwork Tue Jan 3 19:07:04 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chris Morgan X-Patchwork-Id: 13087968 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 BF164C4708D for ; Tue, 3 Jan 2023 19:24:08 +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=8E2FSbJ/eMIHCNFvta3HZB/Pl8HGNVhtGRi0vPz7nWo=; b=DOr2amy1rFVusR lb1Lh13EA8L3an73JSLmEd+kHwwl+0SUXxKReAa0nlJeCLgY0ugzvy76YLsceTAqB3I2UlPS7hf5T sDGqShjYZlDDbbK//PhXAK8xEMKHe1r2WiRo1n7yuTuv/tnG58juryrfHJOBd3gcqLFPHmaSzRGPb b4RZrc4SYU959gokUXVGQSqD6AMW6tvHxuS0C5MGEhyjdn/7O7FP5qVptZvAAehpcbYvYLal7BPfQ 0mroFDJ6+Uok8l2oIkkjqcIIxy5w5SiVq9yKwyv7UxOAp7kF6rFFg1BHT9Q5KlwX5WXXOStAqOPc5 a+llXn6ob7M5Ch9+eBZA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pCmtE-004Mqu-2i; Tue, 03 Jan 2023 19:24:00 +0000 Received: from mail-oa1-x32.google.com ([2001:4860:4864:20::32]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pCmd1-004DeZ-IY for linux-rockchip@lists.infradead.org; Tue, 03 Jan 2023 19:07:19 +0000 Received: by mail-oa1-x32.google.com with SMTP id 586e51a60fabf-15027746720so22806078fac.13 for ; Tue, 03 Jan 2023 11:07:13 -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=e9FxC5u9raEA62gzOJDTTKSpPWLmB1RuNw13AoTsjYs=; b=BaX2cjvuLHWA357xx30duyZwG+ju4OdXVQ3+B7csHL8Dx4Kb1lkU3hVgOUUMa9n88n dBfTkp0mPgRJMqvKp3FcIns11EbjFafZFvrp9cmqVHUYGJBe/mkGQVb7W0gytdEm9G7M LPrQP9mHDRvSJ6vciFkHHSUgssNV9I3C0pR9ygEiCCG7ODzHKLgZIq22JnpJNzfbUiiy RZrgPoO6AUQ5JB8V+CfjVlHWKyC59X/YOXuTe4moyGld64EP5lORjXdHAzU2B5Iyd96S uxwZC4S+aaJt93gwi0Bq8ZUqg1sioX62p0fDb4tlHKlzIuOZttY7UoJPdBomm56sV/KX uFCw== 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=e9FxC5u9raEA62gzOJDTTKSpPWLmB1RuNw13AoTsjYs=; b=CUHtoA6Vyqc8RTMbcMb2Hqwx7L489axuzf6QbecQOp3LUwtRhMpENw+AgNIZEBg+Fl zGAxwGsIBy9/Jdq8xlCq9fL+OI2N1IaygtYYt45oMAsg3rNg6mfPbQPhu9FGs+btb78k tdOX8caVs6evQ4PLVYd1ee9sWQPQKqsVBkLVJbkUnEH4+Yx+5IX9Ed7p2a8FMQisvme2 J6GFy1fxa1Ir0X3Mqz5n3/9zkMRODA1i71npen67Vs9bNV1dZXrLzXj6Grw3WnZMQGQz SA//EJiQz0HaXX6tj4wK06+i49mkKOuZPXUhHdsriijAlD+R5/Axei5wxVuxMZFWxHiO z5dw== X-Gm-Message-State: AFqh2ko/Zf45jdAJb1SGp2SjiRmywEwWs0MBK+SA2tqei9QVE5k7somo T+kqqolh1ykjd7K6fe+szVw= X-Google-Smtp-Source: AMrXdXvOHS4LTp18Y1bsii95tobv24huefOurEgedYORrVi88OlhQoRYHmz7podkKPmWnG7yFUIkHA== X-Received: by 2002:a05:6870:c989:b0:150:8834:f644 with SMTP id hi9-20020a056870c98900b001508834f644mr6744260oab.57.1672772832791; Tue, 03 Jan 2023 11:07:12 -0800 (PST) Received: from localhost.localdomain ([76.244.6.13]) by smtp.gmail.com with ESMTPSA id s24-20020a056870ea9800b0014c7958c55bsm14752207oap.42.2023.01.03.11.07.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jan 2023 11:07:12 -0800 (PST) From: Chris Morgan To: dri-devel@lists.freedesktop.org Cc: devicetree@vger.kernel.org, linux-rockchip@lists.infradead.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 V7 1/4] drm: of: Add drm_of_get_dsi_bus helper function Date: Tue, 3 Jan 2023 13:07:04 -0600 Message-Id: <20230103190707.104595-2-macroalpha82@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230103190707.104595-1-macroalpha82@gmail.com> References: <20230103190707.104595-1-macroalpha82@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230103_110716_050916_35AE0470 X-CRM114-Status: GOOD ( 18.55 ) 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 Reviewed-by: Linus Walleij Reviewed-by: Sam Ravnborg --- 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..e27061b02315 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 Tue Jan 3 19:07:05 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chris Morgan X-Patchwork-Id: 13087969 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 9A87CC3DA7D for ; Tue, 3 Jan 2023 19:24:20 +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=wlEeHObhnr8djHMQv+Gh/TwAX6JmHvVlVdzzrZ252iw=; b=aEWOgc9lCLSJLi devR95ylHSJuS71eopjlkzJ9iP7ymJOnZkpmZ4pqG94jdOItQpyZO350rcR2NvE8vWXvYHYF4oygs dNgoTm4ITIl4p7SOzf0cS6Kgd9mfxnnoz+Tem0VXn2yRiTJ5zE1ir+mMcYFGTH8dLbK7vDygWCsdd pcPEyRJ8OD7NPJ4i/9V+z6BhdtrdR0qPYZ1I22GgIJftfoQKRJLe01WWyHAjt/NbedW4Xlr1PSfRB 2u4Y/JxxpXlKS/D/mWNYW2w3j2VHfiIaZwJFPy+rFsLFEsRUokbU5ayWlxC6FMiR9mxUoCYsDQqEJ mkn2uEvV6pYsQWq7JDtg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pCmtB-004Mon-O4; Tue, 03 Jan 2023 19:23:57 +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 1pCmd1-004Del-IS for linux-rockchip@lists.infradead.org; Tue, 03 Jan 2023 19:07:18 +0000 Received: by mail-oa1-x31.google.com with SMTP id 586e51a60fabf-150b06cb1aeso8294678fac.11 for ; Tue, 03 Jan 2023 11:07: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=5MuYdw/TKmmfACRBxYwGpprkKtsguH2MTUAVNosMrsw=; b=kCw1vFAqU0vOuAxLd6aONFgPfYzmkCnXAWMT+lfy4TFXsBwNUTQJ1jYj1bIrUnyn2Y 1aY1fpLXO74CXwF+7MkLee3dpJHfFxg+x5EKCrVJ9iICb1jpdzf0QCPIQNLoBZTlMKSX Tbc90nZFV2Uazha8Iw9dH2GDJ5oT3VOuOtO5+Vd8iXdCaDiFKt56NomcyuHtsZmX98Ts DB5X3b3QepmSUOpL+co467we//ClPMgSpRWwEskeHpN1cSdaEHrgwYgiGeBvz69BLOR5 8/g0E5Sq5rU3WdgKf0hnBEu+9tTGuxryPOdzE89rn16ZYBYVcTsiafCdXOIkhD4dIGtt OOvA== 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=5MuYdw/TKmmfACRBxYwGpprkKtsguH2MTUAVNosMrsw=; b=i1+55NeJERQXwHE6s7IptWX2BKka2wkbeMqGBPdhRai3TjmLtWxL7igwz1rne/vRJQ /+HFz3vmcD6SCbryzqMr6LTf+CnyaMnVwMVXftU21ovQ7KDbXDVuBP9Z2HBooBZSR8eF 3zQe5eNKOmyntNxzdi2BRhYVhopIHatpqJHXltxAaPRBbMaOImJJi2YLjpKI+YEHqRra qWqyLUt78446AG1RpJ1k64OgTg+c0ridN9UuV3q6a/M2zE7lZGhAYotB1O+6aLx1ZPaA SCYeJBUwcH2N8bmXW0zT1UHQQ5KmrevnhpuA1Z3+mIAJ7BmWNDUsZuURtqhddTexf2Rg v40w== X-Gm-Message-State: AFqh2kpRc7pVX/rSD9pHAc9FXxuv/4RtqhgM4oIGQbp2ekRtly3Z3c2I Q9ocr/Md6Hc5GwX+1xtohf0= X-Google-Smtp-Source: AMrXdXvoonL3R80H8i+/5RbEGmxtPYYCMHqfwWOtt9cFbwYpUqfQV7IVBHwhJz7jTfGfEKFkdFfm9Q== X-Received: by 2002:a05:6870:889b:b0:143:e0d7:7427 with SMTP id m27-20020a056870889b00b00143e0d77427mr24294519oam.17.1672772833500; Tue, 03 Jan 2023 11:07:13 -0800 (PST) Received: from localhost.localdomain ([76.244.6.13]) by smtp.gmail.com with ESMTPSA id s24-20020a056870ea9800b0014c7958c55bsm14752207oap.42.2023.01.03.11.07.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jan 2023 11:07:13 -0800 (PST) From: Chris Morgan To: dri-devel@lists.freedesktop.org Cc: devicetree@vger.kernel.org, linux-rockchip@lists.infradead.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 V7 2/4] dt-bindings: display: panel: Add Samsung AMS495QA01 Date: Tue, 3 Jan 2023 13:07:05 -0600 Message-Id: <20230103190707.104595-3-macroalpha82@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230103190707.104595-1-macroalpha82@gmail.com> References: <20230103190707.104595-1-macroalpha82@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230103_110716_046114_E1FA419B X-CRM114-Status: GOOD ( 12.45 ) 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 Tue Jan 3 19:07:06 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chris Morgan X-Patchwork-Id: 13087965 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 6DBC0C3DA7D for ; Tue, 3 Jan 2023 19:20:41 +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=hT834e42aCi9qVgKLfOA8OXPraqQmTJ27sP2K5zMkIE=; b=SLkGD5hUG3Pd9a NlE4LstSeMHZOlSi2J2Ogknk1g366QMFGZEWumKaV0kXVyf0COYeYUFqGprqZbSOZ/gHXcWmyaAyY q5c0EJzNgIW9N296NKJOphRKpKtZ0vRUzFY7igfRJk68Khxs5lfi/6XcqHmu06s3sizRhndL+nSbx kc7CC1sFweAo3DYCl85wOyqnGWFDiVv+ejkrSKCMq4GwBOCItWgrAkeQI8p0KNHNhOsf3eAQJ692E rnzTcv8OhYCOBFIqaIhLGkN0geoA+3JNxbeGdIzSWCysuTxLzOxJ11MtKptVP8UKR282TIiSY9AFM nlV4NhgMQ8MDpws6PiPg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pCmps-004KmO-0m; Tue, 03 Jan 2023 19:20:32 +0000 Received: from mail-oa1-x34.google.com ([2001:4860:4864:20::34]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pCmd2-004Df6-DP for linux-rockchip@lists.infradead.org; Tue, 03 Jan 2023 19:07:20 +0000 Received: by mail-oa1-x34.google.com with SMTP id 586e51a60fabf-1433ef3b61fso37836606fac.10 for ; Tue, 03 Jan 2023 11:07:15 -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=+0Um4d9FYBJt1NB9tT+HCXuVoX80Yqj9dMdEFao5ois=; b=RxjGFzl0G+YkxWQ5UeDo4vkkIJKUInLclCHG8+NKK3wvIgzBdckSTZaENtt8rbcNtX HIYtAfY7ZLpsVqi4ZVUsaVtgiNr95wrZkZf9Z3EfEzTi71YRDuQFDVl5N3Vr7HmfN1o0 DfnU7ErMpjWq+8YR9fKs7DIBEvsQpMNyGs5iZ30Ar7NbsXwK49viwdPqBPq3AUCZ2zK3 bv8PAvK7Niz3zR9qUyH5/5Jmew2sM/eFxZdXoOdFZ/gypbOJ3KzEMQCTI725P0sr4lXf pjdBDd/zXcvxd4gGUiBjf1HWgbPo1TXBRmAvohb5jhpFuwKqiNwuN9B5GfgoDT05APAI xLIQ== 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=+0Um4d9FYBJt1NB9tT+HCXuVoX80Yqj9dMdEFao5ois=; b=aEzKwkwbc5hhLNKccsbDgniwo65y9x6gzlNNdotxwYYeyCUoNd2qbc7M8DPKePlCas ly/ETzIwWOwTHS6wBZplfDhDp0YtG82LNDZL2oEAQhSeo2ZeKVbgh3PxJOJK1wC3Ncjq QIuK8ano2lNtRgFT4vlxhmU2Mj7yyv5eXSzch4sDgD/zmOwui5Xyf9WL1EW9mJJxl7nZ 8qYdpb0MEXDaSU6EphGuFBGJeTaHGdqHV5/x4vaeaacK1bZuGRLAg6vLQfc0aowb7/MN 8TDNy2Wz+D1cEgnDs3U9ZHSKQ+7/DUVrahEtiwbWQi9b2qjaQdRkfFg0Au387vXrJeMd 8ekQ== X-Gm-Message-State: AFqh2ko0HGslH7SJw/6JZ/9K2nHaY5rHaWJM0CBshXNporWuBcASak1o 339tuRPpQn9AZyBLk7UiLaw= X-Google-Smtp-Source: AMrXdXs0GirooKkdg1/hyFUXXEQq/Q2pGP2B1UwsIFW4/SHD9Y8zryvm0HWC1W2WMZ2SsLeUB3fCbg== X-Received: by 2002:a05:6870:4b4f:b0:150:841b:4df with SMTP id ls15-20020a0568704b4f00b00150841b04dfmr7491020oab.28.1672772834203; Tue, 03 Jan 2023 11:07:14 -0800 (PST) Received: from localhost.localdomain ([76.244.6.13]) by smtp.gmail.com with ESMTPSA id s24-20020a056870ea9800b0014c7958c55bsm14752207oap.42.2023.01.03.11.07.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jan 2023 11:07:13 -0800 (PST) From: Chris Morgan To: dri-devel@lists.freedesktop.org Cc: devicetree@vger.kernel.org, linux-rockchip@lists.infradead.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 V7 3/4] drm/panel: Add Magnachip D53E6EA8966 Panel Driver Date: Tue, 3 Jan 2023 13:07:06 -0600 Message-Id: <20230103190707.104595-4-macroalpha82@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230103190707.104595-1-macroalpha82@gmail.com> References: <20230103190707.104595-1-macroalpha82@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230103_110716_658269_A1B7D1DA X-CRM114-Status: GOOD ( 22.93 ) 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 Reviewed-by: Linus Walleij --- drivers/gpu/drm/panel/Kconfig | 11 + drivers/gpu/drm/panel/Makefile | 1 + .../drm/panel/panel-magnachip-d53e6ea8966.c | 514 ++++++++++++++++++ 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 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..ec90da8e2ae7 --- /dev/null +++ b/drivers/gpu/drm/panel/panel-magnachip-d53e6ea8966.c @@ -0,0 +1,514 @@ +// 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