hc
2023-11-06 9df731a176aab8e03b984b681b1bea01ccff6644
u-boot/drivers/clk/rockchip/clk_rk3568.c
....@@ -1,7 +1,7 @@
11 // SPDX-License-Identifier: GPL-2.0
22 /*
33 * Copyright (c) 2020 Fuzhou Rockchip Electronics Co., Ltd
4
- * Author: Elaine Zhang <zhangqing@rock-chips.com>
4
+ * Author: Joseph Chen <chenjh@rock-chips.com>
55 */
66
77 #include <common.h>
....@@ -1160,7 +1160,7 @@
11601160
11611161 switch (clk_id) {
11621162 case CLK_PWM1:
1163
- sel = (con & CLK_PWM1_SEL_MASK) >> CLK_PWM3_SEL_SHIFT;
1163
+ sel = (con & CLK_PWM1_SEL_MASK) >> CLK_PWM1_SEL_SHIFT;
11641164 break;
11651165 case CLK_PWM2:
11661166 sel = (con & CLK_PWM2_SEL_MASK) >> CLK_PWM2_SEL_SHIFT;
....@@ -1850,7 +1850,7 @@
18501850 rockchip_pll_set_rate(&rk3568_pll_clks[VPLL],
18511851 priv->cru, VPLL, div * rate);
18521852 } else {
1853
- for (i = 0; i <= DCLK_VOP_SEL_CPLL; i++) {
1853
+ for (i = sel; i <= DCLK_VOP_SEL_CPLL; i++) {
18541854 switch (i) {
18551855 case DCLK_VOP_SEL_GPLL:
18561856 pll_rate = priv->gpll_hz;
....@@ -3107,9 +3107,15 @@
31073107 if (parent->id == PLL_VPLL) {
31083108 rk_clrsetreg(&cru->clksel_con[con_id], DCLK0_VOP_SEL_MASK,
31093109 DCLK_VOP_SEL_VPLL << DCLK0_VOP_SEL_SHIFT);
3110
- } else {
3110
+ } else if (parent->id == PLL_HPLL) {
31113111 rk_clrsetreg(&cru->clksel_con[con_id], DCLK0_VOP_SEL_MASK,
31123112 DCLK_VOP_SEL_HPLL << DCLK0_VOP_SEL_SHIFT);
3113
+ } else if (parent->id == PLL_CPLL) {
3114
+ rk_clrsetreg(&cru->clksel_con[con_id], DCLK0_VOP_SEL_MASK,
3115
+ DCLK_VOP_SEL_CPLL << DCLK0_VOP_SEL_SHIFT);
3116
+ } else {
3117
+ rk_clrsetreg(&cru->clksel_con[con_id], DCLK0_VOP_SEL_MASK,
3118
+ DCLK_VOP_SEL_GPLL << DCLK0_VOP_SEL_SHIFT);
31133119 }
31143120
31153121 return 0;