From patchwork Mon Dec 9 23:10:19 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heiko Stuebner X-Patchwork-Id: 13900469 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 37663E77180 for ; Mon, 9 Dec 2024 23:15:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From: Reply-To:Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=1Y7nRbLozFQZmTpWpztwPA7u087w03er8oFQ/McseRc=; b=d2b4mrOCIaT50hB3OBInd3LPo4 6dR0tGvFV/ydby27+VMGX31+sVWS68RC1v3hB8yjARuFPmQN81Vr5p0SfccrkBUyIXMWGdN7nEoDo GZqyT1Pe3D9+/bGzcthDj87lqyNAlJDVBT2s5nyzEmYQcTIjeHOcbZWkZhmEJLYDIF2RffTy5/6W4 dpkngNLH40A4WZm9QNDNp9bJeC67Mfsx0lA1C5JlbN8uCIAA18DkJtviI96VzAol1yl5NG5TfWEKx 0wTAKtuUNNZ6bVWQsxJ0KkrU/HqaVVMnv3soMmS98hfrui+moEXpgkAtLMb3C+lgQd2QVVw4gZ2iA PxwUhE2Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tKmyL-00000009XHa-2OZg; Mon, 09 Dec 2024 23:15:25 +0000 Received: from gloria.sntech.de ([185.11.138.130]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tKmuF-00000009WFd-0W7D; Mon, 09 Dec 2024 23:11:13 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sntech.de; s=gloria202408; h=Content-Transfer-Encoding:MIME-Version:References: In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=1Y7nRbLozFQZmTpWpztwPA7u087w03er8oFQ/McseRc=; b=sPVzmbBx0bcwIwKWUY5Z15E/I4 yXBnsPIdAQvs2VAC2WwVg76xw+e3Ja3m78JPGB0frtsjpZWYngg6WzbE/3Z2Ag6qHVyR//0Hnrj8z wHbloy4PYaZXmunf+8oDFbf7euUJ27hcshReRner4i4JUGe+nXqr9YZ0r+pIiwBuw7gO2xxcxl8WA 2pkYRH8KlQFcyPWA3m2FukS4bwp4dwoIuIJiF9Uw7YVy3fTozE6mlf9MkNhXm+a8As55WanaU6rI9 NgxXUpTLL5mIifNtjnPsdoTNBXDr6bFsbJlzM1QYLEkqMDnD09TY/iK6R6Zy8IsjgGW7U5YN6YVff vuWlwwFw==; Received: from i53875bc4.versanet.de ([83.135.91.196] helo=localhost.localdomain) by gloria.sntech.de with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tKmtc-0005Ev-US; Tue, 10 Dec 2024 00:10:33 +0100 From: Heiko Stuebner To: heiko@sntech.de Cc: andy.yan@rock-chips.com, maarten.lankhorst@linux.intel.com, mripard@kernel.org, tzimmermann@suse.de, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, andrzej.hajda@intel.com, neil.armstrong@linaro.org, rfoss@kernel.org, Laurent.pinchart@ideasonboard.com, jonas@kwiboo.se, jernej.skrabec@gmail.com, dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, quentin.schulz@cherry.de, Heiko Stuebner , Daniel Semkowicz , Dmitry Yashin Subject: [PATCH v4 1/3] drm/bridge/synopsys: Add MIPI DSI2 host controller bridge Date: Tue, 10 Dec 2024 00:10:19 +0100 Message-ID: <20241209231021.2180582-2-heiko@sntech.de> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20241209231021.2180582-1-heiko@sntech.de> References: <20241209231021.2180582-1-heiko@sntech.de> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20241209_151111_495927_D421AC6D X-CRM114-Status: GOOD ( 24.73 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Heiko Stuebner Add a Synopsys Designware MIPI DSI host DRM bridge driver for their DSI2 host controller, based on the Rockchip version from the driver rockchip/dw-mipi-dsi2.c in their vendor-kernel with phy & bridge APIs. While the driver is heavily modelled after the previous IP, the register set of this DSI2 controller is completely different and there are also additional properties like the variable-width phy interface. Tested-by: Daniel Semkowicz Tested-by: Dmitry Yashin Reviewed-by: Neil Armstrong Signed-off-by: Heiko Stuebner --- drivers/gpu/drm/bridge/synopsys/Kconfig | 6 + drivers/gpu/drm/bridge/synopsys/Makefile | 1 + .../gpu/drm/bridge/synopsys/dw-mipi-dsi2.c | 1030 +++++++++++++++++ include/drm/bridge/dw_mipi_dsi2.h | 95 ++ 4 files changed, 1132 insertions(+) create mode 100644 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi2.c create mode 100644 include/drm/bridge/dw_mipi_dsi2.h diff --git a/drivers/gpu/drm/bridge/synopsys/Kconfig b/drivers/gpu/drm/bridge/synopsys/Kconfig index ca416dab156d..f3ab2f985f8c 100644 --- a/drivers/gpu/drm/bridge/synopsys/Kconfig +++ b/drivers/gpu/drm/bridge/synopsys/Kconfig @@ -59,3 +59,9 @@ config DRM_DW_MIPI_DSI select DRM_KMS_HELPER select DRM_MIPI_DSI select DRM_PANEL_BRIDGE + +config DRM_DW_MIPI_DSI2 + tristate + select DRM_KMS_HELPER + select DRM_MIPI_DSI + select DRM_PANEL_BRIDGE diff --git a/drivers/gpu/drm/bridge/synopsys/Makefile b/drivers/gpu/drm/bridge/synopsys/Makefile index 9869d9651ed1..9dc376d220ad 100644 --- a/drivers/gpu/drm/bridge/synopsys/Makefile +++ b/drivers/gpu/drm/bridge/synopsys/Makefile @@ -8,3 +8,4 @@ obj-$(CONFIG_DRM_DW_HDMI_CEC) += dw-hdmi-cec.o obj-$(CONFIG_DRM_DW_HDMI_QP) += dw-hdmi-qp.o obj-$(CONFIG_DRM_DW_MIPI_DSI) += dw-mipi-dsi.o +obj-$(CONFIG_DRM_DW_MIPI_DSI2) += dw-mipi-dsi2.o diff --git a/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi2.c b/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi2.c new file mode 100644 index 000000000000..054ad39c451b --- /dev/null +++ b/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi2.c @@ -0,0 +1,1030 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (c) 2024, Fuzhou Rockchip Electronics Co., Ltd + * + * Modified by Heiko Stuebner + * This generic Synopsys DesignWare MIPI DSI2 host driver is based on the + * Rockchip version from rockchip/dw-mipi-dsi2.c converted to use bridge APIs. + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include