Received: by 2002:ac0:98c7:0:0:0:0:0 with SMTP id g7-v6csp1277096imd; Thu, 1 Nov 2018 13:03:54 -0700 (PDT) X-Google-Smtp-Source: AJdET5c2PHC4P/lh4fYjJ9iERNv4hKhcXOdrCKA4dNfw/ymJ+flRXuGkV4MqqQ1XRY7G3DOf1FwS X-Received: by 2002:a17:902:45a5:: with SMTP id n34-v6mr9055144pld.341.1541102634461; Thu, 01 Nov 2018 13:03:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1541102634; cv=none; d=google.com; s=arc-20160816; b=V1meW053/X3T9Q5LIDluWk7ztf0oekvF8tn1U/HFaA4frdEiFO7ciCaHnTq+8FJqfr Zf0Gy4ZXnDUpqjLh1rzyTnkCHGONY+F1SwqxIyqgPRHZsqBpRH/wM7aiJa/OsuXEPjY6 XcfBC/G1D4cTYP/4pEQfFFHmLtVxlHoBhO8WzjRfABK3z0NGbB/LY67abeaVjeM4mfk8 3n5ni0rDfCd4UanVHYphYmjbXh+BSOE9kBme1cbEN9WXZCR4gD/Sd3+SoTkRalgwdfGd erekoxVc1MPgKi1H3IRFWA8hDY9lSvoMiKAJQdr+/uJmdyWAHz/3csHBGwKAVqwyVtV+ 0vVw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=4b3OH//ZjmAPdbj16dWpiKmoyFwpeoXSiQvLf6WF7fY=; b=IF34KsLn0AXmU+gbvMPiWEOh1v0IXkN4C8xaJN94dcmGbhsH20ljmuXMaCk6Dj/ej8 jsIWkQPtXFSWZCZaE1JJw1x6pmXKfVstdbFkLpm6QY6pGOdo4YLk6Uade9e3jRdugxQO jLi4QdZ9AUg+Lm/Gc4IDyTfdqax0IC7s49z3RlUtNJ/qLpcAKtOjasmo1nIaAs8tgLnG x5HeHKiv3NeAa73/0HPrVRKmKDz8asvxzBnx7Y49qOomWFNxVe7RoFZVo4Z4L3SqMgU6 imWZ6X4l8IFcT1C5CLSXM5b2Tno9A1JiTvMUleOyMPgitp1vwqzTRqT4YBJx/C2Ul6tb 3mqw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-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 y15-v6si22741249pfl.255.2018.11.01.13.03.40; Thu, 01 Nov 2018 13:03:54 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-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 linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727828AbeKBFF5 (ORCPT + 99 others); Fri, 2 Nov 2018 01:05:57 -0400 Received: from leonov.paulk.fr ([185.233.101.22]:45940 "EHLO leonov.paulk.fr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726766AbeKBFF5 (ORCPT ); Fri, 2 Nov 2018 01:05:57 -0400 Received: from gagarine.paulk.fr (gagarine [192.168.1.127]) by leonov.paulk.fr (Postfix) with ESMTPS id DFAE7BFDEA; Thu, 1 Nov 2018 21:01:30 +0100 (CET) Received: by gagarine.paulk.fr (Postfix, from userid 114) id 74361C106F; Thu, 1 Nov 2018 21:01:30 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on gagarine.paulk.fr X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable autolearn_force=no version=3.4.1 Received: from localhost.localdomain (collins [192.168.1.129]) by gagarine.paulk.fr (Postfix) with ESMTP id 35D89C1057; Thu, 1 Nov 2018 21:00:34 +0100 (CET) From: Paul Kocialkowski To: dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: Thierry Reding , David Airlie , Rob Herring , Mark Rutland , Maxime Ripard , Chen-Yu Tsai , linux-sunxi@googlegroups.com, Paul Kocialkowski Subject: [PATCH v2 2/7] drm/sun4i: tcon: Support an active-low DE signal with RGB interface Date: Thu, 1 Nov 2018 21:00:40 +0100 Message-Id: <20181101200045.6078-3-contact@paulk.fr> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181101200045.6078-1-contact@paulk.fr> References: <20181101200045.6078-1-contact@paulk.fr> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Some panels need an active-low data enable (DE) signal for the RGB interface. This requires flipping a bit in the TCON0 polarity register when setting up the mode for the RGB interface. Match the associated bus flag and use it to set the polarity inversion bit for the DE signal when required. Signed-off-by: Paul Kocialkowski --- drivers/gpu/drm/sun4i/sun4i_tcon.c | 7 ++++++- drivers/gpu/drm/sun4i/sun4i_tcon.h | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.c b/drivers/gpu/drm/sun4i/sun4i_tcon.c index 262ffb6b0f82..0420f5c978b9 100644 --- a/drivers/gpu/drm/sun4i/sun4i_tcon.c +++ b/drivers/gpu/drm/sun4i/sun4i_tcon.c @@ -543,6 +543,9 @@ static void sun4i_tcon0_mode_set_rgb(struct sun4i_tcon *tcon, if (mode->flags & DRM_MODE_FLAG_PVSYNC) val |= SUN4I_TCON0_IO_POL_VSYNC_POSITIVE; + if (display_info.bus_flags & DRM_BUS_FLAG_DE_LOW) + val |= SUN4I_TCON0_IO_POL_DE_NEGATIVE; + /* * On A20 and similar SoCs, the only way to achieve Positive Edge * (Rising Edge), is setting dclk clock phase to 2/3(240°). @@ -565,7 +568,9 @@ static void sun4i_tcon0_mode_set_rgb(struct sun4i_tcon *tcon, clk_set_phase(tcon->dclk, 0); regmap_update_bits(tcon->regs, SUN4I_TCON0_IO_POL_REG, - SUN4I_TCON0_IO_POL_HSYNC_POSITIVE | SUN4I_TCON0_IO_POL_VSYNC_POSITIVE, + SUN4I_TCON0_IO_POL_HSYNC_POSITIVE | + SUN4I_TCON0_IO_POL_VSYNC_POSITIVE | + SUN4I_TCON0_IO_POL_DE_NEGATIVE, val); /* Map output pins to channel 0 */ diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.h b/drivers/gpu/drm/sun4i/sun4i_tcon.h index 3d492c8be1fc..b5214d71610f 100644 --- a/drivers/gpu/drm/sun4i/sun4i_tcon.h +++ b/drivers/gpu/drm/sun4i/sun4i_tcon.h @@ -116,6 +116,7 @@ #define SUN4I_TCON0_IO_POL_REG 0x88 #define SUN4I_TCON0_IO_POL_DCLK_PHASE(phase) ((phase & 3) << 28) +#define SUN4I_TCON0_IO_POL_DE_NEGATIVE BIT(27) #define SUN4I_TCON0_IO_POL_HSYNC_POSITIVE BIT(25) #define SUN4I_TCON0_IO_POL_VSYNC_POSITIVE BIT(24) -- 2.19.1