* [PATCH] clk: tegra: PLLE spread spectrum control
@ 2013-09-26 15:34 Peter De Schrijver
2013-10-01 19:56 ` Stephen Warren
0 siblings, 1 reply; 5+ messages in thread
From: Peter De Schrijver @ 2013-09-26 15:34 UTC (permalink / raw)
To: linux-arm-kernel
Add spread spectrum control for PLLE in Tegra114.
Signed-off-by: Peter De Schrijver <pdeschrijver@nvidia.com>
---
drivers/clk/tegra/clk-pll.c | 30 +++++++++++++++++++++++++++++-
1 files changed, 29 insertions(+), 1 deletions(-)
diff --git a/drivers/clk/tegra/clk-pll.c b/drivers/clk/tegra/clk-pll.c
index 87f0533..f0577e3 100644
--- a/drivers/clk/tegra/clk-pll.c
+++ b/drivers/clk/tegra/clk-pll.c
@@ -77,7 +77,23 @@
#define PLLE_MISC_SETUP_VALUE (7 << PLLE_MISC_SETUP_BASE_SHIFT)
#define PLLE_SS_CTRL 0x68
-#define PLLE_SS_DISABLE (7 << 10)
+#define PLLE_SS_CNTL_BYPASS_SS BIT(10)
+#define PLLE_SS_CNTL_INTERP_RESET BIT(11)
+#define PLLE_SS_CNTL_SSC_BYP BIT(12)
+#define PLLE_SS_CNTL_CENTER BIT(14)
+#define PLLE_SS_CNTL_INVERT BIT(15)
+#define PLLE_SS_DISABLE (PLLE_SS_CNTL_BYPASS_SS | PLLE_SS_CNTL_INTERP_RESET |\
+ PLLE_SS_CNTL_SSC_BYP)
+#define PLLE_SS_MAX_MASK 0x1ff
+#define PLLE_SS_MAX_VAL 0x25
+#define PLLE_SS_INC_MASK (0xff << 16)
+#define PLLE_SS_INC_VAL (0x1 << 16)
+#define PLLE_SS_INCINTRV_MASK (0x3f << 24)
+#define PLLE_SS_INCINTRV_VAL (0x20 << 24)
+#define PLLE_SS_COEFFICIENTS_MASK \
+ (PLLE_SS_MAX_MASK | PLLE_SS_INC_MASK | PLLE_SS_INCINTRV_MASK)
+#define PLLE_SS_COEFFICIENTS_VAL \
+ (PLLE_SS_MAX_VAL | PLLE_SS_INC_VAL | PLLE_SS_INCINTRV_VAL)
#define PLLE_AUX_PLLP_SEL BIT(2)
#define PLLE_AUX_ENABLE_SWCTL BIT(4)
@@ -1286,6 +1302,18 @@ static int clk_plle_tegra114_enable(struct clk_hw *hw)
if (ret < 0)
goto out;
+ val = pll_readl(PLLE_SS_CTRL, pll);
+ val &= ~(PLLE_SS_CNTL_CENTER | PLLE_SS_CNTL_INVERT);
+ val &= ~PLLE_SS_COEFFICIENTS_MASK;
+ val |= PLLE_SS_COEFFICIENTS_VAL;
+ pll_writel(val, PLLE_SS_CTRL, pll);
+ val &= ~(PLLE_SS_CNTL_SSC_BYP | PLLE_SS_CNTL_BYPASS_SS);
+ pll_writel(val, PLLE_SS_CTRL, pll);
+ udelay(1);
+ val &= ~PLLE_SS_CNTL_INTERP_RESET;
+ pll_writel(val, PLLE_SS_CTRL, pll);
+ udelay(1);
+
/* TODO: enable hw control of xusb brick pll */
out:
--
1.7.7.rc0.72.g4b5ea.dirty
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH] clk: tegra: PLLE spread spectrum control
2013-09-26 15:34 [PATCH] clk: tegra: PLLE spread spectrum control Peter De Schrijver
@ 2013-10-01 19:56 ` Stephen Warren
2013-10-03 10:52 ` Peter De Schrijver
0 siblings, 1 reply; 5+ messages in thread
From: Stephen Warren @ 2013-10-01 19:56 UTC (permalink / raw)
To: linux-arm-kernel
On 09/26/2013 09:34 AM, Peter De Schrijver wrote:
> Add spread spectrum control for PLLE in Tegra114.
It would be useful to have some description of the end-user-visible
benefit of this change; why is it useful?
Tested-by: Stephen Warren <swarren@nvidia.com>
(on Beaver and Harmony, a PCIe Ethernet NIC passes traffic just fine).
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH] clk: tegra: PLLE spread spectrum control
2013-10-01 19:56 ` Stephen Warren
@ 2013-10-03 10:52 ` Peter De Schrijver
2013-10-03 15:23 ` Stephen Warren
0 siblings, 1 reply; 5+ messages in thread
From: Peter De Schrijver @ 2013-10-03 10:52 UTC (permalink / raw)
To: linux-arm-kernel
On Tue, Oct 01, 2013 at 09:56:26PM +0200, Stephen Warren wrote:
> On 09/26/2013 09:34 AM, Peter De Schrijver wrote:
> > Add spread spectrum control for PLLE in Tegra114.
>
> It would be useful to have some description of the end-user-visible
> benefit of this change; why is it useful?
spread spectrum clocking is a technique to reduce EMI caused by the clock
signal by modulating the frequency with a low frequency signal. This should
reduce interference with eg. Wifi or cellular modems on the same board.
Cheers,
Peter.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH] clk: tegra: PLLE spread spectrum control
2013-10-03 10:52 ` Peter De Schrijver
@ 2013-10-03 15:23 ` Stephen Warren
2013-10-03 15:35 ` Peter De Schrijver
0 siblings, 1 reply; 5+ messages in thread
From: Stephen Warren @ 2013-10-03 15:23 UTC (permalink / raw)
To: linux-arm-kernel
On 10/03/2013 04:52 AM, Peter De Schrijver wrote:
> On Tue, Oct 01, 2013 at 09:56:26PM +0200, Stephen Warren wrote:
>> On 09/26/2013 09:34 AM, Peter De Schrijver wrote:
>>> Add spread spectrum control for PLLE in Tegra114.
>>
>> It would be useful to have some description of the end-user-visible
>> benefit of this change; why is it useful?
>
> spread spectrum clocking is a technique to reduce EMI caused by the clock
> signal by modulating the frequency with a low frequency signal. This should
> reduce interference with eg. Wifi or cellular modems on the same board.
Great. The intent of my request was for that information to be included
in the patch description.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH] clk: tegra: PLLE spread spectrum control
2013-10-03 15:23 ` Stephen Warren
@ 2013-10-03 15:35 ` Peter De Schrijver
0 siblings, 0 replies; 5+ messages in thread
From: Peter De Schrijver @ 2013-10-03 15:35 UTC (permalink / raw)
To: linux-arm-kernel
On Thu, Oct 03, 2013 at 05:23:55PM +0200, Stephen Warren wrote:
> On 10/03/2013 04:52 AM, Peter De Schrijver wrote:
> > On Tue, Oct 01, 2013 at 09:56:26PM +0200, Stephen Warren wrote:
> >> On 09/26/2013 09:34 AM, Peter De Schrijver wrote:
> >>> Add spread spectrum control for PLLE in Tegra114.
> >>
> >> It would be useful to have some description of the end-user-visible
> >> benefit of this change; why is it useful?
> >
> > spread spectrum clocking is a technique to reduce EMI caused by the clock
> > signal by modulating the frequency with a low frequency signal. This should
> > reduce interference with eg. Wifi or cellular modems on the same board.
>
> Great. The intent of my request was for that information to be included
> in the patch description.
>
Mike,
Do you want a version 2 for this?
Cheers,
Peter.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2013-10-03 15:35 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-09-26 15:34 [PATCH] clk: tegra: PLLE spread spectrum control Peter De Schrijver
2013-10-01 19:56 ` Stephen Warren
2013-10-03 10:52 ` Peter De Schrijver
2013-10-03 15:23 ` Stephen Warren
2013-10-03 15:35 ` Peter De Schrijver
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).