Skip to content

Commit c5eb70b

Browse files
smalaejhedberg
authored andcommitted
wiseconnect: Remove ceil() function
Replace ceil() from rsi_adc.c and rsi_dac.c by a local function with similar implementation Signed-off-by: Sai Santhosh Malae <[email protected]> Signed-off-by: Jérôme Pouiller <[email protected]>
1 parent f598403 commit c5eb70b

File tree

3 files changed

+20
-12
lines changed

3 files changed

+20
-12
lines changed

wiseconnect/components/device/silabs/si91x/mcu/drivers/peripheral_drivers/inc/rsi_dac.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,14 @@ __STATIC_INLINE uint8_t analog_get_power_state(void)
116116
{
117117
return analog_power_ctrl.analog_power;
118118
}
119+
120+
__STATIC_INLINE float siwx91x_ceil(float x)
121+
{
122+
int val_int = (int)x;
123+
124+
return (x > (float)val_int) ? (float)(val_int + 1) : (float)val_int;
125+
}
126+
119127
uint32_t DAC_Init(uint8_t operation_mode, uint32_t sampling_rate, daccallbacFunc event);
120128

121129
rsi_error_t DAC_WriteData_StaticMode(int16_t input_data);

wiseconnect/components/device/silabs/si91x/mcu/drivers/peripheral_drivers/src/rsi_adc.c

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,7 @@ STATIC INLINE void config_ch_freq(adc_ch_config_t adcChConfig, adc_config_t adcC
299299

300300
// Configure channel frequency value for channel0
301301
adcInterConfig.ch_sampling_factor[*sampl_rate_index] =
302-
(uint16_t)ceil(fs_adc / adcChConfig.sampling_rate[*sampl_rate_index]);
302+
(uint16_t)siwx91x_ceil(fs_adc / adcChConfig.sampling_rate[*sampl_rate_index]);
303303

304304
if (adcInterConfig.ch_sampling_factor[*sampl_rate_index] < 2) {
305305
adcInterConfig.ch_sampling_factor[*sampl_rate_index] = 2;
@@ -314,7 +314,7 @@ STATIC INLINE void config_ch_freq(adc_ch_config_t adcChConfig, adc_config_t adcC
314314
// Configure channel frequency value
315315
adcInterConfig.ch_sampling_factor[ch_num] =
316316
adcInterConfig.ch_sampling_factor[ch_num - 1]
317-
* (uint16_t)ceil(adcChConfig.sampling_rate[ch_num - 1] / adcChConfig.sampling_rate[ch_num]);
317+
* (uint16_t)siwx91x_ceil(adcChConfig.sampling_rate[ch_num - 1] / adcChConfig.sampling_rate[ch_num]);
318318
}
319319

320320
/* Check configured channel frequency value is power of 2 or not,
@@ -370,18 +370,18 @@ rsi_error_t ADC_ChannelConfig(adc_ch_config_t adcChConfig, adc_config_t adcConfi
370370
f_sample_rate_achive = max_sample_rate_achive(min_sampl_time); // Need to implement Step2
371371

372372
// Find out total number of ADC cycle
373-
total_clk = (uint16_t)ceil((1 / (float)f_sample_rate_achive) / (1 / (float)adc_commn_config.adc_clk_src));
373+
total_clk = (uint16_t)siwx91x_ceil((1 / (float)f_sample_rate_achive) / (1 / (float)adc_commn_config.adc_clk_src));
374374

375375
// Find out number of ON cycles in total ADC cycle
376-
on_clk = (uint16_t)ceil(min_sampl_time / (1 / (float)adc_commn_config.adc_clk_src));
376+
on_clk = (uint16_t)siwx91x_ceil(min_sampl_time / (1 / (float)adc_commn_config.adc_clk_src));
377377

378378
if (total_clk == on_clk) {
379379
total_clk += 1;
380380
}
381381

382382
// modify the total cycle number for ADC static mode operation
383-
if (adcConfig.operation_mode && (total_clk < ceil(adc_commn_config.adc_clk_src / adcChConfig.sampling_rate[0]))) {
384-
total_clk = (uint16_t)ceil(adc_commn_config.adc_clk_src / adcChConfig.sampling_rate[0]);
383+
if (adcConfig.operation_mode && (total_clk < siwx91x_ceil(adc_commn_config.adc_clk_src / adcChConfig.sampling_rate[0]))) {
384+
total_clk = (uint16_t)siwx91x_ceil(adc_commn_config.adc_clk_src / adcChConfig.sampling_rate[0]);
385385
}
386386

387387
adc_commn_config.on_clk = on_clk;
@@ -542,19 +542,19 @@ rsi_error_t ADC_Per_ChannelConfig(adc_ch_config_t adcChConfig, adc_config_t adcC
542542
f_sample_rate_achive = max_sample_rate_achive(min_sampl_time); // Need to implement Step2
543543

544544
// Find out total number of ADC cycle
545-
total_clk = (uint16_t)ceil((1 / (float)f_sample_rate_achive) / (1 / (float)adc_commn_config.adc_clk_src));
545+
total_clk = (uint16_t)siwx91x_ceil((1 / (float)f_sample_rate_achive) / (1 / (float)adc_commn_config.adc_clk_src));
546546

547547
// Find out number of ON cycles in total ADC cycle
548-
on_clk = (uint16_t)ceil((min_sampl_time / (1 / (float)adc_commn_config.adc_clk_src)));
548+
on_clk = (uint16_t)siwx91x_ceil((min_sampl_time / (1 / (float)adc_commn_config.adc_clk_src)));
549549

550550
if (total_clk == on_clk) {
551551
total_clk = total_clk + 1;
552552
}
553553

554554
// modify the total cycle number for ADC static mode operation
555555
if ((adcConfig.operation_mode)
556-
&& (total_clk < ceil(adc_commn_config.adc_clk_src / adcChConfig.sampling_rate[adc_channel]))) {
557-
total_clk = (uint16_t)ceil(adc_commn_config.adc_clk_src / adcChConfig.sampling_rate[adc_channel]);
556+
&& (total_clk < siwx91x_ceil(adc_commn_config.adc_clk_src / adcChConfig.sampling_rate[adc_channel]))) {
557+
total_clk = (uint16_t)siwx91x_ceil(adc_commn_config.adc_clk_src / adcChConfig.sampling_rate[adc_channel]);
558558
}
559559

560560
adc_commn_config.on_clk = on_clk;

wiseconnect/components/device/silabs/si91x/mcu/drivers/peripheral_drivers/src/rsi_dac.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ uint32_t dac_set_clock(uint32_t sampl_rate)
252252
clk_src_val = RSI_CLK_GetBaseClock(ULPSS_AUX);
253253

254254
if ((clk_src_val * 2) >= sampl_rate) {
255-
clk_div_fac = (uint16_t)(ceil((2 * clk_src_val) / sampl_rate));
255+
clk_div_fac = (uint16_t)(siwx91x_ceil((2 * clk_src_val) / sampl_rate));
256256
if (clk_div_fac > 0x03FF) {
257257
clk_div_fac = 0x03FF;
258258
}
@@ -261,7 +261,7 @@ uint32_t dac_set_clock(uint32_t sampl_rate)
261261
}
262262
return clk_src_val;
263263
} else {
264-
clk_div_fac = (uint16_t)ceil((2 * system_clocks.ulpss_ref_clk) / sampl_rate);
264+
clk_div_fac = (uint16_t)siwx91x_ceil((2 * system_clocks.ulpss_ref_clk) / sampl_rate);
265265
if (clk_div_fac > 0x03FF) {
266266
clk_div_fac = 0x03FF;
267267
}

0 commit comments

Comments
 (0)