linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] clk: rockchip: clk-pll: Fix CRU_xx_CON2 register usage
@ 2025-04-08  6:31 Alexander Shiyan
  2025-04-08  6:31 ` [PATCH 2/2] clk: rockchip: clk-pll: Typo fix Alexander Shiyan
  2025-04-08  7:31 ` [PATCH 1/2] clk: rockchip: clk-pll: Fix CRU_xx_CON2 register usage Heiko Stübner
  0 siblings, 2 replies; 4+ messages in thread
From: Alexander Shiyan @ 2025-04-08  6:31 UTC (permalink / raw)
  To: linux-rockchip
  Cc: Michael Turquette, Stephen Boyd, Heiko Stuebner, linux-clk,
	linux-arm-kernel, Alexander Shiyan

According to RK3588 TRM, CRU_(CPLL/GPLL/etc)_CON2 register
(rate-k value) does not use highword write enable mask.
Lets fix this.

Signed-off-by: Alexander Shiyan <eagle.alexander923@gmail.com>
---
 drivers/clk/rockchip/clk-pll.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/clk/rockchip/clk-pll.c b/drivers/clk/rockchip/clk-pll.c
index 2c2abb3b4210..77ba4d6e7b5f 100644
--- a/drivers/clk/rockchip/clk-pll.c
+++ b/drivers/clk/rockchip/clk-pll.c
@@ -959,7 +959,7 @@ static int rockchip_rk3588_pll_set_params(struct rockchip_clk_pll *pll,
 		       HIWORD_UPDATE(rate->s, RK3588_PLLCON1_S_MASK, RK3588_PLLCON1_S_SHIFT),
 		       pll->reg_base + RK3399_PLLCON(1));
 
-	writel_relaxed(HIWORD_UPDATE(rate->k, RK3588_PLLCON2_K_MASK, RK3588_PLLCON2_K_SHIFT),
+	writel_relaxed((rate->k & RK3588_PLLCON2_K_MASK) << RK3588_PLLCON2_K_SHIFT,
 		       pll->reg_base + RK3399_PLLCON(2));
 
 	/* set pll power up */
-- 
2.39.1



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 2/2] clk: rockchip: clk-pll: Typo fix
  2025-04-08  6:31 [PATCH 1/2] clk: rockchip: clk-pll: Fix CRU_xx_CON2 register usage Alexander Shiyan
@ 2025-04-08  6:31 ` Alexander Shiyan
  2025-04-08  7:31 ` [PATCH 1/2] clk: rockchip: clk-pll: Fix CRU_xx_CON2 register usage Heiko Stübner
  1 sibling, 0 replies; 4+ messages in thread
From: Alexander Shiyan @ 2025-04-08  6:31 UTC (permalink / raw)
  To: linux-rockchip
  Cc: Michael Turquette, Stephen Boyd, Heiko Stuebner, linux-clk,
	linux-arm-kernel, Alexander Shiyan

Fixed RK3399 -> RK3588 typo.
No functional changes.

Signed-off-by: Alexander Shiyan <eagle.alexander923@gmail.com>
---
 drivers/clk/rockchip/clk-pll.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/clk/rockchip/clk-pll.c b/drivers/clk/rockchip/clk-pll.c
index 77ba4d6e7b5f..6c5039bd661f 100644
--- a/drivers/clk/rockchip/clk-pll.c
+++ b/drivers/clk/rockchip/clk-pll.c
@@ -949,18 +949,18 @@ static int rockchip_rk3588_pll_set_params(struct rockchip_clk_pll *pll,
 	/* set pll power down */
 	writel(HIWORD_UPDATE(RK3588_PLLCON1_PWRDOWN,
 			     RK3588_PLLCON1_PWRDOWN, 0),
-	       pll->reg_base + RK3399_PLLCON(1));
+	       pll->reg_base + RK3588_PLLCON(1));
 
 	/* update pll values */
 	writel_relaxed(HIWORD_UPDATE(rate->m, RK3588_PLLCON0_M_MASK, RK3588_PLLCON0_M_SHIFT),
-		       pll->reg_base + RK3399_PLLCON(0));
+		       pll->reg_base + RK3588_PLLCON(0));
 
 	writel_relaxed(HIWORD_UPDATE(rate->p, RK3588_PLLCON1_P_MASK, RK3588_PLLCON1_P_SHIFT) |
 		       HIWORD_UPDATE(rate->s, RK3588_PLLCON1_S_MASK, RK3588_PLLCON1_S_SHIFT),
-		       pll->reg_base + RK3399_PLLCON(1));
+		       pll->reg_base + RK3588_PLLCON(1));
 
 	writel_relaxed((rate->k & RK3588_PLLCON2_K_MASK) << RK3588_PLLCON2_K_SHIFT,
-		       pll->reg_base + RK3399_PLLCON(2));
+		       pll->reg_base + RK3588_PLLCON(2));
 
 	/* set pll power up */
 	writel(HIWORD_UPDATE(0, RK3588_PLLCON1_PWRDOWN, 0),
-- 
2.39.1



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/2] clk: rockchip: clk-pll: Fix CRU_xx_CON2 register usage
  2025-04-08  6:31 [PATCH 1/2] clk: rockchip: clk-pll: Fix CRU_xx_CON2 register usage Alexander Shiyan
  2025-04-08  6:31 ` [PATCH 2/2] clk: rockchip: clk-pll: Typo fix Alexander Shiyan
@ 2025-04-08  7:31 ` Heiko Stübner
  2025-04-08 10:50   ` Alexander Shiyan
  1 sibling, 1 reply; 4+ messages in thread
From: Heiko Stübner @ 2025-04-08  7:31 UTC (permalink / raw)
  To: linux-rockchip, Alexander Shiyan
  Cc: Michael Turquette, Stephen Boyd, linux-clk, linux-arm-kernel,
	Alexander Shiyan, Kever Yang

Hi Alexander,

Am Dienstag, 8. April 2025, 08:31:25 Mitteleuropäische Sommerzeit schrieb Alexander Shiyan:
> According to RK3588 TRM, CRU_(CPLL/GPLL/etc)_CON2 register
> (rate-k value) does not use highword write enable mask.
> Lets fix this.
> 
> Signed-off-by: Alexander Shiyan <eagle.alexander923@gmail.com>

The commit message doesn't say, but did you check this on actual
hardware too?

Sometimes there is a disconnect between the TRM and actual hardware,
so the actual real-life situation should be checked.


As for a test-case, any write without write-mask to a register that
would require a write-mask would not come through.
So with your patch applied, does the register value change after
the write below when reading it back again?


Thanks
Heiko


> ---
>  drivers/clk/rockchip/clk-pll.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/clk/rockchip/clk-pll.c b/drivers/clk/rockchip/clk-pll.c
> index 2c2abb3b4210..77ba4d6e7b5f 100644
> --- a/drivers/clk/rockchip/clk-pll.c
> +++ b/drivers/clk/rockchip/clk-pll.c
> @@ -959,7 +959,7 @@ static int rockchip_rk3588_pll_set_params(struct rockchip_clk_pll *pll,
>  		       HIWORD_UPDATE(rate->s, RK3588_PLLCON1_S_MASK, RK3588_PLLCON1_S_SHIFT),
>  		       pll->reg_base + RK3399_PLLCON(1));
>  
> -	writel_relaxed(HIWORD_UPDATE(rate->k, RK3588_PLLCON2_K_MASK, RK3588_PLLCON2_K_SHIFT),
> +	writel_relaxed((rate->k & RK3588_PLLCON2_K_MASK) << RK3588_PLLCON2_K_SHIFT,
>  		       pll->reg_base + RK3399_PLLCON(2));
>  
>  	/* set pll power up */
> 






^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/2] clk: rockchip: clk-pll: Fix CRU_xx_CON2 register usage
  2025-04-08  7:31 ` [PATCH 1/2] clk: rockchip: clk-pll: Fix CRU_xx_CON2 register usage Heiko Stübner
