diff --git a/product/juno/module/juno_cdcel937/src/mod_juno_cdcel937.c b/product/juno/module/juno_cdcel937/src/mod_juno_cdcel937.c index 5c20c37211c7bebedb522c26315cd826b6df1e19..a67a3b4776a692509043ce0fc29503061dfdd731 100644 --- a/product/juno/module/juno_cdcel937/src/mod_juno_cdcel937.c +++ b/product/juno/module/juno_cdcel937/src/mod_juno_cdcel937.c @@ -201,12 +201,15 @@ static int read_configuration_y1(struct juno_cdcel937_dev_ctx *ctx, static int get_preset_low_precision(uint64_t rate, struct juno_clock_preset *preset) { - float freq; + uint32_t freq; fwk_assert(preset != NULL); - freq = rate / FWK_MHZ; - preset->PDIV = 230 / freq; + freq = (uint32_t)rate / (uint32_t)FWK_MHZ; + + fwk_assert(freq <= 230); + + preset->PDIV = UINT32_C(230) / freq; preset->N = freq * preset->PDIV; preset->M = 24;