From patchwork Wed Jan 18 23:31:32 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chris Morgan X-Patchwork-Id: 13107194 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 34289C32793 for ; Wed, 18 Jan 2023 23:32:10 +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=8OIwczlNUGAECPUPgAZmCHseJS8l262aYcvxfJC3GuE=; b=dlA+cUrA1jnVGP BPZJHIHp9Mt3gfMXuRWtI1Ajs6hm4pr9ygDXRtdEuMhIkhnLkEK7smHo5C5tohrGtnwA2YCM+BH9w yAQnPQV/NqINxNnet/CjK+FWTehFvrWS6f9mLdb+AX+35zVP18E1Q2JdZtzVcqxD4W9K+jShVtoxB q56c6XVnO9tfn14+kxYvFPbzFObvBYTep6wNTpA2HtqdXOkxppiSeqlDywnPHDkopFYWyQ1BVb2op 0Z/l4w9m77ZxLXcbF8rtAGMBcVS0W9rUt3C8MQ5tqmVaRwRkxJbVmbI6OgI9veIJxsU/CEIwxYA2d xgoxb0dlC3WDuadRWMrA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pIHuI-002xWi-Pu; Wed, 18 Jan 2023 23:31:50 +0000 Received: from mail-oi1-x229.google.com ([2607:f8b0:4864:20::229]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pIHuF-002xUk-6e for linux-rockchip@lists.infradead.org; Wed, 18 Jan 2023 23:31:48 +0000 Received: by mail-oi1-x229.google.com with SMTP id i5so338777oih.11 for ; Wed, 18 Jan 2023 15:31:45 -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=KGfMBl5GE9RGTrpmBtD/eMSnjaklBe1tQxMzM5Zv8cA=; b=HSk34DXM4HMlNtZ4cKEFnLONgd6o1tnbvpeWpngc+WKvXXHULcssTDyH4mBJ5wJ2yk BaunsCO5zhjmM/VXL4VtUcgFdsR7FeUI8e42HjzEiIzmaZN+oUfOs96KcrZCEUk+GI9Y 7TMV9wZxLhsmba43NMR2pQxOeedC8fH6S+lO0LCIOV6VUyYks04UtwIscMY0wdtK87gG +WgWsx9Bjp6in5dWsHcj8T4niuhd4ciyHgpJ+pW2EBhWP2w+pE1yJriEa+wJFcv2d9E5 FOCXM9o6wZ2l+8gZ9gvyDOCdrUTO99auXBd/tUkv7Ai5jj8ihtt8pRpd25GZZaLypRja ie+Q== 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=KGfMBl5GE9RGTrpmBtD/eMSnjaklBe1tQxMzM5Zv8cA=; b=azDHHEweogW3zlxscshzCXwJd5G8Le0EE1IMxR1ePPNj+GsMUaDbZJDIj4jJaZbaL3 ICEYIqdE6/rPGJPHXu685yYV3iAJVJtPp8CZeV+XX4C+zTbBjqzaEROMcdgEYi2H7PVQ KLs1b8uJarZ4Q6+EvgTS0cVmz4psE386GIQxZZycdAyrjEcoUqxNQxi3L6ev4aziPWc8 NlY6Otz6xZ//eADDnhZsQuRSaEx+rqEmK/av43mP0ucHkb5Zl77nkEEFJPm4VLMeQ040 cgJtnnHjTcxjiuop2BHYwWFAvJTy2Kegy5uzGOE5U3QsleVZSGOyVsmD28Zu+/i+AcD1 uQQQ== X-Gm-Message-State: AFqh2kqTQ4DnzOkuAJPPycj7ftLefQPlUbxfRTgzxrmhQdJIKpNEtKKj MzwOO7dCSGlsLdlcR2z6J4U= X-Google-Smtp-Source: AMrXdXuf+ZKJEN7IqAh9Nyrm4t+Fq5/ButzdfVgQGQv3cQdSZmzUA9FC1v82rMQXw0Qtq6/mpmSspg== X-Received: by 2002:a54:4789:0:b0:364:5ea0:c3f6 with SMTP id o9-20020a544789000000b003645ea0c3f6mr4123271oic.20.1674084705022; Wed, 18 Jan 2023 15:31:45 -0800 (PST) Received: from localhost.localdomain ([76.244.6.13]) by smtp.gmail.com with ESMTPSA id q10-20020acad90a000000b00354932bae03sm16966933oig.10.2023.01.18.15.31.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 Jan 2023 15:31:44 -0800 (PST) From: Chris Morgan To: dri-devel@lists.freedesktop.org Cc: linux-rockchip@lists.infradead.org, devicetree@vger.kernel.org, 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 , Maya Matuszczyk Subject: [PATCH V11 1/4] drm: of: Add drm_of_get_dsi_bus helper function Date: Wed, 18 Jan 2023 17:31:32 -0600 Message-Id: <20230118233135.1174859-2-macroalpha82@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230118233135.1174859-1-macroalpha82@gmail.com> References: <20230118233135.1174859-1-macroalpha82@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230118_153147_266652_33F9BA73 X-CRM114-Status: GOOD ( 15.32 ) 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 | 51 ++++++++++++++++++++++++++++++++++++++++ include/drm/drm_of.h | 12 ++++++++++ 2 files changed, 63 insertions(+) diff --git a/drivers/gpu/drm/drm_of.c b/drivers/gpu/drm/drm_of.c index 7bbcb999bb75..177b600895d3 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,53 @@ 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) + * + * 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_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 and then + * release the endpoint since we no longer need it. + */ + dsi_host_node = of_graph_get_remote_port_parent(endpoint); + of_node_put(endpoint); + if (!dsi_host_node) + return ERR_PTR(-ENODEV); + + /* + * 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)) + return ERR_PTR(-EPROBE_DEFER); + + return dsi_host; +} +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..082a6e980d01 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 @@ -129,6 +131,16 @@ drm_of_get_data_lanes_count_ep(const struct device_node *port, } #endif +#if IS_ENABLED(CONFIG_OF) && IS_ENABLED(CONFIG_DRM_MIPI_DSI) +struct mipi_dsi_host *drm_of_get_dsi_bus(struct device *dev); +#else +static inline struct +mipi_dsi_host *drm_of_get_dsi_bus(struct device *dev) +{ + return ERR_PTR(-EINVAL); +} +#endif /* CONFIG_OF && CONFIG_DRM_MIPI_DSI */ + /* * drm_of_panel_bridge_remove - remove panel bridge * @np: device tree node containing panel bridge output ports From patchwork Wed Jan 18 23:31:33 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chris Morgan X-Patchwork-Id: 13107191 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 13279C38147 for ; Wed, 18 Jan 2023 23:32:00 +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=zuBEdgEIeOSsc7 KMx083zj+T5OwOrr1764QKbDiqUcpZRHHyMglXG97VAvS83U7O6rYktfwhJ56pwKxOly3SxHgt952 W10Wmc3FzU4ey/b3jUNPavgMvuIQOq2bAGC1T9gP0WDpr6d1u0Us1Fo+jwKnVT/KVPpMR5i2hlq/Z hhCXf0G6xxsz1ee3iKdkFwTFXZcv0arNYRwl+8zsKTwFFJdN2rNyu2XquzZrrJez41G8vHo2Fnjcq DdYmnEVzsmkmxKQRD8YL1fCkbJdBgH0ZTcS55PMm+TQBDtrlBFZ3S/4aEVwR2nvO1iAGhO7WWhamI VrfD48bhdtrD8XZ+l0HA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pIHuJ-002xWz-74; Wed, 18 Jan 2023 23:31:51 +0000 Received: from mail-oi1-x234.google.com ([2607:f8b0:4864:20::234]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pIHuF-002xUm-IL for linux-rockchip@lists.infradead.org; Wed, 18 Jan 2023 23:31:49 +0000 Received: by mail-oi1-x234.google.com with SMTP id v17so362645oie.5 for ; Wed, 18 Jan 2023 15:31:46 -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=X6JBlJU/7tvkFPCMBD9PeXuiqWarnqBo/0icQo82UJM0vocSX4rHcq6S1QJHgYpV4S DVcispan4eaNtC1tRGvtn8crCZhQ7SwzEhGbPWRBdnrEr43QdN9UjicqydKQA9zSyA/q Hlerj6Lkfzop3hnRXzXuoYxHji7DzOWMskhB2WaZGyJUYl+7Weio2JOIfTxL+whBGsd6 UgcZuOSisdXwJ3oYg3HnRqBT4Tfn5lMTqhCg7e1pzSQZ+ea5XGDeyWYGndH7X0B2UoJj hizTQEVsvZ+JrQQfZ2KtGqQWHQxFSmEAxHEtjOETkUxs4WZHZx3QQLHI0lUrEvWPQlra eI2w== 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=zPA6jWSyff6pl9eAbAcxOV2KsNmjwzrtI6zKVbbYmyg6LWov82RZljhzpLKt2z6Sn1 uiOCqu+n6EueI3+wuuKamXtt/XCvg55HzIazsWFryV4VYp5mAeellY71DWRkz01+rlwZ JaBvYC52VVdGQZeKAVueh69z0ScR8v0ppiz2+mq4TkLKa0QpumsvBBIEfpLQiMj51E0c 1M3QGN46AskAF5fA+i8+j2kSzT89sfipZiR0cxz5Y/zUCd0ve0gGX4p4CYJjDh+GENeW DuhNgPWTKeVnj4mFPsSv1kG5Mi8bnFTKQzZony54mKq1lWFmwmUQQOlzkpLOCRQFYeFQ Isgg== X-Gm-Message-State: AFqh2koqUBodFogBHURIowhw5/PABewkTYYF6cF/tdSQAXOBPvfeUkDx UxlAubzrx3xPj4NkyMJ/QImfLYg0Ay0= X-Google-Smtp-Source: AMrXdXuj78srkvIFpMzKbCHNr28A9yO08G7rFmLRL2jCPRXug5HUzDh20lc/mwGJf5WtomBjD0LFuQ== X-Received: by 2002:a05:6808:3082:b0:364:46ae:5aa5 with SMTP id bl2-20020a056808308200b0036446ae5aa5mr5985054oib.0.1674084705776; Wed, 18 Jan 2023 15:31:45 -0800 (PST) Received: from localhost.localdomain ([76.244.6.13]) by smtp.gmail.com with ESMTPSA id q10-20020acad90a000000b00354932bae03sm16966933oig.10.2023.01.18.15.31.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 Jan 2023 15:31:45 -0800 (PST) From: Chris Morgan To: dri-devel@lists.freedesktop.org Cc: linux-rockchip@lists.infradead.org, devicetree@vger.kernel.org, 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 , Maya Matuszczyk , Rob Herring Subject: [PATCH V11 2/4] dt-bindings: display: panel: Add Samsung AMS495QA01 Date: Wed, 18 Jan 2023 17:31:33 -0600 Message-Id: <20230118233135.1174859-3-macroalpha82@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230118233135.1174859-1-macroalpha82@gmail.com> References: <20230118233135.1174859-1-macroalpha82@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230118_153147_625767_63453485 X-CRM114-Status: GOOD ( 12.06 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org From: Chris Morgan Add documentation for Samsung AMS495QA01 panel (with Magnachip D53E6EA8966 controller IC). Signed-off-by: Chris Morgan Signed-off-by: Maya Matuszczyk Reviewed-by: Rob Herring --- .../display/panel/samsung,ams495qa01.yaml | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 Documentation/devicetree/bindings/display/panel/samsung,ams495qa01.yaml diff --git a/Documentation/devicetree/bindings/display/panel/samsung,ams495qa01.yaml b/Documentation/devicetree/bindings/display/panel/samsung,ams495qa01.yaml new file mode 100644 index 000000000000..58fa073ce258 --- /dev/null +++ b/Documentation/devicetree/bindings/display/panel/samsung,ams495qa01.yaml @@ -0,0 +1,57 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/panel/samsung,ams495qa01.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Samsung AMS495QA01 panel with Magnachip D53E6EA8966 controller + +maintainers: + - Chris Morgan + +allOf: + - $ref: panel-common.yaml# + +properties: + compatible: + const: samsung,ams495qa01 + + reg: true + reset-gpios: + description: reset gpio, must be GPIO_ACTIVE_LOW + elvdd-supply: + description: regulator that supplies voltage to the panel display + enable-gpios: true + port: true + vdd-supply: + description: regulator that supplies voltage to panel logic + +required: + - compatible + - reg + - reset-gpios + - vdd-supply + +additionalProperties: false + +examples: + - | + #include + spi { + #address-cells = <1>; + #size-cells = <0>; + panel@0 { + compatible = "samsung,ams495qa01"; + reg = <0>; + reset-gpios = <&gpio4 0 GPIO_ACTIVE_LOW>; + vdd-supply = <&vcc_3v3>; + + port { + mipi_in_panel: endpoint { + remote-endpoint = <&mipi_out_panel>; + }; + }; + }; + }; + +... From patchwork Wed Jan 18 23:31:34 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chris Morgan X-Patchwork-Id: 13107192 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 0A745C38159 for ; Wed, 18 Jan 2023 23:32:01 +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=bJbpVLhUBn/JgxMECLPcLxjkkIehKXPutYQNjB7G/4g=; b=15QYkm1Gk/QCir Q2768tn8GcwX+bvF6+z5ar4Fbhg4TekaUDtVFjx9Nqs6ph1TU5Vsh7NcFpgfvLA/mFpVul5g3/NPw u2+x90btP5uDPEmAqwF7TEtpWMQVCQ8AlrTfn/CXjVEHElpx0cQh/l1xQIhxz7poHqkD850Odpg1X 293xAwQMq9+hGzsmgKoZ0gJ83kLX33ihs6MtZfgc+341ofdubgnxhAxMFsUZowjQurR7+Eyax4mcx 8urJfBocvLxVkd9JITwrev/Rr74gG+VLe0Y2+Ux6MvR0XqYKSnb1uVECxQ0myCSldryYUCl5cEZv7 MtZTbEyqzm10h7CXRexw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pIHuM-002xYC-5i; Wed, 18 Jan 2023 23:31:54 +0000 Received: from mail-ot1-x332.google.com ([2607:f8b0:4864:20::332]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pIHuG-002xV1-M4 for linux-rockchip@lists.infradead.org; Wed, 18 Jan 2023 23:31:51 +0000 Received: by mail-ot1-x332.google.com with SMTP id cc13-20020a05683061cd00b00684b8cf2f4dso264999otb.12 for ; Wed, 18 Jan 2023 15:31:47 -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=xEI2mifYxajHJaXVWarCPjQqfLFjK63aOcXmGLPy5O0=; b=X1cwwdMPutU97x3N/F7XF8YQOntdWXKldPHcHQgthP75IUNcbTTy1SpyKsq/1Zmn8T mkKgbZaP62Mknji+PdSYn9c1r4OJsYa3VjQkOt1msxSEAzsm9kOKobRGURvuxV0qdBBC xAaEA13Ovpb98B6q+xd+0NujhOs535sVPSyh/fBD24kPF66bTpkdOE/ImSU3sCubfoXw dc8rbFiwsJb+lz3aMENdANoyuOAWYLgFx/vgx+phXxVIk7zuYc3NhhjYbbWw2rdtPhkM KJ0kE+ckxfluyAx5TSEsGAT25NWbz3RYmPbhOEG1mzUsrLuXpQ9dQK9lKAbTs+AWvHuM P7VA== 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=xEI2mifYxajHJaXVWarCPjQqfLFjK63aOcXmGLPy5O0=; b=dpNc/FIQCSZMgzcm7HyTEzcF/1vM5zMbDYG/Qesnap2N2TV22w/TqjJNs5RUj3d+a3 YwlLJ4UOBg8uf/5n1lYUfjKLcYh0DLwBk+JW5ohjTSKXBsKfqsJGnUyhLt+GgO5rFbht 5UVQcKyt2cTAj9AfduEebyT7xNYlL8/dGiO8ByW3JVixryGthUsqSK4iRAJk5Yd+oObp oAdXx7ZhB+VAt2rzt+KO3onNKS+dXHvasI0OLVw1p9IL/Rm88GraOf/pVzq8Z/f3ngWJ GdOnTxRXlBtKEFL6EvDwxBcTJ+gx8l+hcG8n3f0a5jw3U2qJYQ5k7EqsP/avDt/UU8kl NznQ== X-Gm-Message-State: AFqh2koSVZYkFRbv0saTzQDmi6jPzdblGGpt7KPA74PmgL8zNLpy+ULj ea8AYYJZDzUJBqzSVIdR9Po= X-Google-Smtp-Source: AMrXdXvv5gV8MV92iUN5Smkj5GPbL4dmvDIX7SnFfU7fZpgEN1GR/5d+ijLihpwsnk27liqm4jOYFw== X-Received: by 2002:a05:6830:1b74:b0:684:a65c:66f with SMTP id d20-20020a0568301b7400b00684a65c066fmr2414730ote.37.1674084706455; Wed, 18 Jan 2023 15:31:46 -0800 (PST) Received: from localhost.localdomain ([76.244.6.13]) by smtp.gmail.com with ESMTPSA id q10-20020acad90a000000b00354932bae03sm16966933oig.10.2023.01.18.15.31.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 Jan 2023 15:31:46 -0800 (PST) From: Chris Morgan To: dri-devel@lists.freedesktop.org Cc: linux-rockchip@lists.infradead.org, devicetree@vger.kernel.org, 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 , Maya Matuszczyk Subject: [PATCH V11 3/4] drm/panel: Add Magnachip D53E6EA8966 Panel Driver Date: Wed, 18 Jan 2023 17:31:34 -0600 Message-Id: <20230118233135.1174859-4-macroalpha82@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230118233135.1174859-1-macroalpha82@gmail.com> References: <20230118233135.1174859-1-macroalpha82@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230118_153148_772013_AC815A89 X-CRM114-Status: GOOD ( 22.08 ) 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..6ee4d577e67f --- /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