From patchwork Sun Feb 9 18:06:41 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kamlesh Gurudasani X-Patchwork-Id: 205021 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=-14.6 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS, USER_AGENT_GIT autolearn=ham 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 5FD3AC2BA83 for ; Sun, 9 Feb 2020 18:06:50 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 2CBB520715 for ; Sun, 9 Feb 2020 18:06:50 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Z+6NCnS1" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727397AbgBISGt (ORCPT ); Sun, 9 Feb 2020 13:06:49 -0500 Received: from mail-pf1-f194.google.com ([209.85.210.194]:39382 "EHLO mail-pf1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727388AbgBISGt (ORCPT ); Sun, 9 Feb 2020 13:06:49 -0500 Received: by mail-pf1-f194.google.com with SMTP id 84so2501911pfy.6 for ; Sun, 09 Feb 2020 10:06:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=HK6edd7Xmg3Ze31DS+f+AJalqKky8iLAkNTvj0Y+R9w=; b=Z+6NCnS15JR/dptNNzVpjukg8pTvMX/JGMH3+qSBm1YEAu4ZwA8qcp9rR6j+czNyWj KH7pklQmdKJVv07gJPEh2KYbhH8wWXVNchC97FEGak1ivgXdBwsEJnuRFz/Q3o07Rv4a BSgSv7H4/VAabsHSAhLlrFUXONB2u61eEGFP+iBHpPQHiHPdvFRE/zaO7yIiGXnxVeUx bj4psvGWGJQ8dMzO0JZbARfAgcj0j2Pqo7wiDy7g7xuKJCqQ3hNS8ddxGeU3GdK1A/vV qmnLk6INY+tWdDqFt/vMubbtNIsXCEs43CwdBTD4xUZRnWXpyKa7bYo9c/2tdkhK0cuh vyIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=HK6edd7Xmg3Ze31DS+f+AJalqKky8iLAkNTvj0Y+R9w=; b=K+ZZNZLLFALL7QgicgI0cbj3KkiX7JJyvW7QZ8TM2Qb37enP+NcZuFWH/g+0gj1WW8 T23k2JPdXYa1rTGxy+sMkIqQK8gt7VFg5bCnRI6O6G+N+BY26z0C1eZ7IrHr9+Bvamij O0MCqxb/P7btn2EMyXPG23xdVBmqX8BALBpiYu/P+bVb3Sp6Iy1B16XJWVfFygFiOuMm LnITeHJj5GsjsTHymYVOurkrREKRREuHNc+ll1R+j/IwtQ4rA8Lalhy5/8xKoo+FPotn 0qmkfBGfmZYmh9D6GPNrxoXkDDuQsA4CxvT/b9+Oas8wJNAMs4XrEeTjD8y6ckFL0n0B Ctgw== X-Gm-Message-State: APjAAAXeb+4Tx+Km3VdtGESYs8l45QI4d5LaNmUO0+FeIgGhbMX3xhkH +BaH0TcMjmM3mYzho386+nt8JpS5NYDDGg== X-Google-Smtp-Source: APXvYqypCPq25qpWoAVyqYZshyQk4lAeARFWIhnqeEgWR2Ahl57qRBVdMoxKTU3tuPnlxlzfnBEunw== X-Received: by 2002:a62:2a07:: with SMTP id q7mr9295718pfq.153.1581271607330; Sun, 09 Feb 2020 10:06:47 -0800 (PST) Received: from localhost.localdomain ([2405:201:d809:ffa6:508e:1313:1d5a:1ea5]) by smtp.gmail.com with ESMTPSA id d24sm9849766pfq.75.2020.02.09.10.06.45 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sun, 09 Feb 2020 10:06:46 -0800 (PST) From: Kamlesh Gurudasani To: Rob Herring , Sam Ravnborg , Noralf Tronnes Cc: devicetree@vger.kernel.org, dri-devel@lists.freedesktop.org, Kamlesh Gurudasani Subject: [PATCH v5 2/2] drm/tiny: add support for tft displays based on ilitek, ili9486 Date: Sun, 9 Feb 2020 23:36:41 +0530 Message-Id: X-Mailer: git-send-email 2.7.4 In-Reply-To: References: Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org This adds support fot ilitek,ili9486 based displays with shift register in front of controller. Ozzmaker,Piscreen and Waveshare,rpi-lcd-35 are such displays. Acked-by: Sam Ravnborg (v4) Reviewed-by: Noralf Tronnes (v4) Signed-off-by: Kamlesh Gurudasani --- v2 changes: * assignment of dbi_command before registration * made dc and reset gpio compulsory * typos and unwanted comments removed * changed the name of function which were display specific * arranged the Makefile entries in alphabetical order v3 changes: * no changes v4 changes: * no changes v5 changes: * replaced tinydrm with tiny in subject * added Rb tag (Noralf) and Ab tag (Sam) --- MAINTAINERS | 7 + drivers/gpu/drm/tiny/Kconfig | 14 ++ drivers/gpu/drm/tiny/Makefile | 1 + drivers/gpu/drm/tiny/ili9486.c | 283 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 305 insertions(+) create mode 100644 drivers/gpu/drm/tiny/ili9486.c diff --git a/MAINTAINERS b/MAINTAINERS index 1196d07..af189ef 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -5233,6 +5233,13 @@ S: Maintained F: drivers/gpu/drm/tiny/ili9225.c F: Documentation/devicetree/bindings/display/ilitek,ili9225.txt +DRM DRIVER FOR ILITEK ILI9486 PANELS +M: Kamlesh Gurudasani +T: git git://anongit.freedesktop.org/drm/drm-misc +S: Maintained +F: drivers/gpu/drm/tiny/ili9486.c +F: Documentation/devicetree/bindings/display/ilitek,ili9486.yaml + DRM DRIVER FOR HX8357D PANELS M: Eric Anholt T: git git://anongit.freedesktop.org/drm/drm-misc diff --git a/drivers/gpu/drm/tiny/Kconfig b/drivers/gpu/drm/tiny/Kconfig index a866421..4160e74 100644 --- a/drivers/gpu/drm/tiny/Kconfig +++ b/drivers/gpu/drm/tiny/Kconfig @@ -47,6 +47,20 @@ config TINYDRM_ILI9341 If M is selected the module will be called ili9341. +config TINYDRM_ILI9486 + tristate "DRM support for ILI9486 display panels" + depends on DRM && SPI + select DRM_KMS_HELPER + select DRM_KMS_CMA_HELPER + select DRM_MIPI_DBI + select BACKLIGHT_CLASS_DEVICE + help + DRM driver for the following Ilitek ILI9486 panels: + * PISCREEN 3.5" 320x480 TFT (Ozzmaker 3.5") + * RPILCD 3.5" 320x480 TFT (Waveshare 3.5") + + If M is selected the module will be called ili9486. + config TINYDRM_MI0283QT tristate "DRM support for MI0283QT" depends on DRM && SPI diff --git a/drivers/gpu/drm/tiny/Makefile b/drivers/gpu/drm/tiny/Makefile index 896cf31..c96ceee 100644 --- a/drivers/gpu/drm/tiny/Makefile +++ b/drivers/gpu/drm/tiny/Makefile @@ -4,6 +4,7 @@ obj-$(CONFIG_DRM_GM12U320) += gm12u320.o obj-$(CONFIG_TINYDRM_HX8357D) += hx8357d.o obj-$(CONFIG_TINYDRM_ILI9225) += ili9225.o obj-$(CONFIG_TINYDRM_ILI9341) += ili9341.o +obj-$(CONFIG_TINYDRM_ILI9486) += ili9486.o obj-$(CONFIG_TINYDRM_MI0283QT) += mi0283qt.o obj-$(CONFIG_TINYDRM_REPAPER) += repaper.o obj-$(CONFIG_TINYDRM_ST7586) += st7586.o diff --git a/drivers/gpu/drm/tiny/ili9486.c b/drivers/gpu/drm/tiny/ili9486.c new file mode 100644 index 0000000..e960b16 --- /dev/null +++ b/drivers/gpu/drm/tiny/ili9486.c @@ -0,0 +1,283 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * DRM driver for Ilitek ILI9486 panels + * + * Copyright 2020 Kamlesh Gurudasani + */ + +#include +#include +#include +#include +#include +#include +#include