From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.remote-ip=209.85.208.43 ARC-Seal: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; cv=none; t=1792675428; b=Ug7/AQJLDg11P7j5qQhzuOWysXcrtsw14uDnwV3apUx3X3lNyld/gvxNAeRQaH6JXpMM Fq3FM0qK1VBk2D/aeCI0ddwCsEY7GOpQFySj+G4Ul6hNdna3Q5bEEWZgopalmJ49Xby4W /miUnuCeF4937beMNCRHT8yaG9jJ2TFa0z0Mk4vHEzIPm9WddmQIpL3IQgfdryZUYWcXA lrWse/su9c6b8a6Qad04aD2m1yOxzmuF5J/s+KV4JMBmNb5oVwxfKav2ybq4ZI+Gf/HZM Uwi73wVL9Uvf27xNXax8QXlFMi58u5nJqkZ1TeT2KiRaABJ3wS28AA5S0b8caUg3lWQ== ARC-Message-Signature: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; c=relaxed/relaxed; t=1792675428; h=DMARC-Filter:Received:DKIM-Signature:X-Google-DKIM-Signature: X-Forwarded-Encrypted:X-Gm-Message-State:X-Gm-Gg:X-Received:Received: From:To:Cc:Subject:Date:Message-ID:X-Mailer:In-Reply-To:References: MIME-Version:Content-Transfer-Encoding; bh=1B+px64c1MKu5KCBHRGWLd8KLh+jyRvqQIQFUlGlXkM=; b=bE1FvqGedA+7+Kmug8iPv4vhpfKovLtMdzCkjzEA+I38wSCEQUQifG8f1mr7Dnv7UIjc nVaSPydxGNmc77teqs8Ox88//eyq+ZYs2aetWdcT+XGfDCFKMyc2OjPSN1TBjA9yqySiQ tGZrLTd81MrkFWWSSFnZXMYI10STxN8mftnDCiv83w5rfPrkE4gA7IzIuN+ZBDhcGk9JA /oChnINE1n9BCaLnstKVKD0f2RlMBvasEWG7GotrIy078fq6sE1ykAbeMfb3FtQj500Oi PcN4cgHGJAyuj3/VQhT3L/xK98EUpDQZY5KblWHXl7yOnhJrSsoGq8a2VOHMZGDxnMw== ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20251104 header.b=K2AfWqP3; arc=none smtp.remote-ip=209.85.208.43 Received: from mail-ed1-f43.google.com (mail-ed1-f43.google.com [209.85.208.43]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 55E0F606A31E for ; Thu, 22 Oct 2026 13:23:47 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.2 smtp.subspace.kernel.org 55E0F606A31E Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key, unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20251104 header.b=K2AfWqP3 Received: by mail-ed1-f43.google.com with SMTP id 4fb4d7f45d1cf-6b2232d8ef5so2944421a12.3 for ; Thu, 22 Oct 2026 06:23:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1792675426; x=1793280226; darn=vger.kernel.org; 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:content-type; bh=1B+px64c1MKu5KCBHRGWLd8KLh+jyRvqQIQFUlGlXkM=; b=K2AfWqP342fXUbiIAFLYNa+1wPTa/73kn1f4Ljlwu3jgQSeKFbDLjRMKKt+0trA5bv fKWPsN4c8xSefRPlXlPppDJQjgCk1yb8JYx/BaCEnR7oJsNQfuvH1HbA8zu4X7+YZrL+ KzUpoRoC4ZOlVaZxN2Jzw4ol1K6MAH76iVFWhqsRGYWtHHhsKbMxZ/vI/bek/LAJQENS HHvieLDBfXfnle+CYbQNFyPTrnkRF7jdMSUeGFzT5EKBM4L0Ge8aIe5nEutXCUgcf9NJ o3T7PAvPBOKskMWFKyi5SPwetd89g45XLcThoccem2ey9IBFWoH3+fmR0n7mhmgvKHCL FrwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1792675426; x=1793280226; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=1B+px64c1MKu5KCBHRGWLd8KLh+jyRvqQIQFUlGlXkM=; b=K84A0nA8akEpZOZ78V+X99+fMdviHBxi5nFaQi4eQGBtOx2MLwC60agrw7+p4j9omc 7RZET2xvAe7G0AjtF6uySBCL9srJklljz6/84+gGVNOEwvTmmNa/5RByyoMJJVDnhah9 stV3A3L2rowSviIEvQAVlhhDaTIKhev+2d4wjlgwmV0YMBoVjXcOGmXfXMRvlniJi5NV d63a1fcuXb5vOZMTI+YwKE1tJGUuzT9Z9bQL56FM9y+OAJ1N6SkI7gu4A5XF29zXFtcC r/+szgHBDSMhu0taPnDNEQ+njX1S0DTdtiN11uXsT13pZVyLNIqWPWOFZeKl7hoepTSe YiQQ== X-Forwarded-Encrypted: i=1; AKwUvByyT/vVD5mL7NunEBOuBg+t7qgY30ABpBm6p4zwPZo58ID64y/HWVTDnZBeZuRHC2VEdqEOTz2Byz1PgRY=@vger.kernel.org X-Gm-Message-State: AFq9FYJS+1G522ZBL0MVlBjyRQV91ZLjnJbFGRLAmOzZIUxUjVPQiU59 kAX/QP5SwvPWIwb5nLX9hMUtaX+uTQg3tcppJIURwLRqp2rC5k1PHkX8 X-Gm-Gg: AYBFou2hn1TYfL55rk1Ehxpz44mUkmraUWVw+q2sFIKqVcIObInmVrdB07e/R+bA+zB 7lgz3t0AvZkh80FdWfQpSwqJtDR4sbJsr6QjYf2cjNe66i3WZ8CkPTxcKAWrBO+P/OKcu+pUQym dO3t3+Mzt36wagSruFVP6KAbVbBp0MuYzkRvUZITc7jNNng4FxRXuH95Mf7sIvTm83VLyoxkPCC ewvPYehE5qsvd/s7OipFWEGIzvrQnDAIIlva8otbbyY0H2Y39p3h4rLH9iWOuKfUiD9yQ0cj4ky WJJfSSgcN8NF4h+Hol+8tYfhJ1vMjtvCOxxO013P0eIeQbp1uItT4p11sisdKmR8BPVJ/pxsk1C XHYbFZlR6Ey1GyetSkEJSy8yzDmX/N34MxbXljDg6P3EusfaPHwDc51alBL2oXk6d8GXjU25RC9 JZUD39UOizHilRdwSpAC/R8lggsEUtavgdoRLuTvNdDZm9DnTJ9TCZa1CNCUxyanSwT+e3hn+n0 M9YuLY8FxbY0CIN2RkgROlO7IhJ6MWJas0Nkta5/rN4woMKCxLNfKjhfK+FFe6JjaEgfVwcrDOl ielMMT8= X-Received: by 2002:a05:6402:4020:b0:6aa:7ff:4ebf with SMTP id 4fb4d7f45d1cf-6b408e9d75fmr4917726a12.15.1792675425583; Thu, 22 Oct 2026 06:23:45 -0700 (PDT) Received: from xeon ([188.163.112.62]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-6b40313074esm1818061a12.27.2026.10.22.06.23.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 22 Oct 2026 06:23:44 -0700 (PDT) From: Svyatoslav Ryhel To: Neil Armstrong , Jessica Zhang , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Thierry Reding , Jonathan Hunter , Mikko Perttunen , Svyatoslav Ryhel Cc: dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-tegra@vger.kernel.org Subject: [PATCH v4 7/7] drm/tegra: Add support for 8-bit CPU interface Date: Thu, 22 Oct 2026 16:22:59 +0300 Message-ID: <20261022132259.240717-8-clamor95@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20261022132259.240717-1-clamor95@gmail.com> References: <20261022132259.240717-1-clamor95@gmail.com> X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Transfer-Encoding: 8bit The display controller in Tegra20/30 SoCs features an 8-bit SPI interface that closely resembles the MIPI DBI Type B protocol and is referred to as '8-bit CPU'. Each display controller provides two such interfaces, which can be used to send MIPI DCS commands to initialize and control the panel while image data is transmitted via 16/18/24-line RGB. The '8-bit CPU', although being the DC interface, is modeled using a bridge framework for flexibility and convenience. This implementation does not change the existing codebase besides registering an interface and can be enabled/disabled without losing other Tegra DRM functionality. Signed-off-by: Svyatoslav Ryhel --- drivers/gpu/drm/tegra/Kconfig | 7 + drivers/gpu/drm/tegra/Makefile | 3 + drivers/gpu/drm/tegra/dbi.c | 536 +++++++++++++++++++++++++++++++++ drivers/gpu/drm/tegra/dc.c | 29 ++ drivers/gpu/drm/tegra/dc.h | 1 + drivers/gpu/drm/tegra/trace.c | 3 + 6 files changed, 579 insertions(+) create mode 100644 drivers/gpu/drm/tegra/dbi.c diff --git a/drivers/gpu/drm/tegra/Kconfig b/drivers/gpu/drm/tegra/Kconfig index 8a3b16aac5d68..ce3a424398713 100644 --- a/drivers/gpu/drm/tegra/Kconfig +++ b/drivers/gpu/drm/tegra/Kconfig @@ -30,6 +30,13 @@ config DRM_TEGRA if DRM_TEGRA +config DRM_TEGRA_DBI + tristate "Enable MIPI DBI type B communication protocol for Tegra 20/30" + help + Tegra20 and Tegra30 feature 8 bit CPU driver panel control + protocol (similar to MIPI DBI Type B). This option allows use + it to set up and control compatible panel. + config DRM_TEGRA_DEBUG bool "NVIDIA Tegra DRM debug support" help diff --git a/drivers/gpu/drm/tegra/Makefile b/drivers/gpu/drm/tegra/Makefile index e399b40d64a1d..d67e53248a082 100644 --- a/drivers/gpu/drm/tegra/Makefile +++ b/drivers/gpu/drm/tegra/Makefile @@ -33,3 +33,6 @@ tegra-drm-y += trace.o tegra-drm-$(CONFIG_DRM_FBDEV_EMULATION) += fbdev.o obj-$(CONFIG_DRM_TEGRA) += tegra-drm.o + +obj-$(CONFIG_DRM_TEGRA_DBI) += tegra-dbi.o +tegra-dbi-y := dbi.o diff --git a/drivers/gpu/drm/tegra/dbi.c b/drivers/gpu/drm/tegra/dbi.c new file mode 100644 index 0000000000000..7bd90d32053f2 --- /dev/null +++ b/drivers/gpu/drm/tegra/dbi.c @@ -0,0 +1,536 @@ +// SPDX-License-Identifier: GPL-2.0 + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include