From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.remote-ip=100.103.45.18 ARC-Seal: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; cv=none; t=1793975921; b=j1r5UG8qCnELROVgXDrcI4RvZz0jxWKLqBJyWw/xVNNPVQNPoRY3pAqqNU2q5yZqzRtY vLyj3fPOS8aoBg2holDezLiJLae1ddimE2m6gQGEY5ROfrLmtzHbWQTkhcDAWA3mhunA5 jTsEIv+8PfIlQH2cj3KSiX5V2MYfpoyrjVb+T7TTcDC1KcwiLnOuVj/bzeIrDF34ZZI+H BVimZRLQgnPIhGS+uaDtsc9vqoGOjRLm7pDR0H1DsXhrC0wWaWgDAmMaZc7giIAYJm0V/ RlgyCCC+WSEoSOuT9AtGMAhT0dnQln6TX5G92PTEmEBOpJR1ueLlCLfTpS5W0SoXtUQ== ARC-Message-Signature: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; c=relaxed/relaxed; t=1793975921; h=Received:DKIM-Signature:Date:From:To:Cc:Subject:Message-ID: References:MIME-Version:Content-Type:Content-Disposition:In-Reply-To; bh=nYqkxv6TcTaA/kjBkYOTDNrRK7O6kHO8JqG0CWPQfYc=; b=4msg7Vs6FfmJAuz0Oh4VcifjRdYT8vHOGqhdgXFU+4O/jQQlbZ0YBdENnNQW87ysQdKr 3wC/sItt4KPBG/lZ1ZljOD4IHi/ojTMluj9g5h8kbb/1QnQcbyEZoG8J13AYHJX79UD93 ZaCEg78PJUvMgOJG1JIJQSWUXJtjC2OqRPM/Xth6htBfnSnfiAmE9vQ5UgX5hBwKj6ml5 JPXs195Vn5MZuwnQhizWngwt7FI8GUSkufQwgobJLs3Uj9bdX4AWVOAsf4RJwgxT2Othe 90bORsOiuYJJpjaCvJQ7ubp8NmyfKRYQuzGuz9OtanN/z4/SelOp9t1yYlTUygxyMXw== ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20260515 header.b=TqzkEA0V; arc=none smtp.remote-ip=100.103.45.18 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9EE62606A326; Fri, 6 Nov 2026 14:38:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key, unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20260515 header.b=TqzkEA0V Received: by smtp.kernel.org (Postfix) with ESMTPSA id A40C71F0089F; Fri, 6 Nov 2026 14:38:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1793975920; bh=nYqkxv6TcTaA/kjBkYOTDNrRK7O6kHO8JqG0CWPQfYc=; h=Date:From:To:Cc:Subject:References:In-Reply-To; b=TqzkEA0Vv6FiA/EyNHSGPazSRIxmze7NsRy2HS9UFnZLYngP5FU/k984j22IxxLSt G1mXSy3pJUZtcOX0uuCh0BGPfEtKxeqPMH7iMDq1BsZtJcBmY1BE0UVjD6CfBra6HG Ag+Be9z8npxA1OZxTFuN75Ezvh/jqeYPCyuiSOmri16kQEwfLaLejNUSC+x6slW0KF d5QZgMnG4JaXAkKum09Kqzk3Tq66QmT3NfSoU+yNr6XdAc6ce+jld5vFKHTk6MlHvd wjTgR+FYIcW4Gqo/TsLmp3ku1M5OmutAW9+ET0CKcI3MjvK/5ieNg8L0Aw5+JWl32a tAC9Z8tsKdIng== Date: Fri, 6 Nov 2026 15:38:37 +0100 From: Thierry Reding To: Svyatoslav Ryhel Cc: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Jonathan Hunter , Neil Armstrong , Jessica Zhang , Mikko Perttunen , dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v6 10/10] drm/tegra: Add support for 8-bit CPU interface Message-ID: References: <20261105140510.165165-1-clamor95@gmail.com> <20261105140510.165165-11-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-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="bfslmjupan46ngr7" Content-Disposition: inline In-Reply-To: <20261105140510.165165-11-clamor95@gmail.com> --bfslmjupan46ngr7 Content-Type: text/plain; protected-headers=v1; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Subject: Re: [PATCH v6 10/10] drm/tegra: Add support for 8-bit CPU interface MIME-Version: 1.0 On Thu, Nov 05, 2026 at 04:05:10PM +0200, Svyatoslav Ryhel wrote: > 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. >=20 > 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. >=20 > Suggested-by: Mikko Perttunen # DC command transf= er > 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 >=20 > 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/Makef= ile > index e399b40d64a1d..ae7fccb3d6421 100644 > --- a/drivers/gpu/drm/tegra/Makefile > +++ b/drivers/gpu/drm/tegra/Makefile > @@ -18,6 +18,7 @@ tegra-drm-y :=3D \ > 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