[EFR32]Add new boards support (#21762)

* WIP support for brd2601B

* Disable LCD/QRcode as brd2601 doesn't have a lcd

* Fix led polarity. Remove LCD code for BRD2601B

* update matter support submodule for new board files
diff --git a/examples/chef/efr32/BUILD.gn b/examples/chef/efr32/BUILD.gn
index 3437758..e938574 100644
--- a/examples/chef/efr32/BUILD.gn
+++ b/examples/chef/efr32/BUILD.gn
@@ -91,8 +91,8 @@
   is_server = true
 }
 
-# BRD4166A --> ThunderBoard Sense 2 (No LCD)
-if (efr32_board == "BRD4166A" || efr32_board == "BRD4180A") {
+# ThunderBoards  (No LCD)
+if (efr32_board == "BRD4166A" || efr32_board == "BRD2601B") {
   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 a505b7c..b3fb8fd 100644
--- a/examples/light-switch-app/efr32/BUILD.gn
+++ b/examples/light-switch-app/efr32/BUILD.gn
@@ -84,8 +84,8 @@
   assert(use_rs911x || use_wf200)
 }
 
-# BRD4166A --> ThunderBoard Sense 2 (No LCD)
-if (efr32_board == "BRD4166A" || efr32_board == "BRD4180A") {
+# ThunderBoards  (No LCD)
+if (efr32_board == "BRD4166A" || efr32_board == "BRD2601B") {
   show_qr_code = false
   disable_lcd = true
 }
diff --git a/examples/lighting-app/efr32/BUILD.gn b/examples/lighting-app/efr32/BUILD.gn
index 7d5087b..9a9e4c1 100644
--- a/examples/lighting-app/efr32/BUILD.gn
+++ b/examples/lighting-app/efr32/BUILD.gn
@@ -84,8 +84,8 @@
   assert(use_rs911x || use_wf200)
 }
 
-# BRD4166A --> ThunderBoard Sense 2 (No LCD)
-if (efr32_board == "BRD4166A" || efr32_board == "BRD4180A") {
+# ThunderBoards  (No LCD)
+if (efr32_board == "BRD4166A" || efr32_board == "BRD2601B") {
   show_qr_code = false
   disable_lcd = true
 }
diff --git a/examples/lock-app/efr32/BUILD.gn b/examples/lock-app/efr32/BUILD.gn
index 2fc93ff..a739b26 100644
--- a/examples/lock-app/efr32/BUILD.gn
+++ b/examples/lock-app/efr32/BUILD.gn
@@ -84,8 +84,8 @@
   assert(use_rs911x || use_wf200)
 }
 
-# BRD4166A --> ThunderBoard Sense 2 (No LCD)
-if (efr32_board == "BRD4166A" || efr32_board == "BRD4180A") {
+# ThunderBoards  (No LCD)
+if (efr32_board == "BRD4166A" || efr32_board == "BRD2601B") {
   show_qr_code = false
   disable_lcd = true
 }
diff --git a/examples/thermostat/efr32/BUILD.gn b/examples/thermostat/efr32/BUILD.gn
index 4683fbb..90f61b9 100644
--- a/examples/thermostat/efr32/BUILD.gn
+++ b/examples/thermostat/efr32/BUILD.gn
@@ -81,8 +81,8 @@
   assert(use_rs911x || use_wf200)
 }
 
-# BRD4166A --> ThunderBoard Sense 2 (No LCD)
-if (efr32_board == "BRD4166A" || efr32_board == "BRD4180A") {
+# ThunderBoards  (No LCD)
+if (efr32_board == "BRD4166A" || efr32_board == "BRD2601B") {
   show_qr_code = false
   disable_lcd = true
 }
diff --git a/examples/window-app/efr32/BUILD.gn b/examples/window-app/efr32/BUILD.gn
index a9c365d..fad09d7 100644
--- a/examples/window-app/efr32/BUILD.gn
+++ b/examples/window-app/efr32/BUILD.gn
@@ -77,8 +77,8 @@
   assert(use_rs911x || use_wf200)
 }
 
-# BRD4166A --> ThunderBoard Sense 2 (No LCD)
-if (efr32_board == "BRD4166A" || efr32_board == "BRD4180A") {
+# ThunderBoards  (No LCD)
+if (efr32_board == "BRD4166A" || efr32_board == "BRD2601B") {
   show_qr_code = false
   disable_lcd = true
 }
diff --git a/third_party/silabs/efr32_board.gni b/third_party/silabs/efr32_board.gni
index ba3e8ff..b697d2b 100644
--- a/third_party/silabs/efr32_board.gni
+++ b/third_party/silabs/efr32_board.gni
@@ -59,14 +59,24 @@
 } else if (efr32_board == "BRD4180A") {
   assert(
       false,
-      "The board ${efr32_board} not currentlt supported due to RAM limitation")
+      "The board ${efr32_board} not currently supported due to RAM limitation")
   efr32_family = "efr32mg21"
   efr32_mcu = "EFR32MG21A020F1024IM32"
 } else if (efr32_board == "BRD4186A" || efr32_board == "BRD4187A") {
+  print("RevA is deprecated, We suggest using BRD4186C (rev C)")
   efr32_family = "efr32mg24"
   efr32_mcu = "EFR32MG24A010F1536GM48"
+} else if (efr32_board == "BRD4186C") {
+  efr32_family = "efr32mg24"
+  efr32_mcu = "EFR32MG24B210F1536IM48"
+} else if (efr32_board == "BRD4187C") {
+  efr32_family = "efr32mg24"
+  efr32_mcu = "EFR32MG24B220F1536IM48"
+} else if (efr32_board == "BRD2601B") {
+  efr32_family = "efr32mg24"
+  efr32_mcu = "EFR32MG24B310F1536IM48"
 } else {
   print(
-      "Please provide a valid value for EFR32_BOARD env variable (currently supported BRD4304A, BRD4161A, BRD4163A, BRD4164A BRD4166A, BRD4170A, BRD4186A, BRD4187A)")
-  assert(false, "The board ${efr32_board} is unsupported as for now.")
+      "Please provide a valid value for EFR32_BOARD env variable (currently supported BRD4304A, BRD4161A, BRD4163A, BRD4164A BRD4166A, BRD4170A, BRD4186C, BRD4187C, BRD2601B)")
+  assert(false, "The board ${efr32_board} is unsupported")
 }
