From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.remote-ip=209.85.208.51 ARC-Seal: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; cv=none; t=1792675428; b=GnLXV3XamVcTaOBT5bkVauZeQ4UjCnnVcNoV1NMBVg+NDFe4f+Z3c69FxipkWFeTa5EJ jb51NfWxYTgU+zNFtPHvcqskjl07KTM1noa87JmrCP+Dx13shsQc2WIabp8Q5PrlTHO2g v7jqStntoc+fph9mLJbpykjlfiPhcIyOQnNlgBXR/EAHV8DPVJqMC9lbN+/YlhO6jIi72 M/CBNfoh1+K2no46QnWZDMbGxSmF6VYrBGJB9elo3DtX5+PkEN21a2STKISDJIY1A34bi fVypZA+CalDnBloXbiJSQYHpHdQ9Fm1hoUa1d+/kgVp6oe8I8hmv7zbZ36jI/ZeijMg== 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=Xw6XoTp1wF9qkoV07vXqTKuuMUaiHDPV8QmNm+oLkOujjZStdQ6h11n6pYiYBKTRjFMU eV/s2KDAMnuoXlF10xjTOgfDzCtu25NL09pv97bEdRUSkIRN4s10e27xxOTEuxE01EwSN p27uoco8Nl8FzOj/tYssm3gHoItyk4Iw8l9PXPuAy+4h5Puy/yCawcA7MkRKD4WmfSAr2 arW6rQcb6480PXoRlK2c19nHIwN+xe1r8vefLoe3mPXnGL0zYDpCiAkyIQ4EwpXQ6dsPL Pnih37caSipnZepjeGU3/bFkctTnrO0aaqmYpSliPupQccYPD0iuaitIfUkJE3Udl2Q== 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.51 Received: from mail-ed1-f51.google.com (mail-ed1-f51.google.com [209.85.208.51]) (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 60FFE606A31F for ; Thu, 22 Oct 2026 13:23:47 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.2 smtp.subspace.kernel.org 60FFE606A31F 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-f51.google.com with SMTP id 4fb4d7f45d1cf-6ae305e3bd9so3235285a12.0 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=x1UmnX+TKoFAPTaGvylLepqRYtZoHo7AfvLL15IKAc7Elnv/20XXau2kvFys1RA32n SrnAmYVKNQYQugC5IWt0wtrN4+M0Gf26IZH04kfvA5D5c43fAYDvrwtgPDBJN25u0xeq Agak9LesqNZs9B0t5stUkOpYl9dfLuQQjJA4EfFfNsmfD9EZU/5jr1KIF+eKXaJVfn60 lQT7PegMfsNdfPMwDHHEYjkE9zU3BlMuhzsvDs6uF7W7D8f7nZx7YtO7GeRi+0fDWM5p KNl5jQ0dIy1nMLCfNtcxGKZDm519pnrzpO2VkiExR+mN6G4lxY6C0N3IW4fvOZ2dsqnu vyLQ== X-Forwarded-Encrypted: i=1; AKwUvByFVHjBXsKGkDxdER+D5zsUuDYpFOPIh6DNoHmSPl/oWErotWZSzH+QcGTRTfBNMPf0r4cMiz+PsbKs@vger.kernel.org X-Gm-Message-State: AFq9FYKcyT8rw78ZT/h4DH5EGZMYNLs62495Pab6Xxt0GrPl4ld86N9u Ewfj5uFxCfCv1NaizqHTO2n9sf0JOoeoKP61b/Uhq8wIKCrjwCswhJkr X-Gm-Gg: AYBFou2a+szkpK8c7UwQQKAIzdCaQ9QiPsWltQlOT8zO9Zu1LyxQNmm0Cu3HS1Mu/an Iv85BxK/Lmj4e+WoWrZBozUTo5nOKKiZqR1GP9s0ZZlFjunjKqNQov4266o9uxFAwTrN778v81j kRW37FJ/z4exitcuInGKsSwKggUPIfPXFINq9dJwM6Ugg41+IsGPVu664ApoCPzJIIkeKJLcWRP VdXxO4wqWH/1Kof+3FlgH99nCpLXqZz/eefkhNjY+pXIWJIR+ABL8ol4aOg6a3G8vFfhyxAS78x 9cjL0mWEu/Sg7XxsLnzumcVLw/Wzu7iKHCjic+LUnqk9x3LeTSZF+OmsJvZGWaxPNocboWT0m1N wfL1T/C4zYKQFM3HZbXV2ek5Qkx34WC8t92Y9YfduSxPVQo+iwDl0W6qJosT0JGXQ+LRppm5pbi 4Z24gLqjftkHeUBzpUz7WWzvZ1GN4UvpiuJa6sYfWe8J8OeC4mZMyBfcTPQf1JGY/H/TJyLDDSn vZpLyk+qMkQK8iulSdkdQusPZnPCP2u7TGwv8aNAme1UdiQwQok+q35TpZhCvQuLpKpGUjgKAsz NSfSlqw= 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: devicetree@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