All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Jernej Škrabec" <jernej.skrabec@gmail.com>
To: Jagan Teki <jagan@amarulasolutions.com>,
	Icenowy Zheng <icenowy@aosc.io>,
	Andre Przywara <andre.przywara@arm.com>
Cc: u-boot@lists.denx.de, linux-sunxi@googlegroups.com
Subject: Re: [PATCH v2] sunxi: clock: H6/H616: Fix PLL clock factor encodings
Date: Thu, 03 Jun 2021 17:12:13 +0200	[thread overview]
Message-ID: <1658772.Ul5fHAyusi@jernej-laptop> (raw)
In-Reply-To: <20210527004948.0c2ef6b6@slackpad.fritz.box>

Hi!

Dne četrtek, 27. maj 2021 ob 01:49:48 CEST je Andre Przywara napisal(a):
> On Wed,  5 May 2021 13:53:05 +0100
> Andre Przywara <andre.przywara@arm.com> wrote:
> 
> Hi,
> 
> > Most clock factors and dividers in the H6 PLLs use a "+1 encoding",
> > which we were missing on two occasions.
> 
> can someone please confirm that I didn't mess this up?
> 
> Cheers,
> Andre
> 
> > This fixes the MMC clock setup on the H6, which could be slightly off due
> > to the wrong parent frequency:
> > mmc 2 set mod-clk req 52000000 parent 1176000000 n 2 m 12 rate 49000000
> > 
> > Also the CPU frequency was a tad too high before.
> > 
> > Signed-off-by: Andre Przywara <andre.przywara@arm.com>
> > ---
> > Changelog v1 .. v2:
> > - Also fix PLL5 factor calculation (video, currently unused)
> > - Also fix PLL1 factor calculation (CPU clock)
> > 
> >  arch/arm/include/asm/arch-sunxi/clock_sun50i_h6.h | 4 ++--
> >  arch/arm/mach-sunxi/clock_sun50i_h6.c             | 2 +-
> >  2 files changed, 3 insertions(+), 3 deletions(-)
> > 
> > diff --git a/arch/arm/include/asm/arch-sunxi/clock_sun50i_h6.h
> > b/arch/arm/include/asm/arch-sunxi/clock_sun50i_h6.h index
> > 62abfc4ef6b..2e076cf594d 100644
> > --- a/arch/arm/include/asm/arch-sunxi/clock_sun50i_h6.h
> > +++ b/arch/arm/include/asm/arch-sunxi/clock_sun50i_h6.h
> > @@ -233,14 +233,14 @@ struct sunxi_ccm_reg {
> > 
> >  #define CCM_PLL1_OUT_EN			BIT(27)
> >  #define CCM_PLL1_CLOCK_TIME_2		(2 << 24)
> >  #define CCM_PLL1_CTRL_P(p)		((p) << 16)
> > 
> > -#define CCM_PLL1_CTRL_N(n)		((n) << 8)
> > +#define CCM_PLL1_CTRL_N(n)		(((n) - 1) << 8)
> > 
> >  /* pll5 bit field */
> >  #define CCM_PLL5_CTRL_EN		BIT(31)
> >  #define CCM_PLL5_LOCK_EN		BIT(29)
> >  #define CCM_PLL5_LOCK			BIT(28)
> >  #define CCM_PLL5_OUT_EN			BIT(27)
> > 
> > -#define CCM_PLL5_CTRL_N(n)		((n) << 8)
> > +#define CCM_PLL5_CTRL_N(n)		(((n) - 1) << 8)

H6 and H616 DRAM drivers actually consider this "- 1" in the code. Either drop 
this change or fix DRAM drivers.

With that:
Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com>

Best regards,
Jernej

> > 
> >  #define CCM_PLL5_CTRL_DIV1(div1)	((div1) << 0)
> >  #define CCM_PLL5_CTRL_DIV2(div0)	((div0) << 1)
> > 
> > diff --git a/arch/arm/mach-sunxi/clock_sun50i_h6.c
> > b/arch/arm/mach-sunxi/clock_sun50i_h6.c index 492fc4a3fca..a947463e0a5
> > 100644
> > --- a/arch/arm/mach-sunxi/clock_sun50i_h6.c
> > +++ b/arch/arm/mach-sunxi/clock_sun50i_h6.c
> > @@ -94,7 +94,7 @@ unsigned int clock_get_pll6(void)
> > 
> >  	int m = IS_ENABLED(CONFIG_MACH_SUN50I_H6) ? 4 : 2;
> >  	
> >  	uint32_t rval = readl(&ccm->pll6_cfg);
> > 
> > -	int n = ((rval & CCM_PLL6_CTRL_N_MASK) >> CCM_PLL6_CTRL_N_SHIFT);
> > +	int n = ((rval & CCM_PLL6_CTRL_N_MASK) >> CCM_PLL6_CTRL_N_SHIFT) + 
1;
> > 
> >  	int div1 = ((rval & CCM_PLL6_CTRL_DIV1_MASK) >>
> >  	
> >  			CCM_PLL6_CTRL_DIV1_SHIFT) + 1;
> >  	
> >  	int div2 = ((rval & CCM_PLL6_CTRL_DIV2_MASK) >>





      reply	other threads:[~2021-06-03 15:12 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-05 12:53 [PATCH v2] sunxi: clock: H6/H616: Fix PLL clock factor encodings Andre Przywara
2021-05-26 23:49 ` Andre Przywara
2021-06-03 15:12   ` Jernej Škrabec [this message]

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=1658772.Ul5fHAyusi@jernej-laptop \
    --to=jernej.skrabec@gmail.com \
    --cc=andre.przywara@arm.com \
    --cc=icenowy@aosc.io \
    --cc=jagan@amarulasolutions.com \
    --cc=linux-sunxi@googlegroups.com \
    --cc=u-boot@lists.denx.de \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.