From patchwork Wed Mar 18 13:32:09 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Georgi Djakov X-Patchwork-Id: 45943 Return-Path: X-Original-To: linaro@patches.linaro.org Delivered-To: linaro@patches.linaro.org Received: from mail-lb0-f198.google.com (mail-lb0-f198.google.com [209.85.217.198]) by ip-10-151-82-157.ec2.internal (Postfix) with ESMTPS id E0E1B2153C for ; Wed, 18 Mar 2015 13:32:18 +0000 (UTC) Received: by lbiz11 with SMTP id z11sf7372781lbi.2 for ; Wed, 18 Mar 2015 06:32:17 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:delivered-to:from:to:cc:subject :date:message-id:in-reply-to:references:sender:precedence:list-id :x-original-sender:x-original-authentication-results:mailing-list :list-post:list-help:list-archive:list-unsubscribe; bh=lIwSilDVJfZ7kH5PCY7HDGTxktnPMTgwNjfBIYIBhcc=; b=gjSEaRFSH3erJbzBqc5g6xCc2BYnYD3G/heStOTDBH3khGSIwqVKV3IBf2PpnYz3rd Uxtvr1n8f0InHMOsiRbT48d8kpv1YM17DWh+CW3i8vyJI2QJM23JQW1/58nc+SwTAb/x g5v4Ak/fnCd+hoGjTXve+dDArpSkkXxnqEVRvsgWT7HxOJHa/ECgI5oA3h1M4hWQHBOg RwYgEHeEPET5uMNA0a7XYf3FyKC+P+zdXu76BLBTGP3T9X0Xlx/3kELrLqeXUzHtcAM5 7fhsWHIltpdwif7TIbfVZQ77W9ssjUwaopqydkGuq6UhNoQuSMpCYIUf6kwk0ops23Xl /Dpw== X-Gm-Message-State: ALoCoQn/T01+xkTbp6pKLGYrY7vEvv/AIwQw1pAAfxury5xeHQTHBHCYwNCd0h5xPByQEysOcnKN X-Received: by 10.112.224.12 with SMTP id qy12mr10895072lbc.10.1426685537804; Wed, 18 Mar 2015 06:32:17 -0700 (PDT) MIME-Version: 1.0 X-BeenThere: patchwork-forward@linaro.org Received: by 10.153.7.75 with SMTP id da11ls147255lad.95.gmail; Wed, 18 Mar 2015 06:32:17 -0700 (PDT) X-Received: by 10.152.45.101 with SMTP id l5mr52882041lam.95.1426685537524; Wed, 18 Mar 2015 06:32:17 -0700 (PDT) Received: from mail-lb0-f171.google.com (mail-lb0-f171.google.com. [209.85.217.171]) by mx.google.com with ESMTPS id yt20si8683306lbb.89.2015.03.18.06.32.17 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 18 Mar 2015 06:32:17 -0700 (PDT) Received-SPF: pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.217.171 as permitted sender) client-ip=209.85.217.171; Received: by lbblx11 with SMTP id lx11so7433713lbb.3 for ; Wed, 18 Mar 2015 06:32:17 -0700 (PDT) X-Received: by 10.152.26.201 with SMTP id n9mr63642547lag.29.1426685537390; Wed, 18 Mar 2015 06:32:17 -0700 (PDT) X-Forwarded-To: patchwork-forward@linaro.org X-Forwarded-For: patch@linaro.org patchwork-forward@linaro.org Delivered-To: patch@linaro.org Received: by 10.112.35.133 with SMTP id h5csp1159100lbj; Wed, 18 Mar 2015 06:32:16 -0700 (PDT) X-Received: by 10.70.90.233 with SMTP id bz9mr82236763pdb.47.1426685534771; Wed, 18 Mar 2015 06:32:14 -0700 (PDT) Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f5si36097556pdh.174.2015.03.18.06.32.13; Wed, 18 Mar 2015 06:32:14 -0700 (PDT) Received-SPF: none (google.com: linux-kernel-owner@vger.kernel.org does not designate permitted sender hosts) client-ip=209.132.180.67; Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933179AbbCRNcK (ORCPT + 27 others); Wed, 18 Mar 2015 09:32:10 -0400 Received: from mail-we0-f178.google.com ([74.125.82.178]:33350 "EHLO mail-we0-f178.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933028AbbCRNcG (ORCPT ); Wed, 18 Mar 2015 09:32:06 -0400 Received: by weop45 with SMTP id p45so32462730weo.0 for ; Wed, 18 Mar 2015 06:32:05 -0700 (PDT) X-Received: by 10.180.96.197 with SMTP id du5mr7201973wib.68.1426685525162; Wed, 18 Mar 2015 06:32:05 -0700 (PDT) Received: from mms.wifi.mm-sol.com ([37.157.136.206]) by mx.google.com with ESMTPSA id cf12sm24531838wjb.10.2015.03.18.06.32.03 (version=TLSv1.1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 18 Mar 2015 06:32:04 -0700 (PDT) From: Georgi Djakov To: sboyd@codeaurora.org, mturquette@linaro.org Cc: galak@codeaurora.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org Subject: [PATCH v1 3/9] clk: qcom: Introduce parent_map tables Date: Wed, 18 Mar 2015 15:32:09 +0200 Message-Id: <1426685535-25071-4-git-send-email-georgi.djakov@linaro.org> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1426685535-25071-1-git-send-email-georgi.djakov@linaro.org> References: <1426685535-25071-1-git-send-email-georgi.djakov@linaro.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: list List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Removed-Original-Auth: Dkim didn't pass. X-Original-Sender: georgi.djakov@linaro.org X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.217.171 as permitted sender) smtp.mail=patch+caf_=patchwork-forward=linaro.org@linaro.org Mailing-list: list patchwork-forward@linaro.org; contact patchwork-forward+owners@linaro.org X-Google-Group-Id: 836684582541 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , Define a parent_map struct to describe the relations between PLL source index and register configuration value. Add a qcom_find_src_index() function for finding the index of a clock matching the specific PLL configuration Signed-off-by: Georgi Djakov --- drivers/clk/qcom/clk-rcg.h | 11 +++++++++++ drivers/clk/qcom/common.c | 17 +++++++++++++++++ drivers/clk/qcom/common.h | 2 ++ 3 files changed, 30 insertions(+) -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ diff --git a/drivers/clk/qcom/clk-rcg.h b/drivers/clk/qcom/clk-rcg.h index d09d06ba278e..6d94d5300e9e 100644 --- a/drivers/clk/qcom/clk-rcg.h +++ b/drivers/clk/qcom/clk-rcg.h @@ -26,6 +26,17 @@ struct freq_tbl { }; /** + * struct parent_map - map table for PLL source select configuration values + * + * @src: source PLL + * @cfg: configuration value + */ +struct parent_map { + u8 src; + u8 cfg; +}; + +/** * struct mn - M/N:D counter * @mnctr_en_bit: bit to enable mn counter * @mnctr_reset_bit: bit to assert mn counter reset diff --git a/drivers/clk/qcom/common.c b/drivers/clk/qcom/common.c index e20d947db3e5..a946b48f2d82 100644 --- a/drivers/clk/qcom/common.c +++ b/drivers/clk/qcom/common.c @@ -43,6 +43,23 @@ struct freq_tbl *qcom_find_freq(const struct freq_tbl *f, unsigned long rate) } EXPORT_SYMBOL_GPL(qcom_find_freq); +int qcom_find_src_index(const struct parent_map *map, u8 src) +{ + int i = 0; + + if (!map) + return -EINVAL; + + do { + if (src == map->src) + return i; + i++; + } while (map++); + + return -ENOENT; +} +EXPORT_SYMBOL_GPL(qcom_find_src_index); + struct regmap * qcom_cc_map(struct platform_device *pdev, const struct qcom_cc_desc *desc) { diff --git a/drivers/clk/qcom/common.h b/drivers/clk/qcom/common.h index f519322acdf3..b3d7e5716f5e 100644 --- a/drivers/clk/qcom/common.h +++ b/drivers/clk/qcom/common.h @@ -19,6 +19,7 @@ struct clk_regmap; struct qcom_reset_map; struct regmap; struct freq_tbl; +struct parent_map; struct qcom_cc_desc { const struct regmap_config *config; @@ -30,6 +31,7 @@ struct qcom_cc_desc { extern const struct freq_tbl *qcom_find_freq(const struct freq_tbl *f, unsigned long rate); +extern int qcom_find_src_index(const struct parent_map *map, u8 src); extern struct regmap *qcom_cc_map(struct platform_device *pdev, const struct qcom_cc_desc *desc);