Received: by 10.192.165.148 with SMTP id m20csp2931592imm; Mon, 7 May 2018 03:51:20 -0700 (PDT) X-Google-Smtp-Source: AB8JxZprpwCTlnLkLis0E5HPWXqYYXakEWLlnkHlzlq2A0Bd/j5O3I5X3h/w2GJHtISAsP1aXlFl X-Received: by 10.98.214.218 with SMTP id a87mr36586256pfl.200.1525690280198; Mon, 07 May 2018 03:51:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525690280; cv=none; d=google.com; s=arc-20160816; b=hFcIQ9o/agxH8aKqfA+giE+F7AaUtUZ3vVXcguetvu+BNKo9ujwu5zn8RZB4Fxu6Uv KzwEq4LdRAfLN4FdVXkpr48oyk3D1t+6x9S6+NFNlr2O7EYF45bbAfXXeQhEQ3CTMoRL +Zc5rpHRLvSWaHUiApOFbRsfV2i80BXzFwr9+cw7LR0+fzorGd3RJVo6H1jmrX2wsf40 x6jJ7Zkhv8LGZzxCjMOMTonDSstFf5Qo3GKQqKDnwMP5w4Ia12+yh88hPQsDeIAZA4My tI+IEBiL7LgIaV32oSSfa/mrGDNhXE+wpHkmbtzn+WZtmKU48YNjOpJKHIWtoca1Rnx9 DfYg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dmarc-filter:dkim-signature:dkim-signature :arc-authentication-results; bh=7mS4ulJve8qttyZCIAd5GPgPhSrhjQBaas4B3x+m7ik=; b=tKjObL5Pv8kwmOeEcxQydI48dyoNUMWurLNNMlMI5GJm4f09xw1h09R4A9qNfMcHfG FiNNgEMxAg+Zhtbqc4ikp6WzJ07videUHHJFM/tf5R3SdJlbWdaBBZkb9pOOE+FORLN/ +RXQ1ypYuBstIE8HH6/cLh5RKAjAuwbc3h0Mbo6glMLF/19gJ4Df5KpCsI94zabQHWT8 YNDLHZLe10T3bh5zoj0AL+2k3ICDtBVFwnJVu08499B+PuKCoOiJio84+Q4M8o4Q+PWy rko4C+ZfRfapcQAZuaUN437mrba21W7K1/tqO3z3BYrMTZneWA7JxtE28k7WiX0NIND2 S1rA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@codeaurora.org header.s=default header.b=Scuzl+Z4; dkim=pass header.i=@codeaurora.org header.s=default header.b=NUFI/UlI; 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 t14-v6si17638636pgf.93.2018.05.07.03.51.05; Mon, 07 May 2018 03:51:20 -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; dkim=pass header.i=@codeaurora.org header.s=default header.b=Scuzl+Z4; dkim=pass header.i=@codeaurora.org header.s=default header.b=NUFI/UlI; 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 S1752206AbeEGKum (ORCPT + 99 others); Mon, 7 May 2018 06:50:42 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:35068 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750795AbeEGKuh (ORCPT ); Mon, 7 May 2018 06:50:37 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 32CD6605A2; Mon, 7 May 2018 10:50:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1525690237; bh=QeXgPQys/Fz6bIp45BtxvFbdFKemkg0h8XXjDpRoods=; h=From:To:Cc:Subject:Date:From; b=Scuzl+Z4TT73jprzSYHLeMWLFFs/wvM6mx/5qOlPOrnfUieLlvjP3oX0TX/B+plBj o0KcVUBNtmhLZHPr92xFVZBZRwSJs9iDfk5vWCc533OptMGY/3BOkn/Ds5RRu2PvUN dJl9nEz79EpBnFQqSC/jOXGk+GlreEn+lSqgzwPc= X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on pdx-caf-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.8 required=2.0 tests=ALL_TRUSTED,BAYES_00, DKIM_SIGNED,T_DKIM_INVALID autolearn=no autolearn_force=no version=3.4.0 Received: from anischal-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: anischal@smtp.codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id 3530C601A0; Mon, 7 May 2018 10:50:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1525690236; bh=QeXgPQys/Fz6bIp45BtxvFbdFKemkg0h8XXjDpRoods=; h=From:To:Cc:Subject:Date:From; b=NUFI/UlIrIsv9dKyoGHC8BVSwhAb1vZUpD9qBAGa1Pak+1IVYpw/69X3UdNzOnEXA rW1LIEFkj29PW81T2XfYK5++GuUF16QVdz+EYGrL6to85l/xB5KqshEbBSOFQmHzAY g5WKT3MOuCpmd5DsFGzTtAXl5KsLzpiUgXarrmSA= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 3530C601A0 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=anischal@codeaurora.org From: Amit Nischal To: Stephen Boyd , Michael Turquette Cc: Andy Gross , David Brown , Rajendra Nayak , Odelu Kukatla , Taniya Das , linux-arm-msm@vger.kernel.org, linux-soc@vger.kernel.org, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Amit Nischal Subject: [PATCH v7 0/3] Misc patches to support clocks for SDM845 Date: Mon, 7 May 2018 16:20:17 +0530 Message-Id: <1525690220-26525-1-git-send-email-anischal@codeaurora.org> X-Mailer: git-send-email 1.9.1 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Changes in v7: 1. Addressed review comments from Stephen and Rob for GCC driver. - Split dt-bindings to a separate patch from the driver patch. - Change the 'halt_check' type to BRANCH_HALT_SKIP for pipe and ufs_card tx/rx symbol clocks. - Remove 'halt_reg' for the clocks where 'halt_check' type is BRANCH_HALT_DELAY. For such clocks, there is no status bit to poll. For e.g. gcc_disp_gpll0_clk_src clock. 2. Implemented rcg2_shared_ops as suggested by Stephen in https://lkml.org/lkml/2018/5/2/91. 3. The GCC clock driver(patch 3) depends upon the below patches related to GDSC operation and RPMh clock driver, which are under review. https://lkml.org/lkml/2018/4/27/110 https://lkml.org/lkml/2018/4/24/390 Changes in v6: 1. Addressed review comments for v3 and v4 version of GCC driver for SDM845. https://lkml.org/lkml/2018/4/16/1129. 2. Add support for new flag 'BRANCH_NO_DELAY' for branch clocks. 3. Addressed review comments for v5 version of rcg2_shared_ops patch. https://lkml.org/lkml/2018/4/19/86 4. The GCC clock driver(patch 3) depends upon the below patches related to GDSC operation and RPMh clock driver, which are under review. https://lkml.org/lkml/2018/4/27/110 https://lkml.org/lkml/2018/4/24/390 Changes in v5: 1. Addressed review comments for v3 and v4 version of GCC driver for SDM845 https://lkml.org/lkml/2018/4/16/1129 2. Removed bi_tcxo clock being modelled from the GCC driver, as RPMH clock driver would provide the same. https://lkml.org/lkml/2018/4/13/685 3. The GCC clock driver(patch 2) depends upon the below patches related to GDSC operation and RPMh clock driver, which are under review. https://lkml.org/lkml/2018/4/2/143 https://lkml.org/lkml/2018/4/13/685 Changes in v4: 1. Addressed review comments for v2 version of GCC driver for SDM845 https://lkml.org/lkml/2018/4/9/55. 2. The GCC clock driver(patch 3) depends upon the below patches related to GDSC operation and are under review. https://lkml.org/lkml/2018/4/2/142 Changes in v3: 1. Addressed review comments given for v2 series. 2. The GCC clock driver(patch 3) depends upon the below patches related to GDSC operation and are under review. https://lkml.org/lkml/2018/4/2/142 Changes in v2: Fixup for recalc_rate ops for clk_rcg2_shared_ops: There could be few scenarios where shared clocks are configured at rate other than CXO by boot. In those cases there would be a mismatch between the rate calculated by the recalc shared ops and the actual HW register configuration. Fix the same by adding an additional check to read current src from CFG register and make a decision based on that. Changes in v1: https://lkml.org/lkml/2018/1/31/209 This patch series does the miscellaneous changes to support clock nodes for SDM845. Below are the major changes for which the existing code does not have support. 1. Clear hardware clock control bit of RCGs where HW clock control bit is set by default so that software can control those root clocks. 2. Introduces clk_rcg2_shared_ops to support clock controller drivers for SDM845. With new shared ops, RCGs with shared branches will be configured to a safe source in disable path and actual RCG update configuration will be done in enable path instead of doing config update in set_rate. In set_rate(), just cache the rate instead of doing actual configuration update. Also each RCG in clock controller driver will have their own safe configuration frequency table to switch to safe frequency. 3. Add support for controlling Fabia PLL for which the support is not available in existing alpha PLL code. 4. Add Global Clock controller (GCC) driver for SDM845. This should allow most non-multimedia device drivers to probe and control their clocks. [v1] : https://lkml.org/lkml/2018/1/31/209 [v2] : https://lkml.org/lkml/2018/3/8/495 [v3] : https://lkml.org/lkml/2018/4/3/356 [v4] : https://lkml.org/lkml/2018/4/9/79 [v5] : https://lkml.org/lkml/2018/4/18/367 [v6] : https://lkml.org/lkml/2018/4/30/533 Amit Nischal (2): clk: qcom: Configure the RCGs to a safe source as needed clk: qcom: Add DT bindings for SDM845 gcc clock controller Taniya Das (1): clk: qcom: Add Global Clock controller (GCC) driver for SDM845 .../devicetree/bindings/clock/qcom,gcc.txt | 1 + drivers/clk/qcom/Kconfig | 9 + drivers/clk/qcom/Makefile | 1 + drivers/clk/qcom/clk-rcg.h | 17 +- drivers/clk/qcom/clk-rcg2.c | 170 +- drivers/clk/qcom/gcc-sdm845.c | 3465 ++++++++++++++++++++ include/dt-bindings/clock/qcom,gcc-sdm845.h | 239 ++ 7 files changed, 3878 insertions(+), 24 deletions(-) create mode 100644 drivers/clk/qcom/gcc-sdm845.c create mode 100644 include/dt-bindings/clock/qcom,gcc-sdm845.h -- QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation