The RK3588 clock driver has a few trivial copy-paste mistakes in its
clock handling.

Fix the trivial clock configuration errors:
- remove duplicate PLL_CON/MODE_CON defines
- rename and use PHP_PLL_CON macro
- use correct parent rate for TSADC clock
- use correct parent rate for UART clocks
- align BxPLL configuration to match other PLLs

Signed-off-by: Jonas Karlman <[email protected]>
---
 arch/arm/include/asm/arch-rockchip/cru_rk3588.h |  5 +----
 drivers/clk/rockchip/clk_rk3588.c               | 12 +++++-------
 2 files changed, 6 insertions(+), 11 deletions(-)

diff --git a/arch/arm/include/asm/arch-rockchip/cru_rk3588.h 
b/arch/arm/include/asm/arch-rockchip/cru_rk3588.h
index afce8a44af3b..39295adeb38a 100644
--- a/arch/arm/include/asm/arch-rockchip/cru_rk3588.h
+++ b/arch/arm/include/asm/arch-rockchip/cru_rk3588.h
@@ -105,9 +105,6 @@ struct pll_rate_table {
        unsigned int k;
 };
 
-#define RK3588_PLL_CON(x)              ((x) * 0x4)
-#define RK3588_MODE_CON                        0x280
-
 #define RK3588_PHP_CRU_BASE            0x8000
 #define RK3588_PMU_CRU_BASE            0x30000
 #define RK3588_BIGCORE0_CRU_BASE       0x50000
@@ -129,10 +126,10 @@ struct pll_rate_table {
 #define RK3588_SDMMC_CON0              0xC30
 #define RK3588_SDMMC_CON1              0xC34
 
+#define RK3588_PHP_PLL_CON(x)          ((x) * 0x4 + RK3588_PHP_CRU_BASE)
 #define RK3588_PHP_CLKGATE_CON(x)      ((x) * 0x4 + RK3588_PHP_CRU_BASE + 
0x800)
 #define RK3588_PHP_SOFTRST_CON(x)      ((x) * 0x4 + RK3588_PHP_CRU_BASE + 
0xa00)
 
-#define RK3588_PMU_PLL_CON(x)          ((x) * 0x4 + RK3588_PHP_CRU_BASE)
 #define RK3588_PMU_CLKSEL_CON(x)       ((x) * 0x4 + RK3588_PMU_CRU_BASE + 
0x300)
 #define RK3588_PMU_CLKGATE_CON(x)      ((x) * 0x4 + RK3588_PMU_CRU_BASE + 
0x800)
 #define RK3588_PMU_SOFTRST_CON(x)      ((x) * 0x4 + RK3588_PMU_CRU_BASE + 
0xa00)
diff --git a/drivers/clk/rockchip/clk_rk3588.c 
b/drivers/clk/rockchip/clk_rk3588.c
index b9fd4bec311b..157a02e011a5 100644
--- a/drivers/clk/rockchip/clk_rk3588.c
+++ b/drivers/clk/rockchip/clk_rk3588.c
@@ -44,11 +44,9 @@ static struct rockchip_pll_rate_table rk3588_pll_rates[] = {
 
 static struct rockchip_pll_clock rk3588_pll_clks[] = {
        [B0PLL] = PLL(pll_rk3588, PLL_B0PLL, RK3588_B0_PLL_CON(0),
-                     RK3588_B0_PLL_MODE_CON, 0, 15, 0,
-                     rk3588_pll_rates),
+                     RK3588_B0_PLL_MODE_CON, 0, 15, 0, rk3588_pll_rates),
        [B1PLL] = PLL(pll_rk3588, PLL_B1PLL, RK3588_B1_PLL_CON(8),
-                     RK3588_B1_PLL_MODE_CON, 0, 15, 0,
-                     rk3588_pll_rates),
+                     RK3588_B1_PLL_MODE_CON, 0, 15, 0, rk3588_pll_rates),
        [LPLL] = PLL(pll_rk3588, PLL_LPLL, RK3588_LPLL_CON(16),
                     RK3588_LPLL_MODE_CON, 0, 15, 0, rk3588_pll_rates),
        [V0PLL] = PLL(pll_rk3588, PLL_V0PLL, RK3588_PLL_CON(88),
@@ -61,7 +59,7 @@ static struct rockchip_pll_clock rk3588_pll_clks[] = {
                     RK3588_MODE_CON0, 2, 15, 0, rk3588_pll_rates),
        [NPLL] = PLL(pll_rk3588, PLL_NPLL, RK3588_PLL_CON(120),
                     RK3588_MODE_CON0, 0, 15, 0, rk3588_pll_rates),
-       [PPLL] = PLL(pll_rk3588, PLL_PPLL, RK3588_PMU_PLL_CON(128),
+       [PPLL] = PLL(pll_rk3588, PLL_PPLL, RK3588_PHP_PLL_CON(128),
                     RK3588_MODE_CON0, 10, 15, ROCKCHIP_PLL_FIXED_MODE,
                     rk3588_pll_rates),
 #ifdef CONFIG_XPL_BUILD
@@ -655,7 +653,7 @@ static ulong rk3588_adc_get_clk(struct rk3588_clk_priv 
*priv, ulong clk_id)
                if (sel == CLK_TSADC_SEL_24M)
                        prate = OSC_HZ;
                else
-                       prate = 100 * MHz;
+                       prate = priv->gpll_hz;
                return DIV_TO_RATE(prate, div);
        default:
                return -ENOENT;
@@ -1343,7 +1341,7 @@ static ulong rk3588_uart_set_rate(struct rk3588_clk_priv 
*priv,
        } else if (priv->cpll_hz % rate == 0) {
                clk_src = CLK_UART_SRC_SEL_CPLL;
                uart_src = CLK_UART_SEL_SRC;
-               div = DIV_ROUND_UP(priv->gpll_hz, rate);
+               div = DIV_ROUND_UP(priv->cpll_hz, rate);
        } else if (rate == OSC_HZ) {
                clk_src = CLK_UART_SRC_SEL_GPLL;
                uart_src = CLK_UART_SEL_XIN24M;
-- 
2.54.0

Reply via email to