diff --git a/examples/chef/efr32/BUILD.gn b/examples/chef/efr32/BUILD.gn index 0458f433b7ede4..bb200fbd6892b4 100644 --- a/examples/chef/efr32/BUILD.gn +++ b/examples/chef/efr32/BUILD.gn @@ -94,7 +94,7 @@ chip_data_model("chef-common") { # ThunderBoards, Explorer Kit and MGM240L do not support LCD (No LCD) if (silabs_board == "BRD4166A" || silabs_board == "BRD2601B" || - silabs_board == "BRD2703A" || silabs_board == "BRD4319A") { + silabs_board == "BRD2703A" || silabs_board == "BRD4319A" ) { show_qr_code = false disable_lcd = true } diff --git a/examples/light-switch-app/efr32/BUILD.gn b/examples/light-switch-app/efr32/BUILD.gn index f9a87873a5b36d..b53d14625ada6a 100644 --- a/examples/light-switch-app/efr32/BUILD.gn +++ b/examples/light-switch-app/efr32/BUILD.gn @@ -87,7 +87,8 @@ if (chip_enable_wifi) { # ThunderBoards, Explorer Kit and MGM240L do not support LCD (No LCD) if (silabs_board == "BRD4166A" || silabs_board == "BRD2601B" || - silabs_board == "BRD2703A" || silabs_board == "BRD4319A") { + silabs_board == "BRD2703A" || silabs_board == "BRD4319A" || + silabs_board == "BRD2704A") { show_qr_code = false disable_lcd = true } diff --git a/examples/light-switch-app/efr32/include/AppTask.h b/examples/light-switch-app/efr32/include/AppTask.h index a8e186083c23f6..ab79aafe64b62a 100644 --- a/examples/light-switch-app/efr32/include/AppTask.h +++ b/examples/light-switch-app/efr32/include/AppTask.h @@ -29,7 +29,11 @@ #include "AppEvent.h" #include "BaseApplication.h" #include "FreeRTOS.h" + +#ifdef SL_CATALOG_SIMPLE_BUTTON_PRESENT #include "sl_simple_button_instances.h" +#endif // SL_CATALOG_SIMPLE_BUTTON_PRESENT + #include "timers.h" // provides FreeRTOS timer support #include #include @@ -69,6 +73,7 @@ class AppTask : public BaseApplication CHIP_ERROR StartAppTask(); +#ifdef SL_CATALOG_SIMPLE_BUTTON_PRESENT /** * @brief Event handler when a button is pressed * Function posts an event for button processing @@ -78,6 +83,7 @@ class AppTask : public BaseApplication * SL_SIMPLE_BUTTON_RELEASED or SL_SIMPLE_BUTTON_DISABLED */ void ButtonEventHandler(const sl_button_t * buttonHandle, uint8_t btnAction) override; +#endif // #ifdef SL_CATALOG_SIMPLE_BUTTON_PRESENT /** * @brief Callback called by the identify-server when an identify command is received diff --git a/examples/light-switch-app/efr32/src/AppTask.cpp b/examples/light-switch-app/efr32/src/AppTask.cpp index 96459f9a188bb1..55c4d6a0d3ee4d 100644 --- a/examples/light-switch-app/efr32/src/AppTask.cpp +++ b/examples/light-switch-app/efr32/src/AppTask.cpp @@ -55,11 +55,10 @@ /********************************************************** * Defines and Constants *********************************************************/ - -#define SYSTEM_STATE_LED &sl_led_led0 - +#ifdef SL_CATALOG_SIMPLE_BUTTON_PRESENT #define APP_FUNCTION_BUTTON &sl_button_btn0 #define APP_LIGHT_SWITCH &sl_button_btn1 +#endif // SL_CATALOG_SIMPLE_BUTTON_PRESENT using namespace chip; using namespace ::chip::DeviceLayer; @@ -249,6 +248,7 @@ void AppTask::SwitchActionEventHandler(AppEvent * aEvent) } } +#ifdef SL_CATALOG_SIMPLE_BUTTON_PRESENT void AppTask::ButtonEventHandler(const sl_button_t * buttonHandle, uint8_t btnAction) { if (buttonHandle == NULL) @@ -271,3 +271,4 @@ void AppTask::ButtonEventHandler(const sl_button_t * buttonHandle, uint8_t btnAc sAppTask.PostEvent(&button_event); } } +#endif // SL_CATALOG_SIMPLE_BUTTON_PRESENT diff --git a/examples/light-switch-app/efr32/src/main.cpp b/examples/light-switch-app/efr32/src/main.cpp index 7c6cebba603c81..2a7a081ee32eb7 100644 --- a/examples/light-switch-app/efr32/src/main.cpp +++ b/examples/light-switch-app/efr32/src/main.cpp @@ -21,7 +21,11 @@ #include "AppConfig.h" #include "init_efrPlatform.h" + +#ifdef SL_CATALOG_SIMPLE_BUTTON_PRESENT #include "sl_simple_button_instances.h" +#endif // SL_CATALOG_SIMPLE_BUTTON_PRESENT + #include "sl_system_kernel.h" #include #include @@ -78,7 +82,9 @@ int main(void) appError(CHIP_ERROR_INTERNAL); } +#ifdef SL_CATALOG_SIMPLE_BUTTON_PRESENT void sl_button_on_change(const sl_button_t * handle) { AppTask::GetAppTask().ButtonEventHandler(handle, sl_button_get_state(handle)); } +#endif // SL_CATALOG_SIMPLE_BUTTON_PRESENT diff --git a/examples/lighting-app/efr32/BUILD.gn b/examples/lighting-app/efr32/BUILD.gn index 4a9ffa08a3a298..1536c38d9e81a9 100644 --- a/examples/lighting-app/efr32/BUILD.gn +++ b/examples/lighting-app/efr32/BUILD.gn @@ -87,7 +87,8 @@ if (chip_enable_wifi) { # ThunderBoards, Explorer Kit and MGM240L do not support LCD (No LCD) if (silabs_board == "BRD4166A" || silabs_board == "BRD2601B" || - silabs_board == "BRD2703A" || silabs_board == "BRD4319A") { + silabs_board == "BRD2703A" || silabs_board == "BRD4319A" || + silabs_board == "BRD2704A") { show_qr_code = false disable_lcd = true } diff --git a/examples/lighting-app/efr32/include/AppTask.h b/examples/lighting-app/efr32/include/AppTask.h index df80995592fd95..44029adf640445 100644 --- a/examples/lighting-app/efr32/include/AppTask.h +++ b/examples/lighting-app/efr32/include/AppTask.h @@ -30,7 +30,11 @@ #include "BaseApplication.h" #include "FreeRTOS.h" #include "LightingManager.h" + +#ifdef SL_CATALOG_SIMPLE_BUTTON_PRESENT #include "sl_simple_button_instances.h" +#endif // SL_CATALOG_SIMPLE_BUTTON_PRESENT + #include "timers.h" // provides FreeRTOS timer support #include #include @@ -69,7 +73,7 @@ class AppTask : public BaseApplication static void AppTaskMain(void * pvParameter); CHIP_ERROR StartAppTask(); - +#ifdef SL_CATALOG_SIMPLE_BUTTON_PRESENT /** * @brief Event handler when a button is pressed * Function posts an event for button processing @@ -79,7 +83,7 @@ class AppTask : public BaseApplication * SL_SIMPLE_BUTTON_RELEASED or SL_SIMPLE_BUTTON_DISABLED */ void ButtonEventHandler(const sl_button_t * buttonHandle, uint8_t btnAction) override; - +#endif // SL_CATALOG_SIMPLE_BUTTON_PRESENT /** * @brief Callback called by the identify-server when an identify command is received * diff --git a/examples/lighting-app/efr32/src/AppTask.cpp b/examples/lighting-app/efr32/src/AppTask.cpp index 5735943282d21c..d88e3e7619fd87 100644 --- a/examples/lighting-app/efr32/src/AppTask.cpp +++ b/examples/lighting-app/efr32/src/AppTask.cpp @@ -45,21 +45,26 @@ #include #ifdef ENABLE_WSTK_LEDS + #define SYSTEM_STATE_LED &sl_led_led0 +#ifdef SL_CATALOG_LED1_PRESENT #define LIGHT_LED &sl_led_led1 +#endif // SL_CATALOG_LED1_PRESENT #endif // ENABLE_WSTK_LEDS +#ifdef SL_CATALOG_SIMPLE_BUTTON_PRESENT #define APP_FUNCTION_BUTTON &sl_button_btn0 #define APP_LIGHT_SWITCH &sl_button_btn1 +#endif // SL_CATALOG_SIMPLE_BUTTON_PRESENT using namespace chip; using namespace ::chip::DeviceLayer; namespace { -#ifdef ENABLE_WSTK_LEDS +#if defined(ENABLE_WSTK_LEDS) && defined(SL_CATALOG_LED1_PRESENT) LEDWidget sLightLED; -#endif // ENABLE_WSTK_LEDS +#endif // ENABLE_WSTK_LEDS && SL_CATALOG_LED1_PRESENT EmberAfIdentifyEffectIdentifier sIdentifyEffect = EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_STOP_EFFECT; @@ -154,10 +159,10 @@ CHIP_ERROR AppTask::Init() LightMgr().SetCallbacks(ActionInitiated, ActionCompleted); -#ifdef ENABLE_WSTK_LEDS +#if defined(ENABLE_WSTK_LEDS) && defined(SL_CATALOG_LED1_PRESENT) sLightLED.Init(LIGHT_LED); sLightLED.Set(LightMgr().IsLightOn()); -#endif // ENABLE_WSTK_LEDS +#endif // ENABLE_WSTK_LEDS && SL_CATALOG_LED1_PRESENT return err; } @@ -247,6 +252,7 @@ void AppTask::LightActionEventHandler(AppEvent * aEvent) } } +#ifdef SL_CATALOG_SIMPLE_BUTTON_PRESENT void AppTask::ButtonEventHandler(const sl_button_t * buttonHandle, uint8_t btnAction) { if (buttonHandle == NULL) @@ -269,6 +275,7 @@ void AppTask::ButtonEventHandler(const sl_button_t * buttonHandle, uint8_t btnAc sAppTask.PostEvent(&button_event); } } +#endif // SL_CATALOG_SIMPLE_BUTTON_PRESENT void AppTask::ActionInitiated(LightingManager::Action_t aAction, int32_t aActor) { @@ -276,9 +283,9 @@ void AppTask::ActionInitiated(LightingManager::Action_t aAction, int32_t aActor) bool lightOn = aAction == LightingManager::ON_ACTION; EFR32_LOG("Turning light %s", (lightOn) ? "On" : "Off") -#ifdef ENABLE_WSTK_LEDS +#if defined(ENABLE_WSTK_LEDS) && defined(SL_CATALOG_LED1_PRESENT) sLightLED.Set(lightOn); -#endif // ENABLE_WSTK_LEDS +#endif // ENABLE_WSTK_LEDS && SL_CATALOG_LED1_PRESENT #ifdef DISPLAY_ENABLED sAppTask.GetLCD().WriteDemoUI(lightOn); diff --git a/examples/lighting-app/efr32/src/main.cpp b/examples/lighting-app/efr32/src/main.cpp index c9838ac87b9e5a..076775de97cc3d 100644 --- a/examples/lighting-app/efr32/src/main.cpp +++ b/examples/lighting-app/efr32/src/main.cpp @@ -21,7 +21,11 @@ #include "AppConfig.h" #include "init_efrPlatform.h" + +#ifdef SL_CATALOG_SIMPLE_BUTTON_PRESENT #include "sl_simple_button_instances.h" +#endif // SL_CATALOG_SIMPLE_BUTTON_PRESENT + #include "sl_system_kernel.h" #include #include @@ -33,7 +37,7 @@ #include #endif -#define BLE_DEV_NAME "SiLabs-Light" +#define BLE_DEV_NAME "BRD2704A-SiLabs-Light" using namespace ::chip; using namespace ::chip::Inet; using namespace ::chip::DeviceLayer; @@ -78,7 +82,9 @@ int main(void) appError(CHIP_ERROR_INTERNAL); } +#ifdef SL_CATALOG_SIMPLE_BUTTON_PRESENT void sl_button_on_change(const sl_button_t * handle) { AppTask::GetAppTask().ButtonEventHandler(handle, sl_button_get_state(handle)); } +#endif // SL_CATALOG_SIMPLE_BUTTON_PRESENT diff --git a/examples/lock-app/efr32/BUILD.gn b/examples/lock-app/efr32/BUILD.gn index 77df63b61c1868..a73aad2f760b22 100644 --- a/examples/lock-app/efr32/BUILD.gn +++ b/examples/lock-app/efr32/BUILD.gn @@ -87,7 +87,8 @@ if (chip_enable_wifi) { # ThunderBoards, Explorer Kit and MGM240L do not support LCD (No LCD) if (silabs_board == "BRD4166A" || silabs_board == "BRD2601B" || - silabs_board == "BRD2703A" || silabs_board == "BRD4319A") { + silabs_board == "BRD2703A" || silabs_board == "BRD4319A" || + silabs_board == "BRD2704A") { show_qr_code = false disable_lcd = true } diff --git a/examples/lock-app/efr32/include/AppTask.h b/examples/lock-app/efr32/include/AppTask.h index a28837e776b85a..8ff3ccb725fcf5 100644 --- a/examples/lock-app/efr32/include/AppTask.h +++ b/examples/lock-app/efr32/include/AppTask.h @@ -30,7 +30,11 @@ #include "BaseApplication.h" #include "FreeRTOS.h" #include "LockManager.h" + +#ifdef SL_CATALOG_SIMPLE_BUTTON_PRESENT #include "sl_simple_button_instances.h" +#endif // SL_CATALOG_SIMPLE_BUTTON_PRESENT + #include "timers.h" // provides FreeRTOS timer support #include #include @@ -75,6 +79,7 @@ class AppTask : public BaseApplication static void ActionInitiated(LockManager::Action_t aAction, int32_t aActor); static void ActionCompleted(LockManager::Action_t aAction); +#ifdef SL_CATALOG_SIMPLE_BUTTON_PRESENT /** * @brief Event handler when a button is pressed * Function posts an event for button processing @@ -84,6 +89,7 @@ class AppTask : public BaseApplication * SL_SIMPLE_BUTTON_RELEASED or SL_SIMPLE_BUTTON_DISABLED */ void ButtonEventHandler(const sl_button_t * buttonHandle, uint8_t btnAction) override; +#endif /** * @brief Callback called by the identify-server when an identify command is received @@ -109,6 +115,7 @@ class AppTask : public BaseApplication */ CHIP_ERROR Init(); +#ifdef SL_CATALOG_SIMPLE_BUTTON_PRESENT /** * @brief PB0 Button event processing function * Press and hold will trigger a factory reset timer start @@ -125,6 +132,7 @@ class AppTask : public BaseApplication * @param aEvent button event being processed */ static void SwitchActionEventHandler(AppEvent * aEvent); +#endif // SL_CATALOG_SIMPLE_BUTTON_PRESENT /** * @brief Update Cluster State diff --git a/examples/lock-app/efr32/src/AppTask.cpp b/examples/lock-app/efr32/src/AppTask.cpp index f624eb50073234..bc46bf6c67949f 100644 --- a/examples/lock-app/efr32/src/AppTask.cpp +++ b/examples/lock-app/efr32/src/AppTask.cpp @@ -57,7 +57,10 @@ #ifdef ENABLE_WSTK_LEDS #define SYSTEM_STATE_LED &sl_led_led0 + +#ifdef SL_CATALOG_LED1_PRESENT #define LOCK_STATE_LED &sl_led_led1 +#endif // SL_CATALOG_LED1_PRESENT #endif // ENABLE_WSTK_LEDS #define APP_FUNCTION_BUTTON &sl_button_btn0 @@ -73,7 +76,7 @@ using namespace ::chip::DeviceLayer::Internal; using namespace EFR32DoorLock::LockInitParams; namespace { -#ifdef ENABLE_WSTK_LEDS +#if defined(ENABLE_WSTK_LEDS) && defined(SL_CATALOG_LED1_PRESENT) LEDWidget sLockLED; #endif // ENABLE_WSTK_LEDS @@ -235,11 +238,11 @@ CHIP_ERROR AppTask::Init() LockMgr().SetCallbacks(ActionInitiated, ActionCompleted); -#ifdef ENABLE_WSTK_LEDS +#if defined(ENABLE_WSTK_LEDS) && defined(SL_CATALOG_LED1_PRESENT) // Initialize LEDs sLockLED.Init(LOCK_STATE_LED); sLockLED.Set(state.Value() == DlLockState::kUnlocked); -#endif // ENABLE_WSTK_LEDS +#endif // ENABLE_WSTK_LEDS && SL_CATALOG_LED1_PRESENT chip::DeviceLayer::PlatformMgr().ScheduleWork(UpdateClusterState, reinterpret_cast(nullptr)); @@ -343,6 +346,7 @@ void AppTask::LockActionEventHandler(AppEvent * aEvent) } } +#ifdef SL_CATALOG_SIMPLE_BUTTON_PRESENT void AppTask::ButtonEventHandler(const sl_button_t * buttonHandle, uint8_t btnAction) { if (buttonHandle == NULL) @@ -365,6 +369,7 @@ void AppTask::ButtonEventHandler(const sl_button_t * buttonHandle, uint8_t btnAc sAppTask.PostEvent(&button_event); } } +#endif // SL_CATALOG_SIMPLE_BUTTON_PRESENT void AppTask::ActionInitiated(LockManager::Action_t aAction, int32_t aActor) { @@ -372,9 +377,9 @@ void AppTask::ActionInitiated(LockManager::Action_t aAction, int32_t aActor) { bool locked = (aAction == LockManager::LOCK_ACTION); EFR32_LOG("%s Action has been initiated", (locked) ? "Lock" : "Unlock"); -#ifdef ENABLE_WSTK_LEDS +#if defined(ENABLE_WSTK_LEDS) && defined(SL_CATALOG_LED1_PRESENT) sLockLED.Set(!locked); -#endif // ENABLE_WSTK_LEDS +#endif // ENABLE_WSTK_LEDS && SL_CATALOG_LED1_PRESENT #ifdef DISPLAY_ENABLED sAppTask.GetLCD().WriteDemoUI(locked); diff --git a/examples/lock-app/efr32/src/main.cpp b/examples/lock-app/efr32/src/main.cpp index 0856b9f11baf83..cda1894be2cf1d 100644 --- a/examples/lock-app/efr32/src/main.cpp +++ b/examples/lock-app/efr32/src/main.cpp @@ -21,7 +21,11 @@ #include "AppConfig.h" #include "init_efrPlatform.h" + +#ifdef SL_CATALOG_SIMPLE_BUTTON_PRESENT #include "sl_simple_button_instances.h" +#endif // SL_CATALOG_SIMPLE_BUTTON_PRESENT + #include "sl_system_kernel.h" #include #include @@ -78,7 +82,9 @@ int main(void) appError(CHIP_ERROR_INTERNAL); } +#ifdef SL_CATALOG_SIMPLE_BUTTON_PRESENT void sl_button_on_change(const sl_button_t * handle) { AppTask::GetAppTask().ButtonEventHandler(handle, sl_button_get_state(handle)); } +#endif // SL_CATALOG_SIMPLE_BUTTON_PRESENT diff --git a/examples/platform/efr32/BaseApplication.cpp b/examples/platform/efr32/BaseApplication.cpp index bef8eb6ef54e0c..2d8dcd7d93aea3 100644 --- a/examples/platform/efr32/BaseApplication.cpp +++ b/examples/platform/efr32/BaseApplication.cpp @@ -78,8 +78,9 @@ #define SYSTEM_STATE_LED &sl_led_led0 #endif // ENABLE_WSTK_LEDS +#ifdef SL_CATALOG_SIMPLE_BUTTON_PRESENT #define APP_FUNCTION_BUTTON &sl_button_btn0 - +#endif // SL_CATALOG_SIMPLE_BUTTON_PRESENT using namespace chip; using namespace ::chip::DeviceLayer; @@ -394,6 +395,7 @@ void BaseApplication::LightEventHandler() #endif // ENABLE_WSTK_LEDS } +#ifdef SL_CATALOG_SIMPLE_BUTTON_PRESENT void BaseApplication::ButtonHandler(AppEvent * aEvent) { // To trigger software update: press the APP_FUNCTION_BUTTON button briefly (< @@ -457,6 +459,7 @@ void BaseApplication::ButtonHandler(AppEvent * aEvent) } } } +#endif // SL_CATALOG_SIMPLE_BUTTON_PRESENT void BaseApplication::CancelFunctionTimer() { diff --git a/examples/platform/efr32/BaseApplication.h b/examples/platform/efr32/BaseApplication.h index febd7aa68591b2..9239361e48a329 100644 --- a/examples/platform/efr32/BaseApplication.h +++ b/examples/platform/efr32/BaseApplication.h @@ -28,7 +28,11 @@ #include "AppEvent.h" #include "FreeRTOS.h" + +#ifdef SL_CATALOG_SIMPLE_BUTTON_PRESENT #include "sl_simple_button_instances.h" +#endif // SL_CATALOG_SIMPLE_BUTTON_PRESENT + #include "timers.h" // provides FreeRTOS timer support #include #include @@ -88,6 +92,7 @@ class BaseApplication static SilabsLCD & GetLCD(void); #endif +#ifdef SL_CATALOG_SIMPLE_BUTTON_PRESENT /** * @brief Event handler when a button is pressed * Function posts an event for button processing @@ -97,6 +102,7 @@ class BaseApplication * SL_SIMPLE_BUTTON_RELEASED or SL_SIMPLE_BUTTON_DISABLED */ virtual void ButtonEventHandler(const sl_button_t * buttonHandle, uint8_t btnAction) = 0; +#endif // SL_CATALOG_SIMPLE_BUTTON_PRESENT /** * @brief Function called to start the LED light timer @@ -156,7 +162,7 @@ class BaseApplication * @param aEvent post event being processed */ static void FunctionEventHandler(AppEvent * aEvent); - +#ifdef SL_CATALOG_SIMPLE_BUTTON_PRESENT /** * @brief PB0 Button event processing function * Press and hold will trigger a factory reset timer start @@ -165,7 +171,7 @@ class BaseApplication * @param aEvent button event being processed */ static void ButtonHandler(AppEvent * aEvent); - +#endif /** * @brief Light Timer finished callback function * Calls LED processing function diff --git a/examples/thermostat/efr32/BUILD.gn b/examples/thermostat/efr32/BUILD.gn index 3c4190218c68c6..34dda80fa6e5a2 100644 --- a/examples/thermostat/efr32/BUILD.gn +++ b/examples/thermostat/efr32/BUILD.gn @@ -84,7 +84,8 @@ if (chip_enable_wifi) { # ThunderBoards, Explorer Kit and MGM240L do not support LCD (No LCD) if (silabs_board == "BRD4166A" || silabs_board == "BRD2601B" || - silabs_board == "BRD2703A" || silabs_board == "BRD4319A") { + silabs_board == "BRD2703A" || silabs_board == "BRD4319A" || + silabs_board == "BRD2704A") { show_qr_code = false disable_lcd = true } diff --git a/examples/window-app/efr32/BUILD.gn b/examples/window-app/efr32/BUILD.gn index 5b781828462497..1fddcdf4e4f996 100644 --- a/examples/window-app/efr32/BUILD.gn +++ b/examples/window-app/efr32/BUILD.gn @@ -83,7 +83,8 @@ if (chip_enable_wifi) { # ThunderBoards, Explorer Kit and MGM240L do not support LCD (No LCD) if (silabs_board == "BRD4166A" || silabs_board == "BRD2601B" || - silabs_board == "BRD2703A" || silabs_board == "BRD4319A") { + silabs_board == "BRD2703A" || silabs_board == "BRD4319A" || + silabs_board == "BRD2704A") { show_qr_code = false disable_lcd = true } diff --git a/src/platform/EFR32/Logging.cpp b/src/platform/EFR32/Logging.cpp index 0a3d5025bfa4b9..14334de98a732d 100644 --- a/src/platform/EFR32/Logging.cpp +++ b/src/platform/EFR32/Logging.cpp @@ -18,6 +18,8 @@ #include #include +#include "rail_types.h" + #ifdef PW_RPC_ENABLED #include "PigweedLogger.h" #endif @@ -478,4 +480,11 @@ extern "C" void vApplicationGetTimerTaskMemory(StaticTask_t ** ppxTimerTaskTCBBu configMINIMAL_STACK_SIZE is specified in words, not bytes. */ *pulTimerTaskStackSize = configTIMER_TASK_STACK_DEPTH; } + + +extern "C" void RAILCb_AssertFailed(RAIL_Handle_t railHandle, uint32_t errorCode) +{ + EFR32_LOG("RAIL Assert Failed"); + while(1); +} #endif // HARD_FAULT_LOG_ENABLE && EFR32_LOG_ENABLED diff --git a/third_party/silabs/efr32_sdk.gni b/third_party/silabs/efr32_sdk.gni index bd7876d48ebb2c..3b9d46864e403e 100644 --- a/third_party/silabs/efr32_sdk.gni +++ b/third_party/silabs/efr32_sdk.gni @@ -34,19 +34,28 @@ declare_args() { } # Explorer Kit and MGM240L do not have external flash -if (silabs_board == "BRD2703A" || silabs_board == "BRD4319A") { +if (silabs_board == "BRD2703A" || silabs_board == "BRD4319A" || + silabs_board == "BRD2704A") { use_external_flash = false } # Enable LEDs by default use_wstk_leds = true +# Enable Buttons by default +use_wstk_buttons = true + # Board does not support LEDs and Buttons at the same time if (silabs_board == "BRD4317A" || silabs_board == "BRD4316A" || silabs_board == "BRD4319A") { use_wstk_leds = false } +# Board does not support buttons +if (silabs_board == "BRD2704A") { + use_wstk_buttons = false +} + assert(efr32_sdk_root != "", "efr32_sdk_root must be specified") # Defines an efr32 SDK build target. @@ -91,7 +100,6 @@ template("efr32_sdk") { "${efr32_sdk_root}/platform/CMSIS/Core/Include", "${efr32_sdk_root}/platform/CMSIS/RTOS2/Include", "${efr32_sdk_root}/platform/common/inc", - "${efr32_sdk_root}/platform/driver/button/inc", "${efr32_sdk_root}/platform/emdrv/common/inc", "${efr32_sdk_root}/platform/emdrv/gpiointerrupt/inc", "${efr32_sdk_root}/platform/emdrv/dmadrv/config", @@ -199,6 +207,10 @@ template("efr32_sdk") { defines += [ "ENABLE_WSTK_LEDS" ] } + if (use_wstk_buttons) { + _include_dirs += [ "${efr32_sdk_root}/platform/driver/button/inc" ] + } + if (defined(invoker.enable_sleepy_device)) { if (invoker.enable_sleepy_device) { defines += [ @@ -395,8 +407,6 @@ template("efr32_sdk") { "${efr32_sdk_root}/platform/bootloader/api/btl_interface_storage.c", "${efr32_sdk_root}/platform/bootloader/security/sha/crypto_sha.c", "${efr32_sdk_root}/platform/common/src/sl_slist.c", - "${efr32_sdk_root}/platform/driver/button/src/sl_button.c", - "${efr32_sdk_root}/platform/driver/button/src/sl_simple_button.c", "${efr32_sdk_root}/platform/emdrv/dmadrv/src/dmadrv.c", "${efr32_sdk_root}/platform/emdrv/gpiointerrupt/src/gpiointerrupt.c", "${efr32_sdk_root}/platform/emdrv/nvm3/src/nvm3_default.c", @@ -562,7 +572,6 @@ template("efr32_sdk") { "${sdk_support_root}/matter/efr32/${silabs_family}/${silabs_board}/autogen/sl_board_default_init.c", "${sdk_support_root}/matter/efr32/${silabs_family}/${silabs_board}/autogen/sl_device_init_clocks.c", "${sdk_support_root}/matter/efr32/${silabs_family}/${silabs_board}/autogen/sl_event_handler.c", - "${sdk_support_root}/matter/efr32/${silabs_family}/${silabs_board}/autogen/sl_simple_button_instances.c", ] if (use_wstk_leds) { @@ -575,6 +584,14 @@ template("efr32_sdk") { ] } + if (use_wstk_buttons) { + sources += [ + "${efr32_sdk_root}/platform/driver/button/src/sl_button.c", + "${efr32_sdk_root}/platform/driver/button/src/sl_simple_button.c", + "${sdk_support_root}/matter/efr32/${silabs_family}/${silabs_board}/autogen/sl_simple_button_instances.c", + ] + } + if (defined(invoker.enable_sleepy_device)) { if (invoker.enable_sleepy_device) { sources += [ "${efr32_sdk_root}/util/third_party/freertos/kernel/portable/SiliconLabs/tick_power_manager.c" ] diff --git a/third_party/silabs/matter_support b/third_party/silabs/matter_support index d9f3fb767d7b4a..25977650aa08ff 160000 --- a/third_party/silabs/matter_support +++ b/third_party/silabs/matter_support @@ -1 +1 @@ -Subproject commit d9f3fb767d7b4a79d664b0c635ffe6d777a812f2 +Subproject commit 25977650aa08ff0edbaccce842bde5f57ec948ec diff --git a/third_party/silabs/silabs_board.gni b/third_party/silabs/silabs_board.gni index b5fe904a1e9561..e5b851c1dd9dde 100644 --- a/third_party/silabs/silabs_board.gni +++ b/third_party/silabs/silabs_board.gni @@ -90,8 +90,11 @@ if (silabs_board == "BRD4304A") { } else if (silabs_board == "BRD4319A") { silabs_family = "mgm24" silabs_mcu = "MGM240L022RNF" +} else if (silabs_board == "BRD2704A") { + silabs_family = "mgm24" + silabs_mcu = "MGM240PB32VNA" } else { print( - "Please provide a valid value for SILABS_BOARD env variable (currently supported BRD4304A, BRD4161A, BRD4163A, BRD4164A BRD4166A, BRD4170A, BRD4186C, BRD4187C, BRD2601B, BRD2703A, BRD4317A)") + "Please provide a valid value for SILABS_BOARD env variable (currently supported BRD4304A, BRD4161A, BRD4162A, BRD4163A, BRD4164A BRD4166A, BRD4170A, BRD4186C, BRD4187C, BRD2601B, BRD2703A, BRD4316A, BRD4317A, BRD4319A, BRD2704A)") assert(false, "The board ${silabs_board} is unsupported") }