From nobody Mon Feb 9 17:21:55 2026 Received: from mail-ed1-f52.google.com (mail-ed1-f52.google.com [209.85.208.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CF0AD32E72F for ; Tue, 6 Jan 2026 15:45:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767714316; cv=none; b=ZuABa7nOoyTXMHy6ELJB1GxrgqG3JLmMqGE8UUiqY6FpT6ytBDRTJLCJ/2Zye7XyXDirN1ADPV0npKTujZa3y+Reb8yO1ciq3R+L1Z8nDmkYFYnpMvqdVizcJc6goD0yR0jdxD+Ab3hz7YHJuYciCGaXvQjPFCnsDUgQ/W8wfko= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767714316; c=relaxed/simple; bh=td4+CT42yw6PZSlUtuLsNL3LZA7yWU4WO7hXbjczNmY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=IMwYtkG9+/xTFZ+oh/j32uT0YsILqkyzjW09Qxk/BpwCxDAjzDpdDwldYC1gd5dSuK6wLFyb3Tw4zeHTfR6KQ4cf+JgadU7KOnIkBPUovkYxtOWnnVs8d91rr1vI6grTWR8nwPSuwvH3W/8v8bxAmaii31zeqGI8+AK+rJzK12c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=amarulasolutions.com; spf=pass smtp.mailfrom=amarulasolutions.com; dkim=pass (1024-bit key) header.d=amarulasolutions.com header.i=@amarulasolutions.com header.b=QML4NB+2; arc=none smtp.client-ip=209.85.208.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=amarulasolutions.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=amarulasolutions.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amarulasolutions.com header.i=@amarulasolutions.com header.b="QML4NB+2" Received: by mail-ed1-f52.google.com with SMTP id 4fb4d7f45d1cf-6505d3adc3aso1614964a12.1 for ; Tue, 06 Jan 2026 07:45:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; t=1767714308; x=1768319108; 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; bh=0FeU7gz3imHY+dHoq7Rj99mMUVGw0cmk9WRNrG4/jLk=; b=QML4NB+2TevbjwEVKmxoVAJ9kzNc5fhVhMOdezi+Iegxl7e4E+aHMCUR7QuxI8mmAE nGtxCdjn6QObw/wlliPBlC4u3bDpVU9qFJjC98hUtFj9k60Ky9uSC0KoI1Tb2RpZgPZk D9DVHGx1kQU2IkLsQ6ChARB68oFGtCIiFM4H4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767714308; x=1768319108; 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; bh=0FeU7gz3imHY+dHoq7Rj99mMUVGw0cmk9WRNrG4/jLk=; b=Si1+6n9P3TiZlCVJKS9e/X0/IoVfcl7HTIK+a2Zs6L0ZRgCXrklcMTiVFe0I2VRtXD k6Lf5ZopeF0g8OOP3WFDPjEZvj/vfQOZ3ZM5tvCHy3bXkpwpppjyZhNxaYWWv66zpVzZ tQDwSaw56UKePLpfIHYWe+sn8FusqpI4mb2MzH3G3diHFWyGRXBJNbHRIsxEQMz0ERpX lYb0m81Qk2PYyDafNlNQIyw18R+3pGf23yLdcL7TuIgRfE8Ii18Z1v+jao540qaT+T3M cS4Gy1KIyhZtIARnZEfe9+jvGcGTafz//7OMrbRFeG/2XLfX689U8xb0odjOH1eia5II 4Lzw== X-Gm-Message-State: AOJu0YwOIu0Sdc2Td2umokBofnUh80quNMeBS08kUcZ2UprSSrOaqwY2 JbV6sW7RUM3cBiW53mJk+oT81iAD983ZrDS9hNzp8IK7ZJZa/HGhYzu4CW/GobztwK1SgGLDVSW 0rLeo X-Gm-Gg: AY/fxX5kFhF7oFoiy2IdfmQ0CppmNA4S5FFYTI8z3NeJabuRnMmtS7OYWdVWBY0l1fQ hlYFaCtT4xSlmY9s9Y783758g76zYf5xnJ7+rtND+vZNwYnFe7JOC0FV1t4Rtdc4XqlNIKmfi2y XJH99Zoauz2tyJ+tpgZ6qU+Qts+2iJgPgRlDy0vvNwriR0CwqU/gBLRLR5wnjYOb9GB8197Rg+E O3vxNxHxXiNjUN3EkevanvhYHpSMfZCt0hcwcjD+bjvHO+0ZAGaVznwuaXo29REkCivjwWvujxI COtDM44lEFkTEI7h0HuMsZoNpSPYqfel32LABj+qiqBC13dAtWIJalAlonWXj/4caU76hUSTbQK k1UF3pDH4qShnxNZ0J2EmyMVWOJyXjU/ZXgvRkrhnc3MgEnUXPKvFjL9rLEOEdAbShjERIMw0av UEbQUqAT9+zTh58f0ZiSEy7FIiDP/Gvz6yboh77Cg0IoIPTn2SDrqhnZj2f8wLJGsscmmO8NQYP 7IfzXcklDo2J1SnDMDkI/wxiPa0pB8NRpyET9F3i5JrtnbhaRpcAxy6I/S2RDwa3K/co3IB2FMv PSC8uGKu6Ps= X-Google-Smtp-Source: AGHT+IFSOE3eOIYLow5a/ID+0olibBOljWSw/byjcAX/Y4cdhEW8WExtw5kIjTQ2vxLvpwdLFzbZzQ== X-Received: by 2002:a17:907:9614:b0:b79:f4e4:b55d with SMTP id a640c23a62f3a-b8426bf1334mr359247866b.51.1767714307997; Tue, 06 Jan 2026 07:45:07 -0800 (PST) Received: from dario-ThinkPad-P14s-Gen-5.homenet.telecomitalia.it (host-95-248-31-95.retail.telecomitalia.it. [95.248.31.95]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-6507be64efasm2349767a12.21.2026.01.06.07.45.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 Jan 2026 07:45:07 -0800 (PST) From: Dario Binacchi To: linux-kernel@vger.kernel.org Cc: linux-amarula@amarulasolutions.com, Dario Binacchi , David Airlie , Jessica Zhang , Maarten Lankhorst , Maxime Ripard , Michael Walle , Neil Armstrong , Simona Vetter , Thomas Zimmermann , dri-devel@lists.freedesktop.org Subject: [PATCH 3/3] drm/panel: ilitek-ili9806e: add Rocktech RK050HR345-CT106A SPI panel Date: Tue, 6 Jan 2026 16:43:16 +0100 Message-ID: <20260106154446.2735701-4-dario.binacchi@amarulasolutions.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260106154446.2735701-1-dario.binacchi@amarulasolutions.com> References: <20260106154446.2735701-1-dario.binacchi@amarulasolutions.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add support for the Rocktech RK050HR345-CT106A panel based on the Ilitek ILI9806E controller using the SPI bus. The driver is designed to be easily extensible to support other panels with different initialization sequences and display timings by providing a specific descriptor structure for each model. Kconfig and Makefile are updated to allow selecting the SPI variant independently from the DSI one. Signed-off-by: Dario Binacchi --- MAINTAINERS | 2 + drivers/gpu/drm/panel/Kconfig | 13 +- drivers/gpu/drm/panel/Makefile | 1 + .../gpu/drm/panel/panel-ilitek-ili9806e-spi.c | 327 ++++++++++++++++++ 4 files changed, 342 insertions(+), 1 deletion(-) create mode 100644 drivers/gpu/drm/panel/panel-ilitek-ili9806e-spi.c diff --git a/MAINTAINERS b/MAINTAINERS index 40a77e5fd2fd..a03fc4a97c67 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -7908,8 +7908,10 @@ F: drivers/gpu/drm/panel/panel-ilitek-ili9805.c =20 DRM DRIVER FOR ILITEK ILI9806E PANELS M: Michael Walle +M: Dario Binacchi S: Maintained F: drivers/gpu/drm/panel/panel-ilitek-ili9806e-dsi.c +F: drivers/gpu/drm/panel/panel-ilitek-ili9806e-spi.c =20 DRM DRIVER FOR JADARD JD9365DA-H3 MIPI-DSI LCD PANELS M: Jagan Teki diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig index 9ab72f3ab32e..7651be0d8bae 100644 --- a/drivers/gpu/drm/panel/Kconfig +++ b/drivers/gpu/drm/panel/Kconfig @@ -263,7 +263,8 @@ config DRM_PANEL_ILITEK_ILI9806E depends on BACKLIGHT_CLASS_DEVICE help Say Y if you want to enable support for panels based on the - Ilitek ILI9806E controller. + Ilitek ILI9806E controller. This panel can be accessed using + DSI or SPI. =20 config DRM_PANEL_ILITEK_ILI9806E_DSI tristate "Ilitek ILI9806E DSI panel" @@ -274,6 +275,16 @@ config DRM_PANEL_ILITEK_ILI9806E_DSI Say Y here if you want to be able to access the Ilitek ILI9806E panel using DSI. =20 +config DRM_PANEL_ILITEK_ILI9806E_SPI + tristate "Ilitek ILI9806E RGB SPI panel" + depends on SPI + depends on DRM_PANEL_ILITEK_ILI9806E + select DRM_MIPI_DBI + select VIDEOMODE_HELPERS + help + Say Y here if you want to be able to access the Ilitek + ILI9806E panel using SPI. + config DRM_PANEL_ILITEK_ILI9881C tristate "Ilitek ILI9881C-based panels" depends on OF diff --git a/drivers/gpu/drm/panel/Makefile b/drivers/gpu/drm/panel/Makefile index 00071a983242..acc1d49983cb 100644 --- a/drivers/gpu/drm/panel/Makefile +++ b/drivers/gpu/drm/panel/Makefile @@ -27,6 +27,7 @@ obj-$(CONFIG_DRM_PANEL_ILITEK_IL9322) +=3D panel-ilitek-i= li9322.o obj-$(CONFIG_DRM_PANEL_ILITEK_ILI9341) +=3D panel-ilitek-ili9341.o obj-$(CONFIG_DRM_PANEL_ILITEK_ILI9805) +=3D panel-ilitek-ili9805.o obj-$(CONFIG_DRM_PANEL_ILITEK_ILI9806E_DSI) +=3D panel-ilitek-ili9806e-dsi= .o +obj-$(CONFIG_DRM_PANEL_ILITEK_ILI9806E_SPI) +=3D panel-ilitek-ili9806e-spi= .o obj-$(CONFIG_DRM_PANEL_ILITEK_ILI9881C) +=3D panel-ilitek-ili9881c.o obj-$(CONFIG_DRM_PANEL_ILITEK_ILI9882T) +=3D panel-ilitek-ili9882t.o obj-$(CONFIG_DRM_PANEL_INNOLUX_EJ030NA) +=3D panel-innolux-ej030na.o diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9806e-spi.c b/drivers/gp= u/drm/panel/panel-ilitek-ili9806e-spi.c new file mode 100644 index 000000000000..25b19dfd2924 --- /dev/null +++ b/drivers/gpu/drm/panel/panel-ilitek-ili9806e-spi.c @@ -0,0 +1,327 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * SPI interface to the Ilitek ILI9806E panel. + * + * Copyright (c) 2026 Amarula Solutions, Dario Binacchi + */ + +#include +#include +#include +#include +#include +#include + +#include