From patchwork Tue Aug 8 18:24:11 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Abhishek Sahu X-Patchwork-Id: 9888891 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 0E7C560363 for ; Tue, 8 Aug 2017 18:25:01 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id F276E28900 for ; Tue, 8 Aug 2017 18:25:00 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E67BD289F1; Tue, 8 Aug 2017 18:25:00 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7B02928900 for ; Tue, 8 Aug 2017 18:25:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752568AbdHHSY7 (ORCPT ); Tue, 8 Aug 2017 14:24:59 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:37234 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752516AbdHHSYv (ORCPT ); Tue, 8 Aug 2017 14:24:51 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id AAE9660588; Tue, 8 Aug 2017 18:24:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1502216690; bh=ziPiHxBYdxPgNcPnfG2AHiZkecRitP0dullfzx/U0EU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SePVTi1TpIlQQYlbcyURA6xCib8nfd5TYUtn53rvj5j23+B3CYijvgdC+P+ayf87X M5JnLgeF13gxifIsarQmupff9DQMcb+ONy3jKgBN7Lf/zBFIgQShsFg3XCyZ66ryOx 2T+wbi6JRXhEo7lQiieKoUrMWfeW5rNN6LCisAco= Received: from absahu-linux.qualcomm.com (blr-c-bdr-fw-01_globalnat_allzones-outside.qualcomm.com [103.229.19.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: absahu@smtp.codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id 839C6600EC; Tue, 8 Aug 2017 18:24:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1502216689; bh=ziPiHxBYdxPgNcPnfG2AHiZkecRitP0dullfzx/U0EU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=B+rRowzjOSmTcjvJzazM2XIPE2zzGAxDDbH6bsoc5N9B4HjSqxzC9cdbpBy7lq1lh agVPKmHiWE75Qeg6ciSUlaLct2iqp8WLU4lUxhNrgOY9/+WXPZgk5gcYYi3hIuhrlC Pjz+fn0Wqwl7+mhep8ZhIE2meV+KGbdfnLi5Bnxo= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 839C6600EC Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=absahu@codeaurora.org From: Abhishek Sahu To: sboyd@codeaurora.org, mturquette@baylibre.com Cc: andy.gross@linaro.org, david.brown@linaro.org, rnayak@codeaurora.org, linux-arm-msm@vger.kernel.org, linux-soc@vger.kernel.org, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, Abhishek Sahu Subject: [RFC v2 06/12] clk: qcom: add flag for VCO operation Date: Tue, 8 Aug 2017 23:54:11 +0530 Message-Id: <1502216657-3342-7-git-send-email-absahu@codeaurora.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1502216657-3342-1-git-send-email-absahu@codeaurora.org> References: <1502216657-3342-1-git-send-email-absahu@codeaurora.org> MIME-Version: 1.0 Sender: linux-clk-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-clk@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Some of the Alpha PLL’s does not have VCO configuration so this patch adds the flag and does not perform VCO operation if this flag is set. Signed-off-by: Abhishek Sahu --- drivers/clk/qcom/clk-alpha-pll.c | 19 +++++++++++-------- drivers/clk/qcom/clk-alpha-pll.h | 1 + 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/drivers/clk/qcom/clk-alpha-pll.c b/drivers/clk/qcom/clk-alpha-pll.c index 1f37bf8a..c368e7c 100644 --- a/drivers/clk/qcom/clk-alpha-pll.c +++ b/drivers/clk/qcom/clk-alpha-pll.c @@ -467,10 +467,12 @@ static int clk_alpha_pll_set_rate(struct clk_hw *hw, unsigned long rate, u64 a; rate = alpha_pll_round_rate(rate, prate, &l, &a, alpha_width); - vco = alpha_pll_find_vco(pll, rate); - if (!vco) { - pr_err("alpha pll not in a valid vco range\n"); - return -EINVAL; + if (!(pll->flags & SUPPORTS_NO_VCO)) { + vco = alpha_pll_find_vco(pll, rate); + if (!vco) { + pr_err("alpha pll not in a valid vco range\n"); + return -EINVAL; + } } regmap_write(pll->clkr.regmap, pll_l(pll), l); @@ -483,9 +485,10 @@ static int clk_alpha_pll_set_rate(struct clk_hw *hw, unsigned long rate, regmap_write(pll->clkr.regmap, pll_alpha(pll), a); - regmap_update_bits(pll->clkr.regmap, pll_user_ctl(pll), - PLL_VCO_MASK << PLL_VCO_SHIFT, - vco->val << PLL_VCO_SHIFT); + if (!(pll->flags & SUPPORTS_NO_VCO)) + regmap_update_bits(pll->clkr.regmap, pll_user_ctl(pll), + PLL_VCO_MASK << PLL_VCO_SHIFT, + vco->val << PLL_VCO_SHIFT); regmap_update_bits(pll->clkr.regmap, pll_user_ctl(pll), PLL_ALPHA_EN, PLL_ALPHA_EN); @@ -505,7 +508,7 @@ static long clk_alpha_pll_round_rate(struct clk_hw *hw, unsigned long rate, unsigned long min_freq, max_freq; rate = alpha_pll_round_rate(rate, *prate, &l, &a, alpha_width); - if (alpha_pll_find_vco(pll, rate)) + if ((pll->flags & SUPPORTS_NO_VCO) || alpha_pll_find_vco(pll, rate)) return rate; min_freq = pll->vco_table[0].min_freq; diff --git a/drivers/clk/qcom/clk-alpha-pll.h b/drivers/clk/qcom/clk-alpha-pll.h index 8b27c05..973673b 100644 --- a/drivers/clk/qcom/clk-alpha-pll.h +++ b/drivers/clk/qcom/clk-alpha-pll.h @@ -55,6 +55,7 @@ struct clk_alpha_pll { #define SUPPORTS_FSM_MODE BIT(2) #define SUPPORTS_64BIT_CONFIG_CTL BIT(3) #define SUPPORTS_DYNAMIC_UPDATE BIT(4) +#define SUPPORTS_NO_VCO BIT(5) u8 flags; struct clk_regmap clkr;