@ 2025-04-08 10:50   ` Alexander Shiyan
  0 siblings, 0 replies; 4+ messages in thread
From: Alexander Shiyan @ 2025-04-08 10:50 UTC (permalink / raw)
  To: Heiko Stübner
  Cc: linux-rockchip, Michael Turquette, Stephen Boyd, linux-clk,
	linux-arm-kernel, Kever Yang

Hello.

Yes, everything works as expected:

# mw 0xfd7c01a8 0x00001234
# md 0xfd7c01a8+4
fd7c01a8: 00001234
# mw 0xfd7c01a8 0x00005678
# md 0xfd7c01a8+4
fd7c01a8: 00005678

вт, 8 апр. 2025 г. в 10:31, Heiko Stübner <heiko@sntech.de>:
>
> Hi Alexander,
>
> Am Dienstag, 8. April 2025, 08:31:25 Mitteleuropäische Sommerzeit schrieb Alexander Shiyan:
> > According to RK3588 TRM, CRU_(CPLL/GPLL/etc)_CON2 register
> > (rate-k value) does not use highword write enable mask.
> > Lets fix this.
> >
> > Signed-off-by: Alexander Shiyan <eagle.alexander923@gmail.com>
>
> The commit message doesn't say, but did you check this on actual
> hardware too?
>
> Sometimes there is a disconnect between the TRM and actual hardware,
> so the actual real-life situation should be checked.
>
>
> As for a test-case, any write without write-mask to a register that
> would require a write-mask would not come through.
> So with your patch applied, does the register value change after
> the write below when reading it back again?
>
>
> Thanks
> Heiko
>
>
> > ---
> >  drivers/clk/rockchip/clk-pll.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/clk/rockchip/clk-pll.c b/drivers/clk/rockchip/clk-pll.c
> > index 2c2abb3b4210..77ba4d6e7b5f 100644
> > --- a/drivers/clk/rockchip/clk-pll.c
> > +++ b/drivers/clk/rockchip/clk-pll.c
> > @@ -959,7 +959,7 @@ static int rockchip_rk3588_pll_set_params(struct rockchip_clk_pll *pll,
> >                      HIWORD_UPDATE(rate->s, RK3588_PLLCON1_S_MASK, RK3588_PLLCON1_S_SHIFT),
> >                      pll->reg_base + RK3399_PLLCON(1));
> >
> > -     writel_relaxed(HIWORD_UPDATE(rate->k, RK3588_PLLCON2_K_MASK, RK3588_PLLCON2_K_SHIFT),
> > +     writel_relaxed((rate->k & RK3588_PLLCON2_K_MASK) << RK3588_PLLCON2_K_SHIFT,
> >                      pll->reg_base + RK3399_PLLCON(2));
> >
> >       /* set pll power up */
> >
>
>
>
>


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2025-04-08 13:14 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-08  6:31 [PATCH 1/2] clk: rockchip: clk-pll: Fix CRU_xx_CON2 register usage Alexander Shiyan
2025-04-08  6:31 ` [PATCH 2/2] clk: rockchip: clk-pll: Typo fix Alexander Shiyan
2025-04-08  7:31 ` [PATCH 1/2] clk: rockchip: clk-pll: Fix CRU_xx_CON2 register usage Heiko Stübner
2025-04-08 10:50   ` Alexander Shiyan

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).