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 X-Spam-Level: X-Spam-Status: No, score=-13.9 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,UNWANTED_LANGUAGE_BODY, URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id DFD55C432BE for ; Mon, 2 Aug 2021 06:38:21 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id C602361057 for ; Mon, 2 Aug 2021 06:38:21 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232402AbhHBGi3 (ORCPT ); Mon, 2 Aug 2021 02:38:29 -0400 Received: from smtpbg587.qq.com ([113.96.223.105]:53087 "EHLO smtpbg587.qq.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232306AbhHBGi1 (ORCPT ); Mon, 2 Aug 2021 02:38:27 -0400 X-QQ-mid: bizesmtp54t1627886163t1uj5poq Received: from localhost.localdomain (unknown [113.89.245.207]) by esmtp6.qq.com (ESMTP) with id ; Mon, 02 Aug 2021 14:36:02 +0800 (CST) X-QQ-SSF: 01100000002000208000D00A0000000 X-QQ-FEAT: xeo957adDlYnfc/EfUWvY6PCpmNOMNixmbzKk6q9yCT2pMSAj0on0C+m3V95N QBTO6t03rFE34jrJkPaGySZnRNZD7h8V20+Aj5X2hx23A5+G+V0RdVnu5rzMnR5WRlsuZH1 NS8oC3Gq2LT3UxNy/FaB0fCDm5Biw0B3H3ubBSg8/W71kryyKbyl72XskluR/zLjrbXnpMv l4iWLMGvUlThFpzpg4G5S/Okky+BxHRgbX+rjG7rM8RVuj/0LZ3trdaZ/ODURBbh9TyVc9Y XbAASxBmKCM0L8jbTDvYERAhj5qtZ+mt1p0tF6volp38FXD2z1G1E2nb1g+dfA5rZFekE3e k9HI6mZ3/GJsBJgrJIRl9wd2nOxzxsC7URpeGNQA9KA2yGpXxU= X-QQ-GoodBg: 0 From: Icenowy Zheng To: David Airlie , Daniel Vetter , Rob Herring Cc: dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Icenowy Zheng Subject: [PATCH 3/4] drm/tiny: add simple-dbi driver Date: Mon, 2 Aug 2021 14:35:37 +0800 Message-Id: <20210802063538.75583-4-icenowy@sipeed.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210802063538.75583-1-icenowy@sipeed.com> References: <20210802063538.75583-1-icenowy@sipeed.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:sipeed.com:qybgspam:qybgspam3 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add a driver for generic MIPI DBI panels initialized with MIPI DCS commands. Currently a ST7789V-based panel is added to it. This panel has its configuration pre-programmed into the controller, so no vendor-specific configuration is needed. Signed-off-by: Icenowy Zheng --- drivers/gpu/drm/tiny/Kconfig | 12 ++ drivers/gpu/drm/tiny/Makefile | 1 + drivers/gpu/drm/tiny/simple-dbi.c | 244 ++++++++++++++++++++++++++++++ 3 files changed, 257 insertions(+) create mode 100644 drivers/gpu/drm/tiny/simple-dbi.c diff --git a/drivers/gpu/drm/tiny/Kconfig b/drivers/gpu/drm/tiny/Kconfig index d31be274a2bd..6cfc57b68a46 100644 --- a/drivers/gpu/drm/tiny/Kconfig +++ b/drivers/gpu/drm/tiny/Kconfig @@ -144,6 +144,18 @@ config TINYDRM_REPAPER If M is selected the module will be called repaper. +config TINYDRM_SIMPLE_DBI + tristate "DRM support for generic MIPI DBI panels" + depends on DRM && SPI + select DRM_KMS_HELPER + select DRM_KMS_CMA_HELPER + select DRM_MIPI_DBI + help + DRM driver for generic DBI panels that are MIPI DCS compatible + and needs no vendor-specific setup commands. + + If M is selected the module will be called simple-dbi. + 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 e09942895c77..2553de651aa3 100644 --- a/drivers/gpu/drm/tiny/Makefile +++ b/drivers/gpu/drm/tiny/Makefile @@ -13,3 +13,4 @@ obj-$(CONFIG_TINYDRM_MI0283QT) += mi0283qt.o obj-$(CONFIG_TINYDRM_REPAPER) += repaper.o obj-$(CONFIG_TINYDRM_ST7586) += st7586.o obj-$(CONFIG_TINYDRM_ST7735R) += st7735r.o +obj-$(CONFIG_TINYDRM_SIMPLE_DBI) += simple-dbi.o diff --git a/drivers/gpu/drm/tiny/simple-dbi.c b/drivers/gpu/drm/tiny/simple-dbi.c new file mode 100644 index 000000000000..2b207e43d500 --- /dev/null +++ b/drivers/gpu/drm/tiny/simple-dbi.c @@ -0,0 +1,244 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * DRM driver for display panels with configuration preset and needs only + * standard MIPI DCS commands to bring up. + * + * Copyright (C) 2021 Sipeed + */ + +#include +#include +#include +#include +#include +#include +#include +#include