From patchwork Wed Jan 11 19:19:52 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 641412 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 41D68C67871 for ; Wed, 11 Jan 2023 19:20:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234993AbjAKTUN (ORCPT ); Wed, 11 Jan 2023 14:20:13 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34146 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232967AbjAKTUI (ORCPT ); Wed, 11 Jan 2023 14:20:08 -0500 Received: from mail-lj1-x230.google.com (mail-lj1-x230.google.com [IPv6:2a00:1450:4864:20::230]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 520D910B79 for ; Wed, 11 Jan 2023 11:20:07 -0800 (PST) Received: by mail-lj1-x230.google.com with SMTP id y18so13516917ljk.11 for ; Wed, 11 Jan 2023 11:20:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=1uDJixWMEWwAoquEM2fmrMSD+ELeFhPO7LIvd7FIubM=; b=wPTgABILq+rVIZTmOuPsw51kX9ndLddw8fbuBjnL2rxg2l8/UUlp0oc04OfbNvx2Vt dqQZFmKb3AWMb8R/sZNraXcW0SLP9eMZzEeEBbcegUv3z9egaYAGiYlSym6HT1jjMDcN 1BKuhVomw3w5T3OKyje8KngMd/4+IPElRXuQaAb3b1Uy4v8GHkh5kgpgIXE7wdS83ikA FEOGBwdNXdjwx3n6i9k/uiuD4u0jZJubMX/acRz9tdEd4t6kfk/Ky18Z6+Y788uhL3RZ 13tIGv+9LJW2uPknFOzLekRf5uhJxjQBBkqdOHQiEvjfJIzk0Cp77SZit6VzSSW9qJ8N z+xg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=1uDJixWMEWwAoquEM2fmrMSD+ELeFhPO7LIvd7FIubM=; b=m8UokAeKBRr2XWbhKYmeO7H/LyTDrXx3mFJWLnbJJhiheuzmrBwcjHuikcq0FrZ5PM JpTZP9SYmc96hi1al/zjimDnPjwIKEd2MiVT3+MDWk+/atcZdU6mQrblWivCPtbC1O+2 Nbb7MgUS3NPmNqtgeog8BfabcAtrdbzsPVtZNQI2GnDMjdBfQnY4MFyLcgcRlH/KvF8A oPQk5X+t66+JSI0bYwUolj+0qtiWB9cxCqZLMRX0fHpynGh2SA0BR5juKoOQmC2SSNvi wL9XrSp+PwWwmOgWgmh5dGSkpsGrfURIbeGy7nxrhxihojD15NxJX/ANGSKB7kxF5acK zM4Q== X-Gm-Message-State: AFqh2koUx+AGa8icZep8K/el+xr/ROcAJDfnsGafXJfqvTzhH0znB/g6 c++MO+9A9YtUiD7gMTXV5dIL4A== X-Google-Smtp-Source: AMrXdXt2PHcLY8epkmSi6PqKZ6g67Mx5P/psEIT9ncqRTSSRnxODmnonjdnag1XUOTeBMOHgrOULsQ== X-Received: by 2002:a2e:9007:0:b0:27f:c11c:315e with SMTP id h7-20020a2e9007000000b0027fc11c315emr15551960ljg.31.1673464805720; Wed, 11 Jan 2023 11:20:05 -0800 (PST) Received: from umbar.unikie.fi ([192.130.178.91]) by smtp.gmail.com with ESMTPSA id bj36-20020a2eaaa4000000b0027ff2fabcb5sm1807787ljb.104.2023.01.11.11.20.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Jan 2023 11:20:05 -0800 (PST) From: Dmitry Baryshkov To: Andy Gross , Bjorn Andersson , Konrad Dybcio , Stephen Boyd , Michael Turquette , Rob Herring , Krzysztof Kozlowski , Taniya Das Cc: linux-arm-msm@vger.kernel.org, linux-clk@vger.kernel.org, devicetree@vger.kernel.org Subject: [PATCH 01/13] clk: qcom: clk-alpha-pll: program PLL_TEST/PLL_TEST_U if required Date: Wed, 11 Jan 2023 22:19:52 +0300 Message-Id: <20230111192004.2509750-2-dmitry.baryshkov@linaro.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20230111192004.2509750-1-dmitry.baryshkov@linaro.org> References: <20230111192004.2509750-1-dmitry.baryshkov@linaro.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Program PLL_TEST and PLL_TEST_U registers if required by the pll configuration. Signed-off-by: Dmitry Baryshkov --- drivers/clk/qcom/clk-alpha-pll.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/clk/qcom/clk-alpha-pll.c b/drivers/clk/qcom/clk-alpha-pll.c index f9e4cfd7261c..e266379427f2 100644 --- a/drivers/clk/qcom/clk-alpha-pll.c +++ b/drivers/clk/qcom/clk-alpha-pll.c @@ -358,6 +358,11 @@ void clk_alpha_pll_configure(struct clk_alpha_pll *pll, struct regmap *regmap, regmap_update_bits(regmap, PLL_USER_CTL(pll), mask, val); + clk_alpha_pll_write_config(regmap, PLL_TEST_CTL(pll), + config->test_ctl_val); + clk_alpha_pll_write_config(regmap, PLL_TEST_CTL_U(pll), + config->test_ctl_hi_val); + if (pll->flags & SUPPORTS_FSM_MODE) qcom_pll_set_fsm_mode(regmap, PLL_MODE(pll), 6, 0); } From patchwork Wed Jan 11 19:19:54 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 641411 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id BCC53C67871 for ; Wed, 11 Jan 2023 19:20:19 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235347AbjAKTUR (ORCPT ); Wed, 11 Jan 2023 14:20:17 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34294 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234263AbjAKTUK (ORCPT ); Wed, 11 Jan 2023 14:20:10 -0500 Received: from mail-lj1-x22e.google.com (mail-lj1-x22e.google.com [IPv6:2a00:1450:4864:20::22e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2A76F167FE for ; Wed, 11 Jan 2023 11:20:09 -0800 (PST) Received: by mail-lj1-x22e.google.com with SMTP id o7so16708573ljj.8 for ; Wed, 11 Jan 2023 11:20:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=xw/nftZkBpYy5/CKpZ6ADRGZbB0kdGeQLhoDqoX3D5Y=; b=At0iGjNwCeKyoIWJgfWJg1xJndtVDb0ib0fymno2wrkwLckZoIyRirJh59zdp42qi8 h5GKdiXR4HdW6Z6ZN46VABArx2nj55z9ddt1cDau9QuTp+kCBw388BEWzGQVFcw7oAH3 XeOEdHQolRQQgYuYpR/tEhJpmwLXBh1brUjUdmt77OPAacFuR7V/yol1AarjSSLSPBLv ldTJeJvVbjHz0QJRbopjnL6y/4w7cZWWrOXvLEHbK1jcdoRuZIUSKyR1PFYZVYvV9nwt WII+J5GamBQnw2J6NYs0oJQD6T4ODJZ8/0+TN8hD6A2tF1WmWhmnUe1Oq8LSEQbiY0lL /4XA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=xw/nftZkBpYy5/CKpZ6ADRGZbB0kdGeQLhoDqoX3D5Y=; b=e5XmVkFEvWOtFqaw0IgWs/q6jPz7LhLS69e0hXg1hTGMudjPN0+2aqVPOgeg9o0alL Hy4/syXVSy9S7U8wczZ2Mw85x6ZdgTqkEWkOsQvFY7rsjf14jNZcRMdXKwXlh/trI3gS I/pwYX6s5YfNstYljS3UIocIbr9ktQuFSZp/5Q8D/3MiBpX4CWTctF0xvyvTXrQjucn7 WsfDxfDaz5ylUffui+cK96AyxjAE14grxnQ2I83vN13j2ShgIacqkJ9i5urDqu/bande uEnVSK52CuxU5+pSTQCajaiLFqxFKYfEH2zLRhPCYBMuGR9XzqLi2SmPxLytbvytpuPG rLNQ== X-Gm-Message-State: AFqh2kpaR2NuXALct+X7xRTLKHglJtoPHHiLPXL0eJv0/D/sRnfdTIV8 S2g+pBiZyo4478AHhZMif0d56w== X-Google-Smtp-Source: AMrXdXsD1tgE7i1IfIh/AaVUSHKkgZJq/MnvP5Q3Bi+B/qnOlkg9J1eAPNC2qQnMAw/wYVbC31ndxw== X-Received: by 2002:a2e:b169:0:b0:283:da38:427d with SMTP id a9-20020a2eb169000000b00283da38427dmr3618149ljm.49.1673464807523; Wed, 11 Jan 2023 11:20:07 -0800 (PST) Received: from umbar.unikie.fi ([192.130.178.91]) by smtp.gmail.com with ESMTPSA id bj36-20020a2eaaa4000000b0027ff2fabcb5sm1807787ljb.104.2023.01.11.11.20.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Jan 2023 11:20:06 -0800 (PST) From: Dmitry Baryshkov To: Andy Gross , Bjorn Andersson , Konrad Dybcio , Stephen Boyd , Michael Turquette , Rob Herring , Krzysztof Kozlowski , Taniya Das Cc: linux-arm-msm@vger.kernel.org, linux-clk@vger.kernel.org, devicetree@vger.kernel.org Subject: [PATCH 03/13] clk: qcom: cpu-8996: fix the init clock rate Date: Wed, 11 Jan 2023 22:19:54 +0300 Message-Id: <20230111192004.2509750-4-dmitry.baryshkov@linaro.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20230111192004.2509750-1-dmitry.baryshkov@linaro.org> References: <20230111192004.2509750-1-dmitry.baryshkov@linaro.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Change PLL programming to let both power and performance cluster clocks to start from the maximum common frequency. Signed-off-by: Dmitry Baryshkov --- drivers/clk/qcom/clk-cpu-8996.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/clk/qcom/clk-cpu-8996.c b/drivers/clk/qcom/clk-cpu-8996.c index ed8cb558e1aa..d51965fda56d 100644 --- a/drivers/clk/qcom/clk-cpu-8996.c +++ b/drivers/clk/qcom/clk-cpu-8996.c @@ -102,7 +102,7 @@ static const u8 alt_pll_regs[PLL_OFF_MAX_REGS] = { /* PLLs */ static const struct alpha_pll_config hfpll_config = { - .l = 60, + .l = 54, .config_ctl_val = 0x200d4828, .config_ctl_hi_val = 0x006, .test_ctl_val = 0x1c000000, From patchwork Wed Jan 11 19:19:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 641410 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6B4F1C63797 for ; Wed, 11 Jan 2023 19:20:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234315AbjAKTUU (ORCPT ); Wed, 11 Jan 2023 14:20:20 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34144 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230417AbjAKTUN (ORCPT ); Wed, 11 Jan 2023 14:20:13 -0500 Received: from mail-lj1-x22d.google.com (mail-lj1-x22d.google.com [IPv6:2a00:1450:4864:20::22d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 889BBCDF for ; Wed, 11 Jan 2023 11:20:12 -0800 (PST) Received: by mail-lj1-x22d.google.com with SMTP id s22so17053980ljp.5 for ; Wed, 11 Jan 2023 11:20:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=UcTrQNFFbWCL7GgAo7RNP0TzY01GvFcQgkQKLT8ew64=; b=bUWsUOgM+3gkrkirbO/qNZC62lWFtdVL4LkLhPFIxC9/yMmj584+7CADol/V9AxloD Ta+P9UTZGkldArBHe8LJga7oyKjTNhkqyHWev1hjcWgQwDaFes9dVItKVReOy2i9j9bx GA/2Ao8S6LHJ4vGSGOeQS9qE7iZlqHzNoeaM2ZRyLkx9oTakzS1HlG3J57+0uWrByIa8 IPZCbC+i84msKsYkWlARznbu6bStbzWAaHymXHXVCn9SCXRAN4wa1ylcEX6G7cq3qF+6 T8DfK1+4RBdyFnrwrgsn5m2lA6y2SARFw110wE83QGhki6MSDtt53LuQ/AtCSHirrlX0 hDWA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=UcTrQNFFbWCL7GgAo7RNP0TzY01GvFcQgkQKLT8ew64=; b=14n0AaN0U+D1mCmYzY9U8KIJyc9xdOnsn0yEz3+FKDT4vGD0ae/9CuefncZxKlf5Qh WmjySn3HRiNfP+x3T1Q7SX0jSOwfxdXLfvFdPutp4/42Hjpw3XkgQHiRWn8LPnj2bO0r sCX4RpnuE/fhOlWYDAqH9Nq7kpM8PJrAf3/l8hUzT/uHpnPFdMXKdmNaHM7mJloaMWWJ HCHApDm6rQxridRXLrttiHtr8r9Zd9FIoIFs4bd0VLH6NuptrIYaS2WOjZKLo9nfrZMk 0vWYm5n+fh2/cz9WxPRYta030mLsOofuBuA4jnTpyOGj7tIErXW6xi66/MXoRkylFfnO fuYA== X-Gm-Message-State: AFqh2krPeXcB2XhigsNpyxma/yIqkVA+5zmou8dDqk2G+W2aamTd74bZ rjJQiJRngLbOktaIoTu2+VEgcg== X-Google-Smtp-Source: AMrXdXvgTsZRC1nttDyFGKiNVJRn9CeLMjX5AIx6m0iC+pBN/TNNK6riowDi1cP+c7koqjmv7VRS2A== X-Received: by 2002:a05:651c:2399:b0:27f:f184:6ef9 with SMTP id bk25-20020a05651c239900b0027ff1846ef9mr10877432ljb.10.1673464810896; Wed, 11 Jan 2023 11:20:10 -0800 (PST) Received: from umbar.unikie.fi ([192.130.178.91]) by smtp.gmail.com with ESMTPSA id bj36-20020a2eaaa4000000b0027ff2fabcb5sm1807787ljb.104.2023.01.11.11.20.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Jan 2023 11:20:10 -0800 (PST) From: Dmitry Baryshkov To: Andy Gross , Bjorn Andersson , Konrad Dybcio , Stephen Boyd , Michael Turquette , Rob Herring , Krzysztof Kozlowski , Taniya Das Cc: linux-arm-msm@vger.kernel.org, linux-clk@vger.kernel.org, devicetree@vger.kernel.org Subject: [PATCH 05/13] clk: qcom: cpu-8996: skip ACD init if the setup is valid Date: Wed, 11 Jan 2023 22:19:56 +0300 Message-Id: <20230111192004.2509750-6-dmitry.baryshkov@linaro.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20230111192004.2509750-1-dmitry.baryshkov@linaro.org> References: <20230111192004.2509750-1-dmitry.baryshkov@linaro.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Check whether L2 registers contain correct values and skip programming if they are valid. This follows the code present downstream. Signed-off-by: Dmitry Baryshkov --- drivers/clk/qcom/clk-cpu-8996.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/clk/qcom/clk-cpu-8996.c b/drivers/clk/qcom/clk-cpu-8996.c index 0e0c00d44c6f..7e5246ca7e7f 100644 --- a/drivers/clk/qcom/clk-cpu-8996.c +++ b/drivers/clk/qcom/clk-cpu-8996.c @@ -472,10 +472,15 @@ static void __iomem *base; static void qcom_cpu_clk_msm8996_acd_init(void __iomem *base) { u64 hwid; + u32 val; unsigned long flags; spin_lock_irqsave(&qcom_clk_acd_lock, flags); + val = kryo_l2_get_indirect_reg(L2ACDTD_REG); + if (val == 0x00006a11) + goto out; + hwid = read_cpuid_mpidr() & CPU_AFINITY_MASK; kryo_l2_set_indirect_reg(L2ACDTD_REG, 0x00006a11); @@ -492,6 +497,7 @@ static void qcom_cpu_clk_msm8996_acd_init(void __iomem *base) writel(0xf, base + PERFCL_REG_OFFSET + SSSCTL_OFFSET); } +out: spin_unlock_irqrestore(&qcom_clk_acd_lock, flags); } From patchwork Wed Jan 11 19:19:57 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 641407 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 00ED2C678D9 for ; Wed, 11 Jan 2023 19:20:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235532AbjAKTUb (ORCPT ); Wed, 11 Jan 2023 14:20:31 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34270 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232785AbjAKTUO (ORCPT ); Wed, 11 Jan 2023 14:20:14 -0500 Received: from mail-lj1-x232.google.com (mail-lj1-x232.google.com [IPv6:2a00:1450:4864:20::232]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1CD82164BC for ; Wed, 11 Jan 2023 11:20:13 -0800 (PST) Received: by mail-lj1-x232.google.com with SMTP id bx6so17090971ljb.3 for ; Wed, 11 Jan 2023 11:20:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=lRtL6Eef4RVgyfHAkdoUF1I7EUT/FswJ9g5onTCIfoQ=; b=hhLFIE8mcq9jQntC6JKJYrzOWorc0tkPXXeghVqmKf+tK5KMecdQlacVW8jxqIPNXk Dcq7j5q602MMahelnW0Lb/bjS75CR/MCOZJSs5YbB8ARelab8Rn3I8AnW3IZXqJLkzM0 aspaywfNlRnqT3laWvposvhfro0C+z8X7iMlXbR9IleaAMGKN4pZjIKK/fVPSuwYvrUL 7P1ihnx2J5ECEnyPO/H/95tzaWN/ec5eABaXBtuZOTSM4RHdV4XxR1zje6xGJiUocJTG NUGf6U7A/Ywf9Uvb4DewL0FTdUQdWNUCfpWZuFqcfjkynNjmMO+PZNwEcMOGmvQ68M+V URtA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=lRtL6Eef4RVgyfHAkdoUF1I7EUT/FswJ9g5onTCIfoQ=; b=KyYOPnsPAgq3oMW5aCKqJiArcoeOiBn7El2aHLIt/GtP9TUIv4b8cGNmVdWfEQ3Fd7 x5IpDpCr3PXrohgxCcU+kUPy71ArlNMbILQnBHV0PcyfoBVd/J2QVmAng2vcX9oSbscg 5kttPSDo03tviAYGgCiNyT+t3vW4RBYJEuVsc/RGRBhGesD4uwpxf70YYXqpy93WXK3N vrv+uIRwCgK9NGrbCF9CtrPil95TccJthVcQE7B6CwTHf5+cdRJDaC/eOkCZtgjQNFQL GJe7/iUSMJnNEuwsWd16R1Itr1Qa6oFcvUHlbwwD8Cfqnx3QO0K0Mb1+SdvShMielNoJ pipw== X-Gm-Message-State: AFqh2kqixeuQnG/5G4bqHCIvYI9udtCBhDcloqfqGg/HniobVkGW3OgL elE5aUXlFynhz5ihiadBlfbvyQ== X-Google-Smtp-Source: AMrXdXvCBIkAEZGDbN/ZqLtvndgjBWGXqt3p/tDjEf4UH4lqYIbGvE+PTCzH+rfOp05DrRSehw+yfw== X-Received: by 2002:a05:651c:2004:b0:27f:ff67:91cb with SMTP id s4-20020a05651c200400b0027fff6791cbmr6924851ljo.12.1673464811513; Wed, 11 Jan 2023 11:20:11 -0800 (PST) Received: from umbar.unikie.fi ([192.130.178.91]) by smtp.gmail.com with ESMTPSA id bj36-20020a2eaaa4000000b0027ff2fabcb5sm1807787ljb.104.2023.01.11.11.20.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Jan 2023 11:20:11 -0800 (PST) From: Dmitry Baryshkov To: Andy Gross , Bjorn Andersson , Konrad Dybcio , Stephen Boyd , Michael Turquette , Rob Herring , Krzysztof Kozlowski , Taniya Das Cc: linux-arm-msm@vger.kernel.org, linux-clk@vger.kernel.org, devicetree@vger.kernel.org Subject: [PATCH 06/13] clk: qcom: cpu-8996: simplify the cpu_clk_notifier_cb Date: Wed, 11 Jan 2023 22:19:57 +0300 Message-Id: <20230111192004.2509750-7-dmitry.baryshkov@linaro.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20230111192004.2509750-1-dmitry.baryshkov@linaro.org> References: <20230111192004.2509750-1-dmitry.baryshkov@linaro.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org - Do not use the Alt PLL completely. Switch to smux when necessary to prevent overvolting - Restore the parent in case the rate change aborts for some reason - Do not duplicate resetting the parent in set_parent operation. Signed-off-by: Dmitry Baryshkov --- drivers/clk/qcom/clk-cpu-8996.c | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/drivers/clk/qcom/clk-cpu-8996.c b/drivers/clk/qcom/clk-cpu-8996.c index 7e5246ca7e7f..ee7e18b37832 100644 --- a/drivers/clk/qcom/clk-cpu-8996.c +++ b/drivers/clk/qcom/clk-cpu-8996.c @@ -506,27 +506,34 @@ static int cpu_clk_notifier_cb(struct notifier_block *nb, unsigned long event, { struct clk_cpu_8996_pmux *cpuclk = to_clk_cpu_8996_pmux_nb(nb); struct clk_notifier_data *cnd = data; - int ret; switch (event) { case PRE_RATE_CHANGE: - ret = clk_cpu_8996_pmux_set_parent(&cpuclk->clkr.hw, ALT_INDEX); qcom_cpu_clk_msm8996_acd_init(base); + + /* + * Avoid overvolting. clk_core_set_rate_nolock() walks from top + * to bottom, so it will change the rate of the PLL before + * chaging the parent of PMUX. This can result in pmux getting + * clocked twice the expected rate. + * + * Manually switch to PLL/2 here. + */ + if (cnd->new_rate < DIV_2_THRESHOLD && + cnd->old_rate > DIV_2_THRESHOLD) + clk_cpu_8996_pmux_set_parent(&cpuclk->clkr.hw, SMUX_INDEX); + break; - case POST_RATE_CHANGE: - if (cnd->new_rate < DIV_2_THRESHOLD) - ret = clk_cpu_8996_pmux_set_parent(&cpuclk->clkr.hw, - SMUX_INDEX); - else - ret = clk_cpu_8996_pmux_set_parent(&cpuclk->clkr.hw, - ACD_INDEX); - break; + case ABORT_RATE_CHANGE: + /* Revert manual change */ + if (cnd->new_rate < DIV_2_THRESHOLD && + cnd->old_rate > DIV_2_THRESHOLD) + clk_cpu_8996_pmux_set_parent(&cpuclk->clkr.hw, ACD_INDEX); default: - ret = 0; break; } - return notifier_from_errno(ret); + return NOTIFY_OK; }; static int qcom_cpu_clk_msm8996_driver_probe(struct platform_device *pdev) From patchwork Wed Jan 11 19:20:00 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 641409 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5B30FC678DB for ; Wed, 11 Jan 2023 19:20:28 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235279AbjAKTU0 (ORCPT ); Wed, 11 Jan 2023 14:20:26 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34288 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235109AbjAKTUP (ORCPT ); Wed, 11 Jan 2023 14:20:15 -0500 Received: from mail-lj1-x22e.google.com (mail-lj1-x22e.google.com [IPv6:2a00:1450:4864:20::22e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EF5C815F31 for ; Wed, 11 Jan 2023 11:20:13 -0800 (PST) Received: by mail-lj1-x22e.google.com with SMTP id o7so16708805ljj.8 for ; Wed, 11 Jan 2023 11:20:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=PZ2p731vN2U20cHBeIyCq9fuCWOHPzhzPfBzUh6W44Y=; b=J3/n36ILmm73OcQ+JI/bY/bThgBbIkNe5YjcIh3Z0Ih7IlKAuHqqXkluI8s98Apm/V aT6mjOGpEFas/y0v+HDrsFJpYyjf4+hpeEnemhlaYittyCM2SFLY75TQfF708nGxKzr4 sJ25LF5QSm5fqMM2CwpdXMh2Vu4EbSw5+WM+6Rz6mdCBctN626mr5yvA45vqlV2tqjnb f/nHoby3QHqHtfMwUalBvxXAwxTnbqcuGqjPyxVOYHYy79f9+MF4DZShpUdCd02O4tAs m6obc0+yKmTgwbaxhnBDvsWwEVBc2UjCaJViksE70STb8cQI4dTFDs3H6DPx9spl+iZu ei7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=PZ2p731vN2U20cHBeIyCq9fuCWOHPzhzPfBzUh6W44Y=; b=OJhx6bcMpb1OqjDo0nt4LEgRyQDeTN9H5UdvBPjPWPWWBNPeBHixQdDxXowXZlMgWf Ff+0YlBkV+ZsNbuYjwsVmQK1Q/F+LsWkxhSzwx0AsAz5LZVgcH4h1US2Z/6Z5+StJ/+6 lYgY1nB2uZEB/047V4pOvKpPM9VWyh13hSfap6EYeM++b17Psis8ZQtKNbUC2oNCld5s BnerbKDbUSsU2FApSGQHntfkctEVeSPSpEwTWpPx6WM/aPb+MJ5Sz1+8fqbTPgptIlUy kUTBX8MIZ2dXGs22liIgKrntMXdiZaXrD5wmzkR76KsRr5ZFKFftnG6sehSp1+J74ZRb kt8g== X-Gm-Message-State: AFqh2kqY06s+hNieexMQuX1MW17lOQqOd2bqafUZYY+kZiaelmY6FmSX N9fAn4MGjFNv+Ri0XAVO+MUu6A== X-Google-Smtp-Source: AMrXdXtHZBkBVjxg1gMy5TYG3fnzlHcDNK2XdBVxdFCvZEVpYO0NlMSeeR36fHc1G6lMVr5Y+tBmJA== X-Received: by 2002:a2e:a808:0:b0:27f:f0c9:9369 with SMTP id l8-20020a2ea808000000b0027ff0c99369mr13007832ljq.35.1673464813540; Wed, 11 Jan 2023 11:20:13 -0800 (PST) Received: from umbar.unikie.fi ([192.130.178.91]) by smtp.gmail.com with ESMTPSA id bj36-20020a2eaaa4000000b0027ff2fabcb5sm1807787ljb.104.2023.01.11.11.20.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Jan 2023 11:20:13 -0800 (PST) From: Dmitry Baryshkov To: Andy Gross , Bjorn Andersson , Konrad Dybcio , Stephen Boyd , Michael Turquette , Rob Herring , Krzysztof Kozlowski , Taniya Das Cc: linux-arm-msm@vger.kernel.org, linux-clk@vger.kernel.org, devicetree@vger.kernel.org Subject: [PATCH 09/13] clk: qcom: cpu-8996: fix PLL configuration sequence Date: Wed, 11 Jan 2023 22:20:00 +0300 Message-Id: <20230111192004.2509750-10-dmitry.baryshkov@linaro.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20230111192004.2509750-1-dmitry.baryshkov@linaro.org> References: <20230111192004.2509750-1-dmitry.baryshkov@linaro.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Switch both power and performance clocks to the GPLL0/2 (sys_apcs_aux) before PLL configuration. Switch them to the ACD afterwards. Signed-off-by: Dmitry Baryshkov --- drivers/clk/qcom/clk-cpu-8996.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/drivers/clk/qcom/clk-cpu-8996.c b/drivers/clk/qcom/clk-cpu-8996.c index 571ed52b3026..47c58bb5f21a 100644 --- a/drivers/clk/qcom/clk-cpu-8996.c +++ b/drivers/clk/qcom/clk-cpu-8996.c @@ -432,13 +432,27 @@ static int qcom_cpu_clk_msm8996_register_clks(struct device *dev, { int i, ret; + /* Select GPLL0 for 300MHz for the both clusters */ + regmap_write(regmap, PERFCL_REG_OFFSET + MUX_OFFSET, 0xc); + regmap_write(regmap, PWRCL_REG_OFFSET + MUX_OFFSET, 0xc); + + /* Ensure write goes through before PLLs are reconfigured */ + udelay(5); + clk_alpha_pll_configure(&pwrcl_pll, regmap, &hfpll_config); clk_alpha_pll_configure(&perfcl_pll, regmap, &hfpll_config); clk_alpha_pll_configure(&pwrcl_alt_pll, regmap, &altpll_config); clk_alpha_pll_configure(&perfcl_alt_pll, regmap, &altpll_config); + /* Wait for PLL(s) to lock */ + udelay(50); + qcom_cpu_clk_msm8996_acd_init(regmap); + /* Switch clusters to use the ACD leg */ + regmap_write(regmap, PWRCL_REG_OFFSET + MUX_OFFSET, 0x2); + regmap_write(regmap, PERFCL_REG_OFFSET + MUX_OFFSET, 0x2); + for (i = 0; i < ARRAY_SIZE(cpu_msm8996_hw_clks); i++) { ret = devm_clk_hw_register(dev, cpu_msm8996_hw_clks[i]); if (ret) From patchwork Wed Jan 11 19:20:02 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 641406 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id BAD54C5479D for ; Wed, 11 Jan 2023 19:20:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235562AbjAKTUe (ORCPT ); Wed, 11 Jan 2023 14:20:34 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34002 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235623AbjAKTUS (ORCPT ); Wed, 11 Jan 2023 14:20:18 -0500 Received: from mail-lj1-x235.google.com (mail-lj1-x235.google.com [IPv6:2a00:1450:4864:20::235]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E048117424 for ; Wed, 11 Jan 2023 11:20:16 -0800 (PST) Received: by mail-lj1-x235.google.com with SMTP id o7so16708869ljj.8 for ; Wed, 11 Jan 2023 11:20:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=o9TfgZ8Zdbv763+42Ud+oVMz+eIqSvcSMEMLtjMi/xo=; b=jwhsObXKo/coHvJbhxPTaewQmc6+ONipv8wkxiF8ZPty8mKsLdFPSRs2hDqg9y5ho6 eZPN1Ma04rm8HFkKY9aZtZHMU6YyVPcUabzD+QWPV9H+XtK1kGPca1aHXEdC5mKWBrND RBEnwxzFTpA1CZaoE6MoECEzqoWmpdm5B59rqtPG6ZJzeWl1rQBg1/f6Z/kM7GWcOIVz jwGsLj23Qu+R4Ur+hcp7fcoe5NtX/Tnxjqzy3AuSnaJ6nMdCbmLDNkJEXl41pIkPIG6B 8bARiB9bp4ubBCy7rfhNEyANBSbPoZQ9hP9TM1OrXApVF2+RvfhmQdpOt3O1hR7yC4nc qTnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=o9TfgZ8Zdbv763+42Ud+oVMz+eIqSvcSMEMLtjMi/xo=; b=cTPTnUujXBH/AmZfrfRUK8tlUbs6Pt34QVKYZ5KQmTRscCEmis3ZEbdHnKzWxz1VIf n2LkhhsWHSkaD+7pEMwIHdqg752REjzteWUcSiySPs+WawE7/Akxhv9gXzL3ifzNrJ1n sqspC0+WnCWBp9umAy5pIEEfg/HdaI2HBIgAVeyPW6q0QiobCc3uxLGsXx/f1o/7vYjq RygXeQYqdmqAy3C7xDO4Jg66Mk3n6mfSXTyZW70dhRdUNw4crJTzdkbE6DxZ9JDdLjmg OaMOQRYaQfih3+FRBoXZu0Uc9Rmc3YNMkID/T/w82B6yWatel5IhFo1SRYIgGlbV1DxW yg5Q== X-Gm-Message-State: AFqh2kpUKWD9tHYSt6FJ3PEzoYVbrtOShtTxdbAx7eOnwC6mgl9bBRrh Cw6JiehxVTj/Xaxkcq1SrUeQuA== X-Google-Smtp-Source: AMrXdXtO8D6A2JvEf+Igc3GNYE2NSOngNjMbK5U2NDeOvtWW+cgtXAWNdkq64PLfHe2/XE8lSO+8aA== X-Received: by 2002:a2e:9206:0:b0:27f:e50b:9e35 with SMTP id k6-20020a2e9206000000b0027fe50b9e35mr10609099ljg.52.1673464815027; Wed, 11 Jan 2023 11:20:15 -0800 (PST) Received: from umbar.unikie.fi ([192.130.178.91]) by smtp.gmail.com with ESMTPSA id bj36-20020a2eaaa4000000b0027ff2fabcb5sm1807787ljb.104.2023.01.11.11.20.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Jan 2023 11:20:14 -0800 (PST) From: Dmitry Baryshkov To: Andy Gross , Bjorn Andersson , Konrad Dybcio , Stephen Boyd , Michael Turquette , Rob Herring , Krzysztof Kozlowski , Taniya Das Cc: linux-arm-msm@vger.kernel.org, linux-clk@vger.kernel.org, devicetree@vger.kernel.org Subject: [PATCH 11/13] clk: qcom: cpu-8996: fix PLL clock ops Date: Wed, 11 Jan 2023 22:20:02 +0300 Message-Id: <20230111192004.2509750-12-dmitry.baryshkov@linaro.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20230111192004.2509750-1-dmitry.baryshkov@linaro.org> References: <20230111192004.2509750-1-dmitry.baryshkov@linaro.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Switch CPU PLLs to use clk_alpha_pll_hwfsm_ops, it seems to suit better. Signed-off-by: Dmitry Baryshkov --- drivers/clk/qcom/clk-cpu-8996.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/clk/qcom/clk-cpu-8996.c b/drivers/clk/qcom/clk-cpu-8996.c index 1c00eb629b61..b53cddc4bca3 100644 --- a/drivers/clk/qcom/clk-cpu-8996.c +++ b/drivers/clk/qcom/clk-cpu-8996.c @@ -128,7 +128,7 @@ static struct clk_alpha_pll pwrcl_pll = { .name = "pwrcl_pll", .parent_data = pll_parent, .num_parents = ARRAY_SIZE(pll_parent), - .ops = &clk_alpha_pll_huayra_ops, + .ops = &clk_alpha_pll_hwfsm_ops, }, }; @@ -140,7 +140,7 @@ static struct clk_alpha_pll perfcl_pll = { .name = "perfcl_pll", .parent_data = pll_parent, .num_parents = ARRAY_SIZE(pll_parent), - .ops = &clk_alpha_pll_huayra_ops, + .ops = &clk_alpha_pll_hwfsm_ops, }, }; From patchwork Wed Jan 11 19:20:03 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 641408 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B1ABDC678D5 for ; Wed, 11 Jan 2023 19:20:30 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239082AbjAKTU2 (ORCPT ); Wed, 11 Jan 2023 14:20:28 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33812 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232477AbjAKTUR (ORCPT ); Wed, 11 Jan 2023 14:20:17 -0500 Received: from mail-lj1-x232.google.com (mail-lj1-x232.google.com [IPv6:2a00:1450:4864:20::232]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2DF1B167FE for ; Wed, 11 Jan 2023 11:20:16 -0800 (PST) Received: by mail-lj1-x232.google.com with SMTP id bx6so17091165ljb.3 for ; Wed, 11 Jan 2023 11:20:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=lgOPg4fRkjBDBW6pz+cWiQpA7do2fsqbbXH7WC6lHjc=; b=cwZEd+eBfq/KpCAiIka/wvrjkoMhDC89Tobet/+yPkly/a3sls3XCmKpJbt1zVC5iw V/IMLg+b9jg/gW7iuSY9hUI1L7agK5np0SX4AZA6+6/8QEVT6w3o3WsJXwfMDm3eydbT 1qUURG+emIVF+5nFDgrs2MZHCzkIFR5BFwVaZ2ux7D1NT2YPj8eHMvhGZtG+JNNJFw6g MN5mwe20kWD+BES/A/mxVw81wtJvKo5xU4UzYD9ynKrXNzCxtvmUsN+uxqTejtQC/nOn sJRcQ1GUpOLzlaYLnIiyA01YBCswtnpfoMgiApB3KF1mBOnw0f+WW4Hp+JkS2dQ74XXW Cjtw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=lgOPg4fRkjBDBW6pz+cWiQpA7do2fsqbbXH7WC6lHjc=; b=IrieXFz/Lpiu9Cd519Kvo0ZCkrK4YPm0fVD6oztJFV/CY7FzSt9xO1rAceP0uL2mnJ CtyLtcZeJXMnGf8KaoEs40zTu5M7VKe1nOcnpUd6h0PVYyAGNsKD1RiOdYmUn8LIWAIj R9LG+M3djOHCT+FpTkFRpKEv/O4bAfT0POFbPczU4h5pfOLMmNiAFvFe68ekO1rP6M6B Wis2ekEowvPCjfYYYSIGobSmJfW0MF1TQEgBUzxK141jDdQ1P5EeMI6a9HnDUFqITOJ9 lnxP4ztGK0+7YEndl38Iifb8b+/qxLqT5aQM22xA2DJBoE5+eUkLUGB5xkLwsN08th+K /TpQ== X-Gm-Message-State: AFqh2ko0I6kdrPN7ZaZa4EjP4b8EPnpLGxNjoAl44zU6HBpmnbuRkkuj XuAb45RfBMdSxPWP7yiQ+Ls+Bw== X-Google-Smtp-Source: AMrXdXsqI7//J3y2dndxtyH9xmMfJt37ZWO8g2D1vCKufmvFRkL4wobFnV+6U0qBUT1rbjlsVtSnLQ== X-Received: by 2002:a2e:91c2:0:b0:27b:4ba8:e202 with SMTP id u2-20020a2e91c2000000b0027b4ba8e202mr27977077ljg.33.1673464815714; Wed, 11 Jan 2023 11:20:15 -0800 (PST) Received: from umbar.unikie.fi ([192.130.178.91]) by smtp.gmail.com with ESMTPSA id bj36-20020a2eaaa4000000b0027ff2fabcb5sm1807787ljb.104.2023.01.11.11.20.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Jan 2023 11:20:15 -0800 (PST) From: Dmitry Baryshkov To: Andy Gross , Bjorn Andersson , Konrad Dybcio , Stephen Boyd , Michael Turquette , Rob Herring , Krzysztof Kozlowski , Taniya Das Cc: linux-arm-msm@vger.kernel.org, linux-clk@vger.kernel.org, devicetree@vger.kernel.org Subject: [PATCH 12/13] clk: qcom: cpu-8996: change setup sequence to follow vendor kernel Date: Wed, 11 Jan 2023 22:20:03 +0300 Message-Id: <20230111192004.2509750-13-dmitry.baryshkov@linaro.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20230111192004.2509750-1-dmitry.baryshkov@linaro.org> References: <20230111192004.2509750-1-dmitry.baryshkov@linaro.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Add missing register writes to CPU clocks setup procedure. This makes it follow the setup procedure used in msm-3.18 kernel. Signed-off-by: Dmitry Baryshkov --- drivers/clk/qcom/clk-cpu-8996.c | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/drivers/clk/qcom/clk-cpu-8996.c b/drivers/clk/qcom/clk-cpu-8996.c index b53cddc4bca3..78a18b95c48b 100644 --- a/drivers/clk/qcom/clk-cpu-8996.c +++ b/drivers/clk/qcom/clk-cpu-8996.c @@ -76,10 +76,16 @@ enum _pmux_input { #define PWRCL_REG_OFFSET 0x0 #define PERFCL_REG_OFFSET 0x80000 #define MUX_OFFSET 0x40 +#define CLK_CTL_OFFSET 0x44 +#define CLK_CTL_AUTO_CLK_SEL BIT(8) #define ALT_PLL_OFFSET 0x100 #define SSSCTL_OFFSET 0x160 +#define PSCTL_OFFSET 0x164 #define PMUX_MASK 0x3 +#define MUX_AUTO_CLK_SEL_ALWAYS_ON_MASK GENMASK(5, 4) +#define MUX_AUTO_CLK_SEL_ALWAYS_ON_GPLL0_SEL \ + FIELD_PREP(MUX_AUTO_CLK_SEL_ALWAYS_ON_MASK, 0x03) static const u8 prim_pll_regs[PLL_OFF_MAX_REGS] = { [PLL_OFF_L_VAL] = 0x04, @@ -439,6 +445,14 @@ static int qcom_cpu_clk_msm8996_register_clks(struct device *dev, /* Ensure write goes through before PLLs are reconfigured */ udelay(5); + /* Set the auto clock sel always-on source to GPLL0/2 (300MHz) */ + regmap_update_bits(regmap, PWRCL_REG_OFFSET + MUX_OFFSET, + MUX_AUTO_CLK_SEL_ALWAYS_ON_MASK, + MUX_AUTO_CLK_SEL_ALWAYS_ON_GPLL0_SEL); + regmap_update_bits(regmap, PERFCL_REG_OFFSET + MUX_OFFSET, + MUX_AUTO_CLK_SEL_ALWAYS_ON_MASK, + MUX_AUTO_CLK_SEL_ALWAYS_ON_GPLL0_SEL); + clk_alpha_pll_configure(&pwrcl_pll, regmap, &hfpll_config); clk_alpha_pll_configure(&perfcl_pll, regmap, &hfpll_config); clk_alpha_pll_configure(&pwrcl_alt_pll, regmap, &altpll_config); @@ -447,11 +461,24 @@ static int qcom_cpu_clk_msm8996_register_clks(struct device *dev, /* Wait for PLL(s) to lock */ udelay(50); + /* Enable auto clock selection for both clusters */ + regmap_update_bits(regmap, PWRCL_REG_OFFSET + CLK_CTL_OFFSET, + CLK_CTL_AUTO_CLK_SEL, CLK_CTL_AUTO_CLK_SEL); + regmap_update_bits(regmap, PERFCL_REG_OFFSET + CLK_CTL_OFFSET, + CLK_CTL_AUTO_CLK_SEL, CLK_CTL_AUTO_CLK_SEL); + + /* Ensure write goes through before muxes are switched */ + udelay(5); + qcom_cpu_clk_msm8996_acd_init(regmap); + /* Pulse swallower and soft-start settings */ + regmap_write(regmap, PWRCL_REG_OFFSET + PSCTL_OFFSET, 0x00030005); + regmap_write(regmap, PERFCL_REG_OFFSET + PSCTL_OFFSET, 0x00030005); + /* Switch clusters to use the ACD leg */ - regmap_write(regmap, PWRCL_REG_OFFSET + MUX_OFFSET, 0x2); - regmap_write(regmap, PERFCL_REG_OFFSET + MUX_OFFSET, 0x2); + regmap_write(regmap, PWRCL_REG_OFFSET + MUX_OFFSET, 0x32); + regmap_write(regmap, PERFCL_REG_OFFSET + MUX_OFFSET, 0x32); for (i = 0; i < ARRAY_SIZE(cpu_msm8996_hw_clks); i++) { ret = devm_clk_hw_register(dev, cpu_msm8996_hw_clks[i]);