[openwrt/openwrt] realtek: fix PLL register inconsistencies

LEDE Commits lede-commits at lists.infradead.org
Wed Aug 31 14:26:01 PDT 2022


hauke pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/6ff21c436dd93646f924efdd73c4b3fc59501ad3

commit 6ff21c436dd93646f924efdd73c4b3fc59501ad3
Author: Markus Stockhausen <markus.stockhausen at gmx.de>
AuthorDate: Tue Aug 30 16:44:02 2022 +0200

    realtek: fix PLL register inconsistencies
    
    Some devices have wrong/empty values in the PLL registers. Work
    around that by reporting the default values.
    
    Signed-off-by: Markus Stockhausen <markus.stockhausen at gmx.de>
---
 target/linux/realtek/files-5.10/drivers/clk/realtek/clk-rtl83xx.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/target/linux/realtek/files-5.10/drivers/clk/realtek/clk-rtl83xx.c b/target/linux/realtek/files-5.10/drivers/clk/realtek/clk-rtl83xx.c
index c3eb270f6e..9b8183fbeb 100644
--- a/target/linux/realtek/files-5.10/drivers/clk/realtek/clk-rtl83xx.c
+++ b/target/linux/realtek/files-5.10/drivers/clk/realtek/clk-rtl83xx.c
@@ -366,6 +366,9 @@ static unsigned long rtcl_recalc_rate(struct clk_hw *hw, unsigned long parent_ra
 
 	switch (rtcl_ccu->soc) {
 	case SOC_RTL838X:
+		if ((ctrl0 == 0) && (ctrl1 == 0) && (clk->idx == CLK_LXB))
+			return 200000000;
+
 		cmu_divn2_selb = RTL838X_PLL_CTRL1_CMU_DIVN2_SELB(ctrl1);
 		cmu_divn3_sel = rtcl_divn3[RTL838X_PLL_CTRL1_CMU_DIVN3_SEL(ctrl1)];
 		break;




More information about the lede-commits mailing list