From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.remote-ip=209.85.221.46 ARC-Seal: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; cv=none; t=1793887578; b=L7r6zDJP01clXqU1UJjQKjdeIEzYoM6PDhxPxtjFA+vMb7/rH3yDBIo1FNwwOqTw3zp2 2WIwR7FYqLItlBX98omht1VLvCR1Xh5AaSi6DqHSgmK216YtYxRcnSrOgJqKYmD15mhKQ IvF9pQj7D4uR9jfz9vTR5WEipiPS0wc13kP00HQH+tUSe0qfdonPc4pbFdJBRwYpXFtgu FIXDlSSwnfCrAe3MUTLQc7VoKgjtvAY7UULIh+VY1r4PjcOFSSVJ4tlPWbmhCL6d1/MTm fxbN3pCB7LYsDDaiqU51fxZ38QsgJ54MGv3xRCzK1+9eLE3u0kmns92b9cslfYCAl4g== ARC-Message-Signature: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; c=relaxed/relaxed; t=1793887578; 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=vncrp3JL/y9Dj9kklBxBzHKOCmZtG/g6BDA5lEOBJIE=; b=RbsiX5j+kYMn5RxbmMvrEkE4fuSpF0ruwm3KJERSuntSfNTHH5CU7iZsGAIsMQX3oGTj hc1B7BJehFc0EghxFU2UmqZ+qX3v9e8R46tMS2Odei9Y95HWpjouUesWjU1G/1smKVscB KcCDcCqUumYE3itrTl8DQt7dyk8LH2tKxuElNMu1SlN3BODSn7oUf7c8n/HeFwFiCA4iM PHOThq8eHaku6N0iinoM076rcXGPQVHxH1+gUYkCE3ABei0vESYfqbKsjoP0AJdUiv1DM q4cCJyLJ33eevp03jz/XYiUXYwFt8yG7ShfxHU378XcqyNOJ0XxBPFBVyOXX9zK96HQ== 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=20260707 header.b=AZg0UkaM; arc=none smtp.remote-ip=209.85.221.46 Received: from mail-wr1-f46.google.com (mail-wr1-f46.google.com [209.85.221.46]) (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 34196606EE82 for ; Thu, 5 Nov 2026 14:06:16 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.2 smtp.subspace.kernel.org 34196606EE82 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=20260707 header.b=AZg0UkaM Received: by mail-wr1-f46.google.com with SMTP id ffacd0b85a97d-490a0e72588so843835f8f.3 for ; Thu, 05 Nov 2026 06:06:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20260707; t=1793887575; x=1794492375; 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=vncrp3JL/y9Dj9kklBxBzHKOCmZtG/g6BDA5lEOBJIE=; b=AZg0UkaM12CmrvuQkRNux0sSJVjvnSAPduGerHvsId68jUgZmn7VrGrFYA3Z5R26oN Tkzm7LByGEzbgMRA9fWiQNiCu/+Y0mYpZwLoAU5gSebke8buRLaMX2Ecwaun772kNZ17 S+TNyXinLPxthTtg6PWpJoab1F7w3YyCknNcKjwaqTUxE3K4bXrANzULYLVnwljqD6dE TmMqBdU4sTnWM5fWu7DsQrA+iLirNb4nfoIuDZlebiQNQsN7yBUQTE1sIjC585b2F72f KuZqiI7qmRi18Lh1QnOp0Y246aBORFtaShDA2e4YFbSDVAXlfkgW8okA+k4/oMtguEDS yurg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1793887575; x=1794492375; 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=vncrp3JL/y9Dj9kklBxBzHKOCmZtG/g6BDA5lEOBJIE=; b=ekB3R3onP/ESdd+HnYuHj/XKNrbNZcH6t+gSC4A6pvCtepkRyMzTS4kLhuz8/w29vb vO5HJui1Zdc52MdU90M2rdU+uo7box6f6b5fs6ndDVLs7UdIu/4ncpZhwz68rn+3vi6X tTMj8tqV5fbTJCXcEqDwrWRkrC3ucTC/c1IUHtZDPeNI93gA0/diJFl6vDTc5WxbM8Fm xHU8C81wWrJh4qVKWHdthe1H/by5BlbI/eaXfyp0Gyj913HzldZkxArJ5LVrJDgKNDgL nwkpz56WM0xWkexQhOJEDk2OpmSqWXtDkvNdX6zJZiaE8T8e/XqSaDIzRb+JpEmboXeH a+oQ== X-Forwarded-Encrypted: i=1; AKwUvBwLzVMSH/QUAINEVtoz0xTOh5iJ0mBpHqCrFR6ppH98RLciM1YfGW+oOMkEUw8PqiV/mZ3w2SXKTeDEoN0=@vger.kernel.org X-Gm-Message-State: APuU4Z9Z5/efeyArsLBlqGedKHPaRpztWHILr6nPuthPMjmMHwyFKNbw bjiHIdEX7j0ObdiZ3Wxg3qpEN7AwDAowUwVf+/scXqnDUoBvuEn9Xq17 X-Gm-Gg: AYBFou2TX0bbK6Lw9h2Gu6OkWAOFlKjkcljMxvoNs39VYAr+PYvtKIxu9UmjZHP1mVS acRwEOLzFv8D8TzTbsdXlAVZlzC6f9T2N11zVTdjfDlu1mGxh0Ka9krCY2AjAlTEx1OtF2uDBw9 DQFMcQnvg+n7VehfBGwJZEZngYPKWSLBFIwXhKuucLGts0XiKk63PzqenPFVGpf3U7LBFreWiwd XxivUlpMiH7m3pEtRAqMrWJoPsrswJRk4Kkx4NaJGPZC/nLsecc0IiV61AmkfFFfiFtKQW0lqGE vVjV3IQGyvOxvWWedRodhY39K2Czl+8xbHcJTxiMelPU3WCKdRDW9KE5WrHw5gR/k4YPgXvBHrH kHSuII4NhBX+h39mfeNB0BdHq5260MbiFThqk0u/CMzJvTnoq2fXXHxPoKtzDobOIdBUYu1DzWZ YwokmO2MwmlM9xDJfTLYsxyoJrqzqNSIM3zhPs7QSpe+fDHDkSdMfhXtk8h0TwFplAjzrkSPWNT EtXH+7Cz5x8ocswHSQZvPLWru41SsVspxE4qwciMSq+dnNw4s51YF95Q7550It0o0xqwgaxFlcP C/kyy8rOI/WxGbnmRuHtbamEA0rpB+MjEzeW3rg13LC2WvoKvw== X-Received: by 2002:a05:6000:1864:b0:490:f98f:addc with SMTP id ffacd0b85a97d-490f98fafc2mr5724217f8f.27.1793887574457; Thu, 05 Nov 2026 06:06:14 -0800 (PST) Received: from xeon ([188.163.112.62]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-48fed92a753sm11454111f8f.45.2026.11.05.06.06.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Nov 2026 06:06:13 -0800 (PST) From: Svyatoslav Ryhel To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Thierry Reding , Jonathan Hunter , Neil Armstrong , Jessica Zhang , Mikko Perttunen , Svyatoslav Ryhel Cc: dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v6 10/10] drm/tegra: Add support for 8-bit CPU interface Date: Thu, 5 Nov 2026 16:05:10 +0200 Message-ID: <20261105140510.165165-11-clamor95@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20261105140510.165165-1-clamor95@gmail.com> References: <20261105140510.165165-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 the bus. Suggested-by: Mikko Perttunen # DC command transfer Signed-off-by: Svyatoslav Ryhel --- drivers/gpu/drm/tegra/Kconfig | 1 + drivers/gpu/drm/tegra/Makefile | 1 + drivers/gpu/drm/tegra/dbi.c | 576 +++++++++++++++++++++++++++++++++ drivers/gpu/drm/tegra/dc.c | 4 + drivers/gpu/drm/tegra/dc.h | 3 + 5 files changed, 585 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..6f57fd3985edc 100644 --- a/drivers/gpu/drm/tegra/Kconfig +++ b/drivers/gpu/drm/tegra/Kconfig @@ -12,6 +12,7 @@ config DRM_TEGRA select DRM_BRIDGE_CONNECTOR select DRM_DISPLAY_DP_AUX_BUS select DRM_KMS_HELPER + select DRM_MIPI_DBI select DRM_MIPI_DSI select DRM_PANEL select FB_DMAMEM_HELPERS if DRM_FBDEV_EMULATION diff --git a/drivers/gpu/drm/tegra/Makefile b/drivers/gpu/drm/tegra/Makefile index e399b40d64a1d..ae7fccb3d6421 100644 --- a/drivers/gpu/drm/tegra/Makefile +++ b/drivers/gpu/drm/tegra/Makefile @@ -18,6 +18,7 @@ tegra-drm-y := \ hdmi.o \ mipi-phy.o \ dsi.o \ + dbi.o \ sor.o \ dpaux.o \ gr2d.o \ diff --git a/drivers/gpu/drm/tegra/dbi.c b/drivers/gpu/drm/tegra/dbi.c new file mode 100644 index 0000000000000..32d390f64ddbd --- /dev/null +++ b/drivers/gpu/drm/tegra/dbi.c @@ -0,0 +1,576 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Nvidia Tegra20/30 MIPI-DBI Type B host driver + * + * Copyright (C) 2026 Svyatoslav Ryhel + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include