diff --git a/drivers/sensor/ak8975/ak8975.c b/drivers/sensor/ak8975/ak8975.c index 286aa2904a4..d23c107d080 100644 --- a/drivers/sensor/ak8975/ak8975.c +++ b/drivers/sensor/ak8975/ak8975.c @@ -77,8 +77,10 @@ static int ak8975_channel_get(const struct device *dev, ak8975_convert(val, drv_data->x_sample, drv_data->x_adj); } else if (chan == SENSOR_CHAN_MAGN_Y) { ak8975_convert(val, drv_data->y_sample, drv_data->y_adj); - } else { /* chan == SENSOR_CHAN_MAGN_Z */ + } else if (chan == SENSOR_CHAN_MAGN_Z) { ak8975_convert(val, drv_data->z_sample, drv_data->z_adj); + } else { + return -ENOTSUP; } return 0; diff --git a/drivers/sensor/akm09918c/akm09918c.c b/drivers/sensor/akm09918c/akm09918c.c index 759c00c91f4..f9c72ec21b9 100644 --- a/drivers/sensor/akm09918c/akm09918c.c +++ b/drivers/sensor/akm09918c/akm09918c.c @@ -86,7 +86,7 @@ static int akm09918c_channel_get(const struct device *dev, enum sensor_channel c akm09918c_convert(val, data->z_sample); } else { LOG_WRN("Invalid channel %d", chan); - return -EINVAL; + return -ENOTSUP; } return 0; diff --git a/drivers/sensor/bmc150_magn/bmc150_magn.c b/drivers/sensor/bmc150_magn/bmc150_magn.c index 40038abeadf..32b0cf8f25b 100644 --- a/drivers/sensor/bmc150_magn/bmc150_magn.c +++ b/drivers/sensor/bmc150_magn/bmc150_magn.c @@ -347,7 +347,7 @@ static int bmc150_magn_channel_get(const struct device *dev, bmc150_magn_convert(val + 2, data->sample_z); break; default: - return -EINVAL; + return -ENOTSUP; } return 0; diff --git a/drivers/sensor/bme680/bme680.c b/drivers/sensor/bme680/bme680.c index b900c20869e..2a9a21db889 100644 --- a/drivers/sensor/bme680/bme680.c +++ b/drivers/sensor/bme680/bme680.c @@ -291,7 +291,7 @@ static int bme680_channel_get(const struct device *dev, val->val2 = 0; break; default: - return -EINVAL; + return -ENOTSUP; } return 0; diff --git a/drivers/sensor/bmi323/bmi323.c b/drivers/sensor/bmi323/bmi323.c index ddca1d9ed90..a77e4271070 100644 --- a/drivers/sensor/bmi323/bmi323.c +++ b/drivers/sensor/bmi323/bmi323.c @@ -1096,7 +1096,7 @@ static int bosch_bmi323_driver_api_channel_get(const struct device *dev, enum se break; default: - ret = -ENODEV; + ret = -ENOTSUP; break; } diff --git a/drivers/sensor/bmm150/bmm150.c b/drivers/sensor/bmm150/bmm150.c index ae1a09657e0..6c480190a67 100644 --- a/drivers/sensor/bmm150/bmm150.c +++ b/drivers/sensor/bmm150/bmm150.c @@ -371,7 +371,7 @@ static int bmm150_channel_get(const struct device *dev, bmm150_convert(val + 2, drv_data->sample_z); break; default: - return -EINVAL; + return -ENOTSUP; } return 0; diff --git a/drivers/sensor/dps310/dps310.c b/drivers/sensor/dps310/dps310.c index 2e41e808325..3d91f5a7c48 100644 --- a/drivers/sensor/dps310/dps310.c +++ b/drivers/sensor/dps310/dps310.c @@ -703,7 +703,7 @@ static int dps310_channel_get(const struct device *dev, val->val2 = data->psr_val2; break; default: - return -EINVAL; + return -ENOTSUP; } return 0; diff --git a/drivers/sensor/grow_r502a/grow_r502a.c b/drivers/sensor/grow_r502a/grow_r502a.c index f677c324c4f..1985d499790 100644 --- a/drivers/sensor/grow_r502a/grow_r502a.c +++ b/drivers/sensor/grow_r502a/grow_r502a.c @@ -634,7 +634,7 @@ static int grow_r502a_channel_get(const struct device *dev, enum sensor_channel val->val1 = drv_data->template_count; } else { LOG_ERR("Invalid channel"); - return -EINVAL; + return -ENOTSUP; } return 0; diff --git a/drivers/sensor/hmc5883l/hmc5883l.c b/drivers/sensor/hmc5883l/hmc5883l.c index c2908ecd277..053b431ba0e 100644 --- a/drivers/sensor/hmc5883l/hmc5883l.c +++ b/drivers/sensor/hmc5883l/hmc5883l.c @@ -41,13 +41,15 @@ static int hmc5883l_channel_get(const struct device *dev, } else if (chan == SENSOR_CHAN_MAGN_Z) { hmc5883l_convert(val, drv_data->z_sample, hmc5883l_gain[drv_data->gain_idx]); - } else { /* chan == SENSOR_CHAN_MAGN_XYZ */ + } else if (chan == SENSOR_CHAN_MAGN_XYZ) { hmc5883l_convert(val, drv_data->x_sample, hmc5883l_gain[drv_data->gain_idx]); hmc5883l_convert(val + 1, drv_data->y_sample, hmc5883l_gain[drv_data->gain_idx]); hmc5883l_convert(val + 2, drv_data->z_sample, hmc5883l_gain[drv_data->gain_idx]); + } else { + return -ENOTSUP; } return 0; diff --git a/drivers/sensor/max31855/max31855.c b/drivers/sensor/max31855/max31855.c index bbb34a820d6..aa71ad7cfbe 100644 --- a/drivers/sensor/max31855/max31855.c +++ b/drivers/sensor/max31855/max31855.c @@ -97,7 +97,7 @@ static int max31855_channel_get(const struct device *dev, enum sensor_channel ch break; default: - return -EINVAL; + return -ENOTSUP; } return 0; diff --git a/drivers/sensor/max31865/max31865.c b/drivers/sensor/max31865/max31865.c index d88bd656b5f..bced243b1a8 100644 --- a/drivers/sensor/max31865/max31865.c +++ b/drivers/sensor/max31865/max31865.c @@ -270,7 +270,7 @@ static int max31865_channel_get(const struct device *dev, enum sensor_channel ch case SENSOR_CHAN_AMBIENT_TEMP: return sensor_value_from_double(val, data->temperature); default: - return -EINVAL; + return -ENOTSUP; } } diff --git a/drivers/sensor/mcp9808/mcp9808.c b/drivers/sensor/mcp9808/mcp9808.c index 10898d25ba7..0563a558559 100644 --- a/drivers/sensor/mcp9808/mcp9808.c +++ b/drivers/sensor/mcp9808/mcp9808.c @@ -83,6 +83,10 @@ static int mcp9808_channel_get(const struct device *dev, __ASSERT_NO_MSG(chan == SENSOR_CHAN_AMBIENT_TEMP); + if (chan != SENSOR_CHAN_AMBIENT_TEMP) { + return -ENOTSUP; + } + val->val1 = temp / MCP9808_TEMP_SCALE_CEL; temp -= val->val1 * MCP9808_TEMP_SCALE_CEL; val->val2 = (temp * 1000000) / MCP9808_TEMP_SCALE_CEL; diff --git a/drivers/sensor/mpr/mpr.c b/drivers/sensor/mpr/mpr.c index a6dc6214bd1..c01a16c8463 100644 --- a/drivers/sensor/mpr/mpr.c +++ b/drivers/sensor/mpr/mpr.c @@ -113,6 +113,10 @@ static int mpr_channel_get(const struct device *dev, __ASSERT_NO_MSG(chan == SENSOR_CHAN_PRESS); + if (chan != SENSOR_CHAN_PRESS) { + return -ENOTSUP; + } + uint64_t value; mpr_convert_reg(&data->reg_val, &value); diff --git a/drivers/sensor/mpu6050/mpu6050.c b/drivers/sensor/mpu6050/mpu6050.c index 99c1159d13b..9476b420bce 100644 --- a/drivers/sensor/mpu6050/mpu6050.c +++ b/drivers/sensor/mpu6050/mpu6050.c @@ -102,8 +102,10 @@ static int mpu6050_channel_get(const struct device *dev, mpu6050_convert_gyro(val, drv_data->gyro_z, drv_data->gyro_sensitivity_x10); break; - default: /* chan == SENSOR_CHAN_DIE_TEMP */ + case SENSOR_CHAN_DIE_TEMP: mpu6050_convert_temp(val, drv_data->temp); + default: + return -ENOTSUP; } return 0; diff --git a/drivers/sensor/ms5607/ms5607.c b/drivers/sensor/ms5607/ms5607.c index 15bf80ee3c6..77258e0ba96 100644 --- a/drivers/sensor/ms5607/ms5607.c +++ b/drivers/sensor/ms5607/ms5607.c @@ -155,7 +155,7 @@ static int ms5607_channel_get(const struct device *dev, val->val2 = data->pressure % 100 * 10000; break; default: - return -EINVAL; + return -ENOTSUP; } return 0; diff --git a/drivers/sensor/ms5837/ms5837.c b/drivers/sensor/ms5837/ms5837.c index 3dc645be6e9..9e1cdbfd7d0 100644 --- a/drivers/sensor/ms5837/ms5837.c +++ b/drivers/sensor/ms5837/ms5837.c @@ -184,7 +184,7 @@ static int ms5837_channel_get(const struct device *dev, val->val2 = data->pressure % 1000 * 1000; break; default: - return -EINVAL; + return -ENOTSUP; } return 0; diff --git a/drivers/sensor/pms7003/pms7003.c b/drivers/sensor/pms7003/pms7003.c index 02d92825d0a..a154baafcfd 100644 --- a/drivers/sensor/pms7003/pms7003.c +++ b/drivers/sensor/pms7003/pms7003.c @@ -162,7 +162,7 @@ static int pms7003_channel_get(const struct device *dev, val->val1 = drv_data->pm_10; val->val2 = 0; } else { - return -EINVAL; + return -ENOTSUP; } return 0; } diff --git a/drivers/sensor/si7210/si7210.c b/drivers/sensor/si7210/si7210.c index a1e8b235a67..68525ba695a 100644 --- a/drivers/sensor/si7210/si7210.c +++ b/drivers/sensor/si7210/si7210.c @@ -414,7 +414,7 @@ static int si7210_channel_get(const struct device *dev, val->val2 = tmp % 1000000; break; default: - return -EINVAL; + return -ENOTSUP; } return 0; diff --git a/drivers/sensor/sx9500/sx9500.c b/drivers/sensor/sx9500/sx9500.c index 77b182efc20..888359a8913 100644 --- a/drivers/sensor/sx9500/sx9500.c +++ b/drivers/sensor/sx9500/sx9500.c @@ -64,6 +64,10 @@ static int sx9500_channel_get(const struct device *dev, __ASSERT_NO_MSG(chan == SENSOR_CHAN_PROX); + if (chan != SENSOR_CHAN_PROX) { + return -ENOTSUP; + } + val->val1 = !!(data->prox_stat & (1 << (4 + CONFIG_SX9500_PROX_CHANNEL))); val->val2 = 0; diff --git a/drivers/sensor/ti_hdc20xx/ti_hdc20xx.c b/drivers/sensor/ti_hdc20xx/ti_hdc20xx.c index 53e86408a13..3d7ce7cc032 100644 --- a/drivers/sensor/ti_hdc20xx/ti_hdc20xx.c +++ b/drivers/sensor/ti_hdc20xx/ti_hdc20xx.c @@ -128,7 +128,7 @@ static int ti_hdc20xx_channel_get(const struct device *dev, val->val2 = ((tmp & 0xFFFF) * 15625U) >> 10; break; default: - return -EINVAL; + return -ENOTSUP; } return 0; diff --git a/drivers/sensor/vl53l1x/vl53l1.c b/drivers/sensor/vl53l1x/vl53l1.c index 34ae02e6869..a5bca21a307 100644 --- a/drivers/sensor/vl53l1x/vl53l1.c +++ b/drivers/sensor/vl53l1x/vl53l1.c @@ -342,6 +342,10 @@ static int vl53l1x_channel_get(const struct device *dev, __ASSERT_NO_MSG(chan == SENSOR_CHAN_DISTANCE); + if (chan != SENSOR_CHAN_DISTANCE) { + return -ENOTSUP; + } + /* Calling VL53L1_WaitMeasurementDataReady regardless of using interrupt or * polling method ensures user does not have to consider the time between * calling fetch and get.