@ -201,6 +201,7 @@ static int tmp108_attr_set(const struct device *dev,
@@ -201,6 +201,7 @@ static int tmp108_attr_set(const struct device *dev,
const struct sensor_value * val )
{
struct tmp108_data * drv_data = dev - > data ;
const struct tmp108_config * config = dev - > config ;
__maybe_unused uint16_t reg_value ;
__maybe_unused int32_t uval ;
uint16_t mode ;
@ -273,7 +274,21 @@ static int tmp108_attr_set(const struct device *dev,
@@ -273,7 +274,21 @@ static int tmp108_attr_set(const struct device *dev,
break ;
# endif /* CONFIG_TMP108_ALERT_INTERRUPTS */
case SENSOR_ATTR_SAMPLING_FREQUENCY :
case SENSOR_ATTR_SAMPLING_FREQUENCY : {
struct tmp_108_reg_def ams_as6212_reg_def = AMS_AS6212_CONF ;
if ( memcmp ( & config - > reg_def , & ams_as6212_reg_def , sizeof ( struct tmp_108_reg_def ) ) = =
0 ) {
if ( val - > val1 < 1 ) {
mode = TI_TMP108_FREQ_4_SECS ( dev ) ;
} else if ( val - > val1 < 4 ) {
mode = TI_TMP108_FREQ_1_HZ ( dev ) ;
} else if ( val - > val1 < 8 ) {
mode = TI_TMP108_FREQ_4_HZ ( dev ) ;
} else {
mode = AMS_AS6212_FREQ_8_HZ ( dev ) ;
}
} else {
if ( val - > val1 < 1 ) {
mode = TI_TMP108_FREQ_4_SECS ( dev ) ;
} else if ( val - > val1 < 4 ) {
@ -283,10 +298,12 @@ static int tmp108_attr_set(const struct device *dev,
@@ -283,10 +298,12 @@ static int tmp108_attr_set(const struct device *dev,
} else {
mode = TI_TMP108_FREQ_16_HZ ( dev ) ;
}
}
result = tmp108_write_config ( dev ,
TI_TMP108_FREQ_MASK ( dev ) ,
mode ) ;
break ;
}
case SENSOR_ATTR_TMP108_SHUTDOWN_MODE :
result = tmp108_write_config ( dev ,