From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.remote-ip=145.131.90.139 ARC-Seal: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; cv=none; t=1792935524; b=jF3x93/ow6+Yb7+z6PleENVs2yUpQd5K4mZVaKVZ9qPtw5LRQsW86FL8LC4/2bHZca6O TSyBMeabbcMcWw4FHi+mG4sKW5w7nzacPP7iH0GvxJqybhPEauDqWc4IBvlyw/v3mOuHI sT1zPQoQBlkICIyNRVS4YBdsWGV1FSlXQ/9MATBnWhUHk1RbmTZhnroPndM3QTYVs5M8w zAxyJCOHKINVq3kpEDcXYI18y5CmsLmrLz8jl2cdPBuOSy2wtJiUEaMbhy9tcRBJZvno2 Amp1ud3UEsZ8UQIlpM6rRZqugRihyUkn4vW5QczzOsUu8e3EtsJtJrEHS9dv22XBsxg== ARC-Message-Signature: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; c=relaxed/relaxed; t=1792935524; h=DMARC-Filter:DKIM-Signature:From:To:Cc:Subject:Date:Message-ID: In-Reply-To:References:Mime-Version:Content-Transfer-Encoding; bh=q1vKgStrzXjEJP5RZmOMPgEo0qGUaawqbRx2jW6a168=; b=vAT6iVpnEieEXCxLbCR0SFc7DMXx76My+zWlInXV9LalCuwY6XlZObx2mGwR61TMVf/i 9gxeF2nBC8XO7bM485ckOEpalAJjGff3HIk9uort+zmh4tdeRCaY2WqRiH/Jn56/V6E5i /sCFIH2OVORNpfPv7ueScro2pmEFHPHZff9/T7B47GvHPtKo0zfzMIsDeolDQqMP75OoP cxf67VGCP68Wvd6xoG6VgTH9+y9GAIqF8R7+1xuSmNc0diizmma1I6KDUyWZzjaBuOENG N+2wzlwRL+aEAne2APnUvcfyF8u24nnqEilP64bc4W6g9t3SxhO+ZuMmOhBlUoomeGA== ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none header.from=pyk.ee; spf=pass smtp.mailfrom=pyk.ee; dkim=pass header.d=startmail.com header.i=@startmail.com header.a=rsa-sha256 header.s=2020-07 header.b=QntIlxDd; arc=none smtp.remote-ip=145.131.90.139 Received: from mx-out1.startmail.com (mx-out1.startmail.com [145.131.90.139]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 98128606A31E; Sun, 25 Oct 2026 13:38:43 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.2 smtp.subspace.kernel.org 98128606A31E Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=pyk.ee Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pyk.ee Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key, unprotected) header.d=startmail.com header.i=@startmail.com header.a=rsa-sha256 header.s=2020-07 header.b=QntIlxDd DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=startmail.com; s=2020-07; t=1792935522; bh=q1vKgStrzXjEJP5RZmOMPgEo0qGUaawqbRx2jW6a168=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: Mime-Version:Content-Transfer-Encoding:From:Subject:To:Date:Sender: Content-Type:Content-Transfer-Encoding:Content-Disposition: Mime-Version:Reply-To:In-Reply-To:References:Message-Id:Autocrypt; b=QntIlxDd9yVPqC5/Vm0kQf7qhHchhn2tr3Ohw9JwQMSD2A/DhrjiA+zEyKbsKFWQ4 7HC7K415+JZpWNBLozsDpNEFDMtVnJJNOZNOI+H/qheg4+E8uR8WLAanAei4KyUtWI LWzzGNWdZnKq7MlqvAXCeEfVD8fP7V64Zp7bC9OPmR7BJ2smuO+zm1v9bJWYEHHpgs PkPMtWC67NuNYQL95Hs8+czPMygutYrBDoCRHCEsx+SSC1/o5uuP2LHCnIW7L75meH KgnB0paD8stVpv5lMZMwvnjT0vpQ6LczJlz7Ohf0iTejbPN265Ofg5hmlyuAOb0B5Z ykX3Bvb95nc0Q== From: Jacob Pyke To: neil.armstrong@linaro.org Cc: jesszhan0024@gmail.com, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, teguh@sobir.in, Andrew.liu@moorechip.net, Jacob Pyke Subject: [PATCH 2/2] drm/panel: Add Ilitek IL97680A panels for Retroid Pocket Nova and Duo Date: Sun, 25 Oct 2026 23:37:41 +1000 Message-ID: <20261025133741.100490-3-jacob@pyk.ee> In-Reply-To: <20261025133741.100490-1-jacob@pyk.ee> References: <20261025133741.100490-1-jacob@pyk.ee> 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 From: Teguh Sobirin Add support for the Ilitek IL97680A panels in the Retroid Pocket Nova and the bottom display of the Retroid Pocket Duo. Both are 1280x960 command-mode panels using four DSI lanes and RGB888 pixels, with fixed 60 Hz and 120 Hz modes and DCS brightness control. Share initialization and timings, with per-panel supply configurations. Apply the requested brightness after display-on rather than setting full brightness during initialization, to avoid a white flash on startup. Link: https://github.com/RetroidPocket/linux/commit/32d07e207d8c09b97b9ad5009999c32c7058d4af Signed-off-by: Teguh Sobirin Assisted-by: LLM Signed-off-by: Jacob Pyke --- MAINTAINERS | 1 + drivers/gpu/drm/panel/Kconfig | 11 + drivers/gpu/drm/panel/Makefile | 1 + drivers/gpu/drm/panel/panel-ilitek-il97680a.c | 433 ++++++++++++++++++ 4 files changed, 446 insertions(+) create mode 100644 drivers/gpu/drm/panel/panel-ilitek-il97680a.c diff --git a/MAINTAINERS b/MAINTAINERS index d1be1cf2b93c4fa57ffcb6a17aaf2e14dad0deed..70d04c3870022c468295ce1de2a636c05e3accee 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -8240,6 +8240,7 @@ M: Jacob Pyke L: dri-devel@lists.freedesktop.org S: Maintained F: Documentation/devicetree/bindings/display/panel/ilitek,il97680a.yaml +F: drivers/gpu/drm/panel/panel-ilitek-il97680a.c DRM DRIVER FOR ILITEK ILI9225 PANELS M: David Lechner diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig index cbdf7b8f7f7afc7f8aa3a9cefd2258ca81ac9673..fafa658d0c42cf26842e7ebb46dbf70ad59e4b9f 100644 --- a/drivers/gpu/drm/panel/Kconfig +++ b/drivers/gpu/drm/panel/Kconfig @@ -306,6 +306,17 @@ config DRM_PANEL_ILITEK_IL9322 Say Y here if you want to enable support for Ilitek IL9322 QVGA (320x240) RGB, YUV and ITU-T BT.656 panels. +config DRM_PANEL_ILITEK_IL97680A + tristate "Ilitek IL97680A-based panels" + depends on OF + depends on DRM_MIPI_DSI + depends on BACKLIGHT_CLASS_DEVICE + help + Say Y here to enable the 1280x960 Ilitek IL97680A panels in the + Retroid Pocket Nova and the bottom display of the Retroid Pocket Duo. + These panels use four-lane MIPI DSI command mode and support fixed + 60 Hz and 120 Hz refresh rates with brightness controlled over DCS. + config DRM_PANEL_ILITEK_ILI9341 tristate "Ilitek ILI9341 240x320 QVGA panels" depends on SPI diff --git a/drivers/gpu/drm/panel/Makefile b/drivers/gpu/drm/panel/Makefile index 3b523cf37833067c3b0b02ffd90694c3558f0741..ca03c07a1d255c1a8e0bd34dc0f3ba4fe2b65098 100644 --- a/drivers/gpu/drm/panel/Makefile +++ b/drivers/gpu/drm/panel/Makefile @@ -30,6 +30,7 @@ obj-$(CONFIG_DRM_PANEL_HIMAX_HX8394) += panel-himax-hx8394.o obj-$(CONFIG_DRM_PANEL_HYDIS_HV101HD1) += panel-hydis-hv101hd1.o obj-$(CONFIG_DRM_PANEL_ILITEK_ILI7807S) += panel-ilitek-ili7807s.o obj-$(CONFIG_DRM_PANEL_ILITEK_IL9322) += panel-ilitek-ili9322.o +obj-$(CONFIG_DRM_PANEL_ILITEK_IL97680A) += panel-ilitek-il97680a.o obj-$(CONFIG_DRM_PANEL_ILITEK_ILI9341) += panel-ilitek-ili9341.o obj-$(CONFIG_DRM_PANEL_ILITEK_ILI9488) += panel-ilitek-ili9488.o obj-$(CONFIG_DRM_PANEL_ILITEK_ILI9805) += panel-ilitek-ili9805.o diff --git a/drivers/gpu/drm/panel/panel-ilitek-il97680a.c b/drivers/gpu/drm/panel/panel-ilitek-il97680a.c new file mode 100644 index 0000000000000000000000000000000000000000..8edc9ee9ea3f685179765027bd2864c9c592e4de --- /dev/null +++ b/drivers/gpu/drm/panel/panel-ilitek-il97680a.c @@ -0,0 +1,433 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Ilitek IL97680A panels driver + * + * Copyright (c) 2026 Teguh Sobirin + * Copyright (c) 2026 Jacob Pyke + */ + +#include +#include +#include +#include +#include +#include +#include + +#include