From nobody Sun Feb 8 05:29:21 2026 Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2050.outbound.protection.outlook.com [40.107.20.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 50AF21DA318 for ; Wed, 3 Jul 2024 14:05:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.20.50 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720015541; cv=fail; b=BqFFFyJrmFJ0o90FMLQmFMbR7aifuGRkngHgBagaWxnB4KQwTzZ4TNgXjlByBmKARlPAK04Ui4n3Al1ahQOf5UzGRyEHLYLQ59Xc6m6j0j8Sh/4K2UJNr3q1URfjg+SJ2tZkCldghldQa777AvQw/YIlmM7XqECTmyWr3W4NeAM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720015541; c=relaxed/simple; bh=YLyHybSX3+zB6VG4DWtXY3StcrR7v96jAx9FfNN+bqo=; h=From:To:CC:Subject:Date:Message-ID:MIME-Version:Content-Type; b=kdYpGGTwmyBZU5zHo01pwDCc589tLVOC2U+1qDrvwfSYuI1y5HYeSkE7nV+kA/sHu1+zmezzqwfaSgNCc1kkY5SoipilSWq+WmWnwXTsF/G5Gad0bp/kMqZV4NBbv2fcdlpei8mtDS3pGhv4xZiVA91OMdWU7it62StPqD0PimA= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arri.de; spf=pass smtp.mailfrom=arri.de; dkim=pass (1024-bit key) header.d=arri.de header.i=@arri.de header.b=nw8XZRWd; arc=fail smtp.client-ip=40.107.20.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arri.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=arri.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=arri.de header.i=@arri.de header.b="nw8XZRWd" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=V9kvKE5LjKyV2kcwp17CPvzZmJnkZ4GdB3ayt60EEPYYCZCqY760RfQX4uOlv3EAu7rNSkkuuu5/8TSDpu1Vgtc97HAdL9V38RGMTbS030lMp1srVGi/b2vr8tF6CbOdbhCz057h+fy/24c9n+2H7bWBgOt0u8LHFpPSvyvORzuzNoPhdrdEqMw9bYBl2XE82e0d393L2THVm2xtNIyz+cJ9wCi1D9n8VVycGmSqgx2SjDiWm6t4jU4XlA8LLZ5PTgy4eMwCxGRt7gSweFEhBbHD2friXyhoMfr0d/UQmLFxe0s0pru6ZqkL/X33fC/F5FmjxgUdnLRC0AnZdh9MHg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=72Pkxfxy4KUppT6FGmPWCZ0c7v/vM2SXFD9mQJ9dNPA=; b=Z4SZApwl7lEtUm9m1+DLGaVgbyC+gFZsoRl6TSkm0kM2nL0k5p3sLQ7ux5IR0vtfx8aBOi8yLqSv124JSgZYFpWyGeMyAMsFJ4ltbIj+a727G0WLQssBsT47rB7xbrO36jxiOepHBvwBVIxbRMfyX/83JYgq4a94sqnabjo9nTRvN48l7TzBAPnCE62WNbV8SVJzeVRje/5llVpJYvA7uqVjDY08l7X7z4v2JmE5MSx+suQCMe1D/rQxGIEfA8AeQUeWKALkeFZCa3Mf58E1qYcUDXNC+LHbHUoQMNneobfE7XVRhWCCd5WwuP4UmnCU2NiERnw8Lwe7cjjvNixeZw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 217.111.95.7) smtp.rcpttodomain=linux.intel.com smtp.mailfrom=arri.de; dmarc=fail (p=none sp=none pct=100) action=none header.from=arri.de; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arri.de; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=72Pkxfxy4KUppT6FGmPWCZ0c7v/vM2SXFD9mQJ9dNPA=; b=nw8XZRWdOtGTdk36dqUjtqAzEg8lcIg6LgaVrD+NZOQhgEhAcZFlzt+6V7wOp83HST2ffNyOam0J+Xnqn6aVsPx2WkRBKDTPjWl3360H87XPQay+IUBIOjdULYAe1Kj6puQMmZI1ywEQhxuVRYGg+0JszjV5LOjJ1Bsgaogsa7E= Received: from AS4P195CA0035.EURP195.PROD.OUTLOOK.COM (2603:10a6:20b:65a::19) by PAXPR07MB8339.eurprd07.prod.outlook.com (2603:10a6:102:220::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.23; Wed, 3 Jul 2024 14:05:31 +0000 Received: from AMS1EPF0000004E.eurprd04.prod.outlook.com (2603:10a6:20b:65a:cafe::84) by AS4P195CA0035.outlook.office365.com (2603:10a6:20b:65a::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.25 via Frontend Transport; Wed, 3 Jul 2024 14:05:31 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 217.111.95.7) smtp.mailfrom=arri.de; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=arri.de; Received-SPF: Fail (protection.outlook.com: domain of arri.de does not designate 217.111.95.7 as permitted sender) receiver=protection.outlook.com; client-ip=217.111.95.7; helo=mta.arri.de; Received: from mta.arri.de (217.111.95.7) by AMS1EPF0000004E.mail.protection.outlook.com (10.167.16.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.18 via Frontend Transport; Wed, 3 Jul 2024 14:05:30 +0000 Received: from N9W6SW14.arri.de (10.30.4.245) by mta.arri.de (10.10.18.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1258.34; Wed, 3 Jul 2024 16:05:29 +0200 From: Christian Eggers To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Daniel Vetter CC: David Lechner , =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= , , , Christian Eggers Subject: [RFC PATCH] drm/tiny: Add support for Sitronix ST7539 Date: Wed, 3 Jul 2024 16:05:04 +0200 Message-ID: <20240703140504.8518-1-ceggers@arri.de> X-Mailer: git-send-email 2.43.0 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 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AMS1EPF0000004E:EE_|PAXPR07MB8339:EE_ X-MS-Office365-Filtering-Correlation-Id: 0cb1eaf9-cf4b-4266-88d8-08dc9b69327b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|82310400026|1800799024|34020700016|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?NZrl8zQxCaYWlKyNi0yQqCybFAU2lz87xtZ73p0LYCE5fHA6N6Xx/UX+JAoI?= =?us-ascii?Q?RvOehHW8B9RRC4eaCmRoKpEV+eYX9vHg22oQPjaDhuaCKx/ETAX8sMcIzO8M?= =?us-ascii?Q?13UUBnQVav+rNv5vP76hkoCItYmoN84+MJDsuyLQEFoWbMIlTbMTLnbeP+I9?= =?us-ascii?Q?P92DR7Vs4tDa1fa4wAPtNxY9zJwzW/3XIvi9/o5N8k3EiHwZf2lWvyWc0Vb/?= =?us-ascii?Q?dtQ30FTjMnTJt8n3weQsvBuAApOiWV+NZMzWdLBCq7KB4Ir9fTGq4iISvUQ/?= =?us-ascii?Q?/lAdWHtm59Q0Zr5fd9Z6MlfP+FpL0bHddPYs92yGl3vSchKEaJnAyVz0VULV?= =?us-ascii?Q?/fZqC3nVAQma7eCWGz4weZ0PL3qatTbQyIW+U3HZ82BYsfNPacZDlC/RP7c6?= =?us-ascii?Q?sZ2PM+mN4zDu6EuBk88ijdAe7i9POT0krFMfjOI9ZGlKLe0TBeHBlB5wxE3N?= =?us-ascii?Q?G8xNDu045WxUOHx3Vj87opXbWeYkZq2CYUlNWW1ukbEfv1xTxT9ROYFdZ6u1?= =?us-ascii?Q?ftia5x8SDHrgyW2dj3tDQMEn7JBvyflxMHEHHtYuF/xz2x+UjPJNWNXO500i?= =?us-ascii?Q?+ptlPKChTBsTDRbztAmd6BRXhqzyo5aVLHrI0A4qZx6ytISNbQTakRECa2PD?= =?us-ascii?Q?l59XDZkMkHEWDe1CnfviRb8USgu2gszedKLel1J9bZ3bTV37hsOXCaMJOfka?= =?us-ascii?Q?LVgo3QT9x6FqWLca4ldShzNNMKKgiJ6FDiNYmHHVgm3Gg2aN1LZGlM9MArZS?= =?us-ascii?Q?R2Q6DLw74+eIkMRlgeyxlyJyWDvLnBmFlctv2AaEyoF1EWLtw89a5vwfZGrz?= =?us-ascii?Q?hdrAtiKJCixifDYb82PGRC4T5yQFaFkQyoDZNUrhFY819sv5l2xIlxhhAPGS?= =?us-ascii?Q?lk3nFV1ofLuz9//w5CvaMcNZAhkjxHvOHBbK8UTYHChjEdPR6HsE0H/fzI06?= =?us-ascii?Q?AhqOJHXy3/Q0iHV0IuiHEm36W88iNN4kifV97ubN0PCGG4JTs1V6M5Qki9in?= =?us-ascii?Q?EQL0ZnnO3+euQHQ+8Sksy6u5KVev6lAPGiYacsI1rNgXCEefqxYyIJJzGdiD?= =?us-ascii?Q?qOUV6XmEgZw8wGpUdyFZ2HVCtU+HKwYVmLOpb++ARFWoSG8+S5SRqPquQ9SB?= =?us-ascii?Q?j+iSERubAlUGYLm4L4D/1r0kI3YJSFO0SZQQln8ZW0afZdWTFUs6RIgm5Vkq?= =?us-ascii?Q?9+hEVTmVVUUPHI/KdgTZEgQ8HxdaNJzj96Z0Yb/rSqrVYJaMylIwlpZgCLpS?= =?us-ascii?Q?Jg+fKhdAjkbu5XcBe2pFalqxSH7ARJo2Xd9xOcA0OomB9h+DC50jMWVZmVQ4?= =?us-ascii?Q?/oh35FSbx2LWOTtNLv67aW3f41Re08bguC+cjKCvZalhz8g0xUG/06P1iHpX?= =?us-ascii?Q?1K4GTWSEMOU2iIoU4NF7wYgZlmFp?= X-Forefront-Antispam-Report: CIP:217.111.95.7;CTRY:DE;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mta.arri.de;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(1800799024)(34020700016)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: arri.de X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jul 2024 14:05:30.0283 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0cb1eaf9-cf4b-4266-88d8-08dc9b69327b X-MS-Exchange-CrossTenant-Id: e6a73a5a-614d-4c51-b3e3-53b660a9433a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=e6a73a5a-614d-4c51-b3e3-53b660a9433a;Ip=[217.111.95.7];Helo=[mta.arri.de] X-MS-Exchange-CrossTenant-AuthSource: AMS1EPF0000004E.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR07MB8339 Content-Type: text/plain; charset="utf-8" Based on the existing ST7586 driver. But the ST7539 ... - is monochrome only - has 8 VERTICAL pixels per byte - doesn't support any MIPI DCS commands - has (a few) 16 bit commands - doesn't support setting a clipping rect when writing to the RAM - doesn't support rotation (only mirroring of X and/or Y axis) Questions/TODO: - should drivers for such old displays be mainlined? - shall I use mipi_dbi_ although the display doesn't implement MIPI DCS (and has some 16 bit commands)? - can the conversion to 8 vertical pixels/byte (taken from solomon/ssd130x.c) be avoided / simplified / made more efficient? - how to implement setting of the display contrast (required by my application)? - add device tree binding Signed-off-by: Christian Eggers --- MAINTAINERS | 6 + drivers/gpu/drm/tiny/Kconfig | 11 + drivers/gpu/drm/tiny/Makefile | 1 + drivers/gpu/drm/tiny/st7539.c | 424 ++++++++++++++++++++++++++++++++++ 4 files changed, 442 insertions(+) create mode 100644 drivers/gpu/drm/tiny/st7539.c diff --git a/MAINTAINERS b/MAINTAINERS index e7d543cf9f6c..7191206c1ae3 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -7116,6 +7116,12 @@ S: Maintained F: Documentation/devicetree/bindings/display/panel/samsung,s6d7aa0.yaml F: drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c =20 +DRM DRIVER FOR SITRONIX ST7539 PANELS +M: Christian Eggers +S: Maintained +T: git https://gitlab.freedesktop.org/drm/misc/kernel.git +F: drivers/gpu/drm/tiny/st7539.c + DRM DRIVER FOR SITRONIX ST7586 PANELS M: David Lechner S: Maintained diff --git a/drivers/gpu/drm/tiny/Kconfig b/drivers/gpu/drm/tiny/Kconfig index f6889f649bc1..220d2aee9354 100644 --- a/drivers/gpu/drm/tiny/Kconfig +++ b/drivers/gpu/drm/tiny/Kconfig @@ -186,6 +186,17 @@ config TINYDRM_REPAPER =20 If M is selected the module will be called repaper. =20 +config TINYDRM_ST7539 + tristate "DRM support for Sitronix ST7539 display panels" + depends on DRM && SPI + select DRM_KMS_HELPER + select DRM_GEM_DMA_HELPER + select DRM_MIPI_DBI + help + DRM driver for Sitronix ST7539 panels. + + If M is selected the module will be called st7539. + config TINYDRM_ST7586 tristate "DRM support for Sitronix ST7586 display panels" depends on DRM && SPI diff --git a/drivers/gpu/drm/tiny/Makefile b/drivers/gpu/drm/tiny/Makefile index 76dde89a044b..0bd217779995 100644 --- a/drivers/gpu/drm/tiny/Makefile +++ b/drivers/gpu/drm/tiny/Makefile @@ -14,5 +14,6 @@ obj-$(CONFIG_TINYDRM_ILI9341) +=3D ili9341.o obj-$(CONFIG_TINYDRM_ILI9486) +=3D ili9486.o obj-$(CONFIG_TINYDRM_MI0283QT) +=3D mi0283qt.o obj-$(CONFIG_TINYDRM_REPAPER) +=3D repaper.o +obj-$(CONFIG_TINYDRM_ST7539) +=3D st7539.o obj-$(CONFIG_TINYDRM_ST7586) +=3D st7586.o obj-$(CONFIG_TINYDRM_ST7735R) +=3D st7735r.o diff --git a/drivers/gpu/drm/tiny/st7539.c b/drivers/gpu/drm/tiny/st7539.c new file mode 100644 index 000000000000..9a6aeea006ef --- /dev/null +++ b/drivers/gpu/drm/tiny/st7539.c @@ -0,0 +1,424 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * DRM driver for Sitronix ST7539 panels + * + * Copyright 2024 Christian Eggers + * + * based on st7586.c + * Copyright 2017 David Lechner + */ + +#include +#include +#include +#include +#include +#include