Skip to content

Commit 045e3c3

Browse files
ankunsnordicjm
authored andcommitted
mpsl: nrf2220: provide default temp when sensor value can't be obtained
When asserts are turned off, the function fem_temperature_sensor_value_get provides now a valid default temperature when value can't be obtained from a temperature sensor. Signed-off-by: Andrzej Kuros <[email protected]>
1 parent 4910cbb commit 045e3c3

File tree

1 file changed

+14
-10
lines changed

1 file changed

+14
-10
lines changed

subsys/mpsl/fem/nrf2220/mpsl_fem_nrf2220.c

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,8 @@ SYS_INIT(mpsl_fem_init, POST_KERNEL, CONFIG_MPSL_FEM_INIT_PRIORITY);
210210

211211
#if defined(CONFIG_MPSL_FEM_NRF2220_TEMPERATURE_COMPENSATION)
212212

213+
#define NRF2220_TEMPERATURE_DEFAULT 25
214+
213215
static K_SEM_DEFINE(fem_temperature_new_value_sem, 0, 1);
214216

215217
#if defined(CONFIG_MPSL_FEM_NRF2220_TEMPERATURE_COMPENSATION_WITH_MPSL_SCHEDULER)
@@ -264,20 +266,24 @@ static int32_t fem_temperature_changed_update_now(void)
264266
static int8_t fem_temperature_sensor_value_get(void)
265267
{
266268
const struct device *dev = DEVICE_DT_GET_ONE(nordic_nrf_temp);
269+
struct sensor_value v = { .val1 = NRF2220_TEMPERATURE_DEFAULT };
270+
int ret = 0;
267271

268272
if (!device_is_ready(dev)) {
269273
__ASSERT(false, "Temperature sensor not ready");
274+
ret = -EIO;
270275
}
271276

272-
struct sensor_value v;
273-
int ret = sensor_sample_fetch(dev);
274-
275-
__ASSERT(ret == 0, "Can't fetch temperature sensor sample");
276-
277-
ret = sensor_channel_get(dev, SENSOR_CHAN_DIE_TEMP, &v);
278-
__ASSERT(ret == 0, "Can't get temperature of the die");
277+
if (ret == 0) {
278+
ret = sensor_sample_fetch(dev);
279+
__ASSERT(ret == 0, "Can't fetch temperature sensor sample");
280+
}
279281

280-
(void)ret;
282+
if (ret == 0) {
283+
ret = sensor_channel_get(dev, SENSOR_CHAN_DIE_TEMP, &v);
284+
__ASSERT(ret == 0, "Can't get temperature of the die");
285+
(void)ret;
286+
}
281287

282288
return v.val1;
283289
}
@@ -287,8 +293,6 @@ static int8_t fem_temperature_sensor_value_get(void)
287293

288294
#define FEM_TEMPERATURE_NEW_VALUE_SEM_TIMEOUT K_FOREVER
289295

290-
#define NRF2220_TEMPERATURE_DEFAULT 25
291-
292296
static int8_t fem_temperature_value = NRF2220_TEMPERATURE_DEFAULT;
293297

294298
void fem_temperature_change(int8_t temperature)

0 commit comments

Comments
 (0)