From patchwork Tue Jan 10 20:02:52 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chris Morgan X-Patchwork-Id: 13095613 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 12A8AC54EBE for ; Tue, 10 Jan 2023 20:03:23 +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=VMIgD3hLe/oYkv4rXMa3YVjti/mEp1EEaAHqKNxRF4U=; b=Pr4Wbw076vnN7P LzqM9YKYR7y73Bnrhx/+N2cEIVlpujnjwCCWC9PWduj83mJn/NjMvtgqcxdFz1V79C0JgZDzV3pQO fHFvHhgue5SsdBnH3hLx4hLfOp7oVZQspRAuiyDYP93pxnLIBzkcYubhAXOsb9BcLEIturngp79Gt rI67uFTNSIy7pbbBLGb/+BA2WMTuevGQygSCCj9T8/CYij/Zw5W+lu+wUirNXpNgw6GA2RWsu95vd 8aCk36WZ5dWZb0WGYprZoVezt2pYWFh73EXJYpuBdBfrFhfV61poHFWYe8W93DmHbNvcL213BmP1G E4rqh7NGlq/pXUrnCENw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pFKpy-008QVT-RP; Tue, 10 Jan 2023 20:03:10 +0000 Received: from mail-oo1-xc2f.google.com ([2607:f8b0:4864:20::c2f]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pFKpv-008QSn-BF for linux-rockchip@lists.infradead.org; Tue, 10 Jan 2023 20:03:08 +0000 Received: by mail-oo1-xc2f.google.com with SMTP id j6-20020a4ac546000000b004f1f6208187so2110073ooq.13 for ; Tue, 10 Jan 2023 12:03:05 -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=pQpuQS1QwpsWJNNB2Pcp6i5pr8OVqWQOHJvu8GJa6A8=; b=iifeyFjbhbErxtEkst7eMNp/u+6oYV+B/X9T6WGm8+wruGGJb3mbPNc2SOvudx+sTH s7IgCpsRy3W4jtwp3wpGYYOfhFN+Yhg2tXqx7xNRPR+tj0NjiRXV1DxrGQW6kWhVtMm3 bACAxiY1AhrWaSTEvMk8VX33sJkw582Tiq1ltKXbpdaL6ObeHcJ+3N3T4mT6WNLo4kOH Oi7gucF0xb0URmCF9xNAoVB/YCGwnaf8GufHWTqCp6t6isNtP3DuPloyQxHiKLArD1EF ZY2jz3cqRo/yWABoHzAPhPDTcOHhjQpKMUNMmbjtkgr6I/fAOYQ2WzDY8UMgVsdwejrQ 6m4w== 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=pQpuQS1QwpsWJNNB2Pcp6i5pr8OVqWQOHJvu8GJa6A8=; b=b74iNlaUGq1pixZNKoZ8aYgGWgi8At9T+ZGMYsyY6lMwVCQAe1L11XgpxvL1GHrJUU tbEwTYIjzb8s+S2tsC0fKH59NuTV5eGGma39SvxIXBUtA5iS8gN26cZr88EmBI7LDLdM DHUxDLOBDIQrNgB0qWqTmdUp8YxtleV5NIldUvJEtgN2p0MjGDSBkxFDDhV6jGo1zs6k M1MOAuprxBzE1J2J7E0dXXvWAEYvGn3XK1h1qlPoorH8EP3sX8buzNGwr+OWkn2c9zXg 591oZ6xf9LO0gx1NkWIH9VJEAyMwKX4faTMTXnRh9ckpP6VGANAy5pyDr7Sw5enfB2KF zT2g== X-Gm-Message-State: AFqh2kqYvoSOh65urEiWkOq3dF8a88ZsK+VzictgVBzrRApu2X5JrDhh Q3FiU37abWS6m8C5f6I7KaQ= X-Google-Smtp-Source: AMrXdXu2c8nnvFwTe/hsnYmODEQB0lTEYVO0SgxROQwIL9ZtJ7J/gDc848lvgqe9fN6nfcf+CiQOnQ== X-Received: by 2002:a4a:4f95:0:b0:4d5:695d:7ab5 with SMTP id c143-20020a4a4f95000000b004d5695d7ab5mr24764368oob.7.1673380984665; Tue, 10 Jan 2023 12:03:04 -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 r4-20020a4aad04000000b004a394578e14sm6089779oon.32.2023.01.10.12.03.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Jan 2023 12:03:04 -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 v8 1/4] drm: of: Add drm_of_get_dsi_bus helper function Date: Tue, 10 Jan 2023 14:02:52 -0600 Message-Id: <20230110200255.1218738-2-macroalpha82@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230110200255.1218738-1-macroalpha82@gmail.com> References: <20230110200255.1218738-1-macroalpha82@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230110_120307_408088_A565D0FC X-CRM114-Status: GOOD ( 19.48 ) 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 | 9 ++++++ 2 files changed, 79 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..f5511e0d1822 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,11 @@ drm_of_get_data_lanes_count_ep(const struct device_node *port, { return -EINVAL; } +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 Tue Jan 10 20:02:53 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chris Morgan X-Patchwork-Id: 13095615 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 6AA11C61DB3 for ; Tue, 10 Jan 2023 20:03:27 +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=o/JBR+Ko4ap13C 601EI5mxuJW4Lu+aPfuRZh9ZHCimzGlfAvI9537gqZmvcjh7367vq1n4jlrdwE04AIpnYz6LNJW6B ERGS1FF3S4YPzi8dCXw0W7gY7yZYTYhHfVFOUAFQIeEWniWsYB+egYOQqRF+7spNy4iKC7PhajSYP opZ2XeN4Ma82WOj48eTNKDCfTe0Cuvsdb8qaZhwbeUuYt9o/NRPZCpNoA3yhAr4Lfng64ZjUNF+Fa +wEKVF2sVusRUPso3zLOn8S0xsaGqmy/5diXYh9xh21TwE9BLoULC2xp/ETCgdJMk3cNAzDFvwAy3 eEEa+6IoWtdpVgY5e/vg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pFKq0-008QVz-7r; Tue, 10 Jan 2023 20:03:12 +0000 Received: from mail-oo1-xc31.google.com ([2607:f8b0:4864:20::c31]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pFKpv-008QSv-HS for linux-rockchip@lists.infradead.org; Tue, 10 Jan 2023 20:03:09 +0000 Received: by mail-oo1-xc31.google.com with SMTP id h3-20020a4aa283000000b004ead187bd6eso3502573ool.5 for ; Tue, 10 Jan 2023 12:03:06 -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=lyuDrX+JUiUXvd41LuqumERhjN0RSpIxWin21vu+wf1V0YRZkVgID+091W5ug1Vi/q Qa7TPma391EC7LZEDf/LYaocyRLjZayXOMlI+VuuhPk+8ovZ56ZsXrSjA6F8KWmJavxp y5gcfNraHjo9bUcEZuhWviC6v2LmKNa9dEBeBnHDeLuAj25e7k0oJYsmjiJtrgB7YPc2 xvKS52Io0b0TlbXjf+wXmPTzVCY4CDIWejtsn1ZcVNynKRVJKChsyLKOA/mzJ1E/cl/5 +SyNmOs5yS5gAbtEzq6SUE4Dq+hTOdpZ/TytODXlaIwoob1ItgiQq8FL5nROvdHeQx5U tufw== 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=nffihiA8fBwqy7uAgVQmVfHnhRwt1ErHHflNgp7xXUInRQaLVWsS7ODxBClLXCwbxe E1epF35CVxHCHs1FSmre6JbrYqw2oiGTlUdLz0dGSQVER0u5BKaVC9DCD4LniD/vigm7 HZtLDioDwhvElPoEeMygrCTJ2dCUgOKsrXoUpNqU+GSyr6WItlYLvuTqnUxgPjYjJIkw nYbtACsTAOceABXXDas29eBFAGDzZQDK+u9scVG3k2TxjChEa/K35/xQvYDWwc8elb2K GbWK0rpXR1kFSMnSHmjAzTfqgliNnfUn+32s7oml/tnr9D8ltQjVyy1EZ4MXjP93fdOl rjQQ== X-Gm-Message-State: AFqh2kol5pTwBTCfxCEe+zabl3wDoApTMop/CO9d2+kAsnGkZ5Y0Oot6 MD4lcTX8qOVlCg4rYiYDZWo= X-Google-Smtp-Source: AMrXdXttj8wh0ymNl53Hrx8x6W1dqMYoQv3OPum00In+oTXiJ/NIMK/j/iDobxR7iiXYnxWjf+3yDQ== X-Received: by 2002:a4a:97b1:0:b0:49f:dba7:5e65 with SMTP id w46-20020a4a97b1000000b0049fdba75e65mr28394714ooi.3.1673380985493; Tue, 10 Jan 2023 12:03:05 -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 r4-20020a4aad04000000b004a394578e14sm6089779oon.32.2023.01.10.12.03.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Jan 2023 12:03:05 -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 v8 2/4] dt-bindings: display: panel: Add Samsung AMS495QA01 Date: Tue, 10 Jan 2023 14:02:53 -0600 Message-Id: <20230110200255.1218738-3-macroalpha82@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230110200255.1218738-1-macroalpha82@gmail.com> References: <20230110200255.1218738-1-macroalpha82@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230110_120307_600104_C87F3646 X-CRM114-Status: GOOD ( 12.69 ) 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 10 20:02:54 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chris Morgan X-Patchwork-Id: 13095616 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 DCE69C46467 for ; Tue, 10 Jan 2023 20:03:28 +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=aquwm7CQ0EDG3c Tjdeomk8aXgNt5ruIcVRKnxz+Kezb/BAZsMBWtDN7LfSZIJZ+K+Tyb4fFxehcDygKhM+OrCLRLeFS TPtfY7UEUciDH9UxxMoXF5q8KPzFkH7wl6+hp9tAhDnW4Ee12JCnMnZUy7S/UWw62+o8tBtCI19vU VUdkuErHbpla4MgBGZyAXAmBL0DDIz8zSwg9KthFDzCAfA/qNC1OZW45n9iixhqIJBWv+294Wdc3I WtaSripn+nghN9SLx0MJFJdcrMNYTe8ItIH/oim8lPmRS9axZEfAdujXXq7le4CWBbOTB25TwG4fE IHHhOi5WKJ1+BVsy1otw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pFKq0-008QWT-W3; Tue, 10 Jan 2023 20:03:13 +0000 Received: from mail-oo1-xc35.google.com ([2607:f8b0:4864:20::c35]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pFKpw-008QTF-Im for linux-rockchip@lists.infradead.org; Tue, 10 Jan 2023 20:03:11 +0000 Received: by mail-oo1-xc35.google.com with SMTP id t15-20020a4a96cf000000b0049f7e18db0dso3499506ooi.10 for ; Tue, 10 Jan 2023 12:03:07 -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=R9O3FGzGI2egRe81BxLh6Q/JSF3GQ7qc6/AgYWiOK2qSr+lLIwfBWkPlp59bFtsrg9 bmGFFI18F1b98zg2nHrqzGA7+4p0ekuh+A46m3zBJWAUtQtN4BGpm2uorwqWKnK01rAW +FbZWzk3hGjMdIeRTexsC3BHxF5DygFVJEB/atftj5w4JmbLb8MQCXdT+CS+iSdTehBl Tf6io2zzEwH9avLb45F/cLRVoQm1n2VSyeOnrbuCo4U1cIFOG+QAtUwwKOvYbmbp1t2V J4BW9TY7sYgGH8nQY2tA17ZGiYIerKAjHfIJ4tZzC5jh23YrEIjRxj/WlDTLg2FcyxUZ zIuQ== 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=oZhxG+UQOZFsMEzYtn4/p70Qv5B/VQojYDUWS1mQ7/zSXpxSkYYb1TK19Bl2kbqd1K 1kjSZYrkf5zXSUy78X3uM6iLR8Z1pLP8JYx54tPBWVw/mIVF2K0Yj4qytSqeJXB/EVsF XQiABh8WtcC6ZfkP8CPaJWAxpdxKdLwYG3F/mm7CpH+Q7Ot8caS6cTpYt66AG1aZ3X7P DuL9iiHWwuVYXZj9Onw9sm5zULggn8edjqLjcdi8x7R2210zVAweR0txFdn7skPPXY2O jay3lu8S47aSUn9MCn8ieyJCaffs+BcHI1QVnjn2+ynIoWjupQy8XR+tqtUisREH7bCJ 1jqg== X-Gm-Message-State: AFqh2ko5fmg8NdQeA+e7nOWDi8ap48PhAO/7tJT3EHZoHLOKG8du1RCi VmkfyRvJg0CCXJDUp05ydLs= X-Google-Smtp-Source: AMrXdXv1ZFWWxlJ9+r8RetCCCpbrOon7U7KDZnmdvQjIbsone6id9rwTBgILp37xDKFME2XjnWmfvQ== X-Received: by 2002:a4a:e84a:0:b0:4d1:c23:3c51 with SMTP id m10-20020a4ae84a000000b004d10c233c51mr26865012oom.9.1673380986339; Tue, 10 Jan 2023 12:03:06 -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 r4-20020a4aad04000000b004a394578e14sm6089779oon.32.2023.01.10.12.03.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Jan 2023 12:03:05 -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 v8 3/4] drm/panel: Add Magnachip D53E6EA8966 Panel Driver Date: Tue, 10 Jan 2023 14:02:54 -0600 Message-Id: <20230110200255.1218738-4-macroalpha82@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230110200255.1218738-1-macroalpha82@gmail.com> References: <20230110200255.1218738-1-macroalpha82@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230110_120308_675987_D7BC7A57 X-CRM114-Status: GOOD ( 22.81 ) 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