diff --git a/third_party/silabs/efr32_sdk.gni b/third_party/silabs/efr32_sdk.gni
index 1e95a90..e4af7e6 100644
--- a/third_party/silabs/efr32_sdk.gni
+++ b/third_party/silabs/efr32_sdk.gni
@@ -219,7 +219,6 @@
 
     if (efr32_family == "efr32mg12") {
       _include_dirs += [
-        "${efr32_sdk_root}/hardware/kit/EFR32MG12_${efr32_board}/config",
         "${efr32_sdk_root}/platform/Device/SiliconLabs/EFR32MG12P/Include",
         "${efr32_sdk_root}/platform/radio/rail_lib/chip/efr32/efr32xg1x",
         "${efr32_sdk_root}/util/third_party/freertos/kernel/portable/GCC/ARM_CM4F",
@@ -236,7 +235,6 @@
       defines += [ "EFR32MG12" ]
     } else if (efr32_family == "efr32mg21") {
       _include_dirs += [
-        "${efr32_sdk_root}/hardware/kit/EFR32MG21_${efr32_board}/config",
         "${efr32_sdk_root}/platform/Device/SiliconLabs/EFR32MG21/Include",
         "${efr32_sdk_root}/platform/radio/rail_lib/chip/efr32/efr32xg2x",
         "${efr32_sdk_root}/util/third_party/freertos/kernel/portable/GCC/ARM_CM33_NTZ/non_secure",
@@ -257,7 +255,6 @@
       ]
     } else if (efr32_family == "efr32mg24") {
       _include_dirs += [
-        "${efr32_sdk_root}/hardware/kit/EFR32MG24_${efr32_board}/config",
         "${efr32_sdk_root}/platform/Device/SiliconLabs/EFR32MG24/Include",
         "${efr32_sdk_root}/platform/radio/rail_lib/chip/efr32/efr32xg2x",
         "${efr32_sdk_root}/util/third_party/freertos/kernel/portable/GCC/ARM_CM33_NTZ/non_secure",
diff --git a/third_party/silabs/matter_support b/third_party/silabs/matter_support
index 054e5c7..a7801b3 160000
--- a/third_party/silabs/matter_support
+++ b/third_party/silabs/matter_support
@@ -1 +1 @@
-Subproject commit 054e5c798dced6ac372eddd64b183ee9b5588c26
+Subproject commit a7801b3fa493270b6832061ec9997eca3767ba67