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=-10.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,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 30616C64E8A for ; Mon, 30 Nov 2020 06:26:13 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id C745B20643 for ; Mon, 30 Nov 2020 06:26:12 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="sGT3jHR1" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727100AbgK3GZt (ORCPT ); Mon, 30 Nov 2020 01:25:49 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57258 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726011AbgK3GZs (ORCPT ); Mon, 30 Nov 2020 01:25:48 -0500 Received: from mail-wm1-x344.google.com (mail-wm1-x344.google.com [IPv6:2a00:1450:4864:20::344]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 02DE4C0613CF for ; Sun, 29 Nov 2020 22:25:01 -0800 (PST) Received: by mail-wm1-x344.google.com with SMTP id f190so19693232wme.1 for ; Sun, 29 Nov 2020 22:25:01 -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; bh=DOwVj8Qr1jJUzo42Jge6HKQMp0YWtvTLoJKMGFVjtXM=; b=sGT3jHR1Lpg6J/cscTV6SprEJMQO/IQgZ6rgCJR2LbVrnH2XZA1hMJEecrj+JsOFoO T4W8ZwSBJumN/XLD7ZZ7Bi7haUaM1ufCGLYiA4JkYsoG2kzbRxJ3t96e5rolDjy9NR3p HD15p8aYXegZTKV6Nb9OOd93RDaRuuKCvFqR/CnqTUDTVLoUbvXh098ay17ra8i+KS05 ZNeoYCkduElKgFBAKDYzSpzRTl1judAXyVUfaP6TxuykryYh06W7bu/s4gnmlvI4/XFV PpY+MnieDmpAwDIRQz2v1QpiztAouzIKA6N9Jc8n04PQpJlPe0PaOpAtogOA48tTZk3V mDTQ== 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; bh=DOwVj8Qr1jJUzo42Jge6HKQMp0YWtvTLoJKMGFVjtXM=; b=C0/ItjE3J1WgxY/iwnnpwcvwJZk/vmulKJPTByndRhyFD17pZAr38LF+6SalKGx1fa X56AqR4EA234T8kx34p7lhS9/b9mlR2ebsBPcXy0om0oPNAspa9MWsl3KAArsauJNwwf 0/JQ87IPD/LJGY7HbwZ3rd8UME/3kQUytukZca57XynnDGnX6VBe4VFmLhUt86JaHQiX YFFQT9wr3k1pHIKy+zBkkvyVLqHUqp9iRF5G3JFKmZTS9XfQi7yPbnmm//vMBiicQVvr kyP1837zQJiEaxazImVAsBQAs1XBsKn52GDhbGUIoqtq39iXp/9psNJqMgz0HqbS3hQD /HDg== X-Gm-Message-State: AOAM532DCUac0AxllzqidbCwNXXEtoJ7W2XrObF2DVBQ89753y2qerdj oCXNW8Jb4h7WPmGLQHY0t1JaCXBm4ZE9iQ== X-Google-Smtp-Source: ABdhPJyUTBklttSIadpw/0QiG8ulLfCer6rgpQXN891ZfFXsr+JmFBYLepRAb53ADNI+CTBgyQRySA== X-Received: by 2002:a05:600c:2:: with SMTP id g2mr21355073wmc.156.1606717500432; Sun, 29 Nov 2020 22:25:00 -0800 (PST) Received: from rum-mikhail-dt.world.mentorg.com (nat-rum.mentorg.com. [139.181.33.34]) by smtp.gmail.com with ESMTPSA id u129sm22594649wme.9.2020.11.29.22.24.58 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 29 Nov 2020 22:24:59 -0800 (PST) From: mdurnev@gmail.com X-Google-Original-From: mikhail_durnev@mentor.com To: linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, noralf@tronnes.org Cc: mikhail_durnev@mentor.com Subject: [PATCH v1 0/3] drm/mipi-dbi: Type B bus support, drm/tiny: MRB2801 Date: Mon, 30 Nov 2020 16:23:56 +1000 Message-Id: <1606717439-18383-1-git-send-email-mikhail_durnev@mentor.com> X-Mailer: git-send-email 2.7.4 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Mikhail Durnev Hi All, This patch series is aiming at extending the mipi-dbi bus driver to support Intel 8080 type parallel bus (Type B) over GPIO and adding a new driver for ILI9341 display panels with 8- or 16-bit parallel interface. It was tested with the MRB2801 display module [1] that had a connector compatible with the ALIENTEK STM32 development board. The module was connected to Raspberry Pi 3 via GPIO pins. The parallel bus is implemented partially. It supports only write operations from the host to the display. Read operations would require switching GPIO mode between input and output back and forth. But this implementation is very simple, and GPIO mode can be set for all used pins to output once at initialization. The RD pin of the display has to always receive the logic high signal to make sure the data bus pins from the dislay side are always in the high impedance state. Otherwise the display module as well as the GPIO controller of the host can be damaged. To be on the safe side I recommend using protective resistors for all GPIO pins conneced to DB pins of the display. Resistors of 10 kOhms are just fine for RPi 3. The WR and DC pins may not work well with 10K resistors. Although there is no need to protect them, you can try using 1K resistors if you want. Bit banging is used to transmit data over the parallel bus from host to display. There are two numbers that contol timings. They should be defined in the device tree via the wr-up-down-delays property. The first number is related to the write control pulse duration, and the second number is related to the write cycle duration. For ILI9341, the write pulse cannot be shorter than 15 ns, and the write duration cannot be shorter than 66 ns. Delays of 10 and 51 ns respectively allow to meet the specifications on RPi 3. Faster machines may need values closer to 15 and 66. [1] http://www.lcdwiki.com/2.8inch_16BIT_Module_ILI9341_SKU:MRB2801 Mikhail Durnev (3): drm/mipi-dbi: Add support for Type B drm/tiny: Add driver for ili9341 with parallel bus dt-bindings: panel: Add bindings for MRB2801 .../devicetree/bindings/display/ronbo,mrb2801.txt | 42 +++ drivers/gpu/drm/drm_mipi_dbi.c | 116 ++++++++- drivers/gpu/drm/tiny/Kconfig | 13 + drivers/gpu/drm/tiny/Makefile | 1 + drivers/gpu/drm/tiny/ili9341_gpio.c | 290 +++++++++++++++++++++ include/drm/drm_mipi_dbi.h | 30 ++- 6 files changed, 490 insertions(+), 2 deletions(-) create mode 100644 Documentation/devicetree/bindings/display/ronbo,mrb2801.txt create mode 100644 drivers/gpu/drm/tiny/ili9341_gpio.c -- 2.7.4