From patchwork Wed Dec 18 00:44:56 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Emilio_L=C3=B3pez?= X-Patchwork-Id: 302586 Return-Path: X-Original-To: incoming-imx@patchwork.ozlabs.org Delivered-To: patchwork-incoming-imx@bilbo.ozlabs.org Received: from casper.infradead.org (unknown [IPv6:2001:770:15f::2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 276882C0096 for ; Wed, 18 Dec 2013 11:49:54 +1100 (EST) Received: from merlin.infradead.org ([2001:4978:20e::2]) by casper.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1Vt5Ii-00063B-6h; Wed, 18 Dec 2013 00:47:50 +0000 Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1Vt5ID-0007wj-GY; Wed, 18 Dec 2013 00:47:17 +0000 Received: from yotta.elopez.com.ar ([2a00:1768:1004:d00d:c0de:4:f00d:cafe]) by merlin.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1Vt5Hc-0007qE-6D for linux-arm-kernel@lists.infradead.org; Wed, 18 Dec 2013 00:46:41 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=elopez.com.ar; s=mail; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From; bh=/4MJnNvSBOcT6XpkEPC6LhCc0qHgYzwaIUVvesg2J74=; b=B6d+Nz+0dpqZ/PGFFQPNSpVb9bf+/WW5g/Fq2oHqobvD9/FRNxiCnmdWcJlmyk1MqNl554xaIStp+eDnhSA4V9a8iePwnwP1OPN0HxKSmfEDCi7bZCK/BTzmK4HI9Btnr3VQrc6q2tKeKvLgNLxrsZ1BbH9imVmSvCDyXNyyV7x1EWxpoXkI2Ap6AG8knxKtjXMF0HtdAnlsIbudJFj8R1oCaiN+l7WQzpGf5etOqfuCZBFar+tEp224o/qMdbZMVmFKHeyFx6hXN9TzVwYavND2EpMOvGSc2KdtDqLHVuUGoIdGqJV/TfsF5bm9NBc/YnX5qTlLfNC14E7yDnznug==; Received: from [181.164.111.231] (helo=desktop.lan) by yotta.elopez.com.ar with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA256:128) (Exim 4.82) id 1Vt5HF-0002mF-Rb; Tue, 17 Dec 2013 21:46:18 -0300 From: =?UTF-8?q?Emilio=20L=C3=B3pez?= To: Mike Turquette , Maxime Ripard Subject: [PATCH v2 04/11] clk: sunxi: make factors_clk_setup return the clock it registers Date: Tue, 17 Dec 2013 21:44:56 -0300 Message-Id: <1387327503-15651-5-git-send-email-emilio@elopez.com.ar> X-Mailer: git-send-email 1.8.5.1 In-Reply-To: <1387327503-15651-1-git-send-email-emilio@elopez.com.ar> References: <1387327503-15651-1-git-send-email-emilio@elopez.com.ar> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20131217_194640_466434_B95CBD19 X-CRM114-Status: GOOD ( 12.04 ) X-Spam-Score: -2.5 (--) X-Spam-Report: SpamAssassin version 3.3.2 on merlin.infradead.org summary: Content analysis details: (-2.5 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record -0.5 RP_MATCHES_RCVD Envelope sender domain matches handover relay domain -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature Cc: =?UTF-8?q?Emilio=20L=C3=B3pez?= , linux-arm-kernel@lists.infradead.org X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.15 Precedence: list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org List-Id: linux-imx-kernel.lists.patchwork.ozlabs.org We will be needing this to register a factor clock as parent with leaf divisors on a single call. While at it, also prepare the function to set the ignore flag on pll5, so our RAM keeps working. Signed-off-by: Emilio López --- drivers/clk/sunxi/clk-sunxi.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/drivers/clk/sunxi/clk-sunxi.c b/drivers/clk/sunxi/clk-sunxi.c index 5b86234..401169b 100644 --- a/drivers/clk/sunxi/clk-sunxi.c +++ b/drivers/clk/sunxi/clk-sunxi.c @@ -308,8 +308,8 @@ static const struct factors_data sun4i_apb1_data __initconst = { .getter = sun4i_get_apb1_factors, }; -static void __init sunxi_factors_clk_setup(struct device_node *node, - struct factors_data *data) +static struct clk * __init sunxi_factors_clk_setup(struct device_node *node, + const struct factors_data *data) { struct clk *clk; struct clk_factors *factors; @@ -320,6 +320,7 @@ static void __init sunxi_factors_clk_setup(struct device_node *node, const char *clk_name = node->name; const char *parents[5]; void *reg; + unsigned long flags; int i = 0; reg = of_iomap(node, 0); @@ -330,14 +331,14 @@ static void __init sunxi_factors_clk_setup(struct device_node *node, factors = kzalloc(sizeof(struct clk_factors), GFP_KERNEL); if (!factors) - return; + return NULL; /* Add a gate if this factor clock can be gated */ if (data->enable) { gate = kzalloc(sizeof(struct clk_gate), GFP_KERNEL); if (!gate) { kfree(factors); - return; + return NULL; } /* set up gate properties */ @@ -353,7 +354,7 @@ static void __init sunxi_factors_clk_setup(struct device_node *node, if (!mux) { kfree(factors); kfree(gate); - return; + return NULL; } /* set up gate properties */ @@ -370,17 +371,21 @@ static void __init sunxi_factors_clk_setup(struct device_node *node, factors->get_factors = data->getter; factors->lock = &clk_lock; + /* We should not disable pll5, it powers the RAM */ + flags = !strcmp("pll5", clk_name) ? CLK_IGNORE_UNUSED : 0; + clk = clk_register_composite(NULL, clk_name, parents, i, mux_hw, &clk_mux_ops, &factors->hw, &clk_factors_ops, - gate_hw, &clk_gate_ops, - i ? 0 : CLK_IS_ROOT); + gate_hw, &clk_gate_ops, flags); if (!IS_ERR(clk)) { of_clk_add_provider(node, of_clk_src_simple_get, clk); clk_register_clkdev(clk, clk_name, NULL); } + + return clk; }