[Silabs] Folder structure introduction for addition of SiWx917 (#23736)

* src/platform/silabs folder changes

* examples/lighting-app and examples/platform folder modification for silabs/efr32

* Skeleton for the SiWx917 folder

* CI fix for the lighting app due to modified folder structure

* Revert "Skeleton for the SiWx917 folder"

This reverts commit bbe322d8223507937679ab3cf2f341d95ff0a642.

* Build changes for different applications

* Restyle PR

* Fixing the build failures

* fixing the lock app

* updating the dry run efr32 for the new folder structure]

* Added a variable for the BUILD.gn file

* restyle the last commit

* src/platform/silabs folder changes

* examples/lighting-app and examples/platform folder modification for silabs/efr32

* Skeleton for the SiWx917 folder

* CI fix for the lighting app due to modified folder structure

* Revert "Skeleton for the SiWx917 folder"

This reverts commit bbe322d8223507937679ab3cf2f341d95ff0a642.

* Build changes for different applications

* Restyle PR

* Fixing the build failures

* fixing the lock app

* updating the dry run efr32 for the new folder structure]

* Added a variable for the BUILD.gn file

* restyle the last commit
diff --git a/.github/workflows/examples-efr32.yaml b/.github/workflows/examples-efr32.yaml
index b5b533a..d245cea 100644
--- a/.github/workflows/examples-efr32.yaml
+++ b/.github/workflows/examples-efr32.yaml
@@ -101,7 +101,7 @@
       - name: Build example EFR32 Lighting App for BRD4161A with RPCs
         timeout-minutes: 15
         run: |
-          scripts/examples/gn_efr32_example.sh examples/lighting-app/efr32/ out/lighting_app_debug_rpc BRD4161A "is_debug=false" \
+          scripts/examples/gn_efr32_example.sh examples/lighting-app/silabs/efr32/ out/lighting_app_debug_rpc BRD4161A "is_debug=false" \
             disable_lcd=true 'import("//with_pw_rpc.gni")'
           .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py efr32 BRD4161A+rpc lighting-app \
             out/lighting_app_debug_rpc/BRD4161A/chip-efr32-lighting-example.out /tmp/bloat_reports/
@@ -118,7 +118,7 @@
       - name: Build example EFR32+RS911x WiFi Lighting app for BRD4161A
         timeout-minutes: 15
         run: |
-          scripts/examples/gn_efr32_example.sh examples/lighting-app/efr32/ out/lighting_app_wifi_rs911x BRD4161A --wifi rs911x
+          scripts/examples/gn_efr32_example.sh examples/lighting-app/silabs/efr32/ out/lighting_app_wifi_rs911x BRD4161A --wifi rs911x
           .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py efr32 BRD4161A+rs911x lighting-app \
             out/lighting_app_wifi_rs911x/BRD4161A/chip-efr32-lighting-example.out /tmp/bloat_reports/
       - name: Clean out build output
