[Silabs] Enabling custom board support for matter (#35809)

* [Silabs] Enabling custom board support for matter

* Restyled to Make Pretty

* Streamline printing to make pretty

* Put the assert at the end and add silabs board descriptions

* Restyled
diff --git a/third_party/silabs/silabs_board.gni b/third_party/silabs/silabs_board.gni
index 7e4f3ff..2134179 100644
--- a/third_party/silabs/silabs_board.gni
+++ b/third_party/silabs/silabs_board.gni
@@ -13,9 +13,17 @@
 # limitations under the License.
 
 declare_args() {
-  # EFR32 board used
+  # Silabs wireless starter kit plug-in boards featuring specific mcu family and mcu model.
+  # Find more information at https://www.silabs.com/development-tools/wireless.
+  # A board tailored for specific mcu family and mcu model can be created with "CUSTOM".
   silabs_board = ""
 
+  # Silabs mcu family used
+  silabs_family = ""
+
+  # Silabs mcu model used
+  silabs_mcu = ""
+
   # LCD is enabled by default
   # Boards BRD4166A, BRD2601B, BRD2703A and BRD4319A do not have a LCD so they disable it explicitly
   disable_lcd = false
@@ -150,6 +158,12 @@
   # ThunderBoards don't have a LCD,
   show_qr_code = false
   disable_lcd = true
+
+  # Custom Board ----------
+} else if (silabs_board == "CUSTOM") {
+  print("Using custom board configuration")
+  print("silabs_family:", silabs_family)
+  print("silabs_mcu:", silabs_mcu)
 } else {
   assert(
       false,
@@ -168,5 +182,9 @@
   sl_uart_log_output = wifi_soc
 }
 
+# Silabs mcu family and mcu model must be specified
+assert(silabs_family != "", "Must specify silabs_family")
+assert(silabs_mcu != "", "Must specify silabs_mcu")
+
 # qr code cannot be true if lcd is disabled
 assert(!(disable_lcd && show_qr_code))