From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E85EBC369CB for ; Wed, 23 Apr 2025 19:03:55 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 3E01E10E245; Wed, 23 Apr 2025 19:03:55 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="EW8B+PnP"; dkim-atps=neutral Received: from mail-lf1-f48.google.com (mail-lf1-f48.google.com [209.85.167.48]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3012D10E13E for ; Wed, 23 Apr 2025 19:03:49 +0000 (UTC) Received: by mail-lf1-f48.google.com with SMTP id 2adb3069b0e04-549b116321aso153141e87.3 for ; Wed, 23 Apr 2025 12:03:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745435027; x=1746039827; darn=lists.freedesktop.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=/+AJsj+mRWpENvPurYta7OWQLeJGM5rP/YKXYBKieZI=; b=EW8B+PnPKBcz6v6jjujYJUt1wprBK9x+nsBadWvVCv0DJv3fWbadS6uilyfKgtQcz2 XZJk0tje+lBvSvYflXJfGTcErt9De6PJ03nWFl3AelnYqfktIZKtIKJIin5Vv+F6IRnT CmA7JsiR2qoTDleZVzp+SEbvixHOUvU+nC0ZVESM+dhTyMaQSaxUO2o9XZ2w2w1EsFqw E6R9hzS8rqNyqcSRYjfFyfnVIXbatvHNlBHOyBl1hWxvKEA1P7TAlcZ95THFK7+oqfer STrlkFrp0M57o/x1iIZr/n4HxnKnPcRVxFju9z6fMo2MNu3bdzGko5dYbzCE0GI/PviG jv5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745435027; x=1746039827; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/+AJsj+mRWpENvPurYta7OWQLeJGM5rP/YKXYBKieZI=; b=Q3Cn3La1GrQMCm8Lt7JErHD5UQq8apNGrkzYgTcxPRVCXPyMM9PPqyE8Wk8/faYzAa knX5THmNmZOC3Wzk1IQsskrhwOIsvFspy/N0ndKEkIb/yzf3zKAGsnAxpmTQ/QIaCPaj wpH3uxkaAYAHG7FbvR533ZGbuNthktXPe2wmaEqP1eIj5+rEdTGKkOjKFcF2BaByfvN+ HqdpBvNOvnOUE7mmTod2MpkerW1YomSS/Yigc1BVEcpVvW3REEiHJHNTQOSM09/8Y4E/ Ehz51Owc5Sw862IW5R3EjikcIOappT3tVB2dCyojx2C3JWmBGVz4xn3EOtEdOPUps+3t nLPg== X-Gm-Message-State: AOJu0YxxqBWbSa7ELz7nsUmp/S2zluFtUnCAsK/6sv2dCXhNj6CrMZaD 5zIm8qRef7q6kePCmoMdI5CiVE4LuGHtpXFniMHx8q1P0Fv2p/5Z X-Gm-Gg: ASbGncuepl1uaumvrbUhysmNhUCvEUDULrqivbq0k+XPx2vIwKS9ZYvF2QgoHwjRQLD OpwqYXQzLoy4hMkBPbC7xYB7djAFbc6wKxiFTHc0lhspVeR1KWOElnEC+sBV9iKIsRZvs5f07Dg D5hYvANjhsq61uuyYaiwHvBiH/cGGmYB5Wixh7YcVHA8Vmof6g0g6vSxbODfC7SwiZI/QmEsYIG SybU2NfPkOtWAPv0UjJx6V9HZx0qJE83Bk/qwCuLGgmrs2tnjlkrST8vMbJZi8X7RgYxejIgne9 zh1qUAvsBQLfQMWSI7nCBi7sGq0wKs43fp28skM7JE1jcoUHNATBpoW4oREsgOMPUGDFnqyBEXX 0JGHB4tmt X-Google-Smtp-Source: AGHT+IGcXz0svKtsRZP181iGSGREMbaiTMlNZ5m0Oag4EPLINdXMfMz2YNnGj2JfYhfnMSQ60Pl/cA== X-Received: by 2002:a05:6512:10d1:b0:54c:a7c:cbd4 with SMTP id 2adb3069b0e04-54e7c3f3cbcmr17841e87.24.1745435027016; Wed, 23 Apr 2025 12:03:47 -0700 (PDT) Received: from [192.168.1.11] (83-233-6-197.cust.bredband2.com. [83.233.6.197]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-3109084d9d0sm19475141fa.97.2025.04.23.12.03.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 23 Apr 2025 12:03:46 -0700 (PDT) From: Marcus Folkesson Date: Wed, 23 Apr 2025 21:03:21 +0200 Subject: [PATCH v6 2/3] drm/st7571-i2c: add support for Sitronix ST7571 LCD controller MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Message-Id: <20250423-st7571-v6-2-e9519e3c4ec4@gmail.com> References: <20250423-st7571-v6-0-e9519e3c4ec4@gmail.com> In-Reply-To: <20250423-st7571-v6-0-e9519e3c4ec4@gmail.com> To: David Airlie , Simona Vetter , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Marcus Folkesson , Thomas Zimmermann , Javier Martinez Canillas X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=32417; i=marcus.folkesson@gmail.com; h=from:subject:message-id; bh=Cg2N+muIdlGnOsxeYphUmn1BbkakAyypDA/AY3V6ZjU=; b=owEBbQKS/ZANAwAIAYiATm9ZXVIyAcsmYgBoCTmEFL9u/6ra/k72tiKpafb1lseFIs3MnVD0i qlnuXFCuB+JAjMEAAEIAB0WIQQFUaLotmy1TWTBLGWIgE5vWV1SMgUCaAk5hAAKCRCIgE5vWV1S MryeEADdGzRmZcK1mexzOsphNcyCxW92kk78avG+o19B4tE6wSBhjrPBRVCYikWfWH1sQf1IC4x iOoZEJ4nzZJ9JIuokAXf02NDu+ev4l9Bjq0aUFtk+54frBSsmvklqtueLl2wzs6SovpKsJKSgc0 U+9UmGZTMmUuE42521ej643eD6tc5idNvqQntWU/UOKRMfWKGSQEQ50yH5umTCMKoqG5ZLKLoc2 7K4VeI9CdHRxM1Ph/lugtrPygDp5IQFbSJi/bO2Gwyn/OMQE3kyBUgwCoWUzERJTFT3w7ed09gH Z9cVAKqhegNdtms4ZB3kEB+WU05RNnAtxZOo2LhwD62HZA9XrNcmhYqaBEroHrcq8KqNHFXCswa AEX3UoWE01d2Xy3CrzoETxmHGAc/OOoDeh+5ouwUkCVCnzpZUzCf1TDyoce45zEulqWpsTumpId +zrvv4rGoaew+3mw2bP81vVN74NstBbZN/DPNgXKiNYnGuk7PqRMahzqOxiZqpRc99GKOMCad5k MLcY2/WQxmLL0GG6Q6gQ9yp3zT7r3+e7I23m0YoQdv5xDBIZx2MJTgOgvoujKY6yt+MgVuVq6/+ PTxyNbfqvwidzhpdkOj/Uow8AOFHBpZXsj9ENNJ8PD6yGw2040ZegtDqc2U3i2CP23CX8+yH1um sJiPmUJEOCS98Cw== X-Developer-Key: i=marcus.folkesson@gmail.com; a=openpgp; fpr=AB91D46C7E0F6E6FB2AB640EC0FE25D598F6C127 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Sitronix ST7571 is a 4bit gray scale dot matrix LCD controller. The controller has a SPI, I2C and 8bit parallel interface, this driver is for the I2C interface only. Reviewed-by: Thomas Zimmermann Reviewed-by: Javier Martinez Canillas Signed-off-by: Marcus Folkesson --- drivers/gpu/drm/tiny/Kconfig | 11 + drivers/gpu/drm/tiny/Makefile | 1 + drivers/gpu/drm/tiny/st7571-i2c.c | 1002 +++++++++++++++++++++++++++++++++++++ 3 files changed, 1014 insertions(+) diff --git a/drivers/gpu/drm/tiny/Kconfig b/drivers/gpu/drm/tiny/Kconfig index 95c1457d773099b4460e4adb872ed8bc64f1f282..9fa333709828f78f5fe5639f7ce40117455ff046 100644 --- a/drivers/gpu/drm/tiny/Kconfig +++ b/drivers/gpu/drm/tiny/Kconfig @@ -212,6 +212,17 @@ config TINYDRM_ST7586 If M is selected the module will be called st7586. +config DRM_ST7571_I2C + tristate "DRM support for Sitronix ST7571 display panels (I2C)" + depends on DRM && I2C && MMU + select DRM_GEM_SHMEM_HELPER + select DRM_KMS_HELPER + select REGMAP_I2C + help + DRM driver for Sitronix ST7571 panels controlled over I2C. + + if M is selected the module will be called st7571-i2c. + config TINYDRM_ST7735R tristate "DRM support for Sitronix ST7715R/ST7735R display panels" depends on DRM && SPI diff --git a/drivers/gpu/drm/tiny/Makefile b/drivers/gpu/drm/tiny/Makefile index ba4a60bb72bdfb24c910e4992cab5047d4f9136d..0151590db5cbd80aebde0629afd03f47b83c3045 100644 --- a/drivers/gpu/drm/tiny/Makefile +++ b/drivers/gpu/drm/tiny/Makefile @@ -6,6 +6,7 @@ obj-$(CONFIG_DRM_BOCHS) += bochs.o obj-$(CONFIG_DRM_CIRRUS_QEMU) += cirrus-qemu.o obj-$(CONFIG_DRM_GM12U320) += gm12u320.o obj-$(CONFIG_DRM_PANEL_MIPI_DBI) += panel-mipi-dbi.o +obj-$(CONFIG_DRM_ST7571_I2C) += st7571-i2c.o obj-$(CONFIG_TINYDRM_HX8357D) += hx8357d.o obj-$(CONFIG_TINYDRM_ILI9163) += ili9163.o obj-$(CONFIG_TINYDRM_ILI9225) += ili9225.o diff --git a/drivers/gpu/drm/tiny/st7571-i2c.c b/drivers/gpu/drm/tiny/st7571-i2c.c new file mode 100644 index 0000000000000000000000000000000000000000..ba089a7e2b617ce6b0dc67848c148b88245a2247 --- /dev/null +++ b/drivers/gpu/drm/tiny/st7571-i2c.c @@ -0,0 +1,1002 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Driver for Sitronix ST7571, a 4 level gray scale dot matrix LCD controller + * + * Copyright (C) 2025 Marcus Folkesson + */ + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include