diff --git a/config/efr32/lib/pw_rpc/BUILD.gn b/config/efr32/lib/pw_rpc/BUILD.gn
index 390ced7..32a9548 100644
--- a/config/efr32/lib/pw_rpc/BUILD.gn
+++ b/config/efr32/lib/pw_rpc/BUILD.gn
@@ -24,7 +24,7 @@
   public_deps = [
     "$dir_pw_rpc:server",
     "$dir_pw_rpc/nanopb:echo_service",
-    "${chip_root}/examples/platform/efr32/pw_sys_io:pw_sys_io_efr32",
+    "${chip_root}/examples/platform/silabs/efr32/pw_sys_io:pw_sys_io_efr32",
     "${dir_pigweed}/pw_hdlc:pw_rpc",
     dir_pw_assert,
     dir_pw_checksum,
diff --git a/config/efr32/lib/pw_rpc/pw_rpc.gni b/config/efr32/lib/pw_rpc/pw_rpc.gni
index 68f1c61..5fd576d 100644
--- a/config/efr32/lib/pw_rpc/pw_rpc.gni
+++ b/config/efr32/lib/pw_rpc/pw_rpc.gni
@@ -18,7 +18,7 @@
 pw_log_BACKEND = "$dir_pw_log_basic"
 pw_assert_BACKEND = "$dir_pw_assert_log:check_backend"
 pw_sys_io_BACKEND =
-    "${chip_root}/examples/platform/efr32/pw_sys_io:pw_sys_io_efr32"
+    "${chip_root}/examples/platform/silabs/efr32/pw_sys_io:pw_sys_io_efr32"
 
 pw_build_LINK_DEPS = [
   "$dir_pw_assert:impl",
diff --git a/examples/light-switch-app/efr32/BUILD.gn b/examples/light-switch-app/efr32/BUILD.gn
index 7d71569..83704a8 100644
--- a/examples/light-switch-app/efr32/BUILD.gn
+++ b/examples/light-switch-app/efr32/BUILD.gn
@@ -32,7 +32,8 @@
 assert(current_os == "freertos")
 
 efr32_project_dir = "${chip_root}/examples/light-switch-app/efr32"
-examples_plat_dir = "${chip_root}/examples/platform/efr32"
+examples_plat_dir = "${chip_root}/examples/platform/silabs/efr32"
+examples_common_plat_dir = "${chip_root}/examples/platform/silabs"
 
 declare_args() {
   # Dump memory usage at link time.
@@ -79,7 +80,7 @@
 if (chip_enable_wifi) {
   assert(use_rs911x || use_wf200)
   enable_openthread_cli = false
-  import("${chip_root}/src/platform/EFR32/wifi_args.gni")
+  import("${chip_root}/src/platform/silabs/EFR32/wifi_args.gni")
 }
 
 # ThunderBoards, Explorer Kit and MGM240L do not support LCD (No LCD)
@@ -91,7 +92,7 @@
 
 # WiFi settings
 if (chip_enable_wifi) {
-  wifi_sdk_dir = "${chip_root}/src/platform/EFR32/wifi"
+  wifi_sdk_dir = "${chip_root}/src/platform/silabs/EFR32/wifi"
   efr32_lwip_defs = [ "LWIP_NETIF_API=1" ]
   if (lwip_ipv4) {
     efr32_lwip_defs += [
@@ -132,10 +133,11 @@
   ]
 
   include_dirs = [
-    "${chip_root}/src/platform/EFR32",
+    "${chip_root}/src/platform/silabs/EFR32",
     "${efr32_project_dir}/include",
     "${examples_plat_dir}",
     "${chip_root}/src/lib",
+    "${examples_common_plat_dir}",
   ]
 
   defines = [
@@ -183,9 +185,9 @@
   defines = []
 
   sources = [
+    "${examples_common_plat_dir}/heap_4_silabs.c",
     "${examples_plat_dir}/BaseApplication.cpp",
     "${examples_plat_dir}/efr32_utils.cpp",
-    "${examples_plat_dir}/heap_4_silabs.c",
     "${examples_plat_dir}/init_efrPlatform.cpp",
     "${examples_plat_dir}/matter_config.cpp",
     "src/AppTask.cpp",
@@ -302,8 +304,8 @@
     sources += [
       "${chip_root}/examples/common/pigweed/RpcService.cpp",
       "${chip_root}/examples/common/pigweed/efr32/PigweedLoggerMutex.cpp",
-      "${examples_plat_dir}/PigweedLogger.cpp",
-      "${examples_plat_dir}/Rpc.cpp",
+      "${examples_common_plat_dir}/PigweedLogger.cpp",
+      "${examples_common_plat_dir}/Rpc.cpp",
     ]
 
     deps += [
@@ -327,7 +329,7 @@
   }
 
   if (enable_heap_monitoring) {
-    sources += [ "${examples_plat_dir}/MemMonitoring.cpp" ]
+    sources += [ "${examples_common_plat_dir}/MemMonitoring.cpp" ]
     defines += [ "HEAP_MONITORING" ]
   }
 
diff --git a/examples/light-switch-app/efr32/args.gni b/examples/light-switch-app/efr32/args.gni
index 752701e..f75911d 100644
--- a/examples/light-switch-app/efr32/args.gni
+++ b/examples/light-switch-app/efr32/args.gni
@@ -15,7 +15,7 @@
 import("//build_overrides/chip.gni")
 import("//build_overrides/pigweed.gni")
 import("${chip_root}/config/standalone/args.gni")
-import("${chip_root}/src/platform/EFR32/args.gni")
+import("${chip_root}/src/platform/silabs/EFR32/args.gni")
 
 efr32_sdk_target = get_label_info(":sdk", "label_no_toolchain")
 
diff --git a/examples/light-switch-app/efr32/build_for_wifi_args.gni b/examples/light-switch-app/efr32/build_for_wifi_args.gni
index 236f166..363d2be 100644
--- a/examples/light-switch-app/efr32/build_for_wifi_args.gni
+++ b/examples/light-switch-app/efr32/build_for_wifi_args.gni
@@ -17,7 +17,7 @@
 
 efr32_sdk_target = get_label_info(":sdk", "label_no_toolchain")
 chip_enable_openthread = false
-import("${chip_root}/src/platform/EFR32/wifi_args.gni")
+import("${chip_root}/src/platform/silabs/EFR32/wifi_args.gni")
 
 chip_enable_ota_requestor = true
 
diff --git a/examples/lighting-app/efr32/build_overrides b/examples/lighting-app/efr32/build_overrides
deleted file mode 120000
index e578e73..0000000
--- a/examples/lighting-app/efr32/build_overrides
+++ /dev/null
@@ -1 +0,0 @@
-../../build_overrides
\ No newline at end of file
diff --git a/examples/lighting-app/efr32/third_party/connectedhomeip b/examples/lighting-app/efr32/third_party/connectedhomeip
deleted file mode 120000
index c866b86..0000000
--- a/examples/lighting-app/efr32/third_party/connectedhomeip
+++ /dev/null
@@ -1 +0,0 @@
-../../../..
\ No newline at end of file
diff --git a/examples/lighting-app/efr32/.gn b/examples/lighting-app/silabs/efr32/.gn
similarity index 100%
rename from examples/lighting-app/efr32/.gn
rename to examples/lighting-app/silabs/efr32/.gn
diff --git a/examples/lighting-app/efr32/BUILD.gn b/examples/lighting-app/silabs/efr32/BUILD.gn
similarity index 93%
rename from examples/lighting-app/efr32/BUILD.gn
rename to examples/lighting-app/silabs/efr32/BUILD.gn
index 616a66b..3a812b9 100644
--- a/examples/lighting-app/efr32/BUILD.gn
+++ b/examples/lighting-app/silabs/efr32/BUILD.gn
@@ -31,8 +31,9 @@
 
 assert(current_os == "freertos")
 
-efr32_project_dir = "${chip_root}/examples/lighting-app/efr32"
-examples_plat_dir = "${chip_root}/examples/platform/efr32"
+efr32_project_dir = "${chip_root}/examples/lighting-app/silabs/efr32"
+examples_plat_dir = "${chip_root}/examples/platform/silabs/efr32"
+examples_common_plat_dir = "${chip_root}/examples/platform/silabs"
 
 declare_args() {
   # Dump memory usage at link time.
@@ -79,7 +80,7 @@
 if (chip_enable_wifi) {
   assert(use_rs911x || use_wf200)
   enable_openthread_cli = false
-  import("${chip_root}/src/platform/EFR32/wifi_args.gni")
+  import("${chip_root}/src/platform/silabs/EFR32/wifi_args.gni")
 }
 
 # ThunderBoards, Explorer Kit and MGM240L do not support LCD (No LCD)
@@ -96,7 +97,7 @@
     show_qr_code = false
     disable_lcd = true
   }
-  wifi_sdk_dir = "${chip_root}/src/platform/EFR32/wifi"
+  wifi_sdk_dir = "${chip_root}/src/platform/silabs/EFR32/wifi"
   efr32_lwip_defs = [ "LWIP_NETIF_API=1" ]
   if (lwip_ipv4) {
     efr32_lwip_defs += [
@@ -137,10 +138,11 @@
   ]
 
   include_dirs = [
-    "${chip_root}/src/platform/EFR32",
+    "${chip_root}/src/platform/silabs/EFR32",
     "${efr32_project_dir}/include",
     "${examples_plat_dir}",
     "${chip_root}/src/lib",
+    "${examples_common_plat_dir}",
   ]
 
   defines = [
@@ -192,9 +194,9 @@
   defines = []
 
   sources = [
+    "${examples_common_plat_dir}/heap_4_silabs.c",
     "${examples_plat_dir}/BaseApplication.cpp",
     "${examples_plat_dir}/efr32_utils.cpp",
-    "${examples_plat_dir}/heap_4_silabs.c",
     "${examples_plat_dir}/init_efrPlatform.cpp",
     "${examples_plat_dir}/matter_config.cpp",
     "src/AppTask.cpp",
@@ -306,8 +308,8 @@
     sources += [
       "${chip_root}/examples/common/pigweed/RpcService.cpp",
       "${chip_root}/examples/common/pigweed/efr32/PigweedLoggerMutex.cpp",
-      "${examples_plat_dir}/PigweedLogger.cpp",
-      "${examples_plat_dir}/Rpc.cpp",
+      "${examples_common_plat_dir}/PigweedLogger.cpp",
+      "${examples_common_plat_dir}/Rpc.cpp",
     ]
 
     deps += [
@@ -336,7 +338,7 @@
   }
 
   if (enable_heap_monitoring) {
-    sources += [ "${examples_plat_dir}/MemMonitoring.cpp" ]
+    sources += [ "${examples_common_plat_dir}/MemMonitoring.cpp" ]
     defines += [ "HEAP_MONITORING" ]
   }
 
diff --git a/examples/lighting-app/efr32/README.md b/examples/lighting-app/silabs/efr32/README.md
similarity index 100%
rename from examples/lighting-app/efr32/README.md
rename to examples/lighting-app/silabs/efr32/README.md
diff --git a/examples/lighting-app/efr32/args.gni b/examples/lighting-app/silabs/efr32/args.gni
similarity index 94%
rename from examples/lighting-app/efr32/args.gni
rename to examples/lighting-app/silabs/efr32/args.gni
index 7f4a06e..d216faa 100644
--- a/examples/lighting-app/efr32/args.gni
+++ b/examples/lighting-app/silabs/efr32/args.gni
@@ -15,7 +15,7 @@
 import("//build_overrides/chip.gni")
 import("//build_overrides/pigweed.gni")
 import("${chip_root}/config/standalone/args.gni")
-import("${chip_root}/src/platform/EFR32/args.gni")
+import("${chip_root}/src/platform/silabs/EFR32/args.gni")
 
 efr32_sdk_target = get_label_info(":sdk", "label_no_toolchain")
 
diff --git a/examples/lighting-app/efr32/build_for_wifi_args.gni b/examples/lighting-app/silabs/efr32/build_for_wifi_args.gni
similarity index 93%
rename from examples/lighting-app/efr32/build_for_wifi_args.gni
rename to examples/lighting-app/silabs/efr32/build_for_wifi_args.gni
index 236f166..363d2be 100644
--- a/examples/lighting-app/efr32/build_for_wifi_args.gni
+++ b/examples/lighting-app/silabs/efr32/build_for_wifi_args.gni
@@ -17,7 +17,7 @@
 
 efr32_sdk_target = get_label_info(":sdk", "label_no_toolchain")
 chip_enable_openthread = false
-import("${chip_root}/src/platform/EFR32/wifi_args.gni")
+import("${chip_root}/src/platform/silabs/EFR32/wifi_args.gni")
 
 chip_enable_ota_requestor = true
 
diff --git a/examples/lighting-app/efr32/build_for_wifi_gnfile.gn b/examples/lighting-app/silabs/efr32/build_for_wifi_gnfile.gn
similarity index 100%
rename from examples/lighting-app/efr32/build_for_wifi_gnfile.gn
rename to examples/lighting-app/silabs/efr32/build_for_wifi_gnfile.gn
diff --git a/examples/lighting-app/silabs/efr32/build_overrides b/examples/lighting-app/silabs/efr32/build_overrides
new file mode 120000
index 0000000..995884e
--- /dev/null
+++ b/examples/lighting-app/silabs/efr32/build_overrides
@@ -0,0 +1 @@
+../../../build_overrides
\ No newline at end of file
diff --git a/examples/lighting-app/efr32/include/AppConfig.h b/examples/lighting-app/silabs/efr32/include/AppConfig.h
similarity index 100%
rename from examples/lighting-app/efr32/include/AppConfig.h
rename to examples/lighting-app/silabs/efr32/include/AppConfig.h
diff --git a/examples/lighting-app/efr32/include/AppEvent.h b/examples/lighting-app/silabs/efr32/include/AppEvent.h
similarity index 100%
rename from examples/lighting-app/efr32/include/AppEvent.h
rename to examples/lighting-app/silabs/efr32/include/AppEvent.h
diff --git a/examples/lighting-app/efr32/include/AppTask.h b/examples/lighting-app/silabs/efr32/include/AppTask.h
similarity index 100%
rename from examples/lighting-app/efr32/include/AppTask.h
rename to examples/lighting-app/silabs/efr32/include/AppTask.h
diff --git a/examples/lighting-app/efr32/include/CHIPProjectConfig.h b/examples/lighting-app/silabs/efr32/include/CHIPProjectConfig.h
similarity index 100%
rename from examples/lighting-app/efr32/include/CHIPProjectConfig.h
rename to examples/lighting-app/silabs/efr32/include/CHIPProjectConfig.h
diff --git a/examples/lighting-app/efr32/include/LightingManager.h b/examples/lighting-app/silabs/efr32/include/LightingManager.h
similarity index 100%
rename from examples/lighting-app/efr32/include/LightingManager.h
rename to examples/lighting-app/silabs/efr32/include/LightingManager.h
diff --git a/examples/lighting-app/efr32/src/AppTask.cpp b/examples/lighting-app/silabs/efr32/src/AppTask.cpp
similarity index 100%
rename from examples/lighting-app/efr32/src/AppTask.cpp
rename to examples/lighting-app/silabs/efr32/src/AppTask.cpp
diff --git a/examples/lighting-app/efr32/src/LightingManager.cpp b/examples/lighting-app/silabs/efr32/src/LightingManager.cpp
similarity index 100%
rename from examples/lighting-app/efr32/src/LightingManager.cpp
rename to examples/lighting-app/silabs/efr32/src/LightingManager.cpp
diff --git a/examples/lighting-app/efr32/src/ZclCallbacks.cpp b/examples/lighting-app/silabs/efr32/src/ZclCallbacks.cpp
similarity index 100%
rename from examples/lighting-app/efr32/src/ZclCallbacks.cpp
rename to examples/lighting-app/silabs/efr32/src/ZclCallbacks.cpp
diff --git a/examples/lighting-app/efr32/src/main.cpp b/examples/lighting-app/silabs/efr32/src/main.cpp
similarity index 100%
rename from examples/lighting-app/efr32/src/main.cpp
rename to examples/lighting-app/silabs/efr32/src/main.cpp
diff --git a/examples/lighting-app/silabs/efr32/third_party/connectedhomeip b/examples/lighting-app/silabs/efr32/third_party/connectedhomeip
new file mode 120000
index 0000000..5930783
--- /dev/null
+++ b/examples/lighting-app/silabs/efr32/third_party/connectedhomeip
@@ -0,0 +1 @@
+../../../../..
\ No newline at end of file
diff --git a/examples/lighting-app/efr32/with_pw_rpc.gni b/examples/lighting-app/silabs/efr32/with_pw_rpc.gni
similarity index 94%
rename from examples/lighting-app/efr32/with_pw_rpc.gni
rename to examples/lighting-app/silabs/efr32/with_pw_rpc.gni
index c705b92..40a8bb7 100644
--- a/examples/lighting-app/efr32/with_pw_rpc.gni
+++ b/examples/lighting-app/silabs/efr32/with_pw_rpc.gni
@@ -17,7 +17,7 @@
 
 import("//build_overrides/chip.gni")
 import("${chip_root}/config/efr32/lib/pw_rpc/pw_rpc.gni")
-import("${chip_root}/examples/platform/efr32/args.gni")
+import("${chip_root}/examples/platform/silabs/efr32/args.gni")
 
 efr32_sdk_target = get_label_info(":sdk", "label_no_toolchain")
 
diff --git a/examples/lock-app/efr32/BUILD.gn b/examples/lock-app/efr32/BUILD.gn
index fdd3f9f..8e22a6a 100644
--- a/examples/lock-app/efr32/BUILD.gn
+++ b/examples/lock-app/efr32/BUILD.gn
@@ -32,7 +32,8 @@
 assert(current_os == "freertos")
 
 efr32_project_dir = "${chip_root}/examples/lock-app/efr32"
-examples_plat_dir = "${chip_root}/examples/platform/efr32"
+examples_plat_dir = "${chip_root}/examples/platform/silabs/efr32"
+examples_common_plat_dir = "${chip_root}/examples/platform/silabs"
 
 declare_args() {
   # Dump memory usage at link time.
@@ -79,7 +80,7 @@
 if (chip_enable_wifi) {
   assert(use_rs911x || use_wf200)
   enable_openthread_cli = false
-  import("${chip_root}/src/platform/EFR32/wifi_args.gni")
+  import("${chip_root}/src/platform/silabs/EFR32/wifi_args.gni")
 }
 
 # ThunderBoards, Explorer Kit and MGM240L do not support LCD (No LCD)
@@ -91,7 +92,7 @@
 
 # WiFi settings
 if (chip_enable_wifi) {
-  wifi_sdk_dir = "${chip_root}/src/platform/EFR32/wifi"
+  wifi_sdk_dir = "${chip_root}/src/platform/silabs/EFR32/wifi"
   efr32_lwip_defs = [ "LWIP_NETIF_API=1" ]
   if (lwip_ipv4) {
     efr32_lwip_defs += [
@@ -132,10 +133,11 @@
   ]
 
   include_dirs = [
-    "${chip_root}/src/platform/EFR32",
+    "${chip_root}/src/platform/silabs/EFR32",
     "${efr32_project_dir}/include",
     "${examples_plat_dir}",
     "${chip_root}/src/lib",
+    "${examples_common_plat_dir}",
   ]
 
   defines = [
@@ -182,9 +184,9 @@
   defines = []
 
   sources = [
+    "${examples_common_plat_dir}/heap_4_silabs.c",
     "${examples_plat_dir}/BaseApplication.cpp",
     "${examples_plat_dir}/efr32_utils.cpp",
-    "${examples_plat_dir}/heap_4_silabs.c",
     "${examples_plat_dir}/init_efrPlatform.cpp",
     "${examples_plat_dir}/matter_config.cpp",
     "src/AppTask.cpp",
@@ -300,8 +302,8 @@
     sources += [
       "${chip_root}/examples/common/pigweed/RpcService.cpp",
       "${chip_root}/examples/common/pigweed/efr32/PigweedLoggerMutex.cpp",
-      "${examples_plat_dir}/PigweedLogger.cpp",
-      "${examples_plat_dir}/Rpc.cpp",
+      "${examples_common_plat_dir}/PigweedLogger.cpp",
+      "${examples_common_plat_dir}/Rpc.cpp",
     ]
 
     deps += [
@@ -327,7 +329,7 @@
   }
 
   if (enable_heap_monitoring) {
-    sources += [ "${examples_plat_dir}/MemMonitoring.cpp" ]
+    sources += [ "${examples_common_plat_dir}/MemMonitoring.cpp" ]
     defines += [ "HEAP_MONITORING" ]
   }
 
diff --git a/examples/lock-app/efr32/args.gni b/examples/lock-app/efr32/args.gni
index 02ac44a..23f22fb 100644
--- a/examples/lock-app/efr32/args.gni
+++ b/examples/lock-app/efr32/args.gni
@@ -15,7 +15,7 @@
 import("//build_overrides/chip.gni")
 import("//build_overrides/pigweed.gni")
 import("${chip_root}/config/standalone/args.gni")
-import("${chip_root}/src/platform/EFR32/args.gni")
+import("${chip_root}/src/platform/silabs/EFR32/args.gni")
 
 efr32_sdk_target = get_label_info(":sdk", "label_no_toolchain")
 
diff --git a/examples/lock-app/efr32/build_for_wifi_args.gni b/examples/lock-app/efr32/build_for_wifi_args.gni
index 236f166..363d2be 100644
--- a/examples/lock-app/efr32/build_for_wifi_args.gni
+++ b/examples/lock-app/efr32/build_for_wifi_args.gni
@@ -17,7 +17,7 @@
 
 efr32_sdk_target = get_label_info(":sdk", "label_no_toolchain")
 chip_enable_openthread = false
-import("${chip_root}/src/platform/EFR32/wifi_args.gni")
+import("${chip_root}/src/platform/silabs/EFR32/wifi_args.gni")
 
 chip_enable_ota_requestor = true
 
diff --git a/examples/lock-app/efr32/with_pw_rpc.gni b/examples/lock-app/efr32/with_pw_rpc.gni
index f51b6ac..faa281a 100644
--- a/examples/lock-app/efr32/with_pw_rpc.gni
+++ b/examples/lock-app/efr32/with_pw_rpc.gni
@@ -17,7 +17,7 @@
 
 import("//build_overrides/chip.gni")
 import("${chip_root}/config/efr32/lib/pw_rpc/pw_rpc.gni")
-import("${chip_root}/examples/platform/efr32/args.gni")
+import("${chip_root}/examples/platform/silabs/efr32/args.gni")
 
 efr32_sdk_target = get_label_info(":sdk", "label_no_toolchain")
 
diff --git a/examples/persistent-storage/efr32/main.cpp b/examples/persistent-storage/efr32/main.cpp
index 2b0c65d..fea4ccb 100644
--- a/examples/persistent-storage/efr32/main.cpp
+++ b/examples/persistent-storage/efr32/main.cpp
@@ -32,8 +32,8 @@
 #include "init_efrPlatform.h"
 #include "sl_system_kernel.h"
 #include <platform/CHIPDeviceLayer.h>
-#include <platform/EFR32/EFR32Config.h>
 #include <platform/KeyValueStoreManager.h>
+#include <platform/silabs/EFR32Config.h>
 
 static TaskHandle_t sTestTaskHandle;
 void TestTask(void * pvParameter)
diff --git a/examples/platform/efr32/EFR32DeviceAttestationCreds.cpp b/examples/platform/silabs/EFR32DeviceAttestationCreds.cpp
similarity index 100%
rename from examples/platform/efr32/EFR32DeviceAttestationCreds.cpp
rename to examples/platform/silabs/EFR32DeviceAttestationCreds.cpp
diff --git a/examples/platform/efr32/EFR32DeviceAttestationCreds.h b/examples/platform/silabs/EFR32DeviceAttestationCreds.h
similarity index 100%
rename from examples/platform/efr32/EFR32DeviceAttestationCreds.h
rename to examples/platform/silabs/EFR32DeviceAttestationCreds.h
diff --git a/examples/platform/efr32/MemMonitoring.h b/examples/platform/silabs/MemMonitoring.h
similarity index 100%
rename from examples/platform/efr32/MemMonitoring.h
rename to examples/platform/silabs/MemMonitoring.h
diff --git a/examples/platform/efr32/PigweedLogger.cpp b/examples/platform/silabs/PigweedLogger.cpp
similarity index 100%
rename from examples/platform/efr32/PigweedLogger.cpp
rename to examples/platform/silabs/PigweedLogger.cpp
diff --git a/examples/platform/efr32/PigweedLogger.h b/examples/platform/silabs/PigweedLogger.h
similarity index 100%
rename from examples/platform/efr32/PigweedLogger.h
rename to examples/platform/silabs/PigweedLogger.h
diff --git a/examples/platform/efr32/Rpc.cpp b/examples/platform/silabs/Rpc.cpp
similarity index 100%
rename from examples/platform/efr32/Rpc.cpp
rename to examples/platform/silabs/Rpc.cpp
diff --git a/examples/platform/efr32/Rpc.h b/examples/platform/silabs/Rpc.h
similarity index 100%
rename from examples/platform/efr32/Rpc.h
rename to examples/platform/silabs/Rpc.h
diff --git a/examples/platform/efr32/BUILD.gn b/examples/platform/silabs/efr32/BUILD.gn
similarity index 97%
rename from examples/platform/efr32/BUILD.gn
rename to examples/platform/silabs/efr32/BUILD.gn
index 1f945c2..9f64403 100644
--- a/examples/platform/efr32/BUILD.gn
+++ b/examples/platform/silabs/efr32/BUILD.gn
@@ -82,8 +82,8 @@
 
 source_set("efr32-attestation-credentials") {
   sources = [
-    "EFR32DeviceAttestationCreds.cpp",
-    "EFR32DeviceAttestationCreds.h",
+    "../EFR32DeviceAttestationCreds.cpp",
+    "../EFR32DeviceAttestationCreds.h",
   ]
 
   public_deps = [
diff --git a/examples/platform/efr32/BaseApplication.cpp b/examples/platform/silabs/efr32/BaseApplication.cpp
similarity index 99%
rename from examples/platform/efr32/BaseApplication.cpp
rename to examples/platform/silabs/efr32/BaseApplication.cpp
index b99df3e..70f876c 100644
--- a/examples/platform/efr32/BaseApplication.cpp
+++ b/examples/platform/silabs/efr32/BaseApplication.cpp
@@ -51,15 +51,15 @@
 #include <setup_payload/SetupPayload.h>
 
 #if CHIP_ENABLE_OPENTHREAD
-#include <platform/EFR32/ThreadStackManagerImpl.h>
 #include <platform/OpenThread/OpenThreadUtils.h>
 #include <platform/ThreadStackManager.h>
+#include <platform/silabs/ThreadStackManagerImpl.h>
 #endif // CHIP_ENABLE_OPENTHREAD
 
 #ifdef SL_WIFI
 #include "wfx_host_events.h"
 #include <app/clusters/network-commissioning/network-commissioning.h>
-#include <platform/EFR32/NetworkCommissioningWiFiDriver.h>
+#include <platform/silabs/NetworkCommissioningWiFiDriver.h>
 #endif // SL_WIFI
 
 /**********************************************************
diff --git a/examples/platform/efr32/BaseApplication.h b/examples/platform/silabs/efr32/BaseApplication.h
similarity index 100%
rename from examples/platform/efr32/BaseApplication.h
rename to examples/platform/silabs/efr32/BaseApplication.h
diff --git a/examples/platform/efr32/EFR32DeviceDataProvider.cpp b/examples/platform/silabs/efr32/EFR32DeviceDataProvider.cpp
similarity index 99%
rename from examples/platform/efr32/EFR32DeviceDataProvider.cpp
rename to examples/platform/silabs/efr32/EFR32DeviceDataProvider.cpp
index 7599571..07966d3 100644
--- a/examples/platform/efr32/EFR32DeviceDataProvider.cpp
+++ b/examples/platform/silabs/efr32/EFR32DeviceDataProvider.cpp
@@ -16,9 +16,9 @@
  */
 
 #include "EFR32DeviceDataProvider.h"
-#include "EFR32Config.h"
 #include <crypto/CHIPCryptoPAL.h>
 #include <lib/support/Base64.h>
+#include <platform/silabs/EFR32Config.h>
 #include <setup_payload/Base38Encode.h>
 #include <setup_payload/SetupPayload.h>
 
diff --git a/examples/platform/efr32/EFR32DeviceDataProvider.h b/examples/platform/silabs/efr32/EFR32DeviceDataProvider.h
similarity index 100%
rename from examples/platform/efr32/EFR32DeviceDataProvider.h
rename to examples/platform/silabs/efr32/EFR32DeviceDataProvider.h
diff --git a/examples/platform/efr32/FreeRTOSConfig.h b/examples/platform/silabs/efr32/FreeRTOSConfig.h
similarity index 100%
rename from examples/platform/efr32/FreeRTOSConfig.h
rename to examples/platform/silabs/efr32/FreeRTOSConfig.h
diff --git a/examples/platform/efr32/LEDWidget.cpp b/examples/platform/silabs/efr32/LEDWidget.cpp
similarity index 100%
rename from examples/platform/efr32/LEDWidget.cpp
rename to examples/platform/silabs/efr32/LEDWidget.cpp
diff --git a/examples/platform/efr32/LEDWidget.h b/examples/platform/silabs/efr32/LEDWidget.h
similarity index 100%
rename from examples/platform/efr32/LEDWidget.h
rename to examples/platform/silabs/efr32/LEDWidget.h
diff --git a/examples/platform/efr32/MemMonitoring.cpp b/examples/platform/silabs/efr32/MemMonitoring.cpp
similarity index 100%
rename from examples/platform/efr32/MemMonitoring.cpp
rename to examples/platform/silabs/efr32/MemMonitoring.cpp
diff --git a/examples/platform/efr32/OTAConfig.cpp b/examples/platform/silabs/efr32/OTAConfig.cpp
similarity index 100%
rename from examples/platform/efr32/OTAConfig.cpp
rename to examples/platform/silabs/efr32/OTAConfig.cpp
diff --git a/examples/platform/efr32/OTAConfig.h b/examples/platform/silabs/efr32/OTAConfig.h
similarity index 94%
rename from examples/platform/efr32/OTAConfig.h
rename to examples/platform/silabs/efr32/OTAConfig.h
index afc0f57..a4f8ac4 100644
--- a/examples/platform/efr32/OTAConfig.h
+++ b/examples/platform/silabs/efr32/OTAConfig.h
@@ -22,7 +22,7 @@
 #include <app/clusters/ota-requestor/DefaultOTARequestor.h>
 #include <app/clusters/ota-requestor/DefaultOTARequestorDriver.h>
 #include <app/clusters/ota-requestor/DefaultOTARequestorStorage.h>
-#include <platform/EFR32/OTAImageProcessorImpl.h>
+#include <platform/silabs/EFR32/OTAImageProcessorImpl.h>
 
 class OTAConfig
 {
diff --git a/examples/platform/efr32/TemperatureSensor.cpp b/examples/platform/silabs/efr32/TemperatureSensor.cpp
similarity index 100%
rename from examples/platform/efr32/TemperatureSensor.cpp
rename to examples/platform/silabs/efr32/TemperatureSensor.cpp
diff --git a/examples/platform/efr32/TemperatureSensor.h b/examples/platform/silabs/efr32/TemperatureSensor.h
similarity index 100%
rename from examples/platform/efr32/TemperatureSensor.h
rename to examples/platform/silabs/efr32/TemperatureSensor.h
diff --git a/examples/platform/efr32/args.gni b/examples/platform/silabs/efr32/args.gni
similarity index 100%
rename from examples/platform/efr32/args.gni
rename to examples/platform/silabs/efr32/args.gni
diff --git a/examples/platform/efr32/board_config.h b/examples/platform/silabs/efr32/board_config.h
similarity index 100%
rename from examples/platform/efr32/board_config.h
rename to examples/platform/silabs/efr32/board_config.h
diff --git a/examples/platform/efr32/display/demo-ui-bitmaps.h b/examples/platform/silabs/efr32/display/demo-ui-bitmaps.h
similarity index 100%
rename from examples/platform/efr32/display/demo-ui-bitmaps.h
rename to examples/platform/silabs/efr32/display/demo-ui-bitmaps.h
diff --git a/examples/platform/efr32/display/demo-ui.c b/examples/platform/silabs/efr32/display/demo-ui.c
similarity index 100%
rename from examples/platform/efr32/display/demo-ui.c
rename to examples/platform/silabs/efr32/display/demo-ui.c
diff --git a/examples/platform/efr32/display/demo-ui.h b/examples/platform/silabs/efr32/display/demo-ui.h
similarity index 100%
rename from examples/platform/efr32/display/demo-ui.h
rename to examples/platform/silabs/efr32/display/demo-ui.h
diff --git a/examples/platform/efr32/display/lcd.cpp b/examples/platform/silabs/efr32/display/lcd.cpp
similarity index 100%
rename from examples/platform/efr32/display/lcd.cpp
rename to examples/platform/silabs/efr32/display/lcd.cpp
diff --git a/examples/platform/efr32/display/lcd.h b/examples/platform/silabs/efr32/display/lcd.h
similarity index 100%
rename from examples/platform/efr32/display/lcd.h
rename to examples/platform/silabs/efr32/display/lcd.h
diff --git a/examples/platform/efr32/efr32_utils.cpp b/examples/platform/silabs/efr32/efr32_utils.cpp
similarity index 100%
rename from examples/platform/efr32/efr32_utils.cpp
rename to examples/platform/silabs/efr32/efr32_utils.cpp
diff --git a/examples/platform/efr32/efr32_utils.h b/examples/platform/silabs/efr32/efr32_utils.h
similarity index 100%
rename from examples/platform/efr32/efr32_utils.h
rename to examples/platform/silabs/efr32/efr32_utils.h
diff --git a/examples/platform/efr32/init_efrPlatform.cpp b/examples/platform/silabs/efr32/init_efrPlatform.cpp
similarity index 100%
rename from examples/platform/efr32/init_efrPlatform.cpp
rename to examples/platform/silabs/efr32/init_efrPlatform.cpp
diff --git a/examples/platform/efr32/init_efrPlatform.h b/examples/platform/silabs/efr32/init_efrPlatform.h
similarity index 100%
rename from examples/platform/efr32/init_efrPlatform.h
rename to examples/platform/silabs/efr32/init_efrPlatform.h
diff --git a/examples/platform/efr32/ldscripts/efr32mg12.ld b/examples/platform/silabs/efr32/ldscripts/efr32mg12.ld
similarity index 100%
rename from examples/platform/efr32/ldscripts/efr32mg12.ld
rename to examples/platform/silabs/efr32/ldscripts/efr32mg12.ld
diff --git a/examples/platform/efr32/ldscripts/efr32mg21.ld b/examples/platform/silabs/efr32/ldscripts/efr32mg21.ld
similarity index 100%
rename from examples/platform/efr32/ldscripts/efr32mg21.ld
rename to examples/platform/silabs/efr32/ldscripts/efr32mg21.ld
diff --git a/examples/platform/efr32/ldscripts/efr32mg24.ld b/examples/platform/silabs/efr32/ldscripts/efr32mg24.ld
similarity index 100%
rename from examples/platform/efr32/ldscripts/efr32mg24.ld
rename to examples/platform/silabs/efr32/ldscripts/efr32mg24.ld
diff --git a/examples/platform/efr32/ldscripts/mgm24.ld b/examples/platform/silabs/efr32/ldscripts/mgm24.ld
similarity index 100%
rename from examples/platform/efr32/ldscripts/mgm24.ld
rename to examples/platform/silabs/efr32/ldscripts/mgm24.ld
diff --git a/examples/platform/efr32/matter_config.cpp b/examples/platform/silabs/efr32/matter_config.cpp
similarity index 98%
rename from examples/platform/efr32/matter_config.cpp
rename to examples/platform/silabs/efr32/matter_config.cpp
index d12a048..a9dc33c 100644
--- a/examples/platform/efr32/matter_config.cpp
+++ b/examples/platform/silabs/efr32/matter_config.cpp
@@ -49,7 +49,7 @@
 // If building with the EFR32-provided crypto backend, we can use the
 // opaque keystore
 #if CHIP_CRYPTO_PLATFORM
-#include <platform/EFR32/Efr32PsaOperationalKeystore.h>
+#include <platform/silabs/EFR32/Efr32PsaOperationalKeystore.h>
 static chip::DeviceLayer::Internal::Efr32PsaOperationalKeystore gOperationalKeystore;
 #endif
 
diff --git a/examples/platform/efr32/matter_config.h b/examples/platform/silabs/efr32/matter_config.h
similarity index 100%
rename from examples/platform/efr32/matter_config.h
rename to examples/platform/silabs/efr32/matter_config.h
diff --git a/examples/platform/efr32/project_include/OpenThreadConfig.h b/examples/platform/silabs/efr32/project_include/OpenThreadConfig.h
similarity index 98%
rename from examples/platform/efr32/project_include/OpenThreadConfig.h
rename to examples/platform/silabs/efr32/project_include/OpenThreadConfig.h
index 17ca50a..dccf3c8 100644
--- a/examples/platform/efr32/project_include/OpenThreadConfig.h
+++ b/examples/platform/silabs/efr32/project_include/OpenThreadConfig.h
@@ -29,7 +29,7 @@
 
 // Disable the SiLabs-supplied OpenThread logging facilities and use
 // the facilities provided by the Device Layer (see
-// src/platform/EFR32/Logging.cpp).
+// src/platform/silabs/Logging.cpp).
 #define OPENTHREAD_CONFIG_LOG_OUTPUT OPENTHREAD_CONFIG_LOG_OUTPUT_APP
 
 // Turn on a moderate level of logging in OpenThread
diff --git a/examples/platform/efr32/pw_sys_io/BUILD.gn b/examples/platform/silabs/efr32/pw_sys_io/BUILD.gn
similarity index 93%
rename from examples/platform/efr32/pw_sys_io/BUILD.gn
rename to examples/platform/silabs/efr32/pw_sys_io/BUILD.gn
index 13ee23f..722d2a7 100644
--- a/examples/platform/efr32/pw_sys_io/BUILD.gn
+++ b/examples/platform/silabs/efr32/pw_sys_io/BUILD.gn
@@ -17,7 +17,7 @@
 
 import("$dir_pw_build/target_types.gni")
 
-examples_plat_dir = "${chip_root}/examples/platform/efr32"
+examples_plat_dir = "${chip_root}/examples/platform/silabs/efr32"
 
 config("default_config") {
   include_dirs = [ "public" ]
diff --git a/examples/platform/efr32/pw_sys_io/public/pw_sys_io_efr32/init.h b/examples/platform/silabs/efr32/pw_sys_io/public/pw_sys_io_efr32/init.h
similarity index 100%
rename from examples/platform/efr32/pw_sys_io/public/pw_sys_io_efr32/init.h
rename to examples/platform/silabs/efr32/pw_sys_io/public/pw_sys_io_efr32/init.h
diff --git a/examples/platform/efr32/pw_sys_io/sys_io_efr32.cc b/examples/platform/silabs/efr32/pw_sys_io/sys_io_efr32.cc
similarity index 100%
rename from examples/platform/efr32/pw_sys_io/sys_io_efr32.cc
rename to examples/platform/silabs/efr32/pw_sys_io/sys_io_efr32.cc
diff --git a/examples/platform/efr32/rs911x/hal/efx_spi.c b/examples/platform/silabs/efr32/rs911x/hal/efx_spi.c
similarity index 100%
rename from examples/platform/efr32/rs911x/hal/efx_spi.c
rename to examples/platform/silabs/efr32/rs911x/hal/efx_spi.c
diff --git a/examples/platform/efr32/rs911x/hal/rsi_board_configuration.h b/examples/platform/silabs/efr32/rs911x/hal/rsi_board_configuration.h
similarity index 100%
rename from examples/platform/efr32/rs911x/hal/rsi_board_configuration.h
rename to examples/platform/silabs/efr32/rs911x/hal/rsi_board_configuration.h
diff --git a/examples/platform/efr32/rs911x/hal/rsi_hal.h b/examples/platform/silabs/efr32/rs911x/hal/rsi_hal.h
similarity index 100%
rename from examples/platform/efr32/rs911x/hal/rsi_hal.h
rename to examples/platform/silabs/efr32/rs911x/hal/rsi_hal.h
diff --git a/examples/platform/efr32/rs911x/hal/rsi_hal_mcu_interrupt.c b/examples/platform/silabs/efr32/rs911x/hal/rsi_hal_mcu_interrupt.c
similarity index 100%
rename from examples/platform/efr32/rs911x/hal/rsi_hal_mcu_interrupt.c
rename to examples/platform/silabs/efr32/rs911x/hal/rsi_hal_mcu_interrupt.c
diff --git a/examples/platform/efr32/rs911x/hal/rsi_hal_mcu_ioports.c b/examples/platform/silabs/efr32/rs911x/hal/rsi_hal_mcu_ioports.c
similarity index 100%
rename from examples/platform/efr32/rs911x/hal/rsi_hal_mcu_ioports.c
rename to examples/platform/silabs/efr32/rs911x/hal/rsi_hal_mcu_ioports.c
diff --git a/examples/platform/efr32/rs911x/hal/rsi_hal_mcu_rtc.c b/examples/platform/silabs/efr32/rs911x/hal/rsi_hal_mcu_rtc.c
similarity index 100%
rename from examples/platform/efr32/rs911x/hal/rsi_hal_mcu_rtc.c
rename to examples/platform/silabs/efr32/rs911x/hal/rsi_hal_mcu_rtc.c
diff --git a/examples/platform/efr32/rs911x/hal/rsi_hal_mcu_timer.c b/examples/platform/silabs/efr32/rs911x/hal/rsi_hal_mcu_timer.c
similarity index 100%
rename from examples/platform/efr32/rs911x/hal/rsi_hal_mcu_timer.c
rename to examples/platform/silabs/efr32/rs911x/hal/rsi_hal_mcu_timer.c
diff --git a/examples/platform/efr32/rs911x/rs911x.gni b/examples/platform/silabs/efr32/rs911x/rs911x.gni
similarity index 96%
rename from examples/platform/efr32/rs911x/rs911x.gni
rename to examples/platform/silabs/efr32/rs911x/rs911x.gni
index 87b30c4..f119810 100644
--- a/examples/platform/efr32/rs911x/rs911x.gni
+++ b/examples/platform/silabs/efr32/rs911x/rs911x.gni
@@ -2,8 +2,8 @@
 import("//build_overrides/efr32_sdk.gni")
 import("//build_overrides/pigweed.gni")
 
-examples_plat_dir = "${chip_root}/examples/platform/efr32"
-wifi_sdk_dir = "${chip_root}/src/platform/EFR32/wifi"
+examples_plat_dir = "${chip_root}/examples/platform/silabs/efr32"
+wifi_sdk_dir = "${chip_root}/src/platform/silabs/EFR32/wifi"
 wiseconnect_sdk_root = "${chip_root}/third_party/silabs/wiseconnect-wifi-bt-sdk"
 rs911x_cflags = []
 
diff --git a/examples/platform/efr32/rs911x/rsi_if.c b/examples/platform/silabs/efr32/rs911x/rsi_if.c
similarity index 100%
rename from examples/platform/efr32/rs911x/rsi_if.c
rename to examples/platform/silabs/efr32/rs911x/rsi_if.c
diff --git a/examples/platform/efr32/rs911x/rsi_wlan_config.h b/examples/platform/silabs/efr32/rs911x/rsi_wlan_config.h
similarity index 100%
rename from examples/platform/efr32/rs911x/rsi_wlan_config.h
rename to examples/platform/silabs/efr32/rs911x/rsi_wlan_config.h
diff --git a/examples/platform/efr32/rs911x/wfx_rsi.h b/examples/platform/silabs/efr32/rs911x/wfx_rsi.h
similarity index 100%
rename from examples/platform/efr32/rs911x/wfx_rsi.h
rename to examples/platform/silabs/efr32/rs911x/wfx_rsi.h
diff --git a/examples/platform/efr32/rs911x/wfx_rsi_host.c b/examples/platform/silabs/efr32/rs911x/wfx_rsi_host.c
similarity index 100%
rename from examples/platform/efr32/rs911x/wfx_rsi_host.c
rename to examples/platform/silabs/efr32/rs911x/wfx_rsi_host.c
diff --git a/examples/platform/efr32/rs911x/wfx_rsidev.c b/examples/platform/silabs/efr32/rs911x/wfx_rsidev.c
similarity index 100%
rename from examples/platform/efr32/rs911x/wfx_rsidev.c
rename to examples/platform/silabs/efr32/rs911x/wfx_rsidev.c
diff --git a/examples/platform/efr32/uart.cpp b/examples/platform/silabs/efr32/uart.cpp
similarity index 100%
rename from examples/platform/efr32/uart.cpp
rename to examples/platform/silabs/efr32/uart.cpp
diff --git a/examples/platform/efr32/uart.h b/examples/platform/silabs/efr32/uart.h
similarity index 100%
rename from examples/platform/efr32/uart.h
rename to examples/platform/silabs/efr32/uart.h
diff --git a/examples/platform/efr32/wf200/efr_spi.c b/examples/platform/silabs/efr32/wf200/efr_spi.c
similarity index 100%
rename from examples/platform/efr32/wf200/efr_spi.c
rename to examples/platform/silabs/efr32/wf200/efr_spi.c
diff --git a/examples/platform/efr32/wf200/host_if.cpp b/examples/platform/silabs/efr32/wf200/host_if.cpp
similarity index 100%
rename from examples/platform/efr32/wf200/host_if.cpp
rename to examples/platform/silabs/efr32/wf200/host_if.cpp
diff --git a/examples/platform/efr32/wf200/sl_wfx_board.h b/examples/platform/silabs/efr32/wf200/sl_wfx_board.h
similarity index 100%
rename from examples/platform/efr32/wf200/sl_wfx_board.h
rename to examples/platform/silabs/efr32/wf200/sl_wfx_board.h
diff --git a/examples/platform/efr32/wf200/sl_wfx_configuration.h b/examples/platform/silabs/efr32/wf200/sl_wfx_configuration.h
similarity index 100%
rename from examples/platform/efr32/wf200/sl_wfx_configuration.h
rename to examples/platform/silabs/efr32/wf200/sl_wfx_configuration.h
diff --git a/examples/platform/efr32/wf200/sl_wfx_crypto.c b/examples/platform/silabs/efr32/wf200/sl_wfx_crypto.c
similarity index 100%
rename from examples/platform/efr32/wf200/sl_wfx_crypto.c
rename to examples/platform/silabs/efr32/wf200/sl_wfx_crypto.c
diff --git a/examples/platform/efr32/wf200/sl_wfx_host.h b/examples/platform/silabs/efr32/wf200/sl_wfx_host.h
similarity index 100%
rename from examples/platform/efr32/wf200/sl_wfx_host.h
rename to examples/platform/silabs/efr32/wf200/sl_wfx_host.h
diff --git a/examples/platform/efr32/wf200/sl_wfx_securelink_task.c b/examples/platform/silabs/efr32/wf200/sl_wfx_securelink_task.c
similarity index 100%
rename from examples/platform/efr32/wf200/sl_wfx_securelink_task.c
rename to examples/platform/silabs/efr32/wf200/sl_wfx_securelink_task.c
diff --git a/examples/platform/efr32/wf200/sl_wfx_task.c b/examples/platform/silabs/efr32/wf200/sl_wfx_task.c
similarity index 100%
rename from examples/platform/efr32/wf200/sl_wfx_task.c
rename to examples/platform/silabs/efr32/wf200/sl_wfx_task.c
diff --git a/examples/platform/efr32/wf200/sl_wfx_task.h b/examples/platform/silabs/efr32/wf200/sl_wfx_task.h
similarity index 100%
rename from examples/platform/efr32/wf200/sl_wfx_task.h
rename to examples/platform/silabs/efr32/wf200/sl_wfx_task.h
diff --git a/examples/platform/efr32/wf200/wf200.gni b/examples/platform/silabs/efr32/wf200/wf200.gni
similarity index 85%
rename from examples/platform/efr32/wf200/wf200.gni
rename to examples/platform/silabs/efr32/wf200/wf200.gni
index e7236d3..358384a 100644
--- a/examples/platform/efr32/wf200/wf200.gni
+++ b/examples/platform/silabs/efr32/wf200/wf200.gni
@@ -2,8 +2,8 @@
 import("//build_overrides/efr32_sdk.gni")
 import("//build_overrides/pigweed.gni")
 
-examples_plat_dir = "${chip_root}/examples/platform/efr32"
-wifi_sdk_dir = "${chip_root}/src/platform/EFR32/wifi"
+examples_plat_dir = "${chip_root}/examples/platform/silabs/efr32"
+wifi_sdk_dir = "${chip_root}/src/platform/silabs/EFR32/wifi"
 
 wf200_defs = [
   "SL_HEAP_SIZE=24576",
diff --git a/examples/platform/efr32/wf200/wf200_init.c b/examples/platform/silabs/efr32/wf200/wf200_init.c
similarity index 100%
rename from examples/platform/efr32/wf200/wf200_init.c
rename to examples/platform/silabs/efr32/wf200/wf200_init.c
diff --git a/examples/platform/efr32/efr32_creds.h b/examples/platform/silabs/efr32_creds.h
similarity index 100%
rename from examples/platform/efr32/efr32_creds.h
rename to examples/platform/silabs/efr32_creds.h
diff --git a/examples/platform/efr32/heap_4_silabs.c b/examples/platform/silabs/heap_4_silabs.c
similarity index 100%
rename from examples/platform/efr32/heap_4_silabs.c
rename to examples/platform/silabs/heap_4_silabs.c
diff --git a/examples/platform/efr32/heap_4_silabs.h b/examples/platform/silabs/heap_4_silabs.h
similarity index 100%
rename from examples/platform/efr32/heap_4_silabs.h
rename to examples/platform/silabs/heap_4_silabs.h
diff --git a/examples/platform/efr32/matter_shell.cpp b/examples/platform/silabs/matter_shell.cpp
similarity index 100%
rename from examples/platform/efr32/matter_shell.cpp
rename to examples/platform/silabs/matter_shell.cpp
diff --git a/examples/platform/efr32/matter_shell.h b/examples/platform/silabs/matter_shell.h
similarity index 100%
rename from examples/platform/efr32/matter_shell.h
rename to examples/platform/silabs/matter_shell.h
diff --git a/examples/thermostat/efr32/BUILD.gn b/examples/thermostat/efr32/BUILD.gn
index 690023d..1e5deb7 100644
--- a/examples/thermostat/efr32/BUILD.gn
+++ b/examples/thermostat/efr32/BUILD.gn
@@ -32,8 +32,8 @@
 assert(current_os == "freertos")
 
 efr32_project_dir = "${chip_root}/examples/thermostat/efr32"
-examples_plat_dir = "${chip_root}/examples/platform/efr32"
-efr32_sdk_root = "${chip_root}/third_party/silabs/gecko_sdk"
+examples_plat_dir = "${chip_root}/examples/platform/silabs/efr32"
+examples_common_plat_dir = "${chip_root}/examples/platform/silabs"
 
 declare_args() {
   # Dump memory usage at link time.
@@ -81,7 +81,7 @@
 if (chip_enable_wifi) {
   assert(use_rs911x || use_wf200)
   enable_openthread_cli = false
-  import("${chip_root}/src/platform/EFR32/wifi_args.gni")
+  import("${chip_root}/src/platform/silabs/EFR32/wifi_args.gni")
 }
 
 # ThunderBoards, Explorer Kit and MGM240L do not support LCD (No LCD)
@@ -93,7 +93,7 @@
 
 # WiFi settings
 if (chip_enable_wifi) {
-  wifi_sdk_dir = "${chip_root}/src/platform/EFR32/wifi"
+  wifi_sdk_dir = "${chip_root}/src/platform/silabs/EFR32/wifi"
   efr32_lwip_defs = [ "LWIP_NETIF_API=1" ]
   if (lwip_ipv4) {
     efr32_lwip_defs += [
@@ -134,11 +134,11 @@
   ]
 
   include_dirs = [
-    "${chip_root}/src/platform/EFR32",
+    "${chip_root}/src/platform/silabs/EFR32",
     "${efr32_project_dir}/include",
     "${examples_plat_dir}",
     "${chip_root}/src/lib",
-    "${efr32_sdk_root}/app/common/util/app_assert",
+    "${examples_common_plat_dir}",
   ]
 
   defines = [
@@ -198,9 +198,9 @@
   defines = []
 
   sources = [
+    "${examples_common_plat_dir}/heap_4_silabs.c",
     "${examples_plat_dir}/BaseApplication.cpp",
     "${examples_plat_dir}/efr32_utils.cpp",
-    "${examples_plat_dir}/heap_4_silabs.c",
     "${examples_plat_dir}/init_efrPlatform.cpp",
     "${examples_plat_dir}/matter_config.cpp",
     "src/AppTask.cpp",
@@ -327,8 +327,8 @@
     sources += [
       "${chip_root}/examples/common/pigweed/RpcService.cpp",
       "${chip_root}/examples/common/pigweed/efr32/PigweedLoggerMutex.cpp",
-      "${examples_plat_dir}/PigweedLogger.cpp",
-      "${examples_plat_dir}/Rpc.cpp",
+      "${examples_common_plat_dir}/PigweedLogger.cpp",
+      "${examples_common_plat_dir}/Rpc.cpp",
     ]
 
     deps += [
@@ -352,7 +352,7 @@
   }
 
   if (enable_heap_monitoring) {
-    sources += [ "${examples_plat_dir}/MemMonitoring.cpp" ]
+    sources += [ "${examples_common_plat_dir}/MemMonitoring.cpp" ]
     defines += [ "HEAP_MONITORING" ]
   }
 
diff --git a/examples/thermostat/efr32/args.gni b/examples/thermostat/efr32/args.gni
index 7f4a06e..d216faa 100644
--- a/examples/thermostat/efr32/args.gni
+++ b/examples/thermostat/efr32/args.gni
@@ -15,7 +15,7 @@
 import("//build_overrides/chip.gni")
 import("//build_overrides/pigweed.gni")
 import("${chip_root}/config/standalone/args.gni")
-import("${chip_root}/src/platform/EFR32/args.gni")
+import("${chip_root}/src/platform/silabs/EFR32/args.gni")
 
 efr32_sdk_target = get_label_info(":sdk", "label_no_toolchain")
 
diff --git a/examples/thermostat/efr32/build_for_wifi_args.gni b/examples/thermostat/efr32/build_for_wifi_args.gni
index 236f166..363d2be 100644
--- a/examples/thermostat/efr32/build_for_wifi_args.gni
+++ b/examples/thermostat/efr32/build_for_wifi_args.gni
@@ -17,7 +17,7 @@
 
 efr32_sdk_target = get_label_info(":sdk", "label_no_toolchain")
 chip_enable_openthread = false
-import("${chip_root}/src/platform/EFR32/wifi_args.gni")
+import("${chip_root}/src/platform/silabs/EFR32/wifi_args.gni")
 
 chip_enable_ota_requestor = true
 
diff --git a/examples/window-app/efr32/BUILD.gn b/examples/window-app/efr32/BUILD.gn
index c94685c..142a4dc 100644
--- a/examples/window-app/efr32/BUILD.gn
+++ b/examples/window-app/efr32/BUILD.gn
@@ -26,7 +26,8 @@
 
 project_dir = "${chip_root}/examples/window-app"
 efr32_project_dir = "${project_dir}/efr32"
-examples_plat_dir = "${chip_root}/examples/platform/efr32"
+examples_plat_dir = "${chip_root}/examples/platform/silabs/efr32"
+examples_common_plat_dir = "${chip_root}/examples/platform/silabs"
 
 declare_args() {
   # Dump memory usage at link time.
@@ -73,7 +74,7 @@
 if (chip_enable_wifi) {
   assert(use_rs911x || use_wf200)
   enable_openthread_cli = false
-  import("${chip_root}/src/platform/EFR32/wifi_args.gni")
+  import("${chip_root}/src/platform/silabs/EFR32/wifi_args.gni")
 }
 
 # ThunderBoards, Explorer Kit and MGM240L do not support LCD (No LCD)
@@ -90,7 +91,7 @@
     show_qr_code = false
     disable_lcd = true
   }
-  wifi_sdk_dir = "${chip_root}/src/platform/EFR32/wifi"
+  wifi_sdk_dir = "${chip_root}/src/platform/silabs/EFR32/wifi"
   efr32_lwip_defs = [ "LWIP_NETIF_API=1" ]
   if (lwip_ipv4) {
     efr32_lwip_defs += [
@@ -131,10 +132,11 @@
   ]
 
   include_dirs = [
-    "${chip_root}/src/platform/EFR32",
+    "${chip_root}/src/platform/silabs/EFR32",
     "${efr32_project_dir}/include",
     "${examples_plat_dir}",
     "${chip_root}/src/lib",
+    "${examples_common_plat_dir}",
   ]
 
   defines = [
@@ -179,8 +181,8 @@
   defines = []
 
   sources = [
+    "${examples_common_plat_dir}/heap_4_silabs.c",
     "${examples_plat_dir}/efr32_utils.cpp",
-    "${examples_plat_dir}/heap_4_silabs.c",
     "${examples_plat_dir}/init_efrPlatform.cpp",
     "${examples_plat_dir}/matter_config.cpp",
     "${project_dir}/common/src/WindowApp.cpp",
@@ -275,7 +277,7 @@
   if (enable_heap_monitoring) {
     defines += [ "HEAP_MONITORING" ]
 
-    sources += [ "${examples_plat_dir}/MemMonitoring.cpp" ]
+    sources += [ "${examples_common_plat_dir}/MemMonitoring.cpp" ]
   }
 
   ldscript = "${examples_plat_dir}/ldscripts/${silabs_family}.ld"
diff --git a/examples/window-app/efr32/args.gni b/examples/window-app/efr32/args.gni
index c45308a..212e702 100644
--- a/examples/window-app/efr32/args.gni
+++ b/examples/window-app/efr32/args.gni
@@ -15,7 +15,7 @@
 import("//build_overrides/chip.gni")
 import("//build_overrides/pigweed.gni")
 import("${chip_root}/config/standalone/args.gni")
-import("${chip_root}/src/platform/EFR32/args.gni")
+import("${chip_root}/src/platform/silabs/EFR32/args.gni")
 
 efr32_sdk_target = get_label_info(":sdk", "label_no_toolchain")
 
diff --git a/examples/window-app/efr32/build_for_wifi_args.gni b/examples/window-app/efr32/build_for_wifi_args.gni
index 4a3bdfd..8fe1081 100644
--- a/examples/window-app/efr32/build_for_wifi_args.gni
+++ b/examples/window-app/efr32/build_for_wifi_args.gni
@@ -16,7 +16,7 @@
 
 efr32_sdk_target = get_label_info(":sdk", "label_no_toolchain")
 chip_enable_openthread = false
-import("${chip_root}/src/platform/EFR32/wifi_args.gni")
+import("${chip_root}/src/platform/silabs/EFR32/wifi_args.gni")
 
 chip_enable_ota_requestor = true
 
diff --git a/examples/window-app/efr32/src/WindowAppImpl.cpp b/examples/window-app/efr32/src/WindowAppImpl.cpp
index 2675b73..6e4c4cf 100644
--- a/examples/window-app/efr32/src/WindowAppImpl.cpp
+++ b/examples/window-app/efr32/src/WindowAppImpl.cpp
@@ -42,7 +42,7 @@
 #ifdef SL_WIFI
 #include "wfx_host_events.h"
 #include <app/clusters/network-commissioning/network-commissioning.h>
-#include <platform/EFR32/NetworkCommissioningWiFiDriver.h>
+#include <platform/silabs/NetworkCommissioningWiFiDriver.h>
 #endif
 
 #ifdef DISPLAY_ENABLED
diff --git a/scripts/build/builders/efr32.py b/scripts/build/builders/efr32.py
index 6aba4a2..d622a9b 100644
--- a/scripts/build/builders/efr32.py
+++ b/scripts/build/builders/efr32.py
@@ -68,6 +68,8 @@
     def BuildRoot(self, root):
         if self == Efr32App.UNIT_TEST:
             return os.path.join(root, 'src', 'test_driver', 'efr32')
+        if self == Efr32App.LIGHT:
+            return os.path.join(root, 'examples', self.ExampleName(), 'silabs/efr32')
         else:
             return os.path.join(root, 'examples', self.ExampleName(), 'efr32')
 
diff --git a/scripts/build/testdata/dry_run_efr32-brd4161a-light-rpc.txt b/scripts/build/testdata/dry_run_efr32-brd4161a-light-rpc.txt
index cfbf6ba..4a24168 100644
--- a/scripts/build/testdata/dry_run_efr32-brd4161a-light-rpc.txt
+++ b/scripts/build/testdata/dry_run_efr32-brd4161a-light-rpc.txt
@@ -2,7 +2,7 @@
 cd "{root}"
 
 # Generating efr32-brd4161a-light-rpc
-gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4161A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4161a-light-rpc
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/silabs/efr32 '--args=silabs_board="BRD4161A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4161a-light-rpc
 
 # Building efr32-brd4161a-light-rpc
 ninja -C {out}/efr32-brd4161a-light-rpc
diff --git a/scripts/tools/check_includes_config.py b/scripts/tools/check_includes_config.py
index 511c8d8..81b2a48 100644
--- a/scripts/tools/check_includes_config.py
+++ b/scripts/tools/check_includes_config.py
@@ -42,7 +42,7 @@
     '/platform/Beken/',
     '/platform/Infineon/CYW30739/',
     '/platform/Darwin/',
-    '/platform/EFR32/',
+    '/platform/silabs/',
     '/platform/ESP32/',
     '/platform/fake/',
     '/platform/Linux/',
diff --git a/src/platform/BUILD.gn b/src/platform/BUILD.gn
index 9b4f485..c02b331 100644
--- a/src/platform/BUILD.gn
+++ b/src/platform/BUILD.gn
@@ -162,7 +162,7 @@
     } else if (chip_device_platform == "efr32") {
       defines += [
         "CHIP_DEVICE_LAYER_TARGET_EFR32=1",
-        "CHIP_DEVICE_LAYER_TARGET=EFR32",
+        "CHIP_DEVICE_LAYER_TARGET=silabs",
       ]
     } else if (chip_device_platform == "esp32") {
       defines += [
@@ -409,7 +409,7 @@
     } else if (chip_device_platform == "darwin") {
       _platform_target = "Darwin"
     } else if (chip_device_platform == "efr32") {
-      _platform_target = "EFR32"
+      _platform_target = "silabs/EFR32"
     } else if (chip_device_platform == "esp32") {
       _platform_target = "ESP32"
     } else if (chip_device_platform == "k32w0") {
diff --git a/src/platform/device.gni b/src/platform/device.gni
index f32ac03..601d21e 100755
--- a/src/platform/device.gni
+++ b/src/platform/device.gni
@@ -112,7 +112,7 @@
 } else if (chip_device_platform == "darwin") {
   _chip_device_layer = "Darwin"
 } else if (chip_device_platform == "efr32") {
-  _chip_device_layer = "EFR32"
+  _chip_device_layer = "silabs"
 } else if (chip_device_platform == "esp32") {
   _chip_device_layer = "ESP32"
 } else if (chip_device_platform == "linux") {
diff --git a/src/platform/EFR32/BLEManagerImpl.h b/src/platform/silabs/BLEManagerImpl.h
similarity index 100%
rename from src/platform/EFR32/BLEManagerImpl.h
rename to src/platform/silabs/BLEManagerImpl.h
diff --git a/src/platform/EFR32/BlePlatformConfig.h b/src/platform/silabs/BlePlatformConfig.h
similarity index 97%
rename from src/platform/EFR32/BlePlatformConfig.h
rename to src/platform/silabs/BlePlatformConfig.h
index eec0887..51feaec 100644
--- a/src/platform/EFR32/BlePlatformConfig.h
+++ b/src/platform/silabs/BlePlatformConfig.h
@@ -25,8 +25,6 @@
 
 #pragma once
 
-#include "sl_bt_api.h"
-
 // ==================== Platform Adaptations ====================
 
 #define BLE_CONNECTION_OBJECT uint8_t
diff --git a/src/platform/EFR32/CHIPDevicePlatformConfig.h b/src/platform/silabs/CHIPDevicePlatformConfig.h
similarity index 100%
rename from src/platform/EFR32/CHIPDevicePlatformConfig.h
rename to src/platform/silabs/CHIPDevicePlatformConfig.h
diff --git a/src/platform/EFR32/CHIPDevicePlatformEvent.h b/src/platform/silabs/CHIPDevicePlatformEvent.h
similarity index 100%
rename from src/platform/EFR32/CHIPDevicePlatformEvent.h
rename to src/platform/silabs/CHIPDevicePlatformEvent.h
diff --git a/src/platform/EFR32/CHIPMem-Platform.cpp b/src/platform/silabs/CHIPMem-Platform.cpp
similarity index 100%
rename from src/platform/EFR32/CHIPMem-Platform.cpp
rename to src/platform/silabs/CHIPMem-Platform.cpp
diff --git a/src/platform/EFR32/CHIPPlatformConfig.h b/src/platform/silabs/CHIPPlatformConfig.h
similarity index 100%
rename from src/platform/EFR32/CHIPPlatformConfig.h
rename to src/platform/silabs/CHIPPlatformConfig.h
diff --git a/src/platform/EFR32/ConfigurationManagerImpl.h b/src/platform/silabs/ConfigurationManagerImpl.h
similarity index 98%
rename from src/platform/EFR32/ConfigurationManagerImpl.h
rename to src/platform/silabs/ConfigurationManagerImpl.h
index 2f40d8d..7c47e98 100644
--- a/src/platform/EFR32/ConfigurationManagerImpl.h
+++ b/src/platform/silabs/ConfigurationManagerImpl.h
@@ -26,7 +26,7 @@
 
 #include <platform/internal/GenericConfigurationManagerImpl.h>
 
-#include <platform/EFR32/EFR32Config.h>
+#include <platform/silabs/EFR32Config.h>
 
 namespace chip {
 namespace DeviceLayer {
diff --git a/src/platform/EFR32/ConnectivityManagerImpl.h b/src/platform/silabs/ConnectivityManagerImpl.h
similarity index 100%
rename from src/platform/EFR32/ConnectivityManagerImpl.h
rename to src/platform/silabs/ConnectivityManagerImpl.h
diff --git a/src/platform/EFR32/ConnectivityManagerImpl_WIFI.cpp b/src/platform/silabs/ConnectivityManagerImpl_WIFI.cpp
similarity index 99%
rename from src/platform/EFR32/ConnectivityManagerImpl_WIFI.cpp
rename to src/platform/silabs/ConnectivityManagerImpl_WIFI.cpp
index 45b8b74..7bb0741 100644
--- a/src/platform/EFR32/ConnectivityManagerImpl_WIFI.cpp
+++ b/src/platform/silabs/ConnectivityManagerImpl_WIFI.cpp
@@ -21,8 +21,8 @@
 #include <lib/support/CodeUtils.h>
 #include <lib/support/logging/CHIPLogging.h>
 #include <platform/ConnectivityManager.h>
-#include <platform/EFR32/NetworkCommissioningWiFiDriver.h>
 #include <platform/internal/BLEManager.h>
+#include <platform/silabs/NetworkCommissioningWiFiDriver.h>
 
 #include <lwip/dns.h>
 #include <lwip/ip_addr.h>
diff --git a/src/platform/EFR32/DiagnosticDataProviderImpl.cpp b/src/platform/silabs/DiagnosticDataProviderImpl.cpp
similarity index 99%
rename from src/platform/EFR32/DiagnosticDataProviderImpl.cpp
rename to src/platform/silabs/DiagnosticDataProviderImpl.cpp
index 3185812..b1c548b 100644
--- a/src/platform/EFR32/DiagnosticDataProviderImpl.cpp
+++ b/src/platform/silabs/DiagnosticDataProviderImpl.cpp
@@ -24,7 +24,7 @@
 #include <platform/internal/CHIPDeviceLayerInternal.h>
 
 #include <platform/DiagnosticDataProvider.h>
-#include <platform/EFR32/DiagnosticDataProviderImpl.h>
+#include <platform/silabs/DiagnosticDataProviderImpl.h>
 #if CHIP_DEVICE_CONFIG_ENABLE_THREAD
 #include <platform/OpenThread/GenericThreadStackManagerImpl_OpenThread.h>
 #endif
diff --git a/src/platform/EFR32/DiagnosticDataProviderImpl.h b/src/platform/silabs/DiagnosticDataProviderImpl.h
similarity index 100%
rename from src/platform/EFR32/DiagnosticDataProviderImpl.h
rename to src/platform/silabs/DiagnosticDataProviderImpl.h
diff --git a/src/platform/EFR32/BLEManagerImpl.cpp b/src/platform/silabs/EFR32/BLEManagerImpl.cpp
similarity index 100%
rename from src/platform/EFR32/BLEManagerImpl.cpp
rename to src/platform/silabs/EFR32/BLEManagerImpl.cpp
diff --git a/src/platform/EFR32/BUILD.gn b/src/platform/silabs/EFR32/BUILD.gn
similarity index 63%
rename from src/platform/EFR32/BUILD.gn
rename to src/platform/silabs/EFR32/BUILD.gn
index 239dcc5..546fe7a 100644
--- a/src/platform/EFR32/BUILD.gn
+++ b/src/platform/silabs/EFR32/BUILD.gn
@@ -20,6 +20,8 @@
 import("${chip_root}/build/chip/buildconfig_header.gni")
 import("${chip_root}/src/crypto/crypto.gni")
 
+silabs_platform_dir = "${chip_root}/src/platform/silabs"
+
 assert(chip_device_platform == "efr32")
 
 if (chip_enable_openthread) {
@@ -32,29 +34,29 @@
 
 static_library("EFR32") {
   sources = [
-    "../FreeRTOS/SystemTimeSupport.cpp",
-    "../SingletonConfigurationManager.cpp",
+    "${silabs_platform_dir}/BLEManagerImpl.h",
+    "${silabs_platform_dir}/BlePlatformConfig.h",
+    "${silabs_platform_dir}/CHIPDevicePlatformConfig.h",
+    "${silabs_platform_dir}/CHIPDevicePlatformEvent.h",
+    "${silabs_platform_dir}/CHIPMem-Platform.cpp",
+    "${silabs_platform_dir}/CHIPPlatformConfig.h",
+    "${silabs_platform_dir}/ConfigurationManagerImpl.h",
+    "${silabs_platform_dir}/ConnectivityManagerImpl.h",
+    "${silabs_platform_dir}/DiagnosticDataProviderImpl.cpp",
+    "${silabs_platform_dir}/DiagnosticDataProviderImpl.h",
+    "${silabs_platform_dir}/EFR32Config.cpp",
+    "${silabs_platform_dir}/EFR32Config.h",
+    "${silabs_platform_dir}/InetPlatformConfig.h",
+    "${silabs_platform_dir}/KeyValueStoreManagerImpl.h",
+    "${silabs_platform_dir}/Logging.cpp",
+    "${silabs_platform_dir}/PlatformManagerImpl.h",
+    "${silabs_platform_dir}/SystemPlatformConfig.h",
+    "../../FreeRTOS/SystemTimeSupport.cpp",
+    "../../SingletonConfigurationManager.cpp",
     "BLEManagerImpl.cpp",
-    "BLEManagerImpl.h",
-    "BlePlatformConfig.h",
-    "CHIPDevicePlatformConfig.h",
-    "CHIPDevicePlatformEvent.h",
-    "CHIPMem-Platform.cpp",
-    "CHIPPlatformConfig.h",
     "ConfigurationManagerImpl.cpp",
-    "ConfigurationManagerImpl.h",
-    "ConnectivityManagerImpl.h",
-    "DiagnosticDataProviderImpl.cpp",
-    "DiagnosticDataProviderImpl.h",
-    "EFR32Config.cpp",
-    "EFR32Config.h",
-    "InetPlatformConfig.h",
     "KeyValueStoreManagerImpl.cpp",
-    "KeyValueStoreManagerImpl.h",
-    "Logging.cpp",
     "PlatformManagerImpl.cpp",
-    "PlatformManagerImpl.h",
-    "SystemPlatformConfig.h",
   ]
 
   if (chip_enable_ota_requestor) {
@@ -97,14 +99,14 @@
     deps += [ "${chip_root}/third_party/openthread:openthread_cli" ]
 
     sources += [
-      "../OpenThread/OpenThreadUtils.cpp",
+      "${silabs_platform_dir}/ThreadStackManagerImpl.h",
+      "../../OpenThread/OpenThreadUtils.cpp",
       "ConnectivityManagerImpl.cpp",
       "ThreadStackManagerImpl.cpp",
-      "ThreadStackManagerImpl.h",
     ]
 
     if (chip_mdns == "platform") {
-      sources += [ "../OpenThread/DnssdImpl.cpp" ]
+      sources += [ "../../OpenThread/DnssdImpl.cpp" ]
       deps += [ "${chip_root}/src/lib/dnssd:platform_header" ]
     }
 
@@ -115,9 +117,9 @@
 
   if (chip_enable_wifi) {
     sources += [
-      "ConnectivityManagerImpl_WIFI.cpp",
-      "NetworkCommissioningWiFiDriver.cpp",
-      "NetworkCommissioningWiFiDriver.h",
+      "${silabs_platform_dir}/ConnectivityManagerImpl_WIFI.cpp",
+      "${silabs_platform_dir}/NetworkCommissioningWiFiDriver.cpp",
+      "${silabs_platform_dir}/NetworkCommissioningWiFiDriver.h",
     ]
   }
 }
diff --git a/src/platform/EFR32/CHIPCryptoPALPsaEfr32.cpp b/src/platform/silabs/EFR32/CHIPCryptoPALPsaEfr32.cpp
similarity index 100%
rename from src/platform/EFR32/CHIPCryptoPALPsaEfr32.cpp
rename to src/platform/silabs/EFR32/CHIPCryptoPALPsaEfr32.cpp
diff --git a/src/platform/EFR32/ConfigurationManagerImpl.cpp b/src/platform/silabs/EFR32/ConfigurationManagerImpl.cpp
similarity index 99%
rename from src/platform/EFR32/ConfigurationManagerImpl.cpp
rename to src/platform/silabs/EFR32/ConfigurationManagerImpl.cpp
index 0dd8170..5dc4be6 100644
--- a/src/platform/EFR32/ConfigurationManagerImpl.cpp
+++ b/src/platform/silabs/EFR32/ConfigurationManagerImpl.cpp
@@ -28,7 +28,7 @@
 
 #include <platform/ConfigurationManager.h>
 #include <platform/DiagnosticDataProvider.h>
-#include <platform/EFR32/EFR32Config.h>
+#include <platform/silabs/EFR32Config.h>
 
 #include "em_rmu.h"
 
diff --git a/src/platform/EFR32/ConnectivityManagerImpl.cpp b/src/platform/silabs/EFR32/ConnectivityManagerImpl.cpp
similarity index 100%
rename from src/platform/EFR32/ConnectivityManagerImpl.cpp
rename to src/platform/silabs/EFR32/ConnectivityManagerImpl.cpp
diff --git a/src/platform/EFR32/Efr32OpaqueKeypair.h b/src/platform/silabs/EFR32/Efr32OpaqueKeypair.h
similarity index 100%
rename from src/platform/EFR32/Efr32OpaqueKeypair.h
rename to src/platform/silabs/EFR32/Efr32OpaqueKeypair.h
diff --git a/src/platform/EFR32/Efr32PsaOpaqueKeypair.cpp b/src/platform/silabs/EFR32/Efr32PsaOpaqueKeypair.cpp
similarity index 100%
rename from src/platform/EFR32/Efr32PsaOpaqueKeypair.cpp
rename to src/platform/silabs/EFR32/Efr32PsaOpaqueKeypair.cpp
diff --git a/src/platform/EFR32/Efr32PsaOperationalKeystore.cpp b/src/platform/silabs/EFR32/Efr32PsaOperationalKeystore.cpp
similarity index 99%
rename from src/platform/EFR32/Efr32PsaOperationalKeystore.cpp
rename to src/platform/silabs/EFR32/Efr32PsaOperationalKeystore.cpp
index de983e2..411db04 100644
--- a/src/platform/EFR32/Efr32PsaOperationalKeystore.cpp
+++ b/src/platform/silabs/EFR32/Efr32PsaOperationalKeystore.cpp
@@ -24,8 +24,8 @@
 #include <lib/support/CodeUtils.h>
 #include <lib/support/SafeInt.h>
 
-#include "EFR32Config.h"
 #include "Efr32OpaqueKeypair.h"
+#include <platform/silabs/EFR32Config.h>
 
 namespace chip {
 namespace DeviceLayer {
diff --git a/src/platform/EFR32/Efr32PsaOperationalKeystore.h b/src/platform/silabs/EFR32/Efr32PsaOperationalKeystore.h
similarity index 100%
rename from src/platform/EFR32/Efr32PsaOperationalKeystore.h
rename to src/platform/silabs/EFR32/Efr32PsaOperationalKeystore.h
diff --git a/src/platform/EFR32/KeyValueStoreManagerImpl.cpp b/src/platform/silabs/EFR32/KeyValueStoreManagerImpl.cpp
similarity index 99%
rename from src/platform/EFR32/KeyValueStoreManagerImpl.cpp
rename to src/platform/silabs/EFR32/KeyValueStoreManagerImpl.cpp
index a7f75af..05b3acf 100644
--- a/src/platform/EFR32/KeyValueStoreManagerImpl.cpp
+++ b/src/platform/silabs/EFR32/KeyValueStoreManagerImpl.cpp
@@ -24,8 +24,8 @@
 #include <lib/support/CHIPMemString.h>
 #include <lib/support/CodeUtils.h>
 #include <platform/CHIPDeviceLayer.h>
-#include <platform/EFR32/EFR32Config.h>
 #include <platform/KeyValueStoreManager.h>
+#include <platform/silabs/EFR32Config.h>
 #include <stdio.h>
 #include <string.h>
 
diff --git a/src/platform/EFR32/OTAImageProcessorImpl.cpp b/src/platform/silabs/EFR32/OTAImageProcessorImpl.cpp
similarity index 99%
rename from src/platform/EFR32/OTAImageProcessorImpl.cpp
rename to src/platform/silabs/EFR32/OTAImageProcessorImpl.cpp
index 70b1349..49fd73d 100644
--- a/src/platform/EFR32/OTAImageProcessorImpl.cpp
+++ b/src/platform/silabs/EFR32/OTAImageProcessorImpl.cpp
@@ -25,7 +25,7 @@
 #include "em_bus.h" // For CORE_CRITICAL_SECTION
 }
 
-#include "EFR32Config.h"
+#include <platform/silabs/EFR32Config.h>
 
 /// No error, operation OK
 #define SL_BOOTLOADER_OK 0L
diff --git a/src/platform/EFR32/OTAImageProcessorImpl.h b/src/platform/silabs/EFR32/OTAImageProcessorImpl.h
similarity index 100%
rename from src/platform/EFR32/OTAImageProcessorImpl.h
rename to src/platform/silabs/EFR32/OTAImageProcessorImpl.h
diff --git a/src/platform/EFR32/PlatformManagerImpl.cpp b/src/platform/silabs/EFR32/PlatformManagerImpl.cpp
similarity index 98%
rename from src/platform/EFR32/PlatformManagerImpl.cpp
rename to src/platform/silabs/EFR32/PlatformManagerImpl.cpp
index 8d5acfb..626ea16 100644
--- a/src/platform/EFR32/PlatformManagerImpl.cpp
+++ b/src/platform/silabs/EFR32/PlatformManagerImpl.cpp
@@ -24,11 +24,11 @@
 /* this file behaves like a config.h, comes first */
 #include <platform/internal/CHIPDeviceLayerInternal.h>
 
-#include <platform/EFR32/DiagnosticDataProviderImpl.h>
 #include <platform/FreeRTOS/SystemTimeSupport.h>
 #include <platform/KeyValueStoreManager.h>
 #include <platform/PlatformManager.h>
 #include <platform/internal/GenericPlatformManagerImpl_FreeRTOS.ipp>
+#include <platform/silabs/DiagnosticDataProviderImpl.h>
 
 #if CHIP_SYSTEM_CONFIG_USE_LWIP
 #include <lwip/tcpip.h>
diff --git a/src/platform/EFR32/ThreadStackManagerImpl.cpp b/src/platform/silabs/EFR32/ThreadStackManagerImpl.cpp
similarity index 100%
rename from src/platform/EFR32/ThreadStackManagerImpl.cpp
rename to src/platform/silabs/EFR32/ThreadStackManagerImpl.cpp
diff --git a/src/platform/EFR32/args.gni b/src/platform/silabs/EFR32/args.gni
similarity index 90%
rename from src/platform/EFR32/args.gni
rename to src/platform/silabs/EFR32/args.gni
index bc075e6..6e7ac8d 100644
--- a/src/platform/EFR32/args.gni
+++ b/src/platform/silabs/EFR32/args.gni
@@ -16,7 +16,7 @@
 import("//build_overrides/efr32_sdk.gni")
 import("//build_overrides/pigweed.gni")
 
-import("${chip_root}/examples/platform/efr32/args.gni")
+import("${chip_root}/examples/platform/silabs/efr32/args.gni")
 import("${chip_root}/src/crypto/crypto.gni")
 
 # ARM architecture flags will be set based on silabs_family.
@@ -44,14 +44,14 @@
 chip_build_tests = false
 
 # Transitional CommissionableDataProvider not used anymore
-# examples/platform/efr32/EFR32DeviceDataProvider is now used.
+# examples/platform/silabs/efr32/EFR32DeviceDataProvider is now used.
 chip_use_transitional_commissionable_data_provider = false
 
 openthread_root = "${chip_root}/third_party/openthread/ot-efr32/openthread"
 openthread_core_config_platform_check_file =
     "openthread-core-efr32-config-check.h"
 openthread_project_core_config_file = "OpenThreadConfig.h"
-openthread_core_config_deps = [ "${chip_root}/examples/platform/efr32:openthread_core_config_efr32_chip_examples" ]
+openthread_core_config_deps = [ "${chip_root}/examples/platform/silabs/efr32:openthread_core_config_efr32_chip_examples" ]
 
 chip_config_memory_management = "platform"
 
diff --git a/src/platform/EFR32/efr32-chip-mbedtls-config.h b/src/platform/silabs/EFR32/efr32-chip-mbedtls-config.h
similarity index 100%
rename from src/platform/EFR32/efr32-chip-mbedtls-config.h
rename to src/platform/silabs/EFR32/efr32-chip-mbedtls-config.h
diff --git a/src/platform/EFR32/efr32-mbedtls-psa-crypto-config.h b/src/platform/silabs/EFR32/efr32-mbedtls-psa-crypto-config.h
similarity index 100%
rename from src/platform/EFR32/efr32-mbedtls-psa-crypto-config.h
rename to src/platform/silabs/EFR32/efr32-mbedtls-psa-crypto-config.h
diff --git a/src/platform/EFR32/wifi/dhcp_client.cpp b/src/platform/silabs/EFR32/wifi/dhcp_client.cpp
similarity index 100%
rename from src/platform/EFR32/wifi/dhcp_client.cpp
rename to src/platform/silabs/EFR32/wifi/dhcp_client.cpp
diff --git a/src/platform/EFR32/wifi/dhcp_client.h b/src/platform/silabs/EFR32/wifi/dhcp_client.h
similarity index 100%
rename from src/platform/EFR32/wifi/dhcp_client.h
rename to src/platform/silabs/EFR32/wifi/dhcp_client.h
diff --git a/src/platform/EFR32/wifi/ethernetif.cpp b/src/platform/silabs/EFR32/wifi/ethernetif.cpp
similarity index 100%
rename from src/platform/EFR32/wifi/ethernetif.cpp
rename to src/platform/silabs/EFR32/wifi/ethernetif.cpp
diff --git a/src/platform/EFR32/wifi/ethernetif.h b/src/platform/silabs/EFR32/wifi/ethernetif.h
similarity index 100%
rename from src/platform/EFR32/wifi/ethernetif.h
rename to src/platform/silabs/EFR32/wifi/ethernetif.h
diff --git a/src/platform/EFR32/wifi/lwip_netif.cpp b/src/platform/silabs/EFR32/wifi/lwip_netif.cpp
similarity index 100%
rename from src/platform/EFR32/wifi/lwip_netif.cpp
rename to src/platform/silabs/EFR32/wifi/lwip_netif.cpp
diff --git a/src/platform/EFR32/wifi/wfx_host_events.h b/src/platform/silabs/EFR32/wifi/wfx_host_events.h
similarity index 100%
rename from src/platform/EFR32/wifi/wfx_host_events.h
rename to src/platform/silabs/EFR32/wifi/wfx_host_events.h
diff --git a/src/platform/EFR32/wifi/wfx_msgs.h b/src/platform/silabs/EFR32/wifi/wfx_msgs.h
similarity index 100%
rename from src/platform/EFR32/wifi/wfx_msgs.h
rename to src/platform/silabs/EFR32/wifi/wfx_msgs.h
diff --git a/src/platform/EFR32/wifi/wfx_notify.cpp b/src/platform/silabs/EFR32/wifi/wfx_notify.cpp
similarity index 100%
rename from src/platform/EFR32/wifi/wfx_notify.cpp
rename to src/platform/silabs/EFR32/wifi/wfx_notify.cpp
diff --git a/src/platform/EFR32/wifi/wifi_config.h b/src/platform/silabs/EFR32/wifi/wifi_config.h
similarity index 100%
rename from src/platform/EFR32/wifi/wifi_config.h
rename to src/platform/silabs/EFR32/wifi/wifi_config.h
diff --git a/src/platform/EFR32/wifi_args.gni b/src/platform/silabs/EFR32/wifi_args.gni
similarity index 96%
rename from src/platform/EFR32/wifi_args.gni
rename to src/platform/silabs/EFR32/wifi_args.gni
index 3c84e0e..73a6613 100644
--- a/src/platform/EFR32/wifi_args.gni
+++ b/src/platform/silabs/EFR32/wifi_args.gni
@@ -17,7 +17,7 @@
 import("//build_overrides/efr32_sdk.gni")
 import("//build_overrides/pigweed.gni")
 
-import("${chip_root}/examples/platform/efr32/args.gni")
+import("${chip_root}/examples/platform/silabs/efr32/args.gni")
 import("${chip_root}/src/crypto/crypto.gni")
 
 # ARM architecture flags will be set based on silabs_family.
diff --git a/src/platform/EFR32/EFR32Config.cpp b/src/platform/silabs/EFR32Config.cpp
similarity index 99%
rename from src/platform/EFR32/EFR32Config.cpp
rename to src/platform/silabs/EFR32Config.cpp
index ff6a34c..82751b3 100644
--- a/src/platform/EFR32/EFR32Config.cpp
+++ b/src/platform/silabs/EFR32Config.cpp
@@ -24,7 +24,7 @@
 /* this file behaves like a config.h, comes first */
 #include <platform/internal/CHIPDeviceLayerInternal.h>
 
-#include <platform/EFR32/EFR32Config.h>
+#include <platform/silabs/EFR32Config.h>
 
 #include <lib/core/CHIPEncoding.h>
 #include <platform/internal/testing/ConfigUnitTest.h>
diff --git a/src/platform/EFR32/EFR32Config.h b/src/platform/silabs/EFR32Config.h
similarity index 100%
rename from src/platform/EFR32/EFR32Config.h
rename to src/platform/silabs/EFR32Config.h
diff --git a/src/platform/EFR32/InetPlatformConfig.h b/src/platform/silabs/InetPlatformConfig.h
similarity index 100%
rename from src/platform/EFR32/InetPlatformConfig.h
rename to src/platform/silabs/InetPlatformConfig.h
diff --git a/src/platform/EFR32/KeyValueStoreManagerImpl.h b/src/platform/silabs/KeyValueStoreManagerImpl.h
similarity index 100%
rename from src/platform/EFR32/KeyValueStoreManagerImpl.h
rename to src/platform/silabs/KeyValueStoreManagerImpl.h
diff --git a/src/platform/EFR32/Logging.cpp b/src/platform/silabs/Logging.cpp
similarity index 100%
rename from src/platform/EFR32/Logging.cpp
rename to src/platform/silabs/Logging.cpp
diff --git a/src/platform/EFR32/NetworkCommissioningWiFiDriver.cpp b/src/platform/silabs/NetworkCommissioningWiFiDriver.cpp
similarity index 98%
rename from src/platform/EFR32/NetworkCommissioningWiFiDriver.cpp
rename to src/platform/silabs/NetworkCommissioningWiFiDriver.cpp
index 21de35e..55ae4d1 100644
--- a/src/platform/EFR32/NetworkCommissioningWiFiDriver.cpp
+++ b/src/platform/silabs/NetworkCommissioningWiFiDriver.cpp
@@ -18,8 +18,8 @@
 #include <lib/support/CodeUtils.h>
 #include <lib/support/SafeInt.h>
 #include <platform/CHIPDeviceLayer.h>
-#include <platform/EFR32/EFR32Config.h>
-#include <platform/EFR32/NetworkCommissioningWiFiDriver.h>
+#include <platform/silabs/EFR32Config.h>
+#include <platform/silabs/NetworkCommissioningWiFiDriver.h>
 
 #include <limits>
 
diff --git a/src/platform/EFR32/NetworkCommissioningWiFiDriver.h b/src/platform/silabs/NetworkCommissioningWiFiDriver.h
similarity index 100%
rename from src/platform/EFR32/NetworkCommissioningWiFiDriver.h
rename to src/platform/silabs/NetworkCommissioningWiFiDriver.h
diff --git a/src/platform/EFR32/PlatformManagerImpl.h b/src/platform/silabs/PlatformManagerImpl.h
similarity index 100%
rename from src/platform/EFR32/PlatformManagerImpl.h
rename to src/platform/silabs/PlatformManagerImpl.h
diff --git a/src/platform/EFR32/SystemPlatformConfig.h b/src/platform/silabs/SystemPlatformConfig.h
similarity index 100%
rename from src/platform/EFR32/SystemPlatformConfig.h
rename to src/platform/silabs/SystemPlatformConfig.h
diff --git a/src/platform/EFR32/ThreadStackManagerImpl.h b/src/platform/silabs/ThreadStackManagerImpl.h
similarity index 100%
rename from src/platform/EFR32/ThreadStackManagerImpl.h
rename to src/platform/silabs/ThreadStackManagerImpl.h
diff --git a/src/platform/EFR32/WarmPlatformConfig.h b/src/platform/silabs/WarmPlatformConfig.h
similarity index 100%
rename from src/platform/EFR32/WarmPlatformConfig.h
rename to src/platform/silabs/WarmPlatformConfig.h
diff --git a/src/test_driver/efr32/BUILD.gn b/src/test_driver/efr32/BUILD.gn
index 1fcf1e1..4cdb886 100644
--- a/src/test_driver/efr32/BUILD.gn
+++ b/src/test_driver/efr32/BUILD.gn
@@ -31,7 +31,8 @@
 assert(current_os == "freertos")
 
 efr32_project_dir = "${chip_root}/src/test_driver/efr32"
-examples_plat_dir = "${chip_root}/examples/platform/efr32"
+examples_plat_dir = "${chip_root}/examples/platform/silabs/efr32"
+examples_common_plat_dir = "${chip_root}/examples/platform/silabs"
 
 pw_proto_library("nl_test_service") {
   sources = [ "${efr32_project_dir}/proto/nl_test.proto" ]
@@ -48,9 +49,10 @@
   ]
 
   include_dirs = [
-    "${chip_root}/src/platform/EFR32",
+    "${chip_root}/src/platform/silabs/EFR32",
     "${efr32_project_dir}/include",
     "${examples_plat_dir}",
+    "${examples_common_plat_dir}",
   ]
 
   defines = [
@@ -70,8 +72,8 @@
   sources = [
     "${chip_root}/examples/common/pigweed/RpcService.cpp",
     "${chip_root}/examples/common/pigweed/efr32/PigweedLoggerMutex.cpp",
-    "${examples_plat_dir}/PigweedLogger.cpp",
-    "${examples_plat_dir}/heap_4_silabs.c",
+    "${examples_common_plat_dir}/PigweedLogger.cpp",
+    "${examples_common_plat_dir}/heap_4_silabs.c",
     "${examples_plat_dir}/init_efrPlatform.cpp",
     "src/main.cpp",
   ]
diff --git a/src/test_driver/efr32/args.gni b/src/test_driver/efr32/args.gni
index 8db9c5e..a624322 100644
--- a/src/test_driver/efr32/args.gni
+++ b/src/test_driver/efr32/args.gni
@@ -15,8 +15,8 @@
 import("//build_overrides/chip.gni")
 import("//build_overrides/pigweed.gni")
 import("${chip_root}/config/efr32/lib/pw_rpc/pw_rpc.gni")
-import("${chip_root}/examples/platform/efr32/args.gni")
-import("${chip_root}/src/platform/EFR32/args.gni")
+import("${chip_root}/examples/platform/silabs/efr32/args.gni")
+import("${chip_root}/src/platform/silabs/EFR32/args.gni")
 
 efr32_sdk_target = get_label_info(":sdk", "label_no_toolchain")
 
diff --git a/third_party/silabs/efr32_sdk.gni b/third_party/silabs/efr32_sdk.gni
index 493caaf..eec4600 100644
--- a/third_party/silabs/efr32_sdk.gni
+++ b/third_party/silabs/efr32_sdk.gni
@@ -397,8 +397,8 @@
     # system to recompile mbedTLS (= the SDK) when the mbedTLS config gets
     # edited.
     sources = [
-      "${chip_root}/src/platform/EFR32/efr32-chip-mbedtls-config.h",
-      "${chip_root}/src/platform/EFR32/efr32-mbedtls-psa-crypto-config.h",
+      "${chip_root}/src/platform/silabs/EFR32/efr32-chip-mbedtls-config.h",
+      "${chip_root}/src/platform/silabs/EFR32/efr32-mbedtls-psa-crypto-config.h",
     ]
 
     public_deps = [ "${chip_root}/src/crypto:crypto_buildconfig" ]