diff options
Diffstat (limited to 'firmware/target/arm')
-rw-r--r-- | firmware/target/arm/imx233/clkctrl-imx233.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/firmware/target/arm/imx233/clkctrl-imx233.c b/firmware/target/arm/imx233/clkctrl-imx233.c index 7b4869c749..ccccaae59d 100644 --- a/firmware/target/arm/imx233/clkctrl-imx233.c +++ b/firmware/target/arm/imx233/clkctrl-imx233.c | |||
@@ -225,8 +225,11 @@ bool imx233_clkctrl_is_usb_pll_enabled(void) | |||
225 | 225 | ||
226 | void imx233_clkctrl_set_auto_slow_divisor(enum imx233_as_div_t div) | 226 | void imx233_clkctrl_set_auto_slow_divisor(enum imx233_as_div_t div) |
227 | { | 227 | { |
228 | __REG_CLR(HW_CLKCTRL_HBUS) = HW_CLKCTRL_HBUS__SLOW_DIV_BM; | 228 | /* the SLOW_DIV must only be set when auto-slow is disabled */ |
229 | __REG_SET(HW_CLKCTRL_HBUS) = div; | 229 | bool old_status = imx233_clkctrl_is_auto_slow_enabled(); |
230 | imx233_clkctrl_enable_auto_slow(false); | ||
231 | __FIELD_SET(HW_CLKCTRL_HBUS, SLOW_DIV, div); | ||
232 | imx233_clkctrl_enable_auto_slow(old_status); | ||
230 | } | 233 | } |
231 | 234 | ||
232 | enum imx233_as_div_t imx233_clkctrl_get_auto_slow_divisor(void) | 235 | enum imx233_as_div_t imx233_clkctrl_get_auto_slow_divisor(void) |