devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sowjanya Komatineni <skomatineni@nvidia.com>
To: <skomatineni@nvidia.com>, <thierry.reding@gmail.com>,
	<jonathanh@nvidia.com>, <digetx@gmail.com>,
	<mperttunen@nvidia.com>, <gregkh@linuxfoundation.org>,
	<sboyd@kernel.org>, <tglx@linutronix.de>, <robh+dt@kernel.org>,
	<mark.rutland@arm.com>
Cc: <allison@lohutok.net>, <pdeschrijver@nvidia.com>,
	<pgaikwad@nvidia.com>, <mturquette@baylibre.com>,
	<horms+renesas@verge.net.au>, <Jisheng.Zhang@synaptics.com>,
	<krzk@kernel.org>, <arnd@arndb.de>, <spujar@nvidia.com>,
	<josephl@nvidia.com>, <vidyas@nvidia.com>,
	<daniel.lezcano@linaro.org>, <mmaddireddy@nvidia.com>,
	<markz@nvidia.com>, <devicetree@vger.kernel.org>,
	<linux-clk@vger.kernel.org>, <linux-tegra@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>
Subject: [PATCH v1 08/17] clk: tegra: Use Tegra PMC helper function for PLLE IDDQ
Date: Mon, 18 Nov 2019 22:50:25 -0800	[thread overview]
Message-ID: <1574146234-3871-9-git-send-email-skomatineni@nvidia.com> (raw)
In-Reply-To: <1574146234-3871-1-git-send-email-skomatineni@nvidia.com>

Tegra PMC has PLLE IDDQ programming to bring the PLLE pads out of
DPD idle state through software by overriding the hardware control.

Currently Tegra clock driver programs Tegra PMC registers directly
for enabling software override and to bring PLLE pads out of DPD
idle state. With this, when Tegra PMC is in secure mode, any direct
PMC register access from non-secure world will not go through.

This patch updates Tegra clock driver to use Tegra PMC helper function
to clear PLLE IDDQ through software control that does PMC programming
using tegra_pmc_writel and tegra_pmc_readl which supports both secure
mode and non-secure mode PMC access.

Signed-off-by: Sowjanya Komatineni <skomatineni@nvidia.com>
---
 drivers/clk/tegra/clk-pll.c | 19 +------------------
 1 file changed, 1 insertion(+), 18 deletions(-)

diff --git a/drivers/clk/tegra/clk-pll.c b/drivers/clk/tegra/clk-pll.c
index f3c0a637174f..4ae9e282e7be 100644
--- a/drivers/clk/tegra/clk-pll.c
+++ b/drivers/clk/tegra/clk-pll.c
@@ -143,10 +143,6 @@
 #define PLLCX_MISC2_DEFAULT 0x30211200
 #define PLLCX_MISC3_DEFAULT 0x200
 
-#define PMC_SATA_PWRGT 0x1ac
-#define PMC_SATA_PWRGT_PLLE_IDDQ_VALUE BIT(5)
-#define PMC_SATA_PWRGT_PLLE_IDDQ_SWCTL BIT(4)
-
 #define PLLSS_MISC_KCP		0
 #define PLLSS_MISC_KVCO		0
 #define PLLSS_MISC_SETUP	0
@@ -863,24 +859,11 @@ static int clk_plle_training(struct tegra_clk_pll *pll)
 	u32 val;
 	unsigned long timeout;
 
-	if (!pll->pmc)
-		return -ENOSYS;
-
 	/*
 	 * PLLE is already disabled, and setup cleared;
 	 * create falling edge on PLLE IDDQ input.
 	 */
-	val = readl(pll->pmc + PMC_SATA_PWRGT);
-	val |= PMC_SATA_PWRGT_PLLE_IDDQ_VALUE;
-	writel(val, pll->pmc + PMC_SATA_PWRGT);
-
-	val = readl(pll->pmc + PMC_SATA_PWRGT);
-	val |= PMC_SATA_PWRGT_PLLE_IDDQ_SWCTL;
-	writel(val, pll->pmc + PMC_SATA_PWRGT);
-
-	val = readl(pll->pmc + PMC_SATA_PWRGT);
-	val &= ~PMC_SATA_PWRGT_PLLE_IDDQ_VALUE;
-	writel(val, pll->pmc + PMC_SATA_PWRGT);
+	tegra_pmc_clear_plle_iddq();
 
 	val = pll_readl_misc(pll);
 
