Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp5777097imm; Tue, 12 Jun 2018 13:10:18 -0700 (PDT) X-Google-Smtp-Source: ADUXVKKSSaIPW+4a+S74WOWjSZV8baDajw7Nm2+bd2Ol+kFZKmstgaKiFBUZqts1Bybt1D7f8tgw X-Received: by 2002:a62:e70e:: with SMTP id s14-v6mr1861125pfh.131.1528834218170; Tue, 12 Jun 2018 13:10:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1528834218; cv=none; d=google.com; s=arc-20160816; b=Az36Slm/N5SCO0+HFPNY7sdsefb+yd2HmWFZwHTIK/om6BEGnKe169v0CXnRP0OfcJ i+3Un31EQzlWuLlFYVJM+HwRBn1yiEZm3vVSRqEWz1I8gVA0aT3p5Xvo9L8pc5ypo0lV mU398B3w2dnIHnXxXeZ4StsZ6afHa7MpVd/tIBNbmz1pPP3JHNgKkEhHNgGSSUECRb00 eaXUVZZsJ07Xjv/u6LTQTkGwRGNRyR2NZP4f1SCaf4REI0YtXcpDS0b+IjIFYy5XxCIT 6ZQoxUEW3AuqkaoF56SflChwOJtaCVeMFLhsPuxIscbk52z1Iyj3Pt67oDQXCklwjS6K GCkA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=tEWsQGWnAZw7uU6qo9XIyYaxoMbxXnsu627mGTf58QA=; b=rnG1BqNvjkVHevaLxJsE8G3seiqnepYCajB0SzyAGWX/Ll0QgFOpnetJAFgs+njhQt p44hhNwkz6BYABdHyaY770s8WkFl+Iodlnd8FW/RyNXbl9iYihUSUP3Rim1+TeI6pUuJ 22zy7bFf+bRAetzLhCDEyvyrAAZI4jSrG+0OUlX5eJVdSFLjGijDrwaDgzbw9tmUJ78+ Fc6yKkgObgPgpJ+a+9QUlI52Iu3fL9JqsXZ9s9wVEQVj8WKN9gyypFV0avwiJcBGOWyP 7/mIP7wut86uGO65gLEwm4/5VZlhZ6+Mjq9PTCLnOaB31jjEFpSJ7kT09wzVpvzZ6bv/ C7GA== 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 z16-v6si746326pfj.337.2018.06.12.13.10.03; Tue, 12 Jun 2018 13:10:18 -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 S934754AbeFLUH2 (ORCPT + 99 others); Tue, 12 Jun 2018 16:07:28 -0400 Received: from mailoutvs63.siol.net ([185.57.226.254]:38482 "EHLO mail.siol.net" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S934236AbeFLUCS (ORCPT ); Tue, 12 Jun 2018 16:02:18 -0400 Received: from localhost (localhost [127.0.0.1]) by mail.siol.net (Zimbra) with ESMTP id 51157521F5C; Tue, 12 Jun 2018 22:02:16 +0200 (CEST) X-Virus-Scanned: amavisd-new at psrvmta12.zcs-production.pri Received: from mail.siol.net ([127.0.0.1]) by localhost (psrvmta12.zcs-production.pri [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id 4YsOfnwjD-Qi; Tue, 12 Jun 2018 22:02:15 +0200 (CEST) Received: from mail.siol.net (localhost [127.0.0.1]) by mail.siol.net (Zimbra) with ESMTPS id C82D1521DC5; Tue, 12 Jun 2018 22:02:15 +0200 (CEST) Received: from localhost.localdomain (unknown [194.152.15.144]) (Authenticated sender: 031275009) by mail.siol.net (Zimbra) with ESMTPSA id 4EC07521ED2; Tue, 12 Jun 2018 22:02:13 +0200 (CEST) From: Jernej Skrabec To: maxime.ripard@bootlin.com, wens@csie.org, robh+dt@kernel.org Cc: airlied@linux.ie, gustavo@padovan.org, maarten.lankhorst@linux.intel.com, seanpaul@chromium.org, mark.rutland@arm.com, dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org, linux-sunxi@googlegroups.com Subject: [PATCH v2 11/27] drm/sun4i: tcon: Add support for tcon-top gate Date: Tue, 12 Jun 2018 22:00:20 +0200 Message-Id: <20180612200036.21483-12-jernej.skrabec@siol.net> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180612200036.21483-1-jernej.skrabec@siol.net> References: <20180612200036.21483-1-jernej.skrabec@siol.net> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org TV TCONs connected to TCON TOP have to enable additional gate in order to work. Add support for such TCONs. Signed-off-by: Jernej Skrabec --- drivers/gpu/drm/sun4i/sun4i_tcon.c | 11 +++++++++++ drivers/gpu/drm/sun4i/sun4i_tcon.h | 4 ++++ 2 files changed, 15 insertions(+) diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.c b/drivers/gpu/drm/sun4i/sun4i_tcon.c index 08747fc3ee71..0afb5a94a414 100644 --- a/drivers/gpu/drm/sun4i/sun4i_tcon.c +++ b/drivers/gpu/drm/sun4i/sun4i_tcon.c @@ -688,6 +688,16 @@ static int sun4i_tcon_init_clocks(struct device *dev, dev_err(dev, "Couldn't get the TCON bus clock\n"); return PTR_ERR(tcon->clk); } + + if (tcon->quirks->has_tcon_top_gate) { + tcon->top_clk = devm_clk_get(dev, "tcon-top"); + if (IS_ERR(tcon->top_clk)) { + dev_err(dev, "Couldn't get the TCON TOP bus clock\n"); + return PTR_ERR(tcon->top_clk); + } + clk_prepare_enable(tcon->top_clk); + } + clk_prepare_enable(tcon->clk); if (tcon->quirks->has_channel_0) { @@ -712,6 +722,7 @@ static int sun4i_tcon_init_clocks(struct device *dev, static void sun4i_tcon_free_clocks(struct sun4i_tcon *tcon) { clk_disable_unprepare(tcon->clk); + clk_disable_unprepare(tcon->top_clk); } static int sun4i_tcon_init_irq(struct device *dev, diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.h b/drivers/gpu/drm/sun4i/sun4i_tcon.h index f6a071cd5a6f..652d5c37d7b4 100644 --- a/drivers/gpu/drm/sun4i/sun4i_tcon.h +++ b/drivers/gpu/drm/sun4i/sun4i_tcon.h @@ -224,6 +224,7 @@ struct sun4i_tcon_quirks { bool needs_de_be_mux; /* sun6i needs mux to select backend */ bool needs_edp_reset; /* a80 edp reset needed for tcon0 access */ bool supports_lvds; /* Does the TCON support an LVDS output? */ + bool has_tcon_top_gate; /* TCON TOP holds additional gate to enable */ /* callback to handle tcon muxing options */ int (*set_mux)(struct sun4i_tcon *, const struct drm_encoder *); @@ -249,6 +250,9 @@ struct sun4i_tcon { u8 dclk_max_div; u8 dclk_min_div; + /* TCON TOP clock */ + struct clk *top_clk; + /* Reset control */ struct reset_control *lcd_rst; struct reset_control *lvds_rst; -- 2.17.1