From 02910bedd1ab547e29e1f362599baa038aa5c102 Mon Sep 17 00:00:00 2001 From: srningap <107042150+srningap@users.noreply.github.com> Date: Thu, 31 Aug 2023 01:43:10 +0530 Subject: [PATCH] [Silabs] Enabled BRD4338A board and configured BTN1 (#28928) * Adds BTN0 and BTN1 support for 917SoC B0 2.0 board * Restyled by gn * updated gni * Restyled by gn --------- Co-authored-by: Restyled.io --- scripts/examples/gn_silabs_example.sh | 2 +- .../silabs/platformAbstraction/WiseMcuSpam.cpp | 7 +++++++ third_party/silabs/SiWx917_sdk.gni | 17 +++++++---------- third_party/silabs/silabs_board.gni | 10 ++++++++++ 4 files changed, 25 insertions(+), 11 deletions(-) diff --git a/scripts/examples/gn_silabs_example.sh b/scripts/examples/gn_silabs_example.sh index cdde74c262cfd5..fbf89284e09686 100755 --- a/scripts/examples/gn_silabs_example.sh +++ b/scripts/examples/gn_silabs_example.sh @@ -272,7 +272,7 @@ else fi # 917 exception. TODO find a more generic way - if [ "$SILABS_BOARD" == "BRD4325B" ] || [ "$SILABS_BOARD" == "BRD4325C" ]; then + if [ "$SILABS_BOARD" == "BRD4325B" ] || [ "$SILABS_BOARD" == "BRD4325C" ] || [ "$SILABS_BOARD" == "BRD4338A" ]; then echo "Compiling for 917 WiFi SOC" USE_WIFI=true optArgs+="chip_device_platform =\"SiWx917\" " diff --git a/src/platform/silabs/platformAbstraction/WiseMcuSpam.cpp b/src/platform/silabs/platformAbstraction/WiseMcuSpam.cpp index 5db0d8b8e8887e..000597e5231d90 100644 --- a/src/platform/silabs/platformAbstraction/WiseMcuSpam.cpp +++ b/src/platform/silabs/platformAbstraction/WiseMcuSpam.cpp @@ -32,6 +32,9 @@ void RSI_Board_LED_Set(int, bool); void RSI_Board_LED_Toggle(int); void RSI_Wakeupsw_config(void); void RSI_Wakeupsw_config_gpio0(void); +#ifdef SI917_RADIO_BOARD_V2 +void RSI_Wakeupsw_config_gpio11(void); +#endif void sl_system_init(void); void soc_pll_config(void); } @@ -58,7 +61,11 @@ CHIP_ERROR SilabsPlatform::Init(void) // BTN0 and BTN1 init RSI_Wakeupsw_config(); +#ifdef SI917_RADIO_BOARD_V2 + RSI_Wakeupsw_config_gpio11(); +#else RSI_Wakeupsw_config_gpio0(); +#endif #if SILABS_LOG_ENABLED silabsInitLog(); diff --git a/third_party/silabs/SiWx917_sdk.gni b/third_party/silabs/SiWx917_sdk.gni index d2e8fd731dbe65..9b973b083521e9 100644 --- a/third_party/silabs/SiWx917_sdk.gni +++ b/third_party/silabs/SiWx917_sdk.gni @@ -134,6 +134,7 @@ template("siwx917_sdk") { "KVS_MAX_ENTRIES=${kvs_max_entries}", "${silabs_mcu}=1", "${silabs_board}=1", + "SL_BOARD_NAME=${silabs_board}", "__HEAP_SIZE=0", "PLATFORM_HEADER=\"platform-header.h\"", "USE_NVM3=1", @@ -164,21 +165,17 @@ template("siwx917_sdk") { ] if (silabs_board == "BRD4325B") { - defines += [ - "BRD4325A", - "BRD4325B", - "DUAL_FLASH_EN", - ] + defines += [ "DUAL_FLASH_EN" ] } - if (silabs_board == "BRD4325C") { + if (wifi_soc_common_flash) { defines += [ - "BRD4325C", "CHIP_917B0 = 1", - "SL_BOARD_NAME=\"BRD4325C\"", "COMMON_FLASH_EN=1", "EXECUTION_FROM_RAM", - "SL_BOARD_REV=\"A01\"", ] + if (silabs_board == "BRD4338A") { + defines += [ "SI917_RADIO_BOARD_V2=1" ] + } } if (chip_build_libshell) { @@ -412,7 +409,7 @@ template("siwx917_sdk") { ] } - if (silabs_board == "BRD4325C") { + if (wifi_soc_common_flash) { sources += [ "${sdk_support_root}/matter/si91x/siwx917/BRD4325x/support/src/startup_common_RS1xxxx.c", "${wifi_sdk_root}/components/siwx917_soc/drivers/middleware/nvm3/src/sl_si91x_common_flash_intf.c", diff --git a/third_party/silabs/silabs_board.gni b/third_party/silabs/silabs_board.gni index e12a7fa2bbf666..d7dce160de622b 100644 --- a/third_party/silabs/silabs_board.gni +++ b/third_party/silabs/silabs_board.gni @@ -37,6 +37,7 @@ declare_args() { chip_enable_ble_rs911x = false wifi_soc = false + wifi_soc_common_flash = false #Disable MQTT by default enable_dic = false @@ -111,12 +112,21 @@ if (silabs_board == "BRD4304A") { disable_lcd = true show_qr_code = false wifi_soc = true + wifi_soc_common_flash = true } else if (silabs_board == "BRD4325G") { silabs_family = "SiWx917-common" silabs_mcu = "SiWG917M111MGTBA" disable_lcd = true show_qr_code = false wifi_soc = true + wifi_soc_common_flash = true +} else if (silabs_board == "BRD4338A") { + silabs_family = "SiWx917-common" + silabs_mcu = "SiWG917M111MGTBA" + disable_lcd = true + show_qr_code = false + wifi_soc = true + wifi_soc_common_flash = true } else if (silabs_board == "BRD4180A") { assert( false,