From patchwork Thu Dec 15 18:52:08 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chris Morgan X-Patchwork-Id: 13074470 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 8B62DC25B04 for ; Thu, 15 Dec 2022 18:52:36 +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=tJLWIMUY7NeWAvg4nDR+TeLEUNqQVETBk0Z4g2szwvU=; b=vF63Vl8YuwnLft AB6n5ug8Mv4HVxsXA2nx5LHMmRQV/fXxwBcZ13+Wq7/BqY/kfkosvfzKiRZvk2dSye+eVWdPPV1Rw Ikw/Dj6roPaIoFNLfI8DxWPYyWOx2H0kwtK4yF57sSDOMUF7E3jK0CLrn2Tmbu94ip3FEINWY82Jm 2pfKlonheh5K6APk1fBknece5plKxr85l0bNsLfCxsD80HMw/g42DlKFkK5Dv+tRGVL5c3T1vSeKI 3wE6XKmbn8TUlMhEA3kNuU6IZ73vmx508CfJsyIDjAbFL3ddj8MbrVzJCCaSuV1+Lpy1ZXUchGAI8 UslbzHF8Kw4DcNpgHMlQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1p5tLF-00Atzz-Lf; Thu, 15 Dec 2022 18:52:25 +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 1p5tLB-00Atwx-SQ for linux-rockchip@lists.infradead.org; Thu, 15 Dec 2022 18:52:23 +0000 Received: by mail-oa1-x36.google.com with SMTP id 586e51a60fabf-1322d768ba7so432773fac.5 for ; Thu, 15 Dec 2022 10:52:19 -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=xn617BcZSTh+Tv1VQzD2cNnC0x1O8uRUTBT7WhFq7GY=; b=iaUGgI6zm2S4J6y8CeuTQyLrYTkN31CQSbVQcmcxcljy+iB53ew7QQ/lUzmrCIQAit EAXSYFopTo/eDtzSERRPBpFTUbpF8Bp4CWJ8QxVhcQl/xN76xgq8NY4YhweKqL+6X+sQ rAzrSxGP0SpDBLk2hSsQiG1O7yhGZzo/XkV1K+tzEUx492Vi/P6tfCfeW0sEgU/g60wl aJxxsINu8tg9pCV8uv20ZU9W901FYSd9Ta5u+p6ChDdXUha7RjIx5UEZEjpq3yxeRoGF 1tPRY2msCs11fJUJjvEWBCMcGjZcyC3UmY0YJRMKuced16yxXmUqP4mXxm3PgCuzCII4 +Z7Q== 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=xn617BcZSTh+Tv1VQzD2cNnC0x1O8uRUTBT7WhFq7GY=; b=l02v5H514iek3Aj5Rpzi5ocxjSIizIDgU5PaKEGbUO8wzDhJKG9fOCATDwdIJXV2QE sQdejsS5Z4q61D3yhvB+Mczxb0D4FZdMc6Rb/v+0a5zO/jIUnxWbNFYNC4RNcl+NIQmM jDBDZO/VUSRmuF1DcWOGE6xKCcoXbX9v906rQnuyjrQ94Ksf0zSzE+VgSgNiVfQYBcYU LWUGWk7Vd3lJlY6I5P/KjXd2QzXdRL3D4oNA8X397FUtbn3bt78g1AOlaJEY5Z2euwMC fUw3hNzEWHQbBNel4dyaUeE2BlOg9dQ7YuV38XDkaBqg4zGMChcZn+otaZmT9AUyZpSM QTbA== X-Gm-Message-State: ANoB5pnZ2CGoubgqBNxFJ0AKtusXXsCVJJiXSk0oks6xxulJVfCL7JO2 jhJYUTezspdEP0qfjKBorxA= X-Google-Smtp-Source: AA0mqf47rBfZYHu7hg3Y0A1cdftmNxiEogndSB8pVOzg2OPYN/8oB6JyAVaCwGgWFxQMYJC8UY+v5w== X-Received: by 2002:a05:6870:8307:b0:13b:d3cd:3531 with SMTP id p7-20020a056870830700b0013bd3cd3531mr19662488oae.29.1671130338836; Thu, 15 Dec 2022 10:52:18 -0800 (PST) Received: from localhost.localdomain ([76.244.6.13]) by smtp.gmail.com with ESMTPSA id g11-20020a4ad84b000000b004a09df5a1dbsm72264oov.8.2022.12.15.10.52.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Dec 2022 10:52:18 -0800 (PST) From: Chris Morgan To: dri-devel@lists.freedesktop.org Cc: devicetree@vger.kernel.org, maccraft123mc@gmail.com, tzimmermann@suse.de, mripard@kernel.org, maarten.lankhorst@linux.intel.com, heiko@sntech.de, linux-rockchip@lists.infradead.org, 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 V6 1/4] drm: of: Add drm_of_get_dsi_bus helper function Date: Thu, 15 Dec 2022 12:52:08 -0600 Message-Id: <20221215185211.1560736-2-macroalpha82@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221215185211.1560736-1-macroalpha82@gmail.com> References: <20221215185211.1560736-1-macroalpha82@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20221215_105221_948006_CCA4E634 X-CRM114-Status: GOOD ( 18.03 ) 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 --- drivers/gpu/drm/drm_of.c | 62 ++++++++++++++++++++++++++++++++++++++++ include/drm/drm_of.h | 11 +++++++ 2 files changed, 73 insertions(+) diff --git a/drivers/gpu/drm/drm_of.c b/drivers/gpu/drm/drm_of.c index 7bbcb999bb75..7d89ac164069 100644 --- a/drivers/gpu/drm/drm_of.c +++ b/drivers/gpu/drm/drm_of.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include @@ -493,3 +494,64 @@ int drm_of_get_data_lanes_count_ep(const struct device_node *port, return ret; } EXPORT_SYMBOL_GPL(drm_of_get_data_lanes_count_ep); + +/** + * drm_of_get_dsi_bus - find the DSI bus for a given device + * @dev: parent device of display (SPI, I2C) + * @dsi_host: DSI host to be populated + * @info: DSI device info to be updated with correct DSI node + * + * Given a panel device parented to a non-DSI device, follow the + * devicetree to find the correct DSI host node and populate the + * dsi_host with the correct host and info with the correct node. + * Returns zero if successful, -EPROBE_DEFER if the DSI host is + * found but not available, or -ENODEV otherwise. + */ +int drm_of_get_dsi_bus(struct device *dev, + struct mipi_dsi_host **dsi_host, + struct mipi_dsi_device_info *info) +{ + struct device_node *endpoint, *dsi_host_node; + + /* + * Get first endpoint child from device. + */ + endpoint = of_graph_get_next_endpoint(dev->of_node, NULL); + if (!endpoint) + return -ENODEV; + + /* + * Follow the first endpoint to get the DSI host node. + */ + dsi_host_node = of_graph_get_remote_port_parent(endpoint); + if (!dsi_host_node) + goto error; + + /* + * Get the DSI host from the DSI host node. If we get an error + * or the return is null assume we're not ready to probe just + * yet. Release the DSI host node since we're done with it. + */ + *dsi_host = of_find_mipi_dsi_host_by_node(dsi_host_node); + of_node_put(dsi_host_node); + if (IS_ERR_OR_NULL(*dsi_host)) { + of_node_put(endpoint); + return -EPROBE_DEFER; + } + + /* + * Set the node of the mipi_dsi_device_info to the correct node + * and then release the endpoint node since we're done with it. + */ + info->node = of_graph_get_remote_port(endpoint); + if (IS_ERR_OR_NULL(info->node)) + goto error; + + of_node_put(endpoint); + return 0; + +error: + of_node_put(endpoint); + return -ENODEV; +} +EXPORT_SYMBOL_GPL(drm_of_get_dsi_bus); diff --git a/include/drm/drm_of.h b/include/drm/drm_of.h index 10ab58c40746..a694ce71c3b2 100644 --- a/include/drm/drm_of.h +++ b/include/drm/drm_of.h @@ -15,6 +15,8 @@ struct drm_encoder; struct drm_panel; struct drm_bridge; struct device_node; +struct mipi_dsi_device_info; +struct mipi_dsi_host; /** * enum drm_lvds_dual_link_pixels - Pixel order of an LVDS dual-link connection @@ -56,6 +58,9 @@ int drm_of_get_data_lanes_count_ep(const struct device_node *port, int port_reg, int reg, const unsigned int min, const unsigned int max); +int drm_of_get_dsi_bus(struct device *dev, + struct mipi_dsi_host **dsi_host, + struct mipi_dsi_device_info *info); #else static inline uint32_t drm_of_crtc_port_mask(struct drm_device *dev, struct device_node *port) @@ -127,6 +132,12 @@ drm_of_get_data_lanes_count_ep(const struct device_node *port, { return -EINVAL; } +static int drm_of_get_dsi_bus(struct device *dev, + struct mipi_dsi_host **dsi_host, + struct mipi_dsi_device_info *info); +{ + return -EINVAL; +} #endif /* From patchwork Thu Dec 15 18:52:09 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chris Morgan X-Patchwork-Id: 13074472 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 73D31C4332F for ; Thu, 15 Dec 2022 18:52: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=wlEeHObhnr8djHMQv+Gh/TwAX6JmHvVlVdzzrZ252iw=; b=a8lIEBaet4Xhmj 4YVGIJQAYOWrl/iy5iocNcyk2N8xzeqYIWZfbL+XzWXGv0f1e3AlychrvSj0rGx+Em0+h1mVW8mgE QSUOUNg4c8nSHdRsRk/5vGyxF3ws+xPm4z65EUJz3den51QW5OR7MDWqg0/78Yaa5UBlW1rIbY4Ef ImMRvjLhfh2YBJtqumaT2WDVj/81tnoE1nUHzlu40ACLyL7uR9zDGdFMzNDkAia5jNg3e0OOeG0md SDy/CV7PT+skFXZXsTzXWeN1nfi3DX/nWy8y99ATQ8ePpBMR4X2xULWlBxGQ/BAemMfEloNLLp3x2 26C9qjf360HAHZDW8bfA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1p5tLG-00Au0B-0l; Thu, 15 Dec 2022 18:52:26 +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 1p5tLB-00Atx8-V1 for linux-rockchip@lists.infradead.org; Thu, 15 Dec 2022 18:52:23 +0000 Received: by mail-oa1-x2b.google.com with SMTP id 586e51a60fabf-14449b7814bso447049fac.3 for ; Thu, 15 Dec 2022 10:52:20 -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=EsXC1CFRIu5XE3KansyZwbZb7jE1sCuVK85dRB5EUL/tBP5HPxbRWXZSKC1Ch6b4H7 AKfuIu7VNsaEX+ipmv5asB2xobhntEe/QpPaoEHiOW5byJqg6tb9d6eJE++SmuT7+lHH qSLNUX92iDTRWoexVLVCDimOKGDQFNhYlXb79X9gs+m6NRfxJIHvBz0oV1z66vOvrHJq A+aadhNsjfGHhWA3DgC3bA38GrnK5REZzvr6ObeU8nB85scdaNEANb2pHrnkcubTs1dj 9sblbJcqdMF57hQ6UrKC05VfCzjb+G6hBE6me/HGVVEu/0tfxdWst4YA37gVN92M1T3P bCKw== 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=Nt6bC3eKTeTMrQu1BsFC4emCwUrPakEDJy37Mg2jYj98z7t90WXhwjtMjA8EvaGgSu gg7dMQvueTQy0ShagJhOfUNUu59lhqcsoocKb2UjT1P33CUYTinyUA5Mg7uOSsthq9b0 NOMqfgUltVLUQDx4199WnnLogd78IZcVYezDyeNOkw8k3q3bg41X+mo0t3gVvMsQd8Vk 6T21gAoI0PZByuC3XE1fznoZgA5WSOCR13oVS93bfR0R9wP+Sk6EpjrJuvmjWhwL5R2X IZkMnTViWcFvmclL49h0tI3jqtSXahDYpYY4omT0SpJzB3uA8vGbCnKOqXiesO40uJl9 i7eA== X-Gm-Message-State: ANoB5plkE2Udo1BhZTuyjf9eNLJFQrZ3fcKC98FeMoS1tYYPAA+oBC72 dwsLim02UfdkuHTExcdumRo= X-Google-Smtp-Source: AA0mqf4wcE/8fIZDMVCDOkQEMIihhUoRExOpVnSoMrmfKqR9LU03LgjASXuXaTwuSizCrfnVMpeUyQ== X-Received: by 2002:a05:6870:f229:b0:141:e1f5:7194 with SMTP id t41-20020a056870f22900b00141e1f57194mr16740332oao.53.1671130339785; Thu, 15 Dec 2022 10:52:19 -0800 (PST) Received: from localhost.localdomain ([76.244.6.13]) by smtp.gmail.com with ESMTPSA id g11-20020a4ad84b000000b004a09df5a1dbsm72264oov.8.2022.12.15.10.52.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Dec 2022 10:52:19 -0800 (PST) From: Chris Morgan To: dri-devel@lists.freedesktop.org Cc: devicetree@vger.kernel.org, maccraft123mc@gmail.com, tzimmermann@suse.de, mripard@kernel.org, maarten.lankhorst@linux.intel.com, heiko@sntech.de, linux-rockchip@lists.infradead.org, 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 V6 2/4] dt-bindings: display: panel: Add Samsung AMS495QA01 Date: Thu, 15 Dec 2022 12:52:09 -0600 Message-Id: <20221215185211.1560736-3-macroalpha82@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221215185211.1560736-1-macroalpha82@gmail.com> References: <20221215185211.1560736-1-macroalpha82@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20221215_105222_023395_61BAC002 X-CRM114-Status: GOOD ( 11.98 ) 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 Dec 15 18:52:10 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chris Morgan X-Patchwork-Id: 13074471 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 00382C4167B for ; Thu, 15 Dec 2022 18:52:36 +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=b8lczkZza7Y3m2hJtO1Oo2i1MV4xpyu6rwbHh3/iaPs=; b=iQwtpXM8MzBVmj b9MhmEB3GSylQJWtyTi2iFEcxwlzhDEIBd/vqJYZRdHBq5OmDJtsbbrgMsImeT27sacGY+eZN1YlQ WhT9UO3pRAEKsHEIBoFl+a14CGekOsltZldoQHfsh1WSnpn8exFaAPxoWSUw0AwL9olx/y+VgdQVK sfLysU1DBRwCnK4bDrJBGve9+IXVl7XVqn6uIkhbBpXxDLO/XZKU9SSanwmrzhy8C7CF4d4ZGK9oI LsuurFNxBSe9a85b85CN+MGQs2QoBVlPbLvvK/+YOMJvTClpJ6xXxH1FsrGpG4xBBCA82BcTu1oSK KDFix4wjLwdmO64jWXPA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1p5tLI-00Au1i-Tf; Thu, 15 Dec 2022 18:52:28 +0000 Received: from mail-oa1-x35.google.com ([2001:4860:4864:20::35]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1p5tLE-00Atxj-Qm for linux-rockchip@lists.infradead.org; Thu, 15 Dec 2022 18:52:27 +0000 Received: by mail-oa1-x35.google.com with SMTP id 586e51a60fabf-1443a16b71cso367302fac.13 for ; Thu, 15 Dec 2022 10:52:21 -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=DPCglAEbRJpSIj0IExAJLedLOzM/yqHo7P3ZSPUs9oo=; b=LGXn66bUmiYQBni+DUI6/iYoDeN/AXKfYqHH0aE6bQy6PC0aRFyWmowcz8FJj1SeYX l60O25Z57EVwwBktkfdU6qyRDjKAMQ0uk57FW6t4izJuWwtN4e1yQFHIjV/6NhwRsWMM ZLB5+dpiGYye7ruxkrKZpP4ykpk1pRKErt5HXy1whQriS+dxZCBrzA0gE1C1XjgSQFQD 1ASEanzgXXqv3aRwljDpY6V7Hi3DfWLS/xISHqmEEySRY198fAPf4LmSsW04OvnYC6w6 EhRgrwL1LcRZEXnDgYzNjTPQR1xTR2pv1pKZkompGRCVxDmuj2Cts3KcXCYHYacOdGFg RY1g== 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=DPCglAEbRJpSIj0IExAJLedLOzM/yqHo7P3ZSPUs9oo=; b=M+fQtBc5RYOrW3Qt/lSro8fXOGCnIQ1ysUCSLynLzbIzcldAn6v0STkHrXkSIxKQrV EO5gzEHIExexBB+ilNy/EXIpPVw8pLKDoI2oIAl9rBt0iPl1+r03+U8p3V1y/BZXF3zn 8jXezt3DIUUilHT86bOMezwav/wZxuC0KmVDzxlJ06DVPcT0A2RKmVYlI2pOYPn+qesi z87ic9U9il6GOl4sAPd6eO2prmofazs1jFK23ThZRDwRJTdCHE2NtyrRkmX8VoHSGSmN ct+t3c5klqBZVi/9C7RgKXsbMLqEEhBykgqynGdzVve5Dma2ayZxLibS0sib7GcKgiAl B9Ow== X-Gm-Message-State: ANoB5pmJyUo4W7WfNdAm6jbRLCkT2V1FlZZuQs9akcWh6k2tOxx/Erh6 tPPShMCQFAf84AX3ke+cW1U= X-Google-Smtp-Source: AA0mqf4Iao9iuhUieQ1Fa6p/ftvl03foqbmcCxZwdLImqObZQ8V347h4jS31HVTe44oBLEWHFZJjBQ== X-Received: by 2002:a05:6870:2420:b0:144:77eb:7a7 with SMTP id n32-20020a056870242000b0014477eb07a7mr14920383oap.47.1671130340770; Thu, 15 Dec 2022 10:52:20 -0800 (PST) Received: from localhost.localdomain ([76.244.6.13]) by smtp.gmail.com with ESMTPSA id g11-20020a4ad84b000000b004a09df5a1dbsm72264oov.8.2022.12.15.10.52.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Dec 2022 10:52:20 -0800 (PST) From: Chris Morgan To: dri-devel@lists.freedesktop.org Cc: devicetree@vger.kernel.org, maccraft123mc@gmail.com, tzimmermann@suse.de, mripard@kernel.org, maarten.lankhorst@linux.intel.com, heiko@sntech.de, linux-rockchip@lists.infradead.org, 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 V6 3/4] drm/panel: Add Magnachip D53E6EA8966 Panel Driver Date: Thu, 15 Dec 2022 12:52:10 -0600 Message-Id: <20221215185211.1560736-4-macroalpha82@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221215185211.1560736-1-macroalpha82@gmail.com> References: <20221215185211.1560736-1-macroalpha82@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20221215_105224_930146_33498A21 X-CRM114-Status: GOOD ( 22.28 ) 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..2aa73f8aeef3 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