diff --git a/applications/services/expansion/expansion.c b/applications/services/expansion/expansion.c index f2205d31c..c52283bef 100644 --- a/applications/services/expansion/expansion.c +++ b/applications/services/expansion/expansion.c @@ -398,9 +398,7 @@ void expansion_on_system_start(void* arg) { furi_record_create(RECORD_EXPANSION, instance); expansion_settings_load(&instance->settings); - if(instance->settings.uart_index < FuriHalSerialIdMax) { - expansion_enable(instance, instance->settings.uart_index); - } + expansion_resume(instance); } // Public API functions @@ -437,6 +435,12 @@ void expansion_disable(Expansion* instance) { furi_mutex_release(instance->state_mutex); } +void expansion_resume(Expansion* instance) { + if(instance->settings.uart_index < FuriHalSerialIdMax) { + expansion_enable(instance, instance->settings.uart_index); + } +} + ExpansionSettings* expansion_get_settings(Expansion* instance) { return &instance->settings; } diff --git a/applications/services/expansion/expansion.h b/applications/services/expansion/expansion.h index 5e4a03f83..876dd72d9 100644 --- a/applications/services/expansion/expansion.h +++ b/applications/services/expansion/expansion.h @@ -45,6 +45,16 @@ void expansion_enable(Expansion* instance, FuriHalSerialId serial_id); */ void expansion_disable(Expansion* instance); +/** + * @brief Resume support for expansion modules as configured in settings. + * + * Calling this function when expansion module support is already enabled + * will first disable the previous setting, then enable the current one. + * + * @param[in,out] instance pointer to the Expansion instance. + */ +void expansion_resume(Expansion* instance); + #ifdef __cplusplus } #endif diff --git a/targets/f7/api_symbols.csv b/targets/f7/api_symbols.csv index a54a69acb..f66b40c7c 100644 --- a/targets/f7/api_symbols.csv +++ b/targets/f7/api_symbols.csv @@ -927,6 +927,7 @@ Function,-,exp2f,float,float Function,-,exp2l,long double,long double Function,+,expansion_disable,void,Expansion* Function,+,expansion_enable,void,"Expansion*, FuriHalSerialId" +Function,+,expansion_resume,void,Expansion* Function,-,expf,float,float Function,-,expl,long double,long double Function,-,explicit_bzero,void,"void*, size_t"