-- 
2.7.4


  parent reply	other threads:[~2019-11-19  6:51 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-19  6:50 [PATCH v1 00/17] Remove direct Tegra PMC access in clock driver Sowjanya Komatineni
2019-11-19  6:50 ` [PATCH v1 01/17] soc: tegra: pmc: Add helper functions for PLLM overrides Sowjanya Komatineni
2019-11-19 19:32   ` Dmitry Osipenko
2019-11-19  6:50 ` [PATCH v1 02/17] soc: tegra: pmc: Add helper function for PLLE IDDQ override Sowjanya Komatineni
2019-11-19  6:50 ` [PATCH v1 03/17] dt-bindings: soc: tegra-pmc: Add Tegra PMC clock ids Sowjanya Komatineni
2019-12-03 22:08   ` Rob Herring
2019-12-03 22:19     ` Sowjanya Komatineni
2019-11-19  6:50 ` [PATCH v1 04/17] soc: tegra: Add Tegra PMC clock registrations into PMC driver Sowjanya Komatineni
2019-11-19 19:33   ` Dmitry Osipenko
2019-11-19 20:08     ` Sowjanya Komatineni
2019-11-19 20:29       ` Sowjanya Komatineni
2019-11-20 17:46       ` Dmitry Osipenko
2019-11-20 19:09         ` Sowjanya Komatineni
2019-11-19  6:50 ` [PATCH v1 05/17] dt-bindings: soc: tegra-pmc: Add id for Tegra PMC blink control Sowjanya Komatineni
2019-11-19  6:50 ` [PATCH v1 06/17] soc: pmc: Add blink output clock registration to Tegra PMC Sowjanya Komatineni
2019-11-19 19:34   ` Dmitry Osipenko
2019-11-19 22:13     ` Sowjanya Komatineni
2019-11-20  2:09       ` Sowjanya Komatineni
2019-11-20  4:26         ` Sowjanya Komatineni
2019-11-19  6:50 ` [PATCH v1 07/17] clk: tegra: Use Tegra PMC helper functions for PLLM overrides Sowjanya Komatineni
2019-11-19  6:50 ` Sowjanya Komatineni [this message]
2019-11-19  6:50 ` [PATCH v1 09/17] clk: tegra: Remove PMC base references from clock registration Sowjanya Komatineni
2019-11-19 19:33   ` Dmitry Osipenko
2019-11-19  6:50 ` [PATCH v1 10/17] clk: tegra: Remove tegra_pmc_clk_init along with clk ids Sowjanya Komatineni
2019-11-19 19:33   ` Dmitry Osipenko
2019-11-19  6:50 ` [PATCH v1 11/17] dt-bindings: clock: tegra: Remove pmc clock ids from clock dt-bindings Sowjanya Komatineni
2019-12-03 22:07   ` Rob Herring
2019-12-03 22:11     ` Sowjanya Komatineni
2019-11-19  6:50 ` [PATCH v1 12/17] arm: tegra: Add clock-cells property to Tegra pmc Sowjanya Komatineni
2019-11-19 19:32   ` Dmitry Osipenko
2019-11-19  6:50 ` [PATCH v1 13/17] arm64: " Sowjanya Komatineni
2019-11-19  6:50 ` [PATCH v1 14/17] dt-bindings: Add Tegra PMC clock configuration bindings Sowjanya Komatineni
2019-11-19  6:50 ` [PATCH v1 15/17] dt-bindings: tegra186-pmc: Add Tegra PMC clock bindings Sowjanya Komatineni
2019-12-03 22:11   ` Rob Herring
2019-12-03 23:28     ` Sowjanya Komatineni
2019-11-19  6:50 ` [PATCH v1 16/17] arm64: tegra: smaug: Change clk_out_2 provider from tegra_car to pmc Sowjanya Komatineni
2019-11-19  6:50 ` [PATCH v1 17/17] ASoC: nau8825: change Tegra " Sowjanya Komatineni

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1574146234-3871-9-git-send-email-skomatineni@nvidia.com \
    --to=skomatineni@nvidia.com \
    --cc=Jisheng.Zhang@synaptics.com \
    --cc=allison@lohutok.net \
    --cc=arnd@arndb.de \
    --cc=daniel.lezcano@linaro.org \
    --cc=devicetree@vger.kernel.org \
    --cc=digetx@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=horms+renesas@verge.net.au \
    --cc=jonathanh@nvidia.com \
    --cc=josephl@nvidia.com \
    --cc=krzk@kernel.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=markz@nvidia.com \
    --cc=mmaddireddy@nvidia.com \
    --cc=mperttunen@nvidia.com \
    --cc=mturquette@baylibre.com \
    --cc=pdeschrijver@nvidia.com \
    --cc=pgaikwad@nvidia.com \
    --cc=robh+dt@kernel.org \
    --cc=sboyd@kernel.org \
    --cc=spujar@nvidia.com \
    --cc=tglx@linutronix.de \
    --cc=thierry.reding@gmail.com \
    --cc=vidyas@nvidia.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).