From patchwork Thu Dec 21 11:02:26 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Maxime Ripard X-Patchwork-Id: 122525 Delivered-To: patch@linaro.org Received: by 10.140.22.227 with SMTP id 90csp724654qgn; Thu, 21 Dec 2017 03:02:56 -0800 (PST) X-Google-Smtp-Source: ACJfBov5GajSBVJ2pxpMlYfsnNKzKTADuE0pA1Pi/xWltSCz3GIGXAEvXOaFL5sUqRw7pMfVvHL/ X-Received: by 10.98.33.203 with SMTP id o72mr10000864pfj.163.1513854176521; Thu, 21 Dec 2017 03:02:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1513854176; cv=none; d=google.com; s=arc-20160816; b=PRQo4dHHdwXnE4Z8MZ8MpnvmsxJC1ohZcKUucXrdBIZpU17adZMQWS6yXElsO2WJTL lzxhmKZXOiTtgXaD7KWMHh1Oh7vG9gRKfIUgw35z97KV0flE9ZndYKn9cDmxgmlqytUw 7M/lrrTme5LOg3KX0p83UyznDENznVRQDw0hIkUvSCgroL/X39rg+mLLD4VYxa/xVdxB xCnrDCan4jLEBlY/z9XgrxuGN7buOyIFdHCB6F7GcJAkSorsPAKGeGNTu9g7us3TpZzv yVDCV06BnQZ0yNSglZCxe/9GPmqz6M9ROLw+SLABeKl9wpfZ3uaI8iwi+tFzJ5dhsCI6 EbMg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :arc-authentication-results; bh=guaY3Z3ppYsqz2BPJoiIqCG3osoh7OnD0Rwv0rfiJbo=; b=MzaoycT0XC8U28tqX+S9ps1hWuSge/2g1wLa3KYl3l8b0jH8FmMlQMXMk5878FLpVW sez2kHWSwV/nNQ6blWdXD7WOwen+oLCeyKW9UwvVCezojaZW2EykPguxpjOWZkGBlNA8 Y+rZKy6llFAyJjb55g3jEfWMS1s+KoevqJgrUJiJWNewJ6caP6Zowqk/XCjE8tI3cmHY e2e8IQqsLinPiwEYax947uwItgZR7VGtEo10eq7vyOB8CB0OvUNpwSqI54XQTpAQgCZU OeLEzwzSEKpYc0k8s+bOg+4WXUWd2APkGSaByo/pcnsrI2ij5X4FFeClWwEXJFvisPBf KxDQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of devicetree-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=devicetree-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id o13si13414400pgq.475.2017.12.21.03.02.56; Thu, 21 Dec 2017 03:02:56 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of devicetree-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of devicetree-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=devicetree-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751563AbdLULCz (ORCPT + 6 others); Thu, 21 Dec 2017 06:02:55 -0500 Received: from mail.free-electrons.com ([62.4.15.54]:49374 "EHLO mail.free-electrons.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750884AbdLULCy (ORCPT ); Thu, 21 Dec 2017 06:02:54 -0500 Received: by mail.free-electrons.com (Postfix, from userid 110) id 5298120964; Thu, 21 Dec 2017 12:02:52 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on mail.free-electrons.com X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED,SHORTCIRCUIT shortcircuit=ham autolearn=disabled version=3.4.0 Received: from localhost (LStLambert-657-1-97-87.w90-63.abo.wanadoo.fr [90.63.216.87]) by mail.free-electrons.com (Postfix) with ESMTPSA id 2341B20376; Thu, 21 Dec 2017 12:02:42 +0100 (CET) From: Maxime Ripard To: Daniel Vetter , David Airlie , Chen-Yu Tsai , Maxime Ripard Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Mark Rutland , Rob Herring , linux-arm-kernel@lists.infradead.org, plaes@plaes.org, icenowy@aosc.io, Thomas Petazzoni , jernej.skrabec@siol.net, devicetree@vger.kernel.org, thierry.reding@gmail.com, Laurent Pinchart Subject: [PATCH v5 00/12] drm/sun4i: Add A83t LVDS support Date: Thu, 21 Dec 2017 12:02:26 +0100 Message-Id: X-Mailer: git-send-email 2.14.3 Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Hi, Here is an attempt at supporting the LVDS output in our DRM driver. This has been tested on the A83T (with DE2), but since everything is basically in the TCON, it should also be usable on the older SoCs with minor modifications. This was the occasion to refactor a bunch of things. The most notable ones would be the documentation, and split of the UI layers in the mixer code, and the switch to kfifo for our endpoint parsing code in the driver that fixes an issue introduced by the switch to BFS. Let me know what you think, Maxime Changes from v4: - Changed the order of the clk_prepare_enable and clk_set_rate for the mixer module clock - Squash the two DT PWM patches - Removed the output pins muxing - Changed the flag to tell if you have an LVDS alternate clock to has_lvds_alt - Used SPDX headers Changes from v3: - Collect the tags - Use SPDX headers when possible - Added the new mixer configuration options - Changed the LVDS clock for lvds-alt instead of lvds-pll - Removed the MIPI PLL from the A31s - Changed the LVDS_ANA0 macros name to reflect the generation they were introduced in, and added a comment to mention the changes needed to support the older SoCs Changes from v2: - Move the module clock rate to the mixer structure - Adjusted the simple-panel documentation for power-supply - Changed the compatible for the first A83t mixer to mixer 0 - Rebased on top of current drm-misc - Split out the A83t bindings in its separate patch Changes from v1: - Added a fix for the error path handling in the TCON - Enable the TCON by default - Removed the patch that changes the channels offset but kept most of the modifications as a cleanup - Deal with the LVDS clock being able to have another PLL parent on some SoCs - Renamed the TCON compatible to TCON-TV, following the convention used on newer SoCs - Removed the hardcoded timings - Moved LVDS enable quirks to a separate function - Used clock indices define in the DT - Removed the hardcoded clock rate in the DT and moved it to the driver - Changed sun8i_mixer_planes to sun8i_mixer_ui_planes to be consistent - Added the various tags collected - Rebased on top of 4.15 Maxime Ripard (12): dt-bindings: panel: lvds: Document power-supply property drm/panel: lvds: Add support for the power-supply property dt-bindings: display: sun4i-drm: Add LVDS properties dt-bindings: display: sun4i-drm: Add A83T pipeline drm/sun4i: Force the mixer rate at 150MHz drm/sun4i: Create minimal multipliers and dividers drm/sun4i: Add LVDS support drm/sun4i: Add A83T support ARM: dts: sun8i: a83t: Add display pipeline ARM: dts: sun8i: a83t: Enable the PWM ARM: dts: sun8i: a83t: Add LVDS pins group ARM: dts: sun8i: a711: Enable the LCD Documentation/devicetree/bindings/display/panel/panel-common.txt | 6 ++- Documentation/devicetree/bindings/display/panel/panel-lvds.txt | 1 +- Documentation/devicetree/bindings/display/panel/simple-panel.txt | 2 +- Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt | 12 ++++- arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts | 61 ++++++++++++++++++- arch/arm/boot/dts/sun8i-a83t.dtsi | 99 +++++++++++++++++++++++++++++- drivers/gpu/drm/panel/panel-lvds.c | 23 +++++++- drivers/gpu/drm/sun4i/Makefile | 1 +- drivers/gpu/drm/sun4i/sun4i_dotclock.c | 10 ++- drivers/gpu/drm/sun4i/sun4i_drv.c | 1 +- drivers/gpu/drm/sun4i/sun4i_lvds.c | 177 ++++++++++++++++++++++++++++++++++++++++++++++++++++- drivers/gpu/drm/sun4i/sun4i_lvds.h | 12 ++++- drivers/gpu/drm/sun4i/sun4i_tcon.c | 244 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- drivers/gpu/drm/sun4i/sun4i_tcon.h | 31 +++++++++- drivers/gpu/drm/sun4i/sun8i_mixer.c | 21 ++++++- drivers/gpu/drm/sun4i/sun8i_mixer.h | 3 +- 16 files changed, 699 insertions(+), 5 deletions(-) create mode 100644 drivers/gpu/drm/sun4i/sun4i_lvds.c create mode 100644 drivers/gpu/drm/sun4i/sun4i_lvds.h base-commit: 99239c7ba0214ec99011378a6ca1bcd589c3dc98 -- git-series 0.9.1 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Acked-by: Laurent Pinchart