From patchwork Thu Jan 12 17:53:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chris Morgan X-Patchwork-Id: 13098522 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 2B67BC61DB3 for ; Thu, 12 Jan 2023 17:54:29 +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=9klDfTCA2E9cy4PDblPKbnixIexhof96Law8ZJNQnMA=; b=4UiF4JtGpujbTo OOwtRuV168Zw2Wp+5ADzcft25e7EBPBtOI/dTyiw2g5jB7mlpdZ17mKmDuiQaM6w0N8xgjzbatAbg GjsYIyWrhFr5g1DXbQpbLmw/TSYBKfN6b/nFODLxFeVlcdJz47RPZW2Nolw9fMO09rlFykuCdY4WP pHJhCiyr1YxFExGQJlQvZCCyTxTKUuF1l10B6wXmBXY9I5wmp6HBOaFho6sZC+vgXl3y6V/R7bP1y MlOkcEbFHVxwg1tgfS12mgK2EiOBmrkkCT6LYPOvs2iZqaLRTqtVMKO83JA9iOnYN9bvo/tW6ugmX rM6W8z33jfGc6KvKobLw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pG1mN-00G8Cj-JS; Thu, 12 Jan 2023 17:54:20 +0000 Received: from mail-oa1-x2a.google.com ([2001:4860:4864:20::2a]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pG1mA-00G841-04 for linux-rockchip@lists.infradead.org; Thu, 12 Jan 2023 17:54:09 +0000 Received: by mail-oa1-x2a.google.com with SMTP id 586e51a60fabf-14fb7fdb977so19658029fac.12 for ; Thu, 12 Jan 2023 09:54: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=tbQtC6VR/FF2nTlwiIZ/sGihRVBeIvN5iTfkeWtgBLM=; b=qPTD6c3rS1AIGdJd/IqwreRStSbgDKPzxdzC184rjfwMWhuSAyM+9w6ZlOnS18n5Ac Ur5lWfjTQpEn6+CjmmWae26MLrYu/Mm1MC5GHtyb2l8Lwji+JZzBG6JXDbL3BFisoZuO xUanSW2hmFOJ1mYsDeQ5wElTceOuKCkqGF03Ny/zR9PtsZhuLPXrODXy82BwbFL8gs1+ qK/MPEa8VfwCRl9hMLlz4dE/0wo/LraqHGrjFFJg7Rqo3Nw4oyalzSpyVm7wiMI0Za5U mSsfdgEgjLMhZBN8OwcXOwpSJAY648bSybKLME8kZ/zA+94/bwebwd6LzXu8PDvVcyDv K3UQ== 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=tbQtC6VR/FF2nTlwiIZ/sGihRVBeIvN5iTfkeWtgBLM=; b=igXdDdCR3JCjcUo5nGIVgxhefxK3I+kLH0SKLZHIhyJCUqSOF140TtszcmZkEoa4wP 1BLkU3+JfiZSIsbZ6rWdGU9EHZh9ygjdsagW5wGeS+pyfDu+PVLW/M41nL0MWr6cK4H/ xq+A7HDokpFkYWOvxKqYXzsTgiGdNBTW+fI//wzXh5VGU29C7J863HqVZjvvJTPdf8fN L0IW0Cl72K1YBUWQIOWZRZdLoLDSz2A0takMBU3vEWX5P3Moo5+6WHfGqEbIaICsgjmo 1oiLVFLRfLpA/Jt0N8e7dkgC2Le2LnG8xSCP2pQZJV4vExvGKoe0GqDdvHsiFb5F6zi5 GQeg== X-Gm-Message-State: AFqh2krPhIHsySH9qI0aqttUqiNpWv/7V9/YmT6dkz1VMsBekTSq4n3S UiH/fo/G8YU20S8R+OG/Qt0= X-Google-Smtp-Source: AMrXdXuatgeeWB+YNvfU20Yql1rz5X827vbxrDwe2VY8Li5QrKB8iTXVl6QQLGb8ofIMG+3MqP+4vg== X-Received: by 2002:a05:6870:9f0d:b0:15e:ae80:4733 with SMTP id xl13-20020a0568709f0d00b0015eae804733mr2519457oab.6.1673546044553; Thu, 12 Jan 2023 09:54: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 v17-20020a05687105d100b0014866eb34cesm9317049oan.48.2023.01.12.09.54.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Jan 2023 09:54:04 -0800 (PST) From: Chris Morgan To: dri-devel@lists.freedesktop.org Cc: linux-rockchip@lists.infradead.org, devicetree@vger.kernel.org, linus.walleij@linaro.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, Chris Morgan Subject: [PATCH V10 1/4] drm: of: Add drm_of_get_dsi_bus helper function Date: Thu, 12 Jan 2023 11:53:55 -0600 Message-Id: <20230112175358.421975-2-macroalpha82@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230112175358.421975-1-macroalpha82@gmail.com> References: <20230112175358.421975-1-macroalpha82@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230112_095406_179042_DDEA8EC6 X-CRM114-Status: GOOD ( 18.86 ) 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..6c2c97a716fe 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); + +#if IS_ENABLED(CONFIG_DRM_MIPI_DSI) + +/** + * 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 DSI node. This is optional + * and if not needed can be NULL. + * + * 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; + + /* + * 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. + * since this is optional, check if the info is NULL first. + */ + if (info) { + 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); + +#endif /* CONFIG_DRM_MIPI_DSI */ 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 Thu Jan 12 17:53:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chris Morgan X-Patchwork-Id: 13098526 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 36E8DC61DB3 for ; Thu, 12 Jan 2023 17:54:40 +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=rnUgX3rHa1qKBL v2ov+cDqWwL5GCnSiXhJ3FZIEwwgRdAl8XDwVOHttlC9ylMAuJtGWmJ6CGOYnae16gXQ1kOcWKxLK nljufjRpfHaCUNCm7f8Jsi3vwK9EEeeYCoYlAMwmMHaOlPgtE5bBPwuTciDiWe+9FGO8DGU0Uobtj K70mI0CoSEejW56z7kmbDHmQvkTemt9pExsTku2RJKtqeCZD4wltzFw/JjAlS0aMNJBOcq/Mf3U4D 4b9mDnxPTgmmjy7Zh/uhlR7QX2MboQe4P3GDd2v/yTXnAXv31El4CAk0WvB5+FiQ+5iRLYXfiQBQ0 d8tBmLuGHY9HIHfbNooA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pG1mQ-00G8ED-5L; Thu, 12 Jan 2023 17:54:22 +0000 Received: from mail-oa1-x2d.google.com ([2001:4860:4864:20::2d]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pG1mA-00G84B-Gl for linux-rockchip@lists.infradead.org; Thu, 12 Jan 2023 17:54:10 +0000 Received: by mail-oa1-x2d.google.com with SMTP id 586e51a60fabf-142b72a728fso19671253fac.9 for ; Thu, 12 Jan 2023 09:54: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=dgMx+QidzWwZB9d8EFxiQBvCTRSPbMX2JTxiBtWNFyk=; b=jvSE9f+Bm4PM6i8gp+gG4lmnpImnH3/NoZWA86JpoIpZsIyfAv3iy/IcwO742mXB3u /zwAgiKkKw69OmqnlJQwdbOzQXySY40V3rlIB/jwkae/+gsxQSqZCTJQx/gZauR3s428 EDAxO/BBILo+PDAjVT+iilsVBqYbiQuAmWLcb7/qcuz1ksyDL6fveCJf54EUvW7PcbYx +URrq4S29msEGO3LZ0hAgBNFAFIvRYoBY7ycyujotelk4tS86PVtpY0IJhX4TXuRu8f0 5eBQzT9bl59CeqxMTtCfVOaiMf50aMfIbuFjq7ug/tTKiChesrZSAbda3CKBjt5uKMHo icGA== 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=PZEvTmXYE9QsGzcya8ACr6BiHH79UabWhmfBBJk55EAKOiOFOF4gYQPUvZaKHtium6 lU0qd8uoU6jBR1ZNyfWMbc9ti4QizdQtIF6O6C0svBUjdTlSa7bYdh5TRvGIMC66i8fj qFyC76NywyGHPNL+l/0lFBed+Nz5LtAJeppQKEy1i4NYfVmWUZ08gMCbrV9ERyKnPPu0 TZZRFz3pg+JQWXgh+t+kW0rzVf5nTv2f9RbKvkOPrallvb94La+JcaYgbK1nlOkP9D4U 057qkgUGe4D5nqykplaN5/tO7fvRZ1gABo3kx28JkesC55v/RwUAG2AlYEP65EMTad5l VvJg== X-Gm-Message-State: AFqh2kovFgUlq86Xa/XP3ZDuKmJCYuHV6cHbu7wAbevs178RKQcz6RzA ZYGIWENgD1YfapAz3UiAze4= X-Google-Smtp-Source: AMrXdXsEeZ++yki3Zow70/z39R4DHq5FMuMU/XBn8Ia0aX+tI4LICosOB8DxRU6z5e6gylKLEcSwzQ== X-Received: by 2002:a05:6870:3e0e:b0:150:878c:d4c with SMTP id lk14-20020a0568703e0e00b00150878c0d4cmr22371019oab.3.1673546045296; Thu, 12 Jan 2023 09:54: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 v17-20020a05687105d100b0014866eb34cesm9317049oan.48.2023.01.12.09.54.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Jan 2023 09:54:05 -0800 (PST) From: Chris Morgan To: dri-devel@lists.freedesktop.org Cc: linux-rockchip@lists.infradead.org, devicetree@vger.kernel.org, linus.walleij@linaro.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, Chris Morgan , Rob Herring Subject: [PATCH V10 2/4] dt-bindings: display: panel: Add Samsung AMS495QA01 Date: Thu, 12 Jan 2023 11:53:56 -0600 Message-Id: <20230112175358.421975-3-macroalpha82@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230112175358.421975-1-macroalpha82@gmail.com> References: <20230112175358.421975-1-macroalpha82@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230112_095406_616608_F8B0CC7A X-CRM114-Status: GOOD ( 12.20 ) 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 Thu Jan 12 17:53:57 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chris Morgan X-Patchwork-Id: 13098523 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 35839C54EBE for ; Thu, 12 Jan 2023 17:54:34 +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=4Te4xZOX06VyXx WjmzJbQx/be48okW97yS9HTjw+4L5aQ23ogW0vAtOCrNY9VsPxznVILYcV02zl9LfSVIHlGwblTlm Flw8e7CJAVsUmQNKRTB+krACp4x863/tfWU9LKK+r2GERjnmTgOSfpV9SAhCYRrnpngyCLe1eFWL1 KHerEQcVO+KeghfKQD/y6kyGWM5Q+d6HdUeL/XNu08F/fWSMJ9neGkE7jHDouYSDTKaBsYJRdV6r/ dVHLLhMTEVh5oFDH5MB5NdCFmsn4rHpqgmYWQZrJ0b5axUE8QrOxyFrfvVP39rLAquznbCDJwt3yg dP+PyV+FxFaF8ALdH9yA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pG1mS-00G8G6-BD; Thu, 12 Jan 2023 17:54:24 +0000 Received: from mail-oa1-x33.google.com ([2001:4860:4864:20::33]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pG1mB-00G851-Cs for linux-rockchip@lists.infradead.org; Thu, 12 Jan 2023 17:54:12 +0000 Received: by mail-oa1-x33.google.com with SMTP id 586e51a60fabf-12c8312131fso19721026fac.4 for ; Thu, 12 Jan 2023 09:54: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=Ug9Qalu5EQh2ykE3eLRnhG5I3plTxJnHDwIw/1EQhJ8=; b=YhlRHTBr2khuwyjq//S5NXiqRy31rTFbSt+pcuur7j41qKZrZAB/znO29FTreugUxH 3mDu82mnzfFx5zZz7ipI1KQjtL3LS/bxtwHdfjaSlxK4rM7d+VFXaUl01cJP8XEi3HpG vBk0fnDVlYR0EgHFyjmMZwkc1Zaf4fuPpZ5AmynTQNUdjA16D680L9Ymt79KFPSnUo2J BT/+YoBI5W9ul0Bd32gHM2J7oRGt8YZbge8i+NZ3iVR0wGbDxetZI6uBncEgbxTFUz58 7+ok4dNIohXHNv3hNXbMPX2yBSsbvPst8QsBhUdXg61eCS61AYkoemUut5T6fcC97N+L DkxA== 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=yNZqvAEGxm2ZRPpIuZhdlmxr6gXb6PQXg1++gJsTv+rnby1StOOeLLN61JyhZOoM24 LnWCUVt1MUhqsPWhIDCLBzAig+GJoodlM200keuyO4F7ANHB1fcE0o5INqe4iRQgeBuq 3f0AY58QGYgHbWQPZzS+jSvSSj5/IV00zrHYPm0X6lvNR4LHTOYy+i3lUKA0EtTLusVG eArhJwf0fNQUVgHij8n119DloJ1ue+uWhGQdbkDFGTEmULrSNqCQ5w6SrV2u2fkwSbnM 3jOKo4wX1lXqgsEaESi0k+y8BA+52D55WVYUjTbBT860g7e/hBBqR0Ypg7iXu5RSpDZi WtQw== X-Gm-Message-State: AFqh2kqtCuWR6GT0Wicc6q5JvT0EWOop72mA+7WOQVgJbYz2Q0BgYPvO cVNMlpDKLg0bkuOgiLtIyIMCr+jzTh4= X-Google-Smtp-Source: AMrXdXtQw02qOdpriAzWOCtXnCjDorVPTQSrRvegaLddYQ3w24ncV3bM0vMYb/nOrn9zLh7AY3AbCw== X-Received: by 2002:a05:6870:c103:b0:143:b833:b5c5 with SMTP id f3-20020a056870c10300b00143b833b5c5mr36576082oad.50.1673546045977; Thu, 12 Jan 2023 09:54: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 v17-20020a05687105d100b0014866eb34cesm9317049oan.48.2023.01.12.09.54.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Jan 2023 09:54:05 -0800 (PST) From: Chris Morgan To: dri-devel@lists.freedesktop.org Cc: linux-rockchip@lists.infradead.org, devicetree@vger.kernel.org, linus.walleij@linaro.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, Chris Morgan Subject: [PATCH V10 3/4] drm/panel: Add Magnachip D53E6EA8966 Panel Driver Date: Thu, 12 Jan 2023 11:53:57 -0600 Message-Id: <20230112175358.421975-4-macroalpha82@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230112175358.421975-1-macroalpha82@gmail.com> References: <20230112175358.421975-1-macroalpha82@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230112_095407_573940_A9DB3B4B X-CRM114-Status: GOOD ( 22.24 ) 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