From 36e12f01947c2bed82922015e87b926df0745bc2 Mon Sep 17 00:00:00 2001 From: silabsbot Date: Thu, 19 Sep 2024 16:10:33 +0000 Subject: [PATCH] Simplicity SDK 2024.6.2 24Q2-Patch2 GA --- .properties | 2 +- README.md | 10 +- app/bluetooth/bluetooth_evaluation_demos.xml | 12 +- app/bluetooth/bluetooth_internal_demos.xml | 68 +- app/bluetooth/bluetooth_production_demos.xml | 668 ++++---- .../common/cbap_lib/lib/cbap_CM33_gcc.a | 2 +- .../common/cbap_lib/lib/cbap_CM33_iar.a | 2 +- .../common/cs_initiator/src/cs_initiator.c | 2 +- .../common/ncp/config/sl_ncp_config.h | 15 + app/bluetooth/common/ncp/sl_ncp.c | 4 + .../common/throughput/throughput_common.h | 3 + .../throughput_central/throughput_central.c | 6 +- .../throughput_peripheral.c | 18 +- .../common/throughput_ui/throughput_ui.c | 4 +- app/bluetooth/common_host/esl_lib/esl_lib.h | 1 + .../common_host/esl_lib/esl_lib_connection.c | 16 +- .../common_host/esl_lib/esl_lib_core.c | 37 + app/bluetooth/common_host/ncp_host/ncp_host.c | 6 + .../documentation/slBluetooth_docContent.xml | 102 +- app/bluetooth/esf.properties | 4 +- .../example/bt_cs_soc_initiator/app.c | 109 +- .../example/bt_ncp/bt_ncp_esl_ap.slcp | 2 + app/bluetooth/example/bt_soc_throughput/app.c | 22 +- .../example_host/bt_host_esl_ap/ap_core.py | 18 +- .../example_host/bt_host_esl_ap/esl_tag.py | 33 +- app/btmesh/btmesh.properties | 4 +- app/btmesh/btmesh_internal_demos.xml | 84 +- app/btmesh/btmesh_production_demos.xml | 1518 ++++++++--------- ...btmesh_lighting_level_transition_handler.c | 2 +- .../sl_btmesh_lighting_server.c | 2 +- .../btmesh-release-highlights.txt | 4 +- .../documentation/slBtMesh_docContent.xml | 96 +- app/common/app_common.properties | 4 +- .../example/ml_magic_wand/accelerometer.cc | 4 + app/common/platform_production_demos.xml | 144 +- app/common/platform_production_templates.xml | 118 +- .../sl_flex_rail_channel_selector.c | 12 +- .../component/rail/sl_flex_rail_sleep.slcc | 37 + .../sl_flex_rail_sleep/sl_flex_rail_sleep.c | 79 + .../sl_flex_rail_sleep/sl_flex_rail_sleep.h | 53 + app/flex/component/rail/sl_radioprs.slcc | 10 +- ...nst_config.h => sl_radioprs_config_inst.h} | 6 +- ...nst_config.h => sl_radioprs_config_inst.h} | 6 +- .../s2/sl_radioprs_init_instances.c.jinja | 10 +- .../sl_radioprs_init_instances.c.jinja | 26 + .../app_measurement_standard.c | 2 +- app/flex/documentation/release-highlights.txt | 2 +- app/flex/documentation/slFlex_docContent.xml | 92 +- app/flex/esf.properties | 4 +- .../CMakeLists.txt | 27 + .../cpc_to_serial.c | 313 ++++ .../makefile | 142 ++ .../rail_soc_burst_duty_cycle.slcp | 1 + .../rail/rail_soc_emode/rail_soc_emode.slcp | 1 + .../rail_soc_long_preamble_duty_cycle.slcp | 1 + .../rail_soc_mode_switch.slcp | 1 + .../rail_soc_wmbus_meter.slcp | 1 + app/flex/flex_demos_only_demos.xml | 4 +- app/flex/flex_production_demos.xml | 297 ++-- app/flex/flex_production_templates.xml | 40 +- .../zigbeed/usr/local}/etc/zigbeed.conf | 2 +- .../artifacts}/systemd/cpc-hci-bridge.service | 0 .../artifacts}/systemd/cpcd.service | 2 +- .../artifacts}/systemd/hciattach.service | 0 .../artifacts}/systemd/master.service | 0 .../artifacts}/systemd/otbr@.service | 0 .../artifacts}/systemd/zigbeed-socat.service | 0 .../artifacts}/systemd/zigbeed.service | 0 .../run.sh | 2 +- .../component/app_core/sl_wisun_app_core.c | 4 +- .../app_os_stat/config/app_os_stat_config.h | 4 +- .../app_setting/sl_wisun_app_setting.h | 2 +- app/wisun/component/coap/sli_wisun_coap_rd.c | 3 + app/wisun/component/ftp/sl_tftp_clnt.c | 106 +- app/wisun/component/ftp/sl_tftp_clnt.h | 15 + .../ftp_posix_port/sl_wisun_ftp_posix_port.c | 2 +- .../sl_wisun_coap_meter.c | 18 +- .../component/ota_dfu/sl_wisun_ota_dfu.c | 28 +- app/wisun/component/sl_wisun_ota_dfu.slcc | 2 +- app/wisun/component/wisun_config.slcc | 4 + .../documentation/slWi-SUN_docContent.xml | 36 +- app/wisun/esf.properties | 4 +- app/wisun/example/wisun_soc_empty/app_init.c | 6 +- app/wisun/wisun_br_demos_demos.xml | 22 +- app/wisun/wisun_evaluation_demos.xml | 22 +- app/wisun/wisun_production_demos.xml | 86 +- app/wisun/wisun_production_templates.xml | 18 +- hardware/board/component/brd2606a.slcc | 12 +- hardware/board/component/brd2608a.slcc | 1 + hardware/board/component/brd4276a.slcc | 80 + .../board/config/brd2606a/iot_pwm_cfg_led1.h | 6 +- .../config/brd2606a/sl_icm40627_config.h | 66 + .../config/brd2606a/sl_pwm_init_led0_config.h | 6 +- .../config/brd2606a/sl_pwm_init_led1_config.h | 12 +- .../brd2606a/sl_rail_util_ant_div_config.h | 84 + .../config/brd2606a/sl_rail_util_pa_config.h | 81 + .../brd2606a/sl_simple_led_led1_config.h | 4 +- .../config/brd2608a/sl_icm40627_config.h | 66 + .../config/brd2608a/sl_pwm_init_led0_config.h | 6 +- .../brd4276a_brd4001a/btl_euart_driver_cfg.h | 86 + .../btl_gpio_activation_cfg.h | 47 + .../btl_spi_controller_eusart_driver_cfg.h | 68 + .../btl_spi_peripheral_eusart_driver_cfg.h | 71 + .../brd4276a_brd4001a/iot_flash_cfg_msc.h | 123 ++ .../brd4276a_brd4001a/iot_i2c_cfg_exp.h | 106 ++ .../brd4276a_brd4001a/iot_i2c_cfg_sensor.h | 106 ++ .../brd4276a_brd4001a/iot_i2c_cfg_test.h | 106 ++ .../brd4276a_brd4001a/iot_pwm_cfg_led0.h | 78 + .../brd4276a_brd4001a/iot_pwm_cfg_led1.h | 78 + .../sl_board_control_config.h | 66 + .../sl_clock_manager_oscillator_config.h | 364 ++++ .../sl_clock_manager_tree_config.h | 292 ++++ ..._cpc_drv_secondary_spi_eusart_exp_config.h | 120 ++ .../sl_cpc_drv_uart_eusart_exp_config.h | 84 + .../sl_cpc_drv_uart_eusart_vcom_config.h | 84 + .../sl_cpc_gpio_expander_gpio_btn0_config.h | 53 + .../sl_cpc_gpio_expander_gpio_btn1_config.h | 53 + .../sl_device_init_hfxo_config.h | 57 + .../sl_device_init_lfxo_config.h | 66 + .../brd4276a_brd4001a/sl_fem_util_config.h | 124 ++ .../sl_iostream_eusart_exp_config.h | 107 ++ .../sl_iostream_eusart_vcom_config.h | 113 ++ .../sl_memlcd_eusart_config.h | 66 + .../sl_mx25_flash_shutdown_eusart_config.h | 64 + .../sl_pwm_init_led0_config.h | 75 + .../sl_pwm_init_led1_config.h | 75 + .../sl_rail_util_pa_config.h | 88 + .../sl_rail_util_pti_config.h | 73 + .../sl_rail_util_rssi_config.h | 44 + .../sl_simple_button_btn0_config.h | 58 + .../sl_simple_button_btn1_config.h | 58 + .../sl_simple_led_led0_config.h | 57 + .../sl_simple_led_led1_config.h | 57 + .../sl_spidrv_eusart_exp_config.h | 102 ++ .../sl_uartdrv_eusart_exp_config.h | 113 ++ .../sl_uartdrv_eusart_vcom_config.h | 119 ++ .../brd4276a_brd4001a/sl_usbd_driver_config.h | 30 + .../brd4276a_brd4002a/btl_euart_driver_cfg.h | 86 + .../btl_gpio_activation_cfg.h | 47 + .../btl_spi_controller_eusart_driver_cfg.h | 68 + .../btl_spi_peripheral_eusart_driver_cfg.h | 71 + .../brd4276a_brd4002a/iot_flash_cfg_msc.h | 123 ++ .../brd4276a_brd4002a/iot_i2c_cfg_exp.h | 106 ++ .../brd4276a_brd4002a/iot_i2c_cfg_sensor.h | 106 ++ .../brd4276a_brd4002a/iot_i2c_cfg_test.h | 106 ++ .../brd4276a_brd4002a/iot_pwm_cfg_led0.h | 78 + .../brd4276a_brd4002a/iot_pwm_cfg_led1.h | 78 + .../sl_board_control_config.h | 66 + .../sl_clock_manager_oscillator_config.h | 364 ++++ .../sl_clock_manager_tree_config.h | 292 ++++ ..._cpc_drv_secondary_spi_eusart_exp_config.h | 120 ++ .../sl_cpc_drv_uart_eusart_exp_config.h | 84 + .../sl_cpc_drv_uart_eusart_vcom_config.h | 84 + .../sl_cpc_gpio_expander_gpio_btn0_config.h | 53 + .../sl_cpc_gpio_expander_gpio_btn1_config.h | 53 + .../sl_device_init_hfxo_config.h | 57 + .../sl_device_init_lfxo_config.h | 66 + .../brd4276a_brd4002a/sl_fem_util_config.h | 124 ++ .../sl_iostream_eusart_exp_config.h | 107 ++ .../sl_iostream_eusart_vcom_config.h | 113 ++ .../sl_memlcd_eusart_config.h | 66 + .../sl_mx25_flash_shutdown_eusart_config.h | 64 + .../sl_pwm_init_led0_config.h | 75 + .../sl_pwm_init_led1_config.h | 75 + .../sl_rail_util_pa_config.h | 88 + .../sl_rail_util_pti_config.h | 73 + .../sl_rail_util_rssi_config.h | 44 + .../sl_simple_button_btn0_config.h | 58 + .../sl_simple_button_btn1_config.h | 58 + .../sl_simple_led_led0_config.h | 57 + .../sl_simple_led_led1_config.h | 57 + .../sl_spidrv_eusart_exp_config.h | 102 ++ .../sl_uartdrv_eusart_exp_config.h | 113 ++ .../sl_uartdrv_eusart_vcom_config.h | 119 ++ .../brd4276a_brd4002a/sl_usbd_driver_config.h | 30 + .../config/component/brd2606a_config.slcc | 12 + .../config/component/brd2608a_config.slcc | 4 + .../config/component/brd4276a_config.slcc | 532 ++++++ .../driver/component/icm40627_driver.slcc | 36 + .../driver/component/imu_driver_icm40627.slcc | 21 + .../icm40627/config/sl_icm40627_config.h | 61 + hardware/driver/icm40627/inc/sl_icm40627.h | 523 ++++++ .../driver/icm40627/inc/sl_icm40627_defs.h | 804 +++++++++ hardware/driver/icm40627/src/sl_icm40627.c | 1191 +++++++++++++ hardware/driver/imu/src/sl_imu_icm40627.c | 288 ++++ .../SiliconLabs/BGM21/Include/system_bgm21.h | 5 - .../SiliconLabs/BGM21/Source/startup_bgm21.c | 39 +- .../SiliconLabs/BGM21/Source/system_bgm21.c | 29 - .../SiliconLabs/BGM22/Include/system_bgm22.h | 5 - .../SiliconLabs/BGM22/Source/startup_bgm22.c | 39 +- .../SiliconLabs/BGM22/Source/system_bgm22.c | 29 - .../SiliconLabs/BGM24/Include/system_bgm24.h | 5 - .../SiliconLabs/BGM24/Source/startup_bgm24.c | 39 +- .../SiliconLabs/BGM24/Source/system_bgm24.c | 29 - .../EFM32PG22/Include/system_efm32pg22.h | 5 - .../EFM32PG22/Source/startup_efm32pg22.c | 39 +- .../EFM32PG22/Source/system_efm32pg22.c | 29 - .../EFM32PG23/Include/system_efm32pg23.h | 5 - .../EFM32PG23/Source/startup_efm32pg23.c | 39 +- .../EFM32PG23/Source/system_efm32pg23.c | 29 - .../EFM32PG26/Include/system_efm32pg26.h | 5 - .../EFM32PG26/Source/startup_efm32pg26.c | 39 +- .../EFM32PG26/Source/system_efm32pg26.c | 29 - .../EFM32PG28/Include/system_efm32pg28.h | 5 - .../EFM32PG28/Source/startup_efm32pg28.c | 39 +- .../EFM32PG28/Source/system_efm32pg28.c | 29 - .../EFR32BG21/Include/system_efr32bg21.h | 5 - .../EFR32BG21/Source/startup_efr32bg21.c | 39 +- .../EFR32BG21/Source/system_efr32bg21.c | 29 - .../EFR32BG22/Include/system_efr32bg22.h | 5 - .../EFR32BG22/Source/startup_efr32bg22.c | 39 +- .../EFR32BG22/Source/system_efr32bg22.c | 29 - .../EFR32BG24/Include/system_efr32bg24.h | 5 - .../EFR32BG24/Source/startup_efr32bg24.c | 39 +- .../EFR32BG24/Source/system_efr32bg24.c | 29 - .../EFR32BG26/Include/system_efr32bg26.h | 5 - .../EFR32BG26/Source/startup_efr32bg26.c | 39 +- .../EFR32BG26/Source/system_efr32bg26.c | 29 - .../EFR32BG27/Include/system_efr32bg27.h | 5 - .../EFR32BG27/Source/startup_efr32bg27.c | 39 +- .../EFR32BG27/Source/system_efr32bg27.c | 29 - .../EFR32FG22/Include/system_efr32fg22.h | 5 - .../EFR32FG22/Source/startup_efr32fg22.c | 39 +- .../EFR32FG22/Source/system_efr32fg22.c | 29 - .../EFR32FG23/Include/system_efr32fg23.h | 5 - .../EFR32FG23/Source/startup_efr32fg23.c | 39 +- .../EFR32FG23/Source/system_efr32fg23.c | 29 - .../EFR32FG25/Include/system_efr32fg25.h | 5 - .../EFR32FG25/Source/startup_efr32fg25.c | 39 +- .../EFR32FG25/Source/system_efr32fg25.c | 29 - .../EFR32FG28/Include/system_efr32fg28.h | 5 - .../EFR32FG28/Source/startup_efr32fg28.c | 39 +- .../EFR32FG28/Source/system_efr32fg28.c | 29 - .../EFR32MG21/Include/system_efr32mg21.h | 5 - .../EFR32MG21/Source/startup_efr32mg21.c | 39 +- .../EFR32MG21/Source/system_efr32mg21.c | 29 - .../EFR32MG22/Include/system_efr32mg22.h | 5 - .../EFR32MG22/Source/startup_efr32mg22.c | 39 +- .../EFR32MG22/Source/system_efr32mg22.c | 29 - .../EFR32MG24/Include/system_efr32mg24.h | 5 - .../EFR32MG24/Source/startup_efr32mg24.c | 39 +- .../EFR32MG24/Source/system_efr32mg24.c | 29 - .../EFR32MG26/Include/system_efr32mg26.h | 5 - .../EFR32MG26/Source/startup_efr32mg26.c | 39 +- .../EFR32MG26/Source/system_efr32mg26.c | 29 - .../EFR32MG27/Include/system_efr32mg27.h | 5 - .../EFR32MG27/Source/startup_efr32mg27.c | 39 +- .../EFR32MG27/Source/system_efr32mg27.c | 29 - .../EFR32MR21/Include/system_efr32mr21.h | 5 - .../EFR32MR21/Source/startup_efr32mr21.c | 39 +- .../EFR32MR21/Source/system_efr32mr21.c | 29 - .../EFR32SG23/Include/system_efr32sg23.h | 5 - .../EFR32SG23/Source/startup_efr32sg23.c | 39 +- .../EFR32SG23/Source/system_efr32sg23.c | 29 - .../EFR32SG28/Include/system_efr32sg28.h | 5 - .../EFR32SG28/Source/startup_efr32sg28.c | 39 +- .../EFR32SG28/Source/system_efr32sg28.c | 29 - .../EFR32ZG23/Include/system_efr32zg23.h | 5 - .../EFR32ZG23/Source/startup_efr32zg23.c | 39 +- .../EFR32ZG23/Source/system_efr32zg23.c | 29 - .../EFR32ZG28/Include/system_efr32zg28.h | 5 - .../EFR32ZG28/Source/startup_efr32zg28.c | 39 +- .../EFR32ZG28/Source/system_efr32zg28.c | 29 - .../SiliconLabs/FGM23/Include/system_fgm23.h | 5 - .../SiliconLabs/FGM23/Source/startup_fgm23.c | 39 +- .../SiliconLabs/FGM23/Source/system_fgm23.c | 29 - .../SiliconLabs/MGM21/Include/system_mgm21.h | 5 - .../SiliconLabs/MGM21/Source/startup_mgm21.c | 39 +- .../SiliconLabs/MGM21/Source/system_mgm21.c | 29 - .../SiliconLabs/MGM22/Include/system_mgm22.h | 5 - .../SiliconLabs/MGM22/Source/startup_mgm22.c | 39 +- .../SiliconLabs/MGM22/Source/system_mgm22.c | 29 - .../SiliconLabs/MGM24/Include/system_mgm24.h | 5 - .../SiliconLabs/MGM24/Source/startup_mgm24.c | 39 +- .../SiliconLabs/MGM24/Source/system_mgm24.c | 29 - .../SiliconLabs/ZGM23/Include/system_zgm23.h | 5 - .../SiliconLabs/ZGM23/Source/startup_zgm23.c | 39 +- .../SiliconLabs/ZGM23/Source/system_zgm23.c | 29 - platform/bootloader/api/btl_errorcode.h | 3 + .../bootloader/api/btl_interface_storage.h | 4 +- platform/bootloader/api/btl_reset_info.h | 7 + .../bootloader_production_templates.xml | 30 +- platform/bootloader/config/btl_config.h | 2 +- .../device_sdid_205/apploader/btl_core_cfg.h | 2 +- .../apploader/btl_core_s_cfg.h | 2 +- .../config/device_sdid_205/btl_core_cfg.h | 2 +- .../config/device_sdid_205/btl_core_s_cfg.h | 2 +- .../device_series_2/apploader/btl_core_cfg.h | 2 +- .../apploader/btl_core_s_cfg.h | 2 +- .../config/device_series_2/btl_core_cfg.h | 2 +- .../config/device_series_2/btl_core_s_cfg.h | 2 +- .../parser/compression/btl_decompress_lz4.c | 2 + .../lib/gcc/cortex-m33/lib/libddfu-patch.a | 2 +- .../lib/iar/cortex-m33/lib/libddfu-patch.a | 2 +- .../bootloader/parser/gbl/btl_gbl_parser.c | 32 +- .../bootloader/parser/gbl/btl_gbl_parser.h | 10 +- platform/bootloader/storage/btl_storage.c | 2 +- .../bootloader/storage/btl_storage_library.c | 33 +- platform/common/inc/sl_code_classification.h | 2 +- platform/common/inc/sl_platform_version.h | 2 +- .../toolchain/gcc/s2/linkerfile.ld.jinja | 11 +- .../toolchain/gcc/s30/linkerfile.ld.jinja | 9 +- .../toolchain/iar/s2/linkerfile.icf.jinja | 37 +- .../toolchain/iar/s30/linkerfile.icf.jinja | 85 +- platform/documentation/release-highlights.txt | 10 +- platform/emdrv/nvm3/lib/libnvm3_CM33_gcc.a | 2 +- platform/emdrv/nvm3/lib/libnvm3_CM33_iar.a | 2 +- platform/emdrv/nvm3/lib/libnvm3_CM4_gcc.a | 2 +- platform/emdrv/nvm3/lib/libnvm3_CM4_iar.a | 2 +- platform/emdrv/spidrv/src/spidrv.c | 18 +- platform/emlib/inc/em_ldma.h | 5 + platform/hwconf_data/hwconfig.hwdata | 90 +- .../component/hal_dcdc_coulomb_counter.slcc | 2 + .../peripheral/component/hal_etampdet.slcc | 2 + .../peripheral/component/hal_keyscan.slcc | 2 + platform/peripheral/component/hal_sysrtc.slcc | 2 + .../inc/peripheral_dcdc_coulomb_counter.h | 31 + .../peripheral_dcdc_coulomb_counter_compat.h | 31 + platform/peripheral/inc/peripheral_etampdet.h | 31 + .../inc/peripheral_etampdet_compat.h | 31 + platform/peripheral/inc/peripheral_keyscan.h | 31 + .../inc/peripheral_keyscan_compat.h | 31 + platform/peripheral/inc/peripheral_sysrtc.h | 31 + .../peripheral/inc/peripheral_sysrtc_compat.h | 31 + .../ConfigurationWrapper.cpython-310.pyc | Bin 1151 -> 1151 bytes .../set_pymath_paths.cpython-310.pyc | Bin 1570 -> 1570 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 451 -> 451 bytes .../categoryinterface.cpython-310.pyc | Bin 2264 -> 2264 bytes .../chipconfiguratorinterface.cpython-310.pyc | Bin 3162 -> 3162 bytes .../inputinterface.cpython-310.pyc | Bin 1267 -> 1267 bytes .../pyjavaproperties.cpython-310.pyc | Bin 7025 -> 7025 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 736 -> 736 bytes .../__pycache__/_version.cpython-310.pyc | Bin 250 -> 250 bytes .../efr32multiphycategory.cpython-310.pyc | Bin 1024 -> 1024 bytes .../efr32multiphycfginput.cpython-310.pyc | Bin 1064 -> 1064 bytes .../efr32multiphyconfigurator.cpython-310.pyc | Bin 3012 -> 3012 bytes .../efr32multiphyconfig/_version.py | 2 +- .../__pycache__/__init__.cpython-310.pyc | Bin 275 -> 275 bytes .../__pycache__/common.cpython-310.pyc | Bin 501 -> 501 bytes .../__pycache__/factory.cpython-310.pyc | Bin 3460 -> 3460 bytes .../full/__pycache__/__init__.cpython-310.pyc | Bin 238 -> 238 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 279 -> 279 bytes .../__pycache__/factory.cpython-310.pyc | Bin 993 -> 993 bytes .../revA2/__pycache__/AGC.cpython-310.pyc | Bin 2825 -> 2825 bytes .../__pycache__/AGC_field.cpython-310.pyc | Bin 52553 -> 52553 bytes .../__pycache__/AGC_register.cpython-310.pyc | Bin 19765 -> 19765 bytes .../revA2/__pycache__/CRC.cpython-310.pyc | Bin 1284 -> 1284 bytes .../__pycache__/CRC_field.cpython-310.pyc | Bin 4907 -> 4907 bytes .../__pycache__/CRC_register.cpython-310.pyc | Bin 3651 -> 3651 bytes .../revA2/__pycache__/FRC.cpython-310.pyc | Bin 5305 -> 5305 bytes .../__pycache__/FRC_field.cpython-310.pyc | Bin 83927 -> 83927 bytes .../__pycache__/FRC_register.cpython-310.pyc | Bin 35799 -> 35799 bytes .../revA2/__pycache__/MODEM.cpython-310.pyc | Bin 26782 -> 26782 bytes .../__pycache__/MODEM_field.cpython-310.pyc | Bin 155372 -> 155372 bytes .../MODEM_register.cpython-310.pyc | Bin 126608 -> 126608 bytes .../revA2/__pycache__/RAC.cpython-310.pyc | Bin 6125 -> 6125 bytes .../__pycache__/RAC_field.cpython-310.pyc | Bin 134143 -> 134143 bytes .../__pycache__/RAC_register.cpython-310.pyc | Bin 47627 -> 47627 bytes .../revA2/__pycache__/SEQ.cpython-310.pyc | Bin 1218 -> 1218 bytes .../__pycache__/SEQ_field.cpython-310.pyc | Bin 2595 -> 2595 bytes .../__pycache__/SEQ_register.cpython-310.pyc | Bin 2775 -> 2775 bytes .../revA2/__pycache__/SYNTH.cpython-310.pyc | Bin 2494 -> 2494 bytes .../__pycache__/SYNTH_field.cpython-310.pyc | Bin 36701 -> 36701 bytes .../SYNTH_register.cpython-310.pyc | Bin 15671 -> 15671 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 5297 -> 5297 bytes .../__pycache__/_version.cpython-310.pyc | Bin 274 -> 274 bytes .../revA2/__pycache__/device.cpython-310.pyc | Bin 5620 -> 5620 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 660 -> 660 bytes .../base/__pycache__/__init__.cpython-310.pyc | Bin 541 -> 541 bytes .../base/__pycache__/device.cpython-310.pyc | Bin 13309 -> 13309 bytes .../__pycache__/enumeration.cpython-310.pyc | Bin 2487 -> 2487 bytes .../base/__pycache__/field.cpython-310.pyc | Bin 5827 -> 5827 bytes .../__pycache__/peripheral.cpython-310.pyc | Bin 5459 -> 5459 bytes .../base/__pycache__/register.cpython-310.pyc | Bin 8890 -> 8890 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 556 -> 556 bytes .../__pycache__/accessmgr.cpython-310.pyc | Bin 2795 -> 2795 bytes .../common/__pycache__/errors.cpython-310.pyc | Bin 1718 -> 1718 bytes .../__pycache__/regmapio.cpython-310.pyc | Bin 18500 -> 18500 bytes .../__pycache__/svdinfo.cpython-310.pyc | Bin 3222 -> 3222 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 963 -> 963 bytes .../__pycache__/iregmapdevice.cpython-310.pyc | Bin 25630 -> 25630 bytes .../__pycache__/iregmapenum.cpython-310.pyc | Bin 2654 -> 2654 bytes .../__pycache__/iregmapfield.cpython-310.pyc | Bin 8223 -> 8223 bytes .../__pycache__/iregmapio.cpython-310.pyc | Bin 12346 -> 12346 bytes .../iregmapperipheral.cpython-310.pyc | Bin 8689 -> 8689 bytes .../iregmapregister.cpython-310.pyc | Bin 8852 -> 8852 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 280 -> 280 bytes .../__pycache__/factory.cpython-310.pyc | Bin 1020 -> 1020 bytes .../revA0/__pycache__/AGC_NS.cpython-310.pyc | Bin 2987 -> 2987 bytes .../__pycache__/AGC_NS_field.cpython-310.pyc | Bin 52640 -> 52640 bytes .../AGC_NS_register.cpython-310.pyc | Bin 21304 -> 21304 bytes .../revA0/__pycache__/AGC_S.cpython-310.pyc | Bin 2953 -> 2953 bytes .../__pycache__/AGC_S_field.cpython-310.pyc | Bin 52174 -> 52174 bytes .../AGC_S_register.cpython-310.pyc | Bin 21060 -> 21060 bytes .../revA0/__pycache__/FRC_NS.cpython-310.pyc | Bin 5671 -> 5671 bytes .../__pycache__/FRC_NS_field.cpython-310.pyc | Bin 86272 -> 86272 bytes .../FRC_NS_register.cpython-310.pyc | Bin 39136 -> 39136 bytes .../revA0/__pycache__/FRC_S.cpython-310.pyc | Bin 5604 -> 5604 bytes .../__pycache__/FRC_S_field.cpython-310.pyc | Bin 85509 -> 85509 bytes .../FRC_S_register.cpython-310.pyc | Bin 38694 -> 38694 bytes .../__pycache__/MODEM_NS.cpython-310.pyc | Bin 7347 -> 7347 bytes .../MODEM_NS_field.cpython-310.pyc | Bin 165140 -> 165140 bytes .../MODEM_NS_register.cpython-310.pyc | Bin 60978 -> 60978 bytes .../revA0/__pycache__/MODEM_S.cpython-310.pyc | Bin 7257 -> 7257 bytes .../__pycache__/MODEM_S_field.cpython-310.pyc | Bin 163702 -> 163702 bytes .../MODEM_S_register.cpython-310.pyc | Bin 60242 -> 60242 bytes .../revA0/__pycache__/RAC_NS.cpython-310.pyc | Bin 8463 -> 8463 bytes .../__pycache__/RAC_NS_field.cpython-310.pyc | Bin 176166 -> 176166 bytes .../RAC_NS_register.cpython-310.pyc | Bin 70501 -> 70501 bytes .../revA0/__pycache__/RAC_S.cpython-310.pyc | Bin 8356 -> 8356 bytes .../__pycache__/RAC_S_field.cpython-310.pyc | Bin 174665 -> 174665 bytes .../RAC_S_register.cpython-310.pyc | Bin 69693 -> 69693 bytes .../__pycache__/RFCRC_NS.cpython-310.pyc | Bin 1497 -> 1497 bytes .../RFCRC_NS_field.cpython-310.pyc | Bin 5760 -> 5760 bytes .../RFCRC_NS_register.cpython-310.pyc | Bin 4799 -> 4799 bytes .../revA0/__pycache__/RFCRC_S.cpython-310.pyc | Bin 1483 -> 1483 bytes .../__pycache__/RFCRC_S_field.cpython-310.pyc | Bin 5711 -> 5711 bytes .../RFCRC_S_register.cpython-310.pyc | Bin 4754 -> 4754 bytes .../revA0/__pycache__/SEQ.cpython-310.pyc | Bin 1378 -> 1378 bytes .../__pycache__/SEQ_field.cpython-310.pyc | Bin 2956 -> 2956 bytes .../__pycache__/SEQ_register.cpython-310.pyc | Bin 3565 -> 3565 bytes .../__pycache__/SYNTH_NS.cpython-310.pyc | Bin 3415 -> 3415 bytes .../SYNTH_NS_field.cpython-310.pyc | Bin 51329 -> 51329 bytes .../SYNTH_NS_register.cpython-310.pyc | Bin 22866 -> 22866 bytes .../revA0/__pycache__/SYNTH_S.cpython-310.pyc | Bin 3377 -> 3377 bytes .../__pycache__/SYNTH_S_field.cpython-310.pyc | Bin 50881 -> 50881 bytes .../SYNTH_S_register.cpython-310.pyc | Bin 22616 -> 22616 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 5299 -> 5299 bytes .../__pycache__/_version.cpython-310.pyc | Bin 275 -> 275 bytes .../revA0/__pycache__/device.cpython-310.pyc | Bin 6371 -> 6371 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 661 -> 661 bytes .../base/__pycache__/__init__.cpython-310.pyc | Bin 542 -> 542 bytes .../base/__pycache__/device.cpython-310.pyc | Bin 13310 -> 13310 bytes .../__pycache__/enumeration.cpython-310.pyc | Bin 2488 -> 2488 bytes .../base/__pycache__/field.cpython-310.pyc | Bin 5828 -> 5828 bytes .../__pycache__/peripheral.cpython-310.pyc | Bin 5460 -> 5460 bytes .../base/__pycache__/register.cpython-310.pyc | Bin 8891 -> 8891 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 557 -> 557 bytes .../__pycache__/accessmgr.cpython-310.pyc | Bin 2796 -> 2796 bytes .../common/__pycache__/errors.cpython-310.pyc | Bin 1719 -> 1719 bytes .../__pycache__/regmapio.cpython-310.pyc | Bin 18501 -> 18501 bytes .../__pycache__/svdinfo.cpython-310.pyc | Bin 3223 -> 3223 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 964 -> 964 bytes .../__pycache__/iregmapdevice.cpython-310.pyc | Bin 25631 -> 25631 bytes .../__pycache__/iregmapenum.cpython-310.pyc | Bin 2655 -> 2655 bytes .../__pycache__/iregmapfield.cpython-310.pyc | Bin 8224 -> 8224 bytes .../__pycache__/iregmapio.cpython-310.pyc | Bin 12347 -> 12347 bytes .../iregmapperipheral.cpython-310.pyc | Bin 8690 -> 8690 bytes .../iregmapregister.cpython-310.pyc | Bin 8853 -> 8853 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 280 -> 280 bytes .../__pycache__/factory.cpython-310.pyc | Bin 1017 -> 1017 bytes .../revB1/__pycache__/AGC_NS.cpython-310.pyc | Bin 3489 -> 3489 bytes .../__pycache__/AGC_NS_field.cpython-310.pyc | Bin 65020 -> 65020 bytes .../AGC_NS_register.cpython-310.pyc | Bin 25018 -> 25018 bytes .../revB1/__pycache__/AGC_S.cpython-310.pyc | Bin 3448 -> 3448 bytes .../__pycache__/AGC_S_field.cpython-310.pyc | Bin 64443 -> 64443 bytes .../AGC_S_register.cpython-310.pyc | Bin 24716 -> 24716 bytes .../revB1/__pycache__/FRC_NS.cpython-310.pyc | Bin 7083 -> 7083 bytes .../__pycache__/FRC_NS_field.cpython-310.pyc | Bin 129213 -> 129213 bytes .../FRC_NS_register.cpython-310.pyc | Bin 51338 -> 51338 bytes .../revB1/__pycache__/FRC_S.cpython-310.pyc | Bin 6997 -> 6997 bytes .../__pycache__/FRC_S_field.cpython-310.pyc | Bin 128063 -> 128063 bytes .../FRC_S_register.cpython-310.pyc | Bin 50710 -> 50710 bytes .../__pycache__/MODEM_NS.cpython-310.pyc | Bin 8585 -> 8585 bytes .../MODEM_NS_field.cpython-310.pyc | Bin 180672 -> 180672 bytes .../MODEM_NS_register.cpython-310.pyc | Bin 67774 -> 67774 bytes .../revB1/__pycache__/MODEM_S.cpython-310.pyc | Bin 8480 -> 8480 bytes .../__pycache__/MODEM_S_field.cpython-310.pyc | Bin 179096 -> 179096 bytes .../MODEM_S_register.cpython-310.pyc | Bin 66947 -> 66947 bytes .../revB1/__pycache__/RAC_NS.cpython-310.pyc | Bin 8201 -> 8201 bytes .../__pycache__/RAC_NS_field.cpython-310.pyc | Bin 176177 -> 176177 bytes .../RAC_NS_register.cpython-310.pyc | Bin 68782 -> 68782 bytes .../revB1/__pycache__/RAC_S.cpython-310.pyc | Bin 8099 -> 8099 bytes .../__pycache__/RAC_S_field.cpython-310.pyc | Bin 174682 -> 174682 bytes .../RAC_S_register.cpython-310.pyc | Bin 67991 -> 67991 bytes .../__pycache__/RFCRC_NS.cpython-310.pyc | Bin 1497 -> 1497 bytes .../RFCRC_NS_field.cpython-310.pyc | Bin 5760 -> 5760 bytes .../RFCRC_NS_register.cpython-310.pyc | Bin 4799 -> 4799 bytes .../revB1/__pycache__/RFCRC_S.cpython-310.pyc | Bin 1483 -> 1483 bytes .../__pycache__/RFCRC_S_field.cpython-310.pyc | Bin 5711 -> 5711 bytes .../RFCRC_S_register.cpython-310.pyc | Bin 4754 -> 4754 bytes .../revB1/__pycache__/SEQ.cpython-310.pyc | Bin 1374 -> 1374 bytes .../__pycache__/SEQ_field.cpython-310.pyc | Bin 4690 -> 4690 bytes .../__pycache__/SEQ_register.cpython-310.pyc | Bin 4092 -> 4092 bytes .../__pycache__/SYNTH_NS.cpython-310.pyc | Bin 3561 -> 3561 bytes .../SYNTH_NS_field.cpython-310.pyc | Bin 55899 -> 55899 bytes .../SYNTH_NS_register.cpython-310.pyc | Bin 24075 -> 24075 bytes .../revB1/__pycache__/SYNTH_S.cpython-310.pyc | Bin 3521 -> 3521 bytes .../__pycache__/SYNTH_S_field.cpython-310.pyc | Bin 55409 -> 55409 bytes .../SYNTH_S_register.cpython-310.pyc | Bin 23805 -> 23805 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 5299 -> 5299 bytes .../__pycache__/_version.cpython-310.pyc | Bin 275 -> 275 bytes .../revB1/__pycache__/device.cpython-310.pyc | Bin 6371 -> 6371 bytes .../__pycache__/excluded_regs.cpython-310.pyc | Bin 1331 -> 1331 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 661 -> 661 bytes .../base/__pycache__/__init__.cpython-310.pyc | Bin 542 -> 542 bytes .../base/__pycache__/device.cpython-310.pyc | Bin 13310 -> 13310 bytes .../__pycache__/enumeration.cpython-310.pyc | Bin 2488 -> 2488 bytes .../base/__pycache__/field.cpython-310.pyc | Bin 5828 -> 5828 bytes .../__pycache__/peripheral.cpython-310.pyc | Bin 5460 -> 5460 bytes .../base/__pycache__/register.cpython-310.pyc | Bin 8891 -> 8891 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 557 -> 557 bytes .../__pycache__/accessmgr.cpython-310.pyc | Bin 2796 -> 2796 bytes .../common/__pycache__/errors.cpython-310.pyc | Bin 1719 -> 1719 bytes .../__pycache__/regmapio.cpython-310.pyc | Bin 18501 -> 18501 bytes .../__pycache__/svdinfo.cpython-310.pyc | Bin 3223 -> 3223 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 964 -> 964 bytes .../__pycache__/iregmapdevice.cpython-310.pyc | Bin 25631 -> 25631 bytes .../__pycache__/iregmapenum.cpython-310.pyc | Bin 2655 -> 2655 bytes .../__pycache__/iregmapfield.cpython-310.pyc | Bin 8224 -> 8224 bytes .../__pycache__/iregmapio.cpython-310.pyc | Bin 12347 -> 12347 bytes .../iregmapperipheral.cpython-310.pyc | Bin 8690 -> 8690 bytes .../iregmapregister.cpython-310.pyc | Bin 8853 -> 8853 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 280 -> 280 bytes .../__pycache__/factory.cpython-310.pyc | Bin 1011 -> 1011 bytes .../revA2/__pycache__/AGC_NS.cpython-310.pyc | Bin 4975 -> 4975 bytes .../__pycache__/AGC_NS_field.cpython-310.pyc | Bin 81533 -> 81533 bytes .../AGC_NS_register.cpython-310.pyc | Bin 34809 -> 34809 bytes .../revA2/__pycache__/AGC_S.cpython-310.pyc | Bin 4915 -> 4915 bytes .../__pycache__/AGC_S_field.cpython-310.pyc | Bin 80812 -> 80812 bytes .../AGC_S_register.cpython-310.pyc | Bin 34402 -> 34402 bytes .../revA2/__pycache__/FRC_NS.cpython-310.pyc | Bin 7159 -> 7159 bytes .../__pycache__/FRC_NS_field.cpython-310.pyc | Bin 135803 -> 135803 bytes .../FRC_NS_register.cpython-310.pyc | Bin 53764 -> 53764 bytes .../revA2/__pycache__/FRC_S.cpython-310.pyc | Bin 7072 -> 7072 bytes .../__pycache__/FRC_S_field.cpython-310.pyc | Bin 134596 -> 134596 bytes .../FRC_S_register.cpython-310.pyc | Bin 53114 -> 53114 bytes .../__pycache__/MODEM_NS.cpython-310.pyc | Bin 17472 -> 17472 bytes .../MODEM_NS_field.cpython-310.pyc | Bin 354527 -> 354527 bytes .../MODEM_NS_register.cpython-310.pyc | Bin 135265 -> 135265 bytes .../revA2/__pycache__/MODEM_S.cpython-310.pyc | Bin 17259 -> 17259 bytes .../__pycache__/MODEM_S_field.cpython-310.pyc | Bin 351472 -> 351472 bytes .../MODEM_S_register.cpython-310.pyc | Bin 133621 -> 133621 bytes .../revA2/__pycache__/RAC_NS.cpython-310.pyc | Bin 9567 -> 9567 bytes .../__pycache__/RAC_NS_field.cpython-310.pyc | Bin 215158 -> 215158 bytes .../RAC_NS_register.cpython-310.pyc | Bin 82755 -> 82755 bytes .../revA2/__pycache__/RAC_S.cpython-310.pyc | Bin 9448 -> 9448 bytes .../__pycache__/RAC_S_field.cpython-310.pyc | Bin 213342 -> 213342 bytes .../RAC_S_register.cpython-310.pyc | Bin 81806 -> 81806 bytes .../__pycache__/RFCRC_NS.cpython-310.pyc | Bin 1497 -> 1497 bytes .../RFCRC_NS_field.cpython-310.pyc | Bin 5760 -> 5760 bytes .../RFCRC_NS_register.cpython-310.pyc | Bin 4799 -> 4799 bytes .../revA2/__pycache__/RFCRC_S.cpython-310.pyc | Bin 1483 -> 1483 bytes .../__pycache__/RFCRC_S_field.cpython-310.pyc | Bin 5711 -> 5711 bytes .../RFCRC_S_register.cpython-310.pyc | Bin 4754 -> 4754 bytes .../revA2/__pycache__/SEQ.cpython-310.pyc | Bin 1374 -> 1374 bytes .../__pycache__/SEQ_field.cpython-310.pyc | Bin 5336 -> 5336 bytes .../__pycache__/SEQ_register.cpython-310.pyc | Bin 4244 -> 4244 bytes .../__pycache__/SYNTH_NS.cpython-310.pyc | Bin 3561 -> 3561 bytes .../SYNTH_NS_field.cpython-310.pyc | Bin 56241 -> 56241 bytes .../SYNTH_NS_register.cpython-310.pyc | Bin 24129 -> 24129 bytes .../revA2/__pycache__/SYNTH_S.cpython-310.pyc | Bin 3521 -> 3521 bytes .../__pycache__/SYNTH_S_field.cpython-310.pyc | Bin 55748 -> 55748 bytes .../SYNTH_S_register.cpython-310.pyc | Bin 23858 -> 23858 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 5299 -> 5299 bytes .../__pycache__/_version.cpython-310.pyc | Bin 274 -> 274 bytes .../revA2/__pycache__/device.cpython-310.pyc | Bin 6371 -> 6371 bytes .../__pycache__/excluded_regs.cpython-310.pyc | Bin 1331 -> 1331 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 661 -> 661 bytes .../base/__pycache__/__init__.cpython-310.pyc | Bin 542 -> 542 bytes .../base/__pycache__/device.cpython-310.pyc | Bin 13310 -> 13310 bytes .../__pycache__/enumeration.cpython-310.pyc | Bin 2488 -> 2488 bytes .../base/__pycache__/field.cpython-310.pyc | Bin 5828 -> 5828 bytes .../__pycache__/peripheral.cpython-310.pyc | Bin 5460 -> 5460 bytes .../base/__pycache__/register.cpython-310.pyc | Bin 8891 -> 8891 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 557 -> 557 bytes .../__pycache__/accessmgr.cpython-310.pyc | Bin 2796 -> 2796 bytes .../common/__pycache__/errors.cpython-310.pyc | Bin 1719 -> 1719 bytes .../__pycache__/regmapio.cpython-310.pyc | Bin 18501 -> 18501 bytes .../__pycache__/svdinfo.cpython-310.pyc | Bin 3223 -> 3223 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 964 -> 964 bytes .../__pycache__/iregmapdevice.cpython-310.pyc | Bin 25631 -> 25631 bytes .../__pycache__/iregmapenum.cpython-310.pyc | Bin 2655 -> 2655 bytes .../__pycache__/iregmapfield.cpython-310.pyc | Bin 8224 -> 8224 bytes .../__pycache__/iregmapio.cpython-310.pyc | Bin 12347 -> 12347 bytes .../iregmapperipheral.cpython-310.pyc | Bin 8690 -> 8690 bytes .../iregmapregister.cpython-310.pyc | Bin 8853 -> 8853 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 280 -> 280 bytes .../__pycache__/factory.cpython-310.pyc | Bin 998 -> 998 bytes .../revA1/__pycache__/AGC_NS.cpython-310.pyc | Bin 7367 -> 7367 bytes .../__pycache__/AGC_NS_field.cpython-310.pyc | Bin 182635 -> 182635 bytes .../AGC_NS_register.cpython-310.pyc | Bin 61867 -> 61867 bytes .../revA1/__pycache__/AGC_S.cpython-310.pyc | Bin 7278 -> 7278 bytes .../__pycache__/AGC_S_field.cpython-310.pyc | Bin 181086 -> 181086 bytes .../AGC_S_register.cpython-310.pyc | Bin 61097 -> 61097 bytes .../revA1/__pycache__/FRC_NS.cpython-310.pyc | Bin 7237 -> 7237 bytes .../__pycache__/FRC_NS_field.cpython-310.pyc | Bin 136562 -> 136562 bytes .../FRC_NS_register.cpython-310.pyc | Bin 54357 -> 54357 bytes .../revA1/__pycache__/FRC_S.cpython-310.pyc | Bin 7149 -> 7149 bytes .../__pycache__/FRC_S_field.cpython-310.pyc | Bin 135349 -> 135349 bytes .../FRC_S_register.cpython-310.pyc | Bin 53702 -> 53702 bytes .../__pycache__/MODEM_NS.cpython-310.pyc | Bin 17452 -> 17452 bytes .../MODEM_NS_field.cpython-310.pyc | Bin 332674 -> 332674 bytes .../MODEM_NS_register.cpython-310.pyc | Bin 131023 -> 131023 bytes .../revA1/__pycache__/MODEM_S.cpython-310.pyc | Bin 17238 -> 17238 bytes .../__pycache__/MODEM_S_field.cpython-310.pyc | Bin 329796 -> 329796 bytes .../MODEM_S_register.cpython-310.pyc | Bin 129435 -> 129435 bytes .../revA1/__pycache__/RAC_NS.cpython-310.pyc | Bin 9057 -> 9057 bytes .../__pycache__/RAC_NS_field.cpython-310.pyc | Bin 204199 -> 204199 bytes .../RAC_NS_register.cpython-310.pyc | Bin 78685 -> 78685 bytes .../revA1/__pycache__/RAC_S.cpython-310.pyc | Bin 8944 -> 8944 bytes .../__pycache__/RAC_S_field.cpython-310.pyc | Bin 202476 -> 202476 bytes .../RAC_S_register.cpython-310.pyc | Bin 77785 -> 77785 bytes .../__pycache__/RFCRC_NS.cpython-310.pyc | Bin 1497 -> 1497 bytes .../RFCRC_NS_field.cpython-310.pyc | Bin 5760 -> 5760 bytes .../RFCRC_NS_register.cpython-310.pyc | Bin 4799 -> 4799 bytes .../revA1/__pycache__/RFCRC_S.cpython-310.pyc | Bin 1483 -> 1483 bytes .../__pycache__/RFCRC_S_field.cpython-310.pyc | Bin 5711 -> 5711 bytes .../RFCRC_S_register.cpython-310.pyc | Bin 4754 -> 4754 bytes .../revA1/__pycache__/SEQ.cpython-310.pyc | Bin 1374 -> 1374 bytes .../__pycache__/SEQ_field.cpython-310.pyc | Bin 4690 -> 4690 bytes .../__pycache__/SEQ_register.cpython-310.pyc | Bin 4092 -> 4092 bytes .../__pycache__/SYNTH_NS.cpython-310.pyc | Bin 3561 -> 3561 bytes .../SYNTH_NS_field.cpython-310.pyc | Bin 56241 -> 56241 bytes .../SYNTH_NS_register.cpython-310.pyc | Bin 24129 -> 24129 bytes .../revA1/__pycache__/SYNTH_S.cpython-310.pyc | Bin 3521 -> 3521 bytes .../__pycache__/SYNTH_S_field.cpython-310.pyc | Bin 55748 -> 55748 bytes .../SYNTH_S_register.cpython-310.pyc | Bin 23858 -> 23858 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 5299 -> 5299 bytes .../__pycache__/_version.cpython-310.pyc | Bin 271 -> 271 bytes .../revA1/__pycache__/device.cpython-310.pyc | Bin 6329 -> 6329 bytes .../__pycache__/excluded_regs.cpython-310.pyc | Bin 1331 -> 1331 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 661 -> 661 bytes .../base/__pycache__/__init__.cpython-310.pyc | Bin 542 -> 542 bytes .../base/__pycache__/device.cpython-310.pyc | Bin 13310 -> 13310 bytes .../__pycache__/enumeration.cpython-310.pyc | Bin 2488 -> 2488 bytes .../base/__pycache__/field.cpython-310.pyc | Bin 5828 -> 5828 bytes .../__pycache__/peripheral.cpython-310.pyc | Bin 5460 -> 5460 bytes .../base/__pycache__/register.cpython-310.pyc | Bin 8891 -> 8891 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 557 -> 557 bytes .../__pycache__/accessmgr.cpython-310.pyc | Bin 2796 -> 2796 bytes .../common/__pycache__/errors.cpython-310.pyc | Bin 1719 -> 1719 bytes .../__pycache__/regmapio.cpython-310.pyc | Bin 18501 -> 18501 bytes .../__pycache__/svdinfo.cpython-310.pyc | Bin 3223 -> 3223 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 964 -> 964 bytes .../__pycache__/iregmapdevice.cpython-310.pyc | Bin 25631 -> 25631 bytes .../__pycache__/iregmapenum.cpython-310.pyc | Bin 2655 -> 2655 bytes .../__pycache__/iregmapfield.cpython-310.pyc | Bin 8224 -> 8224 bytes .../__pycache__/iregmapio.cpython-310.pyc | Bin 12347 -> 12347 bytes .../iregmapperipheral.cpython-310.pyc | Bin 8690 -> 8690 bytes .../iregmapregister.cpython-310.pyc | Bin 8853 -> 8853 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 280 -> 280 bytes .../__pycache__/factory.cpython-310.pyc | Bin 995 -> 995 bytes .../revA1/__pycache__/AGC_NS.cpython-310.pyc | Bin 5695 -> 5695 bytes .../__pycache__/AGC_NS_field.cpython-310.pyc | Bin 108228 -> 108228 bytes .../AGC_NS_register.cpython-310.pyc | Bin 42772 -> 42772 bytes .../revA1/__pycache__/AGC_S.cpython-310.pyc | Bin 5626 -> 5626 bytes .../__pycache__/AGC_S_field.cpython-310.pyc | Bin 107282 -> 107282 bytes .../AGC_S_register.cpython-310.pyc | Bin 42263 -> 42263 bytes .../revA1/__pycache__/CW.cpython-310.pyc | Bin 1131 -> 1131 bytes .../__pycache__/CW_field.cpython-310.pyc | Bin 3608 -> 3608 bytes .../__pycache__/CW_register.cpython-310.pyc | Bin 2612 -> 2612 bytes .../__pycache__/FEFILT0_NS.cpython-310.pyc | Bin 3687 -> 3687 bytes .../FEFILT0_NS_field.cpython-310.pyc | Bin 38073 -> 38073 bytes .../FEFILT0_NS_register.cpython-310.pyc | Bin 20830 -> 20830 bytes .../__pycache__/FEFILT0_S.cpython-310.pyc | Bin 3646 -> 3646 bytes .../FEFILT0_S_field.cpython-310.pyc | Bin 37748 -> 37748 bytes .../FEFILT0_S_register.cpython-310.pyc | Bin 20612 -> 20612 bytes .../__pycache__/FEFILT1_NS.cpython-310.pyc | Bin 3687 -> 3687 bytes .../FEFILT1_NS_field.cpython-310.pyc | Bin 38073 -> 38073 bytes .../FEFILT1_NS_register.cpython-310.pyc | Bin 20830 -> 20830 bytes .../__pycache__/FEFILT1_S.cpython-310.pyc | Bin 3646 -> 3646 bytes .../FEFILT1_S_field.cpython-310.pyc | Bin 37748 -> 37748 bytes .../FEFILT1_S_register.cpython-310.pyc | Bin 20612 -> 20612 bytes .../revA1/__pycache__/FRC_NS.cpython-310.pyc | Bin 7307 -> 7307 bytes .../__pycache__/FRC_NS_field.cpython-310.pyc | Bin 137569 -> 137569 bytes .../FRC_NS_register.cpython-310.pyc | Bin 54854 -> 54854 bytes .../revA1/__pycache__/FRC_S.cpython-310.pyc | Bin 7218 -> 7218 bytes .../__pycache__/FRC_S_field.cpython-310.pyc | Bin 136347 -> 136347 bytes .../FRC_S_register.cpython-310.pyc | Bin 54193 -> 54193 bytes .../__pycache__/LEGOQPSK.cpython-310.pyc | Bin 1537 -> 1537 bytes .../LEGOQPSK_field.cpython-310.pyc | Bin 8139 -> 8139 bytes .../LEGOQPSK_register.cpython-310.pyc | Bin 5379 -> 5379 bytes .../__pycache__/LRSWKOFDM.cpython-310.pyc | Bin 1335 -> 1335 bytes .../LRSWKOFDM_field.cpython-310.pyc | Bin 6315 -> 6315 bytes .../LRSWKOFDM_register.cpython-310.pyc | Bin 4048 -> 4048 bytes .../__pycache__/MODEM_NS.cpython-310.pyc | Bin 14936 -> 14936 bytes .../MODEM_NS_field.cpython-310.pyc | Bin 320504 -> 320504 bytes .../MODEM_NS_register.cpython-310.pyc | Bin 119750 -> 119750 bytes .../revA1/__pycache__/MODEM_S.cpython-310.pyc | Bin 14753 -> 14753 bytes .../__pycache__/MODEM_S_field.cpython-310.pyc | Bin 317740 -> 317740 bytes .../MODEM_S_register.cpython-310.pyc | Bin 118293 -> 118293 bytes .../revA1/__pycache__/RAC_NS.cpython-310.pyc | Bin 10798 -> 10798 bytes .../__pycache__/RAC_NS_field.cpython-310.pyc | Bin 257676 -> 257676 bytes .../RAC_NS_register.cpython-310.pyc | Bin 95944 -> 95944 bytes .../revA1/__pycache__/RAC_S.cpython-310.pyc | Bin 10663 -> 10663 bytes .../__pycache__/RAC_S_field.cpython-310.pyc | Bin 255494 -> 255494 bytes .../RAC_S_register.cpython-310.pyc | Bin 94825 -> 94825 bytes .../__pycache__/RFCRC_NS.cpython-310.pyc | Bin 1497 -> 1497 bytes .../RFCRC_NS_field.cpython-310.pyc | Bin 5760 -> 5760 bytes .../RFCRC_NS_register.cpython-310.pyc | Bin 4799 -> 4799 bytes .../revA1/__pycache__/RFCRC_S.cpython-310.pyc | Bin 1483 -> 1483 bytes .../__pycache__/RFCRC_S_field.cpython-310.pyc | Bin 5711 -> 5711 bytes .../RFCRC_S_register.cpython-310.pyc | Bin 4754 -> 4754 bytes .../__pycache__/RFFPLL0_NS.cpython-310.pyc | Bin 2213 -> 2213 bytes .../RFFPLL0_NS_field.cpython-310.pyc | Bin 25756 -> 25756 bytes .../RFFPLL0_NS_register.cpython-310.pyc | Bin 13041 -> 13041 bytes .../__pycache__/RFFPLL0_S.cpython-310.pyc | Bin 2191 -> 2191 bytes .../RFFPLL0_S_field.cpython-310.pyc | Bin 25536 -> 25536 bytes .../RFFPLL0_S_register.cpython-310.pyc | Bin 12915 -> 12915 bytes .../revA1/__pycache__/SEQ.cpython-310.pyc | Bin 1380 -> 1380 bytes .../__pycache__/SEQ_field.cpython-310.pyc | Bin 7454 -> 7454 bytes .../__pycache__/SEQ_register.cpython-310.pyc | Bin 4901 -> 4901 bytes .../__pycache__/SMCTRL_NS.cpython-310.pyc | Bin 3209 -> 3209 bytes .../SMCTRL_NS_field.cpython-310.pyc | Bin 90032 -> 90032 bytes .../SMCTRL_NS_register.cpython-310.pyc | Bin 28532 -> 28532 bytes .../__pycache__/SMCTRL_S.cpython-310.pyc | Bin 3173 -> 3173 bytes .../SMCTRL_S_field.cpython-310.pyc | Bin 89227 -> 89227 bytes .../SMCTRL_S_register.cpython-310.pyc | Bin 28169 -> 28169 bytes .../revA1/__pycache__/SUNFSK.cpython-310.pyc | Bin 2339 -> 2339 bytes .../__pycache__/SUNFSK_field.cpython-310.pyc | Bin 17836 -> 17836 bytes .../SUNFSK_register.cpython-310.pyc | Bin 10955 -> 10955 bytes .../revA1/__pycache__/SUNOFDM.cpython-310.pyc | Bin 5428 -> 5428 bytes .../__pycache__/SUNOFDM_field.cpython-310.pyc | Bin 56888 -> 56888 bytes .../SUNOFDM_register.cpython-310.pyc | Bin 29897 -> 29897 bytes .../__pycache__/SUNOQPSK.cpython-310.pyc | Bin 1537 -> 1537 bytes .../SUNOQPSK_field.cpython-310.pyc | Bin 8139 -> 8139 bytes .../SUNOQPSK_register.cpython-310.pyc | Bin 5379 -> 5379 bytes .../__pycache__/SYNTH_NS.cpython-310.pyc | Bin 3707 -> 3707 bytes .../SYNTH_NS_field.cpython-310.pyc | Bin 60453 -> 60453 bytes .../SYNTH_NS_register.cpython-310.pyc | Bin 25497 -> 25497 bytes .../revA1/__pycache__/SYNTH_S.cpython-310.pyc | Bin 3665 -> 3665 bytes .../__pycache__/SYNTH_S_field.cpython-310.pyc | Bin 59924 -> 59924 bytes .../SYNTH_S_register.cpython-310.pyc | Bin 25208 -> 25208 bytes .../__pycache__/TXFRONT_NS.cpython-310.pyc | Bin 2705 -> 2705 bytes .../TXFRONT_NS_field.cpython-310.pyc | Bin 15353 -> 15353 bytes .../TXFRONT_NS_register.cpython-310.pyc | Bin 11397 -> 11397 bytes .../__pycache__/TXFRONT_S.cpython-310.pyc | Bin 2677 -> 2677 bytes .../TXFRONT_S_field.cpython-310.pyc | Bin 15220 -> 15220 bytes .../TXFRONT_S_register.cpython-310.pyc | Bin 11282 -> 11282 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 5299 -> 5299 bytes .../__pycache__/_version.cpython-310.pyc | Bin 271 -> 271 bytes .../revA1/__pycache__/device.cpython-310.pyc | Bin 7861 -> 7861 bytes .../__pycache__/excluded_regs.cpython-310.pyc | Bin 1331 -> 1331 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 661 -> 661 bytes .../base/__pycache__/__init__.cpython-310.pyc | Bin 542 -> 542 bytes .../base/__pycache__/device.cpython-310.pyc | Bin 13310 -> 13310 bytes .../__pycache__/enumeration.cpython-310.pyc | Bin 2488 -> 2488 bytes .../base/__pycache__/field.cpython-310.pyc | Bin 5828 -> 5828 bytes .../__pycache__/peripheral.cpython-310.pyc | Bin 5460 -> 5460 bytes .../base/__pycache__/register.cpython-310.pyc | Bin 8891 -> 8891 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 557 -> 557 bytes .../__pycache__/accessmgr.cpython-310.pyc | Bin 2796 -> 2796 bytes .../common/__pycache__/errors.cpython-310.pyc | Bin 1719 -> 1719 bytes .../__pycache__/regmapio.cpython-310.pyc | Bin 18501 -> 18501 bytes .../__pycache__/svdinfo.cpython-310.pyc | Bin 3223 -> 3223 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 964 -> 964 bytes .../__pycache__/iregmapdevice.cpython-310.pyc | Bin 25631 -> 25631 bytes .../__pycache__/iregmapenum.cpython-310.pyc | Bin 2655 -> 2655 bytes .../__pycache__/iregmapfield.cpython-310.pyc | Bin 8224 -> 8224 bytes .../__pycache__/iregmapio.cpython-310.pyc | Bin 12347 -> 12347 bytes .../iregmapperipheral.cpython-310.pyc | Bin 8690 -> 8690 bytes .../iregmapregister.cpython-310.pyc | Bin 8853 -> 8853 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 280 -> 280 bytes .../__pycache__/factory.cpython-310.pyc | Bin 993 -> 993 bytes .../revA0/__pycache__/AGC_NS.cpython-310.pyc | Bin 7367 -> 7367 bytes .../__pycache__/AGC_NS_field.cpython-310.pyc | Bin 182635 -> 182635 bytes .../AGC_NS_register.cpython-310.pyc | Bin 61867 -> 61867 bytes .../revA0/__pycache__/AGC_S.cpython-310.pyc | Bin 7278 -> 7278 bytes .../__pycache__/AGC_S_field.cpython-310.pyc | Bin 181086 -> 181086 bytes .../AGC_S_register.cpython-310.pyc | Bin 61097 -> 61097 bytes .../revA0/__pycache__/FRC_NS.cpython-310.pyc | Bin 7237 -> 7237 bytes .../__pycache__/FRC_NS_field.cpython-310.pyc | Bin 136562 -> 136562 bytes .../FRC_NS_register.cpython-310.pyc | Bin 54357 -> 54357 bytes .../revA0/__pycache__/FRC_S.cpython-310.pyc | Bin 7149 -> 7149 bytes .../__pycache__/FRC_S_field.cpython-310.pyc | Bin 135349 -> 135349 bytes .../FRC_S_register.cpython-310.pyc | Bin 53702 -> 53702 bytes .../__pycache__/MODEM_NS.cpython-310.pyc | Bin 17452 -> 17452 bytes .../MODEM_NS_field.cpython-310.pyc | Bin 332674 -> 332674 bytes .../MODEM_NS_register.cpython-310.pyc | Bin 131023 -> 131023 bytes .../revA0/__pycache__/MODEM_S.cpython-310.pyc | Bin 17238 -> 17238 bytes .../__pycache__/MODEM_S_field.cpython-310.pyc | Bin 329796 -> 329796 bytes .../MODEM_S_register.cpython-310.pyc | Bin 129435 -> 129435 bytes .../revA0/__pycache__/RAC_NS.cpython-310.pyc | Bin 9057 -> 9057 bytes .../__pycache__/RAC_NS_field.cpython-310.pyc | Bin 204199 -> 204199 bytes .../RAC_NS_register.cpython-310.pyc | Bin 78685 -> 78685 bytes .../revA0/__pycache__/RAC_S.cpython-310.pyc | Bin 8944 -> 8944 bytes .../__pycache__/RAC_S_field.cpython-310.pyc | Bin 202476 -> 202476 bytes .../RAC_S_register.cpython-310.pyc | Bin 77785 -> 77785 bytes .../__pycache__/RFCRC_NS.cpython-310.pyc | Bin 1497 -> 1497 bytes .../RFCRC_NS_field.cpython-310.pyc | Bin 5760 -> 5760 bytes .../RFCRC_NS_register.cpython-310.pyc | Bin 4799 -> 4799 bytes .../revA0/__pycache__/RFCRC_S.cpython-310.pyc | Bin 1483 -> 1483 bytes .../__pycache__/RFCRC_S_field.cpython-310.pyc | Bin 5711 -> 5711 bytes .../RFCRC_S_register.cpython-310.pyc | Bin 4754 -> 4754 bytes .../revA0/__pycache__/SEQ.cpython-310.pyc | Bin 1374 -> 1374 bytes .../__pycache__/SEQ_field.cpython-310.pyc | Bin 4690 -> 4690 bytes .../__pycache__/SEQ_register.cpython-310.pyc | Bin 4092 -> 4092 bytes .../__pycache__/SYNTH_NS.cpython-310.pyc | Bin 3561 -> 3561 bytes .../SYNTH_NS_field.cpython-310.pyc | Bin 56241 -> 56241 bytes .../SYNTH_NS_register.cpython-310.pyc | Bin 24129 -> 24129 bytes .../revA0/__pycache__/SYNTH_S.cpython-310.pyc | Bin 3521 -> 3521 bytes .../__pycache__/SYNTH_S_field.cpython-310.pyc | Bin 55748 -> 55748 bytes .../SYNTH_S_register.cpython-310.pyc | Bin 23858 -> 23858 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 5299 -> 5299 bytes .../__pycache__/_version.cpython-310.pyc | Bin 271 -> 271 bytes .../revA0/__pycache__/device.cpython-310.pyc | Bin 6329 -> 6329 bytes .../__pycache__/excluded_regs.cpython-310.pyc | Bin 1331 -> 1331 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 661 -> 661 bytes .../base/__pycache__/__init__.cpython-310.pyc | Bin 542 -> 542 bytes .../base/__pycache__/device.cpython-310.pyc | Bin 13310 -> 13310 bytes .../__pycache__/enumeration.cpython-310.pyc | Bin 2488 -> 2488 bytes .../base/__pycache__/field.cpython-310.pyc | Bin 5828 -> 5828 bytes .../__pycache__/peripheral.cpython-310.pyc | Bin 5460 -> 5460 bytes .../base/__pycache__/register.cpython-310.pyc | Bin 8891 -> 8891 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 557 -> 557 bytes .../__pycache__/accessmgr.cpython-310.pyc | Bin 2796 -> 2796 bytes .../common/__pycache__/errors.cpython-310.pyc | Bin 1719 -> 1719 bytes .../__pycache__/regmapio.cpython-310.pyc | Bin 18501 -> 18501 bytes .../__pycache__/svdinfo.cpython-310.pyc | Bin 3223 -> 3223 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 964 -> 964 bytes .../__pycache__/iregmapdevice.cpython-310.pyc | Bin 25631 -> 25631 bytes .../__pycache__/iregmapenum.cpython-310.pyc | Bin 2655 -> 2655 bytes .../__pycache__/iregmapfield.cpython-310.pyc | Bin 8224 -> 8224 bytes .../__pycache__/iregmapio.cpython-310.pyc | Bin 12347 -> 12347 bytes .../iregmapperipheral.cpython-310.pyc | Bin 8690 -> 8690 bytes .../iregmapregister.cpython-310.pyc | Bin 8853 -> 8853 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 280 -> 280 bytes .../__pycache__/factory.cpython-310.pyc | Bin 999 -> 999 bytes .../revA1/__pycache__/AGC_NS.cpython-310.pyc | Bin 3489 -> 3489 bytes .../__pycache__/AGC_NS_field.cpython-310.pyc | Bin 65379 -> 65379 bytes .../AGC_NS_register.cpython-310.pyc | Bin 25107 -> 25107 bytes .../revA1/__pycache__/AGC_S.cpython-310.pyc | Bin 3448 -> 3448 bytes .../__pycache__/AGC_S_field.cpython-310.pyc | Bin 64799 -> 64799 bytes .../AGC_S_register.cpython-310.pyc | Bin 24804 -> 24804 bytes .../revA1/__pycache__/FRC_NS.cpython-310.pyc | Bin 7083 -> 7083 bytes .../__pycache__/FRC_NS_field.cpython-310.pyc | Bin 130674 -> 130674 bytes .../FRC_NS_register.cpython-310.pyc | Bin 52549 -> 52549 bytes .../revA1/__pycache__/FRC_S.cpython-310.pyc | Bin 6997 -> 6997 bytes .../__pycache__/FRC_S_field.cpython-310.pyc | Bin 129512 -> 129512 bytes .../FRC_S_register.cpython-310.pyc | Bin 51917 -> 51917 bytes .../__pycache__/MODEM_NS.cpython-310.pyc | Bin 8585 -> 8585 bytes .../MODEM_NS_field.cpython-310.pyc | Bin 180672 -> 180672 bytes .../MODEM_NS_register.cpython-310.pyc | Bin 67774 -> 67774 bytes .../revA1/__pycache__/MODEM_S.cpython-310.pyc | Bin 8480 -> 8480 bytes .../__pycache__/MODEM_S_field.cpython-310.pyc | Bin 179096 -> 179096 bytes .../MODEM_S_register.cpython-310.pyc | Bin 66947 -> 66947 bytes .../revA1/__pycache__/RAC_NS.cpython-310.pyc | Bin 8201 -> 8201 bytes .../__pycache__/RAC_NS_field.cpython-310.pyc | Bin 176177 -> 176177 bytes .../RAC_NS_register.cpython-310.pyc | Bin 68782 -> 68782 bytes .../revA1/__pycache__/RAC_S.cpython-310.pyc | Bin 8099 -> 8099 bytes .../__pycache__/RAC_S_field.cpython-310.pyc | Bin 174682 -> 174682 bytes .../RAC_S_register.cpython-310.pyc | Bin 67991 -> 67991 bytes .../__pycache__/RFCRC_NS.cpython-310.pyc | Bin 1497 -> 1497 bytes .../RFCRC_NS_field.cpython-310.pyc | Bin 5760 -> 5760 bytes .../RFCRC_NS_register.cpython-310.pyc | Bin 4799 -> 4799 bytes .../revA1/__pycache__/RFCRC_S.cpython-310.pyc | Bin 1483 -> 1483 bytes .../__pycache__/RFCRC_S_field.cpython-310.pyc | Bin 5711 -> 5711 bytes .../RFCRC_S_register.cpython-310.pyc | Bin 4754 -> 4754 bytes .../revA1/__pycache__/SEQ.cpython-310.pyc | Bin 1374 -> 1374 bytes .../__pycache__/SEQ_field.cpython-310.pyc | Bin 4690 -> 4690 bytes .../__pycache__/SEQ_register.cpython-310.pyc | Bin 4092 -> 4092 bytes .../__pycache__/SYNTH_NS.cpython-310.pyc | Bin 3561 -> 3561 bytes .../SYNTH_NS_field.cpython-310.pyc | Bin 55899 -> 55899 bytes .../SYNTH_NS_register.cpython-310.pyc | Bin 24075 -> 24075 bytes .../revA1/__pycache__/SYNTH_S.cpython-310.pyc | Bin 3521 -> 3521 bytes .../__pycache__/SYNTH_S_field.cpython-310.pyc | Bin 55409 -> 55409 bytes .../SYNTH_S_register.cpython-310.pyc | Bin 23805 -> 23805 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 5299 -> 5299 bytes .../__pycache__/_version.cpython-310.pyc | Bin 271 -> 271 bytes .../revA1/__pycache__/device.cpython-310.pyc | Bin 6329 -> 6329 bytes .../__pycache__/excluded_regs.cpython-310.pyc | Bin 1331 -> 1331 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 661 -> 661 bytes .../base/__pycache__/__init__.cpython-310.pyc | Bin 542 -> 542 bytes .../base/__pycache__/device.cpython-310.pyc | Bin 13310 -> 13310 bytes .../__pycache__/enumeration.cpython-310.pyc | Bin 2488 -> 2488 bytes .../base/__pycache__/field.cpython-310.pyc | Bin 5828 -> 5828 bytes .../__pycache__/peripheral.cpython-310.pyc | Bin 5460 -> 5460 bytes .../base/__pycache__/register.cpython-310.pyc | Bin 8891 -> 8891 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 557 -> 557 bytes .../__pycache__/accessmgr.cpython-310.pyc | Bin 2796 -> 2796 bytes .../common/__pycache__/errors.cpython-310.pyc | Bin 1719 -> 1719 bytes .../__pycache__/regmapio.cpython-310.pyc | Bin 18501 -> 18501 bytes .../__pycache__/svdinfo.cpython-310.pyc | Bin 3223 -> 3223 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 964 -> 964 bytes .../__pycache__/iregmapdevice.cpython-310.pyc | Bin 25631 -> 25631 bytes .../__pycache__/iregmapenum.cpython-310.pyc | Bin 2655 -> 2655 bytes .../__pycache__/iregmapfield.cpython-310.pyc | Bin 8224 -> 8224 bytes .../__pycache__/iregmapio.cpython-310.pyc | Bin 12347 -> 12347 bytes .../iregmapperipheral.cpython-310.pyc | Bin 8690 -> 8690 bytes .../iregmapregister.cpython-310.pyc | Bin 8853 -> 8853 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 280 -> 280 bytes .../__pycache__/factory.cpython-310.pyc | Bin 992 -> 992 bytes .../revA0/__pycache__/AGC_NS.cpython-310.pyc | Bin 4975 -> 4975 bytes .../__pycache__/AGC_NS_field.cpython-310.pyc | Bin 81533 -> 81533 bytes .../AGC_NS_register.cpython-310.pyc | Bin 34809 -> 34809 bytes .../revA0/__pycache__/AGC_S.cpython-310.pyc | Bin 4915 -> 4915 bytes .../__pycache__/AGC_S_field.cpython-310.pyc | Bin 80812 -> 80812 bytes .../AGC_S_register.cpython-310.pyc | Bin 34402 -> 34402 bytes .../revA0/__pycache__/FRC_NS.cpython-310.pyc | Bin 7159 -> 7159 bytes .../__pycache__/FRC_NS_field.cpython-310.pyc | Bin 136539 -> 136539 bytes .../FRC_NS_register.cpython-310.pyc | Bin 53950 -> 53950 bytes .../revA0/__pycache__/FRC_S.cpython-310.pyc | Bin 7072 -> 7072 bytes .../__pycache__/FRC_S_field.cpython-310.pyc | Bin 135326 -> 135326 bytes .../FRC_S_register.cpython-310.pyc | Bin 53298 -> 53298 bytes .../__pycache__/MODEM_NS.cpython-310.pyc | Bin 17642 -> 17642 bytes .../MODEM_NS_field.cpython-310.pyc | Bin 356274 -> 356274 bytes .../MODEM_NS_register.cpython-310.pyc | Bin 136370 -> 136370 bytes .../revA0/__pycache__/MODEM_S.cpython-310.pyc | Bin 17427 -> 17427 bytes .../__pycache__/MODEM_S_field.cpython-310.pyc | Bin 353204 -> 353204 bytes .../MODEM_S_register.cpython-310.pyc | Bin 134715 -> 134715 bytes .../revA0/__pycache__/RAC_NS.cpython-310.pyc | Bin 9567 -> 9567 bytes .../__pycache__/RAC_NS_field.cpython-310.pyc | Bin 215158 -> 215158 bytes .../RAC_NS_register.cpython-310.pyc | Bin 82755 -> 82755 bytes .../revA0/__pycache__/RAC_S.cpython-310.pyc | Bin 9448 -> 9448 bytes .../__pycache__/RAC_S_field.cpython-310.pyc | Bin 213342 -> 213342 bytes .../RAC_S_register.cpython-310.pyc | Bin 81806 -> 81806 bytes .../__pycache__/RFCRC_NS.cpython-310.pyc | Bin 1497 -> 1497 bytes .../RFCRC_NS_field.cpython-310.pyc | Bin 5760 -> 5760 bytes .../RFCRC_NS_register.cpython-310.pyc | Bin 4799 -> 4799 bytes .../revA0/__pycache__/RFCRC_S.cpython-310.pyc | Bin 1483 -> 1483 bytes .../__pycache__/RFCRC_S_field.cpython-310.pyc | Bin 5711 -> 5711 bytes .../RFCRC_S_register.cpython-310.pyc | Bin 4754 -> 4754 bytes .../revA0/__pycache__/SEQ.cpython-310.pyc | Bin 1374 -> 1374 bytes .../__pycache__/SEQ_field.cpython-310.pyc | Bin 5336 -> 5336 bytes .../__pycache__/SEQ_register.cpython-310.pyc | Bin 4244 -> 4244 bytes .../__pycache__/SYNTH_NS.cpython-310.pyc | Bin 3561 -> 3561 bytes .../SYNTH_NS_field.cpython-310.pyc | Bin 56241 -> 56241 bytes .../SYNTH_NS_register.cpython-310.pyc | Bin 24129 -> 24129 bytes .../revA0/__pycache__/SYNTH_S.cpython-310.pyc | Bin 3521 -> 3521 bytes .../__pycache__/SYNTH_S_field.cpython-310.pyc | Bin 55748 -> 55748 bytes .../SYNTH_S_register.cpython-310.pyc | Bin 23858 -> 23858 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 5299 -> 5299 bytes .../__pycache__/_version.cpython-310.pyc | Bin 271 -> 271 bytes .../revA0/__pycache__/device.cpython-310.pyc | Bin 6329 -> 6329 bytes .../__pycache__/excluded_regs.cpython-310.pyc | Bin 1331 -> 1331 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 661 -> 661 bytes .../__pycache__/.nfs000000002ed7bc600002bfa7 | Bin 542 -> 0 bytes .../base/__pycache__/__init__.cpython-310.pyc | Bin 542 -> 542 bytes .../base/__pycache__/device.cpython-310.pyc | Bin 13310 -> 13310 bytes .../__pycache__/enumeration.cpython-310.pyc | Bin 2488 -> 2488 bytes .../base/__pycache__/field.cpython-310.pyc | Bin 5828 -> 5828 bytes .../__pycache__/peripheral.cpython-310.pyc | Bin 5460 -> 5460 bytes .../base/__pycache__/register.cpython-310.pyc | Bin 8891 -> 8891 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 557 -> 557 bytes .../__pycache__/accessmgr.cpython-310.pyc | Bin 2796 -> 2796 bytes .../common/__pycache__/errors.cpython-310.pyc | Bin 1719 -> 1719 bytes .../__pycache__/regmapio.cpython-310.pyc | Bin 18501 -> 18501 bytes .../__pycache__/svdinfo.cpython-310.pyc | Bin 3223 -> 3223 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 964 -> 964 bytes .../__pycache__/iregmapdevice.cpython-310.pyc | Bin 25631 -> 25631 bytes .../__pycache__/iregmapenum.cpython-310.pyc | Bin 2655 -> 2655 bytes .../__pycache__/iregmapfield.cpython-310.pyc | Bin 8224 -> 8224 bytes .../__pycache__/iregmapio.cpython-310.pyc | Bin 12347 -> 12347 bytes .../iregmapperipheral.cpython-310.pyc | Bin 8690 -> 8690 bytes .../iregmapregister.cpython-310.pyc | Bin 8853 -> 8853 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 229 -> 229 bytes .../src/__pycache__/__init__.cpython-310.pyc | Bin 233 -> 233 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 478 -> 478 bytes .../categoryinterface.cpython-310.pyc | Bin 2291 -> 2291 bytes .../chipconfiguratorinterface.cpython-310.pyc | Bin 3205 -> 3205 bytes .../inputinterface.cpython-310.pyc | Bin 1294 -> 1294 bytes .../pyjavaproperties.cpython-310.pyc | Bin 7052 -> 7052 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 597 -> 597 bytes .../__pycache__/calc_log.cpython-310.pyc | Bin 4850 -> 4850 bytes .../__pycache__/ch_flt.cpython-310.pyc | Bin 1912 -> 1912 bytes .../__pycache__/decode_api.cpython-310.pyc | Bin 1841 -> 1841 bytes .../__pycache__/dict2xml.cpython-310.pyc | Bin 1572 -> 1572 bytes .../filter_chain_lu.cpython-310.pyc | Bin 2927 -> 2927 bytes .../filter_chain_lu_plus.cpython-310.pyc | Bin 2912 -> 2912 bytes .../__pycache__/freq_ctl.cpython-310.pyc | Bin 2464 -> 2464 bytes .../__pycache__/modemcalcdata.cpython-310.pyc | Bin 2126 -> 2126 bytes .../pll_setting_LUT.cpython-310.pyc | Bin 1399 -> 1399 bytes ...pro2_ocelotdemodulatorcore.cpython-310.pyc | Bin 9167 -> 9167 bytes .../pro2_ocelotmodemcalc.cpython-310.pyc | Bin 1492 -> 1492 bytes ...pro2_ocelotmodemcalcinputs.cpython-310.pyc | Bin 1427 -> 1427 bytes .../pro2_ocelotmodemfields.cpython-310.pyc | Bin 2270 -> 2270 bytes .../pro2_ocelotmodulatorcore.cpython-310.pyc | Bin 2785 -> 2785 bytes .../__pycache__/pro2apilist.cpython-310.pyc | Bin 12443 -> 12443 bytes .../pro2demodulatorcore.cpython-310.pyc | Bin 18817 -> 18817 bytes .../__pycache__/pro2modemcalc.cpython-310.pyc | Bin 6286 -> 6286 bytes .../pro2modemcalcinputs.cpython-310.pyc | Bin 3328 -> 3328 bytes .../pro2modemfields.cpython-310.pyc | Bin 3944 -> 3944 bytes .../pro2modulatorcore.cpython-310.pyc | Bin 5996 -> 5996 bytes .../pro2plusapilist.cpython-310.pyc | Bin 4751 -> 4751 bytes .../pro2plusdemodulatorcore.cpython-310.pyc | Bin 13791 -> 13791 bytes .../pro2plusmodemcalc.cpython-310.pyc | Bin 4635 -> 4635 bytes .../pro2plusmodemcalcinputs.cpython-310.pyc | Bin 2682 -> 2682 bytes .../pro2plusmodemfields.cpython-310.pyc | Bin 2297 -> 2297 bytes .../__pycache__/pro2registers.cpython-310.pyc | Bin 9443 -> 9443 bytes .../__pycache__/rxchflt_rtl.cpython-310.pyc | Bin 1235 -> 1235 bytes .../__pycache__/trueround.cpython-310.pyc | Bin 1635 -> 1635 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 246 -> 246 bytes .../__pycache__/version_info.cpython-310.pyc | Bin 1979 -> 1979 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 1772 -> 1772 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 274 -> 274 bytes .../__pycache__/_version.cpython-310.pyc | Bin 239 -> 239 bytes .../py2_and_3_compatibility.cpython-310.pyc | Bin 631 -> 631 bytes .../core/__pycache__/__init__.cpython-310.pyc | Bin 223 -> 223 bytes .../core/__pycache__/common.cpython-310.pyc | Bin 2294 -> 2294 bytes .../__pycache__/default_phy.cpython-310.pyc | Bin 4823 -> 4823 bytes .../core/__pycache__/feature.cpython-310.pyc | Bin 5631 -> 5631 bytes .../core/__pycache__/force.cpython-310.pyc | Bin 3883 -> 3883 bytes .../core/__pycache__/input.cpython-310.pyc | Bin 12126 -> 12126 bytes .../core/__pycache__/log.cpython-310.pyc | Bin 789 -> 789 bytes .../core/__pycache__/model.cpython-310.pyc | Bin 10312 -> 10312 bytes .../core/__pycache__/output.cpython-310.pyc | Bin 10372 -> 10372 bytes .../core/__pycache__/parser.cpython-310.pyc | Bin 1541 -> 1541 bytes .../core/__pycache__/phy.cpython-310.pyc | Bin 10281 -> 10281 bytes .../core/__pycache__/profile.cpython-310.pyc | Bin 11633 -> 11633 bytes .../__pycache__/reg_model.cpython-310.pyc | Bin 832 -> 832 bytes .../core/__pycache__/variable.cpython-310.pyc | Bin 18018 -> 18018 bytes .../variable_access_name.cpython-310.pyc | Bin 1348 -> 1348 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 281 -> 281 bytes .../base/__pycache__/Bindings.cpython-310.pyc | Bin 151754 -> 151754 bytes .../base/__pycache__/__init__.cpython-310.pyc | Bin 323 -> 323 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 273 -> 273 bytes .../base/__pycache__/Bindings.cpython-310.pyc | Bin 122756 -> 122756 bytes .../base/__pycache__/__init__.cpython-310.pyc | Bin 315 -> 315 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 228 -> 228 bytes .../__pycache__/Bindings.cpython-310.pyc | Bin 161138 -> 161138 bytes .../MultiPHYConfig.cpython-310.pyc | Bin 7482 -> 7482 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 440 -> 440 bytes .../__pycache__/_version.cpython-310.pyc | Bin 284 -> 284 bytes .../rail_scripts_wrapper.cpython-310.pyc | Bin 2789 -> 2789 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 247 -> 247 bytes .../__pycache__/model_diff.cpython-310.pyc | Bin 10241 -> 10241 bytes .../model_diff_codes.cpython-310.pyc | Bin 611 -> 611 bytes .../__pycache__/Bindings.cpython-310.pyc | Bin 100513 -> 100513 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 250 -> 250 bytes .../__pycache__/rm_to_xml.cpython-310.pyc | Bin 4650 -> 4650 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 944 -> 944 bytes .../__pycache__/_version.cpython-310.pyc | Bin 244 -> 244 bytes .../pyradioconfig/_version.py | 2 +- .../__pycache__/CalcStatus.cpython-310.pyc | Bin 507 -> 507 bytes .../__pycache__/ClassManager.cpython-310.pyc | Bin 2726 -> 2726 bytes .../CustomExceptions.cpython-310.pyc | Bin 834 -> 834 bytes .../__pycache__/FileUtilities.cpython-310.pyc | Bin 1873 -> 1873 bytes .../Utils/__pycache__/LogMgr.cpython-310.pyc | Bin 2446 -> 2446 bytes .../__pycache__/ModelChecking.cpython-310.pyc | Bin 7164 -> 7164 bytes .../Utils/__pycache__/Version.cpython-310.pyc | Bin 1580 -> 1580 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 253 -> 253 bytes .../__pycache__/CalcManager.cpython-310.pyc | Bin 47105 -> 47105 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 389 -> 389 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 258 -> 258 bytes .../phy_decorators.cpython-310.pyc | Bin 4050 -> 4050 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 258 -> 258 bytes .../__pycache__/exceptions.cpython-310.pyc | Bin 691 -> 691 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 258 -> 258 bytes .../__pycache__/icalculator.cpython-310.pyc | Bin 5493 -> 5493 bytes .../__pycache__/idefault_phy.cpython-310.pyc | Bin 572 -> 572 bytes .../__pycache__/iphy.cpython-310.pyc | Bin 3681 -> 3681 bytes .../__pycache__/iphy_filter.cpython-310.pyc | Bin 1454 -> 1454 bytes .../__pycache__/iprofile.cpython-310.pyc | Bin 4621 -> 4621 bytes .../__pycache__/itarget.cpython-310.pyc | Bin 1431 -> 1431 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 286 -> 286 bytes .../human_readable.cpython-310.pyc | Bin 5622 -> 5622 bytes .../import_isc_files.cpython-310.pyc | Bin 2965 -> 2965 bytes .../static_timestamp_xml.cpython-310.pyc | Bin 1200 -> 1200 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 293 -> 293 bytes .../__pycache__/features.cpython-310.pyc | Bin 1581 -> 1581 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 895 -> 895 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 233 -> 233 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 396 -> 396 bytes .../__pycache__/calc_agc.cpython-310.pyc | Bin 3760 -> 3760 bytes .../__pycache__/calc_aox.cpython-310.pyc | Bin 2055 -> 2055 bytes .../__pycache__/calc_ber.cpython-310.pyc | Bin 498 -> 498 bytes .../__pycache__/calc_crc.cpython-310.pyc | Bin 498 -> 498 bytes .../calc_demodulator.cpython-310.pyc | Bin 8166 -> 8166 bytes .../calc_diversity.cpython-310.pyc | Bin 9686 -> 9686 bytes .../__pycache__/calc_dsa.cpython-310.pyc | Bin 498 -> 498 bytes .../__pycache__/calc_fec.cpython-310.pyc | Bin 498 -> 498 bytes .../__pycache__/calc_fpll.cpython-310.pyc | Bin 502 -> 502 bytes .../__pycache__/calc_frame.cpython-310.pyc | Bin 506 -> 506 bytes .../calc_frame_coding.cpython-310.pyc | Bin 534 -> 534 bytes .../calc_frame_detect.cpython-310.pyc | Bin 534 -> 534 bytes .../calc_freq_offset_comp.cpython-310.pyc | Bin 1788 -> 1788 bytes .../__pycache__/calc_global.cpython-310.pyc | Bin 25068 -> 25068 bytes .../__pycache__/calc_ircal.cpython-310.pyc | Bin 672 -> 672 bytes .../calc_legacy_vars.cpython-310.pyc | Bin 530 -> 530 bytes .../calc_longrange.cpython-310.pyc | Bin 522 -> 522 bytes .../__pycache__/calc_mbus.cpython-310.pyc | Bin 502 -> 502 bytes .../__pycache__/calc_misc.cpython-310.pyc | Bin 3919 -> 3919 bytes .../calc_modulator.cpython-310.pyc | Bin 545 -> 545 bytes .../__pycache__/calc_radio.cpython-310.pyc | Bin 1048 -> 1048 bytes .../__pycache__/calc_rail.cpython-310.pyc | Bin 498 -> 498 bytes .../__pycache__/calc_shaping.cpython-310.pyc | Bin 514 -> 514 bytes .../__pycache__/calc_sq.cpython-310.pyc | Bin 494 -> 494 bytes .../__pycache__/calc_synth.cpython-310.pyc | Bin 15321 -> 15321 bytes .../calc_utilities.cpython-310.pyc | Bin 522 -> 522 bytes .../__pycache__/calc_viterbi.cpython-310.pyc | Bin 2758 -> 2758 bytes .../__pycache__/calc_white.cpython-310.pyc | Bin 507 -> 507 bytes .../__pycache__/calc_wisun.cpython-310.pyc | Bin 1008 -> 1008 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 392 -> 392 bytes .../__pycache__/phy_filters.cpython-310.pyc | Bin 958 -> 958 bytes .../Phys_Studio_Base.cpython-310.pyc | Bin 1671 -> 1671 bytes .../Phys_Studio_Connect.cpython-310.pyc | Bin 2778 -> 2778 bytes .../phys/__pycache__/__init__.cpython-310.pyc | Bin 389 -> 389 bytes .../__pycache__/Profile_Base.cpython-310.pyc | Bin 7122 -> 7122 bytes .../Profile_Connect.cpython-310.pyc | Bin 3090 -> 3090 bytes .../Profile_IEEE802154_OQPSK.cpython-310.pyc | Bin 12181 -> 12181 bytes .../__pycache__/Profile_Mbus.cpython-310.pyc | Bin 4207 -> 4207 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 393 -> 393 bytes .../profile_wisun_fan_1_1.cpython-310.pyc | Bin 1679 -> 1679 bytes .../sw_profile_outputs_common.cpython-310.pyc | Bin 682 -> 682 bytes .../__pycache__/Target_FPGA.cpython-310.pyc | Bin 1091 -> 1091 bytes .../__pycache__/Target_IC.cpython-310.pyc | Bin 777 -> 777 bytes .../__pycache__/Target_Sim.cpython-310.pyc | Bin 7748 -> 7748 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 392 -> 392 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 234 -> 234 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 397 -> 397 bytes .../__pycache__/calc_agc.cpython-310.pyc | Bin 500 -> 500 bytes .../__pycache__/calc_aox.cpython-310.pyc | Bin 500 -> 500 bytes .../__pycache__/calc_ber.cpython-310.pyc | Bin 500 -> 500 bytes .../__pycache__/calc_crc.cpython-310.pyc | Bin 500 -> 500 bytes .../calc_demodulator.cpython-310.pyc | Bin 532 -> 532 bytes .../calc_diversity.cpython-310.pyc | Bin 524 -> 524 bytes .../__pycache__/calc_dsa.cpython-310.pyc | Bin 500 -> 500 bytes .../__pycache__/calc_fec.cpython-310.pyc | Bin 500 -> 500 bytes .../__pycache__/calc_fpll.cpython-310.pyc | Bin 504 -> 504 bytes .../__pycache__/calc_frame.cpython-310.pyc | Bin 508 -> 508 bytes .../calc_frame_coding.cpython-310.pyc | Bin 536 -> 536 bytes .../calc_frame_detect.cpython-310.pyc | Bin 536 -> 536 bytes .../calc_freq_offset_comp.cpython-310.pyc | Bin 552 -> 552 bytes .../__pycache__/calc_global.cpython-310.pyc | Bin 512 -> 512 bytes .../__pycache__/calc_ircal.cpython-310.pyc | Bin 508 -> 508 bytes .../calc_legacy_vars.cpython-310.pyc | Bin 532 -> 532 bytes .../calc_longrange.cpython-310.pyc | Bin 524 -> 524 bytes .../__pycache__/calc_mbus.cpython-310.pyc | Bin 504 -> 504 bytes .../__pycache__/calc_misc.cpython-310.pyc | Bin 504 -> 504 bytes .../calc_modulator.cpython-310.pyc | Bin 524 -> 524 bytes .../__pycache__/calc_radio.cpython-310.pyc | Bin 508 -> 508 bytes .../__pycache__/calc_rail.cpython-310.pyc | Bin 500 -> 500 bytes .../__pycache__/calc_shaping.cpython-310.pyc | Bin 516 -> 516 bytes .../__pycache__/calc_sq.cpython-310.pyc | Bin 496 -> 496 bytes .../__pycache__/calc_synth.cpython-310.pyc | Bin 3605 -> 3605 bytes .../calc_utilities.cpython-310.pyc | Bin 524 -> 524 bytes .../__pycache__/calc_viterbi.cpython-310.pyc | Bin 516 -> 516 bytes .../__pycache__/calc_white.cpython-310.pyc | Bin 516 -> 516 bytes .../__pycache__/calc_wisun.cpython-310.pyc | Bin 508 -> 508 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 393 -> 393 bytes .../__pycache__/phy_filters.cpython-310.pyc | Bin 976 -> 976 bytes .../Phys_Studio_Base.cpython-310.pyc | Bin 518 -> 518 bytes .../Phys_Studio_Connect.cpython-310.pyc | Bin 557 -> 557 bytes .../phys/__pycache__/__init__.cpython-310.pyc | Bin 390 -> 390 bytes .../__pycache__/Profile_Base.cpython-310.pyc | Bin 1205 -> 1205 bytes .../Profile_Connect.cpython-310.pyc | Bin 3005 -> 3005 bytes .../Profile_IEEE802154_OQPSK.cpython-310.pyc | Bin 1451 -> 1451 bytes .../__pycache__/Profile_Mbus.cpython-310.pyc | Bin 4179 -> 4179 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 394 -> 394 bytes .../sw_profile_outputs_common.cpython-310.pyc | Bin 562 -> 562 bytes .../__pycache__/Target_FPGA.cpython-310.pyc | Bin 703 -> 703 bytes .../__pycache__/Target_IC.cpython-310.pyc | Bin 716 -> 716 bytes .../__pycache__/Target_Sim.cpython-310.pyc | Bin 734 -> 734 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 393 -> 393 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 286 -> 286 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 396 -> 396 bytes .../__pycache__/calc_agc.cpython-310.pyc | Bin 15894 -> 15894 bytes .../__pycache__/calc_ber.cpython-310.pyc | Bin 2586 -> 2586 bytes .../__pycache__/calc_crc.cpython-310.pyc | Bin 6911 -> 6911 bytes .../calc_demodulator.cpython-310.pyc | Bin 34090 -> 34090 bytes .../calc_diversity.cpython-310.pyc | Bin 5053 -> 5053 bytes .../__pycache__/calc_errors.cpython-310.pyc | Bin 1964 -> 1964 bytes .../__pycache__/calc_fec.cpython-310.pyc | Bin 9443 -> 9443 bytes .../__pycache__/calc_firmware.cpython-310.pyc | Bin 2223 -> 2223 bytes .../calc_firmware_functions.cpython-310.pyc | Bin 2411 -> 2411 bytes .../__pycache__/calc_frame.cpython-310.pyc | Bin 19161 -> 19161 bytes .../calc_frame_detect.cpython-310.pyc | Bin 22402 -> 22402 bytes .../calc_freq_offset_comp.cpython-310.pyc | Bin 15857 -> 15857 bytes .../__pycache__/calc_global.cpython-310.pyc | Bin 15631 -> 15631 bytes .../__pycache__/calc_ircal.cpython-310.pyc | Bin 8082 -> 8082 bytes .../__pycache__/calc_mbus.cpython-310.pyc | Bin 3881 -> 3881 bytes .../__pycache__/calc_misc.cpython-310.pyc | Bin 5288 -> 5288 bytes .../calc_modulator.cpython-310.pyc | Bin 11442 -> 11442 bytes .../calc_profile_base_beta1.cpython-310.pyc | Bin 1921 -> 1921 bytes .../__pycache__/calc_radio.cpython-310.pyc | Bin 16044 -> 16044 bytes .../__pycache__/calc_rail.cpython-310.pyc | Bin 1882 -> 1882 bytes .../__pycache__/calc_shaping.cpython-310.pyc | Bin 9979 -> 9979 bytes .../__pycache__/calc_synth.cpython-310.pyc | Bin 10847 -> 10847 bytes .../calc_utilities.cpython-310.pyc | Bin 7567 -> 7567 bytes .../__pycache__/calc_white.cpython-310.pyc | Bin 4074 -> 4074 bytes .../__pycache__/frame_coding.cpython-310.pyc | Bin 8034 -> 8034 bytes .../phys/__pycache__/__init__.cpython-310.pyc | Bin 238 -> 238 bytes .../__pycache__/default_phys.cpython-310.pyc | Bin 1192 -> 1192 bytes .../__pycache__/phy_common.cpython-310.pyc | Bin 3593 -> 3593 bytes .../__pycache__/Profile_Base.cpython-310.pyc | Bin 5403 -> 5403 bytes .../Profile_Connect.cpython-310.pyc | Bin 2924 -> 2924 bytes .../Profile_Sigfox_TX.cpython-310.pyc | Bin 6875 -> 6875 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 242 -> 242 bytes .../__pycache__/bobcat_regs.cpython-310.pyc | Bin 12420 -> 12420 bytes .../__pycache__/caracal_regs.cpython-310.pyc | Bin 483 -> 483 bytes .../__pycache__/dumbo_regs.cpython-310.pyc | Bin 15321 -> 15321 bytes .../__pycache__/jumbo_regs.cpython-310.pyc | Bin 29693 -> 29693 bytes .../__pycache__/leopard_regs.cpython-310.pyc | Bin 725 -> 725 bytes .../__pycache__/lynx_regs.cpython-310.pyc | Bin 53083 -> 53083 bytes .../__pycache__/margay_regs.cpython-310.pyc | Bin 1001 -> 1001 bytes .../__pycache__/nixi_regs.cpython-310.pyc | Bin 30978 -> 30978 bytes .../__pycache__/ocelot_regs.cpython-310.pyc | Bin 37452 -> 37452 bytes .../__pycache__/panther_regs.cpython-310.pyc | Bin 49349 -> 49349 bytes .../profile_common.cpython-310.pyc | Bin 17951 -> 17951 bytes .../__pycache__/profile_modem.cpython-310.pyc | Bin 6838 -> 6838 bytes .../__pycache__/sol_regs.cpython-310.pyc | Bin 35324 -> 35324 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 268 -> 268 bytes .../units_multiplier.cpython-310.pyc | Bin 500 -> 500 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 298 -> 298 bytes .../__pycache__/tinynumpy.cpython-310.pyc | Bin 38917 -> 38917 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 276 -> 276 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 395 -> 395 bytes .../__pycache__/calc_rail.cpython-310.pyc | Bin 490 -> 490 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 276 -> 276 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 395 -> 395 bytes .../__pycache__/calc_agc.cpython-310.pyc | Bin 9970 -> 9970 bytes .../calc_demodulator.cpython-310.pyc | Bin 16811 -> 16811 bytes .../__pycache__/calc_dsa.cpython-310.pyc | Bin 2291 -> 2291 bytes .../calc_freq_offset_comp.cpython-310.pyc | Bin 5831 -> 5831 bytes .../__pycache__/calc_global.cpython-310.pyc | Bin 11555 -> 11555 bytes .../__pycache__/calc_misc.cpython-310.pyc | Bin 10944 -> 10944 bytes .../__pycache__/calc_rail.cpython-310.pyc | Bin 494 -> 494 bytes .../__pycache__/calc_shaping.cpython-310.pyc | Bin 11732 -> 11732 bytes .../__pycache__/calc_synth.cpython-310.pyc | Bin 2445 -> 2445 bytes .../__pycache__/calc_viterbi.cpython-310.pyc | Bin 1767 -> 1767 bytes .../__pycache__/calc_wisun.cpython-310.pyc | Bin 8420 -> 8420 bytes .../__pycache__/Phys_connect.cpython-310.pyc | Bin 11100 -> 11100 bytes .../phys/__pycache__/__init__.cpython-310.pyc | Bin 388 -> 388 bytes .../phys_studio_wisun_fan_1_0.cpython-310.pyc | Bin 22844 -> 22844 bytes .../phys_studio_wisun_fan_1_1.cpython-310.pyc | Bin 10070 -> 10070 bytes ...udio_wisun_fan_1_1_virtual.cpython-310.pyc | Bin 18212 -> 18212 bytes .../phys_studio_wisun_han.cpython-310.pyc | Bin 1540 -> 1540 bytes .../Profile_LongRange.cpython-310.pyc | Bin 9988 -> 9988 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 392 -> 392 bytes .../profile_wisun_fan_1_0.cpython-310.pyc | Bin 11173 -> 11173 bytes .../profile_wisun_fan_1_1.cpython-310.pyc | Bin 15039 -> 15039 bytes .../profile_wisun_han.cpython-310.pyc | Bin 11787 -> 11787 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 234 -> 234 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 397 -> 397 bytes .../__pycache__/calc_agc.cpython-310.pyc | Bin 496 -> 496 bytes .../__pycache__/calc_crc.cpython-310.pyc | Bin 491 -> 491 bytes .../calc_demodulator.cpython-310.pyc | Bin 3092 -> 3092 bytes .../__pycache__/calc_dsa.cpython-310.pyc | Bin 496 -> 496 bytes .../__pycache__/calc_fec.cpython-310.pyc | Bin 496 -> 496 bytes .../__pycache__/calc_frame.cpython-310.pyc | Bin 504 -> 504 bytes .../calc_freq_offset_comp.cpython-310.pyc | Bin 548 -> 548 bytes .../__pycache__/calc_global.cpython-310.pyc | Bin 505 -> 505 bytes .../__pycache__/calc_misc.cpython-310.pyc | Bin 1136 -> 1136 bytes .../calc_modulator.cpython-310.pyc | Bin 520 -> 520 bytes .../__pycache__/calc_radio.cpython-310.pyc | Bin 504 -> 504 bytes .../__pycache__/calc_rail.cpython-310.pyc | Bin 496 -> 496 bytes .../__pycache__/calc_shaping.cpython-310.pyc | Bin 512 -> 512 bytes .../__pycache__/calc_synth.cpython-310.pyc | Bin 2250 -> 2250 bytes .../__pycache__/calc_viterbi.cpython-310.pyc | Bin 512 -> 512 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 393 -> 393 bytes .../__pycache__/phy_filters.cpython-310.pyc | Bin 819 -> 819 bytes .../PHY_internal_base.cpython-310.pyc | Bin 518 -> 518 bytes .../__pycache__/Phys_Connect.cpython-310.pyc | Bin 498 -> 498 bytes .../Phys_Datasheet.cpython-310.pyc | Bin 505 -> 505 bytes .../phys/__pycache__/__init__.cpython-310.pyc | Bin 390 -> 390 bytes .../__pycache__/Profile_Base.cpython-310.pyc | Bin 6183 -> 6183 bytes .../Profile_Connect.cpython-310.pyc | Bin 2975 -> 2975 bytes .../Profile_IEEE802154_OQPSK.cpython-310.pyc | Bin 1555 -> 1555 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 394 -> 394 bytes .../__pycache__/Target_FPGA.cpython-310.pyc | Bin 1095 -> 1095 bytes .../__pycache__/Target_IC.cpython-310.pyc | Bin 781 -> 781 bytes .../__pycache__/Target_Sim.cpython-310.pyc | Bin 1586 -> 1586 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 393 -> 393 bytes .../lynx/__pycache__/__init__.cpython-310.pyc | Bin 274 -> 274 bytes .../__pycache__/.nfs000000002ed7ef470002bff5 | Bin 496 -> 0 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 394 -> 394 bytes .../__pycache__/calc_agc.cpython-310.pyc | Bin 6806 -> 6806 bytes .../__pycache__/calc_crc.cpython-310.pyc | Bin 802 -> 802 bytes .../calc_demodulator.cpython-310.pyc | Bin 18689 -> 18680 bytes .../__pycache__/calc_dsa.cpython-310.pyc | Bin 1035 -> 1035 bytes .../__pycache__/calc_fec.cpython-310.pyc | Bin 863 -> 863 bytes .../__pycache__/calc_frame.cpython-310.pyc | Bin 3247 -> 3247 bytes .../calc_freq_offset_comp.cpython-310.pyc | Bin 1936 -> 1936 bytes .../__pycache__/calc_global.cpython-310.pyc | Bin 9421 -> 9421 bytes .../__pycache__/calc_misc.cpython-310.pyc | Bin 4926 -> 4926 bytes .../calc_modulator.cpython-310.pyc | Bin 561 -> 561 bytes .../__pycache__/calc_radio.cpython-310.pyc | Bin 802 -> 802 bytes .../__pycache__/calc_rail.cpython-310.pyc | Bin 496 -> 496 bytes .../__pycache__/calc_shaping.cpython-310.pyc | Bin 7341 -> 7341 bytes .../__pycache__/calc_synth.cpython-310.pyc | Bin 8373 -> 8373 bytes .../__pycache__/calc_viterbi.cpython-310.pyc | Bin 12408 -> 12408 bytes .../lynx/calculators/calc_demodulator.py | 4 +- .../__pycache__/__init__.cpython-310.pyc | Bin 390 -> 390 bytes .../__pycache__/phy_filters.cpython-310.pyc | Bin 856 -> 856 bytes .../PHY_internal_base.cpython-310.pyc | Bin 8105 -> 8105 bytes .../__pycache__/Phys_Connect.cpython-310.pyc | Bin 797 -> 797 bytes .../Phys_Datasheet.cpython-310.pyc | Bin 2236 -> 2236 bytes .../phys/__pycache__/__init__.cpython-310.pyc | Bin 387 -> 387 bytes .../__pycache__/Profile_Base.cpython-310.pyc | Bin 1253 -> 1253 bytes .../Profile_Connect.cpython-310.pyc | Bin 1096 -> 1096 bytes .../Profile_IEEE802154_OQPSK.cpython-310.pyc | Bin 2891 -> 2891 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 391 -> 391 bytes .../__pycache__/Target_IC.cpython-310.pyc | Bin 769 -> 769 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 390 -> 390 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 278 -> 278 bytes .../__pycache__/.nfs000000002ed7e9cb00058dc8 | Bin 502 -> 0 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 396 -> 396 bytes .../__pycache__/calc_agc.cpython-310.pyc | Bin 674 -> 674 bytes .../__pycache__/calc_ber.cpython-310.pyc | Bin 498 -> 498 bytes .../__pycache__/calc_crc.cpython-310.pyc | Bin 498 -> 498 bytes .../calc_demodulator.cpython-310.pyc | Bin 2633 -> 2633 bytes .../calc_diversity.cpython-310.pyc | Bin 522 -> 522 bytes .../__pycache__/calc_dsa.cpython-310.pyc | Bin 498 -> 498 bytes .../__pycache__/calc_fec.cpython-310.pyc | Bin 740 -> 740 bytes .../__pycache__/calc_fpll.cpython-310.pyc | Bin 502 -> 502 bytes .../__pycache__/calc_frame.cpython-310.pyc | Bin 506 -> 506 bytes .../calc_frame_coding.cpython-310.pyc | Bin 534 -> 534 bytes .../calc_frame_detect.cpython-310.pyc | Bin 534 -> 534 bytes .../calc_freq_offset_comp.cpython-310.pyc | Bin 2269 -> 2269 bytes .../__pycache__/calc_global.cpython-310.pyc | Bin 898 -> 898 bytes .../__pycache__/calc_ircal.cpython-310.pyc | Bin 843 -> 843 bytes .../calc_legacy_vars.cpython-310.pyc | Bin 530 -> 530 bytes .../calc_longrange.cpython-310.pyc | Bin 522 -> 522 bytes .../__pycache__/calc_mbus.cpython-310.pyc | Bin 502 -> 502 bytes .../__pycache__/calc_misc.cpython-310.pyc | Bin 502 -> 502 bytes .../calc_modulator.cpython-310.pyc | Bin 522 -> 522 bytes .../calc_pro2_demod.cpython-310.pyc | Bin 526 -> 526 bytes .../__pycache__/calc_radio.cpython-310.pyc | Bin 934 -> 934 bytes .../__pycache__/calc_rail.cpython-310.pyc | Bin 498 -> 498 bytes .../__pycache__/calc_shaping.cpython-310.pyc | Bin 514 -> 514 bytes .../__pycache__/calc_sidewalk.cpython-310.pyc | Bin 514 -> 514 bytes .../__pycache__/calc_sq.cpython-310.pyc | Bin 494 -> 494 bytes .../__pycache__/calc_synth.cpython-310.pyc | Bin 506 -> 506 bytes .../calc_utilities.cpython-310.pyc | Bin 522 -> 522 bytes .../__pycache__/calc_viterbi.cpython-310.pyc | Bin 2015 -> 2015 bytes .../__pycache__/calc_white.cpython-310.pyc | Bin 514 -> 514 bytes .../__pycache__/calc_wisun.cpython-310.pyc | Bin 506 -> 506 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 392 -> 392 bytes .../__pycache__/phy_filters.cpython-310.pyc | Bin 1608 -> 1608 bytes .../__pycache__/.nfs000000002ed7fad60005a6dc | Bin 528 -> 0 bytes .../__pycache__/Phys_Default.cpython-310.pyc | Bin 1003 -> 1003 bytes .../Phys_Studio_Base.cpython-310.pyc | Bin 614 -> 614 bytes .../Phys_Studio_Base_Sigfox.cpython-310.pyc | Bin 544 -> 544 bytes ...tudio_Base_Standard_SUNFSK.cpython-310.pyc | Bin 580 -> 580 bytes .../Phys_Studio_Connect.cpython-310.pyc | Bin 514 -> 514 bytes .../Phys_Studio_LongRange.cpython-310.pyc | Bin 524 -> 524 bytes .../Phys_Studio_MBus.cpython-310.pyc | Bin 516 -> 516 bytes .../Phys_Studio_Sidewalk.cpython-310.pyc | Bin 526 -> 526 bytes .../phys/__pycache__/__init__.cpython-310.pyc | Bin 389 -> 389 bytes .../phys_studio_wisun_fan_1_0.cpython-310.pyc | Bin 536 -> 536 bytes .../phys_studio_wisun_fan_1_1.cpython-310.pyc | Bin 715 -> 715 bytes ...udio_wisun_fan_1_1_virtual.cpython-310.pyc | Bin 678 -> 678 bytes .../phys_studio_wisun_han.cpython-310.pyc | Bin 528 -> 528 bytes .../__pycache__/.nfs000000002ed7f4580005a6b4 | Bin 568 -> 0 bytes .../__pycache__/Profile_Base.cpython-310.pyc | Bin 2627 -> 2627 bytes .../Profile_Connect.cpython-310.pyc | Bin 3643 -> 3643 bytes .../Profile_IEEE802154_BPSK.cpython-310.pyc | Bin 1677 -> 1677 bytes .../Profile_IEEE802154_OQPSK.cpython-310.pyc | Bin 1751 -> 1751 bytes .../Profile_LongRange.cpython-310.pyc | Bin 1473 -> 1473 bytes .../__pycache__/Profile_Mbus.cpython-310.pyc | Bin 1334 -> 1334 bytes .../Profile_Sigfox_TX.cpython-310.pyc | Bin 1202 -> 1202 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 393 -> 393 bytes ...rame_profile_inputs_common.cpython-310.pyc | Bin 568 -> 568 bytes .../profile_mbus_modes.cpython-310.pyc | Bin 525 -> 525 bytes .../profile_sidewalk.cpython-310.pyc | Bin 1666 -> 1666 bytes .../profile_wisun_fan_1_0.cpython-310.pyc | Bin 1435 -> 1435 bytes .../profile_wisun_fan_1_1.cpython-310.pyc | Bin 1447 -> 1447 bytes .../profile_wisun_han.cpython-310.pyc | Bin 1427 -> 1427 bytes .../sw_profile_outputs_common.cpython-310.pyc | Bin 560 -> 560 bytes .../__pycache__/Target_FPGA.cpython-310.pyc | Bin 1046 -> 1046 bytes .../__pycache__/Target_IC.cpython-310.pyc | Bin 777 -> 777 bytes .../__pycache__/Target_Sim.cpython-310.pyc | Bin 7404 -> 7404 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 392 -> 392 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 276 -> 276 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 395 -> 395 bytes .../__pycache__/calc_global.cpython-310.pyc | Bin 3410 -> 3410 bytes .../__pycache__/calc_rail.cpython-310.pyc | Bin 494 -> 494 bytes .../__pycache__/calc_shaping.cpython-310.pyc | Bin 3396 -> 3396 bytes .../__pycache__/calc_sidewalk.cpython-310.pyc | Bin 1049 -> 1049 bytes .../Phys_Studio_Sidewalk.cpython-310.pyc | Bin 1101 -> 1101 bytes .../phys/__pycache__/__init__.cpython-310.pyc | Bin 388 -> 388 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 392 -> 392 bytes .../profile_sidewalk.cpython-310.pyc | Bin 9937 -> 9937 bytes .../nixi/__pycache__/__init__.cpython-310.pyc | Bin 274 -> 274 bytes .../__pycache__/.nfs000000002ed7f19000058df5 | Bin 502 -> 0 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 394 -> 394 bytes .../__pycache__/calc_agc.cpython-310.pyc | Bin 492 -> 492 bytes .../calc_demodulator.cpython-310.pyc | Bin 524 -> 524 bytes .../__pycache__/calc_dsa.cpython-310.pyc | Bin 486 -> 486 bytes .../calc_freq_offset_comp.cpython-310.pyc | Bin 544 -> 544 bytes .../__pycache__/calc_global.cpython-310.pyc | Bin 2665 -> 2665 bytes .../__pycache__/calc_misc.cpython-310.pyc | Bin 9211 -> 9211 bytes .../__pycache__/calc_rail.cpython-310.pyc | Bin 492 -> 492 bytes .../__pycache__/calc_shaping.cpython-310.pyc | Bin 508 -> 508 bytes .../__pycache__/calc_synth.cpython-310.pyc | Bin 500 -> 500 bytes .../__pycache__/calc_viterbi.cpython-310.pyc | Bin 502 -> 502 bytes .../__pycache__/Phys_connect.cpython-310.pyc | Bin 488 -> 488 bytes .../phys/__pycache__/__init__.cpython-310.pyc | Bin 387 -> 387 bytes .../Profile_LongRange.cpython-310.pyc | Bin 1501 -> 1501 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 391 -> 391 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 278 -> 278 bytes .../__pycache__/.nfs000000002ed7e7ae0005a673 | Bin 1695 -> 0 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 396 -> 396 bytes .../__pycache__/calc_agc.cpython-310.pyc | Bin 25170 -> 25170 bytes .../__pycache__/calc_ber.cpython-310.pyc | Bin 802 -> 802 bytes .../__pycache__/calc_crc.cpython-310.pyc | Bin 1172 -> 1172 bytes .../calc_demodulator.cpython-310.pyc | Bin 66305 -> 66296 bytes .../calc_diversity.cpython-310.pyc | Bin 7565 -> 7565 bytes .../__pycache__/calc_dsa.cpython-310.pyc | Bin 6747 -> 6747 bytes .../__pycache__/calc_fec.cpython-310.pyc | Bin 4252 -> 4252 bytes .../__pycache__/calc_fpll.cpython-310.pyc | Bin 1135 -> 1135 bytes .../__pycache__/calc_frame.cpython-310.pyc | Bin 1695 -> 1695 bytes .../calc_frame_coding.cpython-310.pyc | Bin 2420 -> 2420 bytes .../calc_frame_detect.cpython-310.pyc | Bin 13649 -> 13649 bytes .../calc_freq_offset_comp.cpython-310.pyc | Bin 12840 -> 12840 bytes .../__pycache__/calc_global.cpython-310.pyc | Bin 29779 -> 29779 bytes .../__pycache__/calc_ircal.cpython-310.pyc | Bin 2509 -> 2509 bytes .../calc_legacy_vars.cpython-310.pyc | Bin 531 -> 531 bytes .../calc_longrange.cpython-310.pyc | Bin 1480 -> 1480 bytes .../__pycache__/calc_mbus.cpython-310.pyc | Bin 2440 -> 2440 bytes .../__pycache__/calc_misc.cpython-310.pyc | Bin 9759 -> 9759 bytes .../calc_modulator.cpython-310.pyc | Bin 9055 -> 9055 bytes .../calc_pro2_demod.cpython-310.pyc | Bin 26079 -> 26079 bytes .../__pycache__/calc_radio.cpython-310.pyc | Bin 2500 -> 2500 bytes .../__pycache__/calc_rail.cpython-310.pyc | Bin 1148 -> 1148 bytes .../__pycache__/calc_shaping.cpython-310.pyc | Bin 10211 -> 10211 bytes .../__pycache__/calc_sidewalk.cpython-310.pyc | Bin 512 -> 512 bytes .../__pycache__/calc_sq.cpython-310.pyc | Bin 5048 -> 5048 bytes .../__pycache__/calc_synth.cpython-310.pyc | Bin 27055 -> 27055 bytes .../calc_utilities.cpython-310.pyc | Bin 3602 -> 3602 bytes .../__pycache__/calc_viterbi.cpython-310.pyc | Bin 20762 -> 20762 bytes .../__pycache__/calc_white.cpython-310.pyc | Bin 1526 -> 1526 bytes .../__pycache__/calc_wisun.cpython-310.pyc | Bin 1385 -> 1385 bytes .../ocelot/calculators/calc_demodulator.py | 6 +- .../__pycache__/__init__.cpython-310.pyc | Bin 392 -> 392 bytes .../__pycache__/phy_filters.cpython-310.pyc | Bin 1701 -> 1701 bytes .../__pycache__/Phys_Default.cpython-310.pyc | Bin 1003 -> 1003 bytes .../Phys_Internal_WiSUN.cpython-310.pyc | Bin 5221 -> 5221 bytes .../Phys_Studio_Base.cpython-310.pyc | Bin 10668 -> 10668 bytes .../Phys_Studio_Base_Sigfox.cpython-310.pyc | Bin 2899 -> 2899 bytes ...tudio_Base_Standard_SUNFSK.cpython-310.pyc | Bin 5109 -> 5109 bytes .../Phys_Studio_Connect.cpython-310.pyc | Bin 5644 -> 5644 bytes .../Phys_Studio_LongRange.cpython-310.pyc | Bin 4034 -> 4034 bytes .../Phys_Studio_MBus.cpython-310.pyc | Bin 6927 -> 6927 bytes .../Phys_Studio_Sidewalk.cpython-310.pyc | Bin 524 -> 524 bytes .../phys/__pycache__/__init__.cpython-310.pyc | Bin 389 -> 389 bytes .../phys_studio_wisun_fan_1_0.cpython-310.pyc | Bin 866 -> 866 bytes .../phys_studio_wisun_fan_1_1.cpython-310.pyc | Bin 9883 -> 9883 bytes ...udio_wisun_fan_1_1_virtual.cpython-310.pyc | Bin 19010 -> 19010 bytes .../phys_studio_wisun_han.cpython-310.pyc | Bin 1259 -> 1259 bytes .../__pycache__/.nfs000000002ed7f6bd0002bffd | Bin 7035 -> 0 bytes .../__pycache__/Profile_Base.cpython-310.pyc | Bin 11740 -> 11740 bytes .../Profile_Connect.cpython-310.pyc | Bin 3695 -> 3695 bytes .../Profile_IEEE802154_BPSK.cpython-310.pyc | Bin 7896 -> 7896 bytes .../Profile_IEEE802154_OQPSK.cpython-310.pyc | Bin 13366 -> 13366 bytes .../Profile_LongRange.cpython-310.pyc | Bin 8224 -> 8224 bytes .../__pycache__/Profile_Mbus.cpython-310.pyc | Bin 10309 -> 10309 bytes .../Profile_Sigfox_TX.cpython-310.pyc | Bin 3190 -> 3190 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 393 -> 393 bytes ...rame_profile_inputs_common.cpython-310.pyc | Bin 4844 -> 4844 bytes .../profile_mbus_modes.cpython-310.pyc | Bin 6277 -> 6277 bytes .../profile_sidewalk.cpython-310.pyc | Bin 5411 -> 5411 bytes .../profile_wisun_fan_1_0.cpython-310.pyc | Bin 7035 -> 7035 bytes .../profile_wisun_fan_1_1.cpython-310.pyc | Bin 7595 -> 7595 bytes .../profile_wisun_han.cpython-310.pyc | Bin 7037 -> 7037 bytes .../sw_profile_outputs_common.cpython-310.pyc | Bin 8741 -> 8741 bytes .../__pycache__/Target_FPGA.cpython-310.pyc | Bin 1042 -> 1042 bytes .../__pycache__/Target_IC.cpython-310.pyc | Bin 777 -> 777 bytes .../__pycache__/Target_Sim.cpython-310.pyc | Bin 963 -> 963 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 392 -> 392 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 280 -> 280 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 397 -> 397 bytes .../__pycache__/calc_agc.cpython-310.pyc | Bin 14564 -> 14564 bytes .../__pycache__/calc_crc.cpython-310.pyc | Bin 5946 -> 5946 bytes .../calc_demodulator.cpython-310.pyc | Bin 9486 -> 9486 bytes .../__pycache__/calc_dsa.cpython-310.pyc | Bin 496 -> 496 bytes .../__pycache__/calc_frame.cpython-310.pyc | Bin 12378 -> 12378 bytes .../calc_freq_offset_comp.cpython-310.pyc | Bin 548 -> 548 bytes .../__pycache__/calc_global.cpython-310.pyc | Bin 35955 -> 35955 bytes .../__pycache__/calc_misc.cpython-310.pyc | Bin 6379 -> 6379 bytes .../calc_modulator.cpython-310.pyc | Bin 2582 -> 2582 bytes .../__pycache__/calc_radio.cpython-310.pyc | Bin 13984 -> 13984 bytes .../__pycache__/calc_rail.cpython-310.pyc | Bin 496 -> 496 bytes .../__pycache__/calc_shaping.cpython-310.pyc | Bin 2940 -> 2940 bytes .../__pycache__/calc_synth.cpython-310.pyc | Bin 3085 -> 3085 bytes .../__pycache__/calc_viterbi.cpython-310.pyc | Bin 512 -> 512 bytes .../PHY_internal_base.cpython-310.pyc | Bin 7744 -> 7744 bytes .../phys/__pycache__/__init__.cpython-310.pyc | Bin 390 -> 390 bytes .../Profile_IEEE802154_OQPSK.cpython-310.pyc | Bin 22567 -> 22567 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 394 -> 394 bytes .../sol/__pycache__/__init__.cpython-310.pyc | Bin 230 -> 230 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 393 -> 393 bytes .../__pycache__/calc_agc.cpython-310.pyc | Bin 6872 -> 6872 bytes .../__pycache__/calc_ber.cpython-310.pyc | Bin 492 -> 492 bytes .../__pycache__/calc_crc.cpython-310.pyc | Bin 492 -> 492 bytes .../calc_demodulator.cpython-310.pyc | Bin 32739 -> 32739 bytes .../calc_diversity.cpython-310.pyc | Bin 1600 -> 1600 bytes .../__pycache__/calc_dsa.cpython-310.pyc | Bin 492 -> 492 bytes .../__pycache__/calc_fec.cpython-310.pyc | Bin 2358 -> 2358 bytes .../__pycache__/calc_fpll.cpython-310.pyc | Bin 6439 -> 6439 bytes .../__pycache__/calc_frame.cpython-310.pyc | Bin 2712 -> 2712 bytes .../calc_frame_coding.cpython-310.pyc | Bin 930 -> 930 bytes .../calc_frame_detect.cpython-310.pyc | Bin 1431 -> 1431 bytes .../calc_freq_offset_comp.cpython-310.pyc | Bin 4623 -> 4623 bytes .../__pycache__/calc_global.cpython-310.pyc | Bin 22083 -> 22083 bytes .../__pycache__/calc_ircal.cpython-310.pyc | Bin 733 -> 733 bytes .../calc_legacy_vars.cpython-310.pyc | Bin 524 -> 524 bytes .../calc_longrange.cpython-310.pyc | Bin 516 -> 516 bytes .../__pycache__/calc_mbus.cpython-310.pyc | Bin 496 -> 496 bytes .../__pycache__/calc_misc.cpython-310.pyc | Bin 3465 -> 3465 bytes .../calc_modulator.cpython-310.pyc | Bin 11529 -> 11529 bytes .../calc_pro2_demod.cpython-310.pyc | Bin 12373 -> 12373 bytes .../__pycache__/calc_radio.cpython-310.pyc | Bin 1252 -> 1252 bytes .../__pycache__/calc_rail.cpython-310.pyc | Bin 1654 -> 1654 bytes .../__pycache__/calc_shaping.cpython-310.pyc | Bin 2361 -> 2361 bytes .../__pycache__/calc_sidewalk.cpython-310.pyc | Bin 508 -> 508 bytes .../calc_softmodem.cpython-310.pyc | Bin 35779 -> 35779 bytes .../__pycache__/calc_sq.cpython-310.pyc | Bin 3458 -> 3458 bytes .../__pycache__/calc_synth.cpython-310.pyc | Bin 5353 -> 5353 bytes .../calc_utilities.cpython-310.pyc | Bin 2255 -> 2255 bytes .../__pycache__/calc_viterbi.cpython-310.pyc | Bin 4533 -> 4533 bytes .../__pycache__/calc_white.cpython-310.pyc | Bin 705 -> 705 bytes .../__pycache__/calc_wisun.cpython-310.pyc | Bin 6897 -> 6897 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 389 -> 389 bytes .../__pycache__/phy_filters.cpython-310.pyc | Bin 1598 -> 1598 bytes .../Phys_Studio_Base.cpython-310.pyc | Bin 3715 -> 3715 bytes ...tudio_Base_Standard_SUNFSK.cpython-310.pyc | Bin 2335 -> 2335 bytes .../Phys_Studio_Connect.cpython-310.pyc | Bin 4293 -> 4293 bytes .../Phys_Studio_Connect_OFDM.cpython-310.pyc | Bin 2059 -> 2059 bytes .../Phys_Studio_LongRange.cpython-310.pyc | Bin 2764 -> 2764 bytes .../Phys_Studio_MBus.cpython-310.pyc | Bin 2603 -> 2603 bytes .../Phys_Studio_SUN_OQPSK.cpython-310.pyc | Bin 2161 -> 2161 bytes .../Phys_Studio_Sidewalk.cpython-310.pyc | Bin 520 -> 520 bytes .../phys/__pycache__/__init__.cpython-310.pyc | Bin 386 -> 386 bytes .../phys_studio_wisun_fan_1_0.cpython-310.pyc | Bin 530 -> 530 bytes .../phys_studio_wisun_fan_1_1.cpython-310.pyc | Bin 5203 -> 5203 bytes ...udio_wisun_fan_1_1_virtual.cpython-310.pyc | Bin 755 -> 755 bytes .../phys_studio_wisun_han.cpython-310.pyc | Bin 1177 -> 1177 bytes .../__pycache__/Profile_Base.cpython-310.pyc | Bin 2890 -> 2890 bytes .../Profile_Connect.cpython-310.pyc | Bin 4509 -> 4509 bytes .../Profile_IEEE802154_OQPSK.cpython-310.pyc | Bin 2246 -> 2246 bytes .../Profile_LongRange.cpython-310.pyc | Bin 2669 -> 2669 bytes .../__pycache__/Profile_Mbus.cpython-310.pyc | Bin 1423 -> 1423 bytes .../Profile_SUN_OQPSK.cpython-310.pyc | Bin 8280 -> 8280 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 390 -> 390 bytes ...rame_profile_inputs_common.cpython-310.pyc | Bin 562 -> 562 bytes .../__pycache__/profile_OFDM.cpython-310.pyc | Bin 9497 -> 9497 bytes .../profile_sidewalk.cpython-310.pyc | Bin 1250 -> 1250 bytes .../profile_wisun_fan_1_0.cpython-310.pyc | Bin 2144 -> 2144 bytes .../profile_wisun_fan_1_1.cpython-310.pyc | Bin 12459 -> 12459 bytes .../profile_wisun_han.cpython-310.pyc | Bin 2129 -> 2129 bytes .../sw_profile_outputs_common.cpython-310.pyc | Bin 7006 -> 7006 bytes ...sun_profile_outputs_common.cpython-310.pyc | Bin 1367 -> 1367 bytes .../__pycache__/Target_FPGA.cpython-310.pyc | Bin 1274 -> 1274 bytes .../__pycache__/Target_IC.cpython-310.pyc | Bin 765 -> 765 bytes .../__pycache__/Target_Sim.cpython-310.pyc | Bin 11006 -> 11006 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 389 -> 389 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 276 -> 276 bytes .../__pycache__/_version.cpython-310.pyc | Bin 409 -> 409 bytes .../__pycache__/config.cpython-310.pyc | Bin 4200 -> 4200 bytes .../__pycache__/rail_adapter.cpython-310.pyc | Bin 5083 -> 5083 bytes .../rail_adapter_multi_phy.cpython-310.pyc | Bin 38095 -> 38095 bytes .../__pycache__/rail_model.cpython-310.pyc | Bin 1371 -> 1371 bytes .../rail_model_types.cpython-310.pyc | Bin 12084 -> 12084 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 230 -> 230 bytes ...Config_sourceCodeGenerator.cpython-310.pyc | Bin 5037 -> 5037 bytes ...ilTest_rmrCommandGenerator.cpython-310.pyc | Bin 7706 -> 7706 bytes platform/radio/mac/lower-mac.h | 62 +- platform/radio/mac/mac-header.h | 23 +- platform/radio/mac/mac-packet-header.h | 13 +- platform/radio/mac/rail_mux/sl_rail_mux.c | 60 +- platform/radio/mac/rail_mux/sl_rail_mux.h | 3 + .../radio/mac/rail_mux/sl_rail_mux_rename.h | 1 + platform/radio/mac/upper-mac.h | 3 +- .../radio_config_brd_wisun_singlephy.slcc | 4 + .../rail_lib/apps/railtest/app_ci/debug_ci.c | 17 +- .../config/efr32xg28/sl_rail_test_config.h | 12 +- .../librail_config_bgm210l022jif_iar.a | 2 +- .../librail_config_bgm210l022jnf_iar.a | 2 +- .../librail_config_bgm210la22jif_iar.a | 2 +- .../librail_config_bgm210la22jnf_iar.a | 2 +- .../librail_config_bgm210p022jia_iar.a | 2 +- .../librail_config_bgm210p022jna_iar.a | 2 +- .../librail_config_bgm210p032jia_iar.a | 2 +- .../librail_config_bgm210p032jna_iar.a | 2 +- .../librail_config_bgm210pa22jia_iar.a | 2 +- .../librail_config_bgm210pa22jna_iar.a | 2 +- .../librail_config_bgm210pa32jia_iar.a | 2 +- .../librail_config_bgm210pa32jna_iar.a | 2 +- .../librail_config_bgm210pb22jia_iar.a | 2 +- .../librail_config_bgm210pb32jia_iar.a | 2 +- .../librail_config_bgm220pc22hna_iar.a | 2 +- .../librail_config_bgm220pc22wga_iar.a | 2 +- .../librail_config_bgm220sc12wga_iar.a | 2 +- .../librail_config_bgm220sc22hna_iar.a | 2 +- .../librail_config_bgm220sc22wga_iar.a | 2 +- .../librail_config_bgm220sc23hna_iar.a | 2 +- .../librail_config_bgm240pa22vna_iar.a | 2 +- .../librail_config_bgm240pa32vna_iar.a | 2 +- .../librail_config_bgm240pa32vnn_iar.a | 2 +- .../librail_config_bgm240pb22vna_iar.a | 2 +- .../librail_config_bgm240pb32vna_iar.a | 2 +- .../librail_config_bgm240pb32vnn_iar.a | 2 +- .../librail_config_bgm240sa22vna_iar.a | 2 +- .../librail_config_bgm240sb22vna_iar.a | 2 +- .../librail_config_bgm241sd22vna_iar.a | 2 +- .../librail_config_fgm230sa27hgn_iar.a | 2 +- .../librail_config_fgm230sb27hgn_iar.a | 2 +- .../librail_config_mgm210l022jif_iar.a | 2 +- .../librail_config_mgm210l022jnf_iar.a | 2 +- .../librail_config_mgm210la22jif_iar.a | 2 +- .../librail_config_mgm210la22jnf_iar.a | 2 +- .../librail_config_mgm210p022jia_iar.a | 2 +- .../librail_config_mgm210p022jna_iar.a | 2 +- .../librail_config_mgm210p032jia_iar.a | 2 +- .../librail_config_mgm210p032jna_iar.a | 2 +- .../librail_config_mgm210pa22jia_iar.a | 2 +- .../librail_config_mgm210pa22jna_iar.a | 2 +- .../librail_config_mgm210pa32jia_iar.a | 2 +- .../librail_config_mgm210pa32jna_iar.a | 2 +- .../librail_config_mgm210pb22jia_iar.a | 2 +- .../librail_config_mgm210pb32jia_iar.a | 2 +- .../librail_config_mgm220pc22hna_iar.a | 2 +- .../librail_config_mgm220sc22hna_iar.a | 2 +- .../librail_config_mgm240l022rnf_iar.a | 2 +- .../librail_config_mgm240l022vif_iar.a | 2 +- .../librail_config_mgm240l022vnf_iar.a | 2 +- .../librail_config_mgm240la22uif_iar.a | 2 +- .../librail_config_mgm240la22vif_iar.a | 2 +- .../librail_config_mgm240ld22vif_iar.a | 2 +- .../librail_config_mgm240pa22vna_iar.a | 2 +- .../librail_config_mgm240pa32vna_iar.a | 2 +- .../librail_config_mgm240pa32vnn_iar.a | 2 +- .../librail_config_mgm240pb22vna_iar.a | 2 +- .../librail_config_mgm240pb32vna_iar.a | 2 +- .../librail_config_mgm240pb32vnn_iar.a | 2 +- .../librail_config_mgm240sa22vna_iar.a | 2 +- .../librail_config_mgm240sb22vna_iar.a | 2 +- .../librail_config_mgm240sd22vna_iar.a | 2 +- .../librail_config_zgm230sa27hgn_iar.a | 2 +- .../librail_config_zgm230sa27hnn_iar.a | 2 +- .../librail_config_zgm230sb27hgn_iar.a | 2 +- .../librail_efr32xg21_gcc_release.a | 2 +- .../librail_efr32xg21_iar_release.a | 2 +- .../librail_efr32xg22_gcc_release.a | 2 +- .../librail_efr32xg22_iar_release.a | 2 +- .../librail_efr32xg23_gcc_release.a | 4 +- .../librail_efr32xg23_iar_release.a | 4 +- .../librail_efr32xg24_gcc_release.a | 4 +- .../librail_efr32xg24_iar_release.a | 4 +- .../librail_efr32xg25_gcc_release.a | 4 +- .../librail_efr32xg25_iar_release.a | 4 +- .../librail_efr32xg26_gcc_release.a | 4 +- .../librail_efr32xg26_iar_release.a | 4 +- .../librail_efr32xg27_gcc_release.a | 2 +- .../librail_efr32xg27_iar_release.a | 2 +- .../librail_efr32xg28_gcc_release.a | 4 +- .../librail_efr32xg28_iar_release.a | 4 +- .../librail_module_efr32xg21_gcc_release.a | 2 +- .../librail_module_efr32xg21_iar_release.a | 2 +- .../librail_module_efr32xg22_gcc_release.a | 2 +- .../librail_module_efr32xg22_iar_release.a | 2 +- .../librail_module_efr32xg23_gcc_release.a | 4 +- .../librail_module_efr32xg23_iar_release.a | 4 +- .../librail_module_efr32xg24_gcc_release.a | 4 +- .../librail_module_efr32xg24_iar_release.a | 4 +- .../librail_module_efr32xg25_gcc_release.a | 4 +- .../librail_module_efr32xg25_iar_release.a | 4 +- .../librail_module_efr32xg26_gcc_release.a | 4 +- .../librail_module_efr32xg26_iar_release.a | 4 +- .../librail_module_efr32xg27_gcc_release.a | 2 +- .../librail_module_efr32xg27_iar_release.a | 2 +- .../librail_module_efr32xg28_gcc_release.a | 4 +- .../librail_module_efr32xg28_iar_release.a | 4 +- .../librail_module_sixg301_gcc_release.a | 2 +- .../librail_module_sixg301_iar_release.a | 2 +- ...rail_multiprotocol_efr32xg21_gcc_release.a | 4 +- ...rail_multiprotocol_efr32xg21_iar_release.a | 4 +- ...rail_multiprotocol_efr32xg22_gcc_release.a | 4 +- ...rail_multiprotocol_efr32xg22_iar_release.a | 4 +- ...rail_multiprotocol_efr32xg23_gcc_release.a | 4 +- ...rail_multiprotocol_efr32xg23_iar_release.a | 4 +- ...rail_multiprotocol_efr32xg24_gcc_release.a | 4 +- ...rail_multiprotocol_efr32xg24_iar_release.a | 4 +- ...rail_multiprotocol_efr32xg25_gcc_release.a | 4 +- ...rail_multiprotocol_efr32xg25_iar_release.a | 4 +- ...rail_multiprotocol_efr32xg26_gcc_release.a | 4 +- ...rail_multiprotocol_efr32xg26_iar_release.a | 4 +- ...rail_multiprotocol_efr32xg27_gcc_release.a | 4 +- ...rail_multiprotocol_efr32xg27_iar_release.a | 4 +- ...rail_multiprotocol_efr32xg28_gcc_release.a | 4 +- ...rail_multiprotocol_efr32xg28_iar_release.a | 4 +- ...ltiprotocol_module_efr32xg21_gcc_release.a | 4 +- ...ltiprotocol_module_efr32xg21_iar_release.a | 4 +- ...ltiprotocol_module_efr32xg22_gcc_release.a | 4 +- ...ltiprotocol_module_efr32xg22_iar_release.a | 4 +- ...ltiprotocol_module_efr32xg23_gcc_release.a | 4 +- ...ltiprotocol_module_efr32xg23_iar_release.a | 4 +- ...ltiprotocol_module_efr32xg24_gcc_release.a | 4 +- ...ltiprotocol_module_efr32xg24_iar_release.a | 4 +- ...ltiprotocol_module_efr32xg25_gcc_release.a | 4 +- ...ltiprotocol_module_efr32xg25_iar_release.a | 4 +- ...ltiprotocol_module_efr32xg26_gcc_release.a | 4 +- ...ltiprotocol_module_efr32xg26_iar_release.a | 4 +- ...ltiprotocol_module_efr32xg27_gcc_release.a | 4 +- ...ltiprotocol_module_efr32xg27_iar_release.a | 4 +- ...ltiprotocol_module_efr32xg28_gcc_release.a | 4 +- ...ltiprotocol_module_efr32xg28_iar_release.a | 4 +- .../librail_sixg301_gcc_release.a | 2 +- .../librail_sixg301_iar_release.a | 2 +- platform/radio/rail_lib/autogen/ver_def.h | 4 +- platform/radio/rail_lib/common/rail.h | 11 +- platform/radio/rail_lib/common/rail_types.h | 46 +- .../radio/rail_lib/component/rail_lib.slcc | 2 + .../plugin/component/rail_util_pa.slcc | 2 + .../plugin/component/zigbee_ant_div_cli.slcc | 3 + .../plugin/component/zigbee_coex_cli.slcc | 3 + .../component/zigbee_phy_select_cli.slcc | 3 + .../efr32xg25/pa_curves_brd4276a.h | 50 + ..._dbm_powersetting_mapping_table_brd4276a.h | 344 ++++ .../hfxo_manager/src/sl_hfxo_manager_hal_s2.c | 5 +- .../service/legacy_hal/src/system-timer.c | 17 +- platform/service/legacy_host/src/token.c | 109 +- .../memory_manager/src/sl_memory_manager.c | 95 +- .../sl_memory_manager_dynamic_reservation.c | 43 +- .../memory_manager/src/sli_memory_manager.h | 18 +- .../src/sli_memory_manager_common.c | 65 +- platform/service/mpu/src/sl_mpu.c | 18 +- protocol/bluetooth/api/sl_bt.xapi | 5 +- protocol/bluetooth/api/sl_btmesh.xapi | 2 +- protocol/bluetooth/api/sli_bgapi_debug.xapi | 2 +- .../gcc/cortex-m33/release/libapploader.a | 2 +- .../iar/cortex-m33/release/libapploader.a | 2 +- .../cortex-m33/bgcommon/release/libbgcommon.a | 2 +- .../cortex-m33/bgcommon/release/libbgcommon.a | 2 +- ...uetooth_controller_efr32xg21_gcc_release.a | 4 +- ...uetooth_controller_efr32xg21_iar_release.a | 4 +- ...uetooth_controller_efr32xg22_gcc_release.a | 4 +- ...uetooth_controller_efr32xg22_iar_release.a | 4 +- ...uetooth_controller_efr32xg24_gcc_release.a | 4 +- ...uetooth_controller_efr32xg24_iar_release.a | 4 +- ...uetooth_controller_efr32xg26_gcc_release.a | 4 +- ...uetooth_controller_efr32xg26_iar_release.a | 4 +- ...uetooth_controller_efr32xg27_gcc_release.a | 4 +- ...uetooth_controller_efr32xg27_iar_release.a | 4 +- ...uetooth_controller_efr32xg28_gcc_release.a | 4 +- ...uetooth_controller_efr32xg28_iar_release.a | 4 +- .../release/libbtmesh_dfu_ncp_fw_list.a | 2 +- .../model_dfu/release/libbtmesh_model_dfu.a | 2 +- .../model_mbt/release/libbtmesh_model_mbt.a | 2 +- .../ble_mesh/release/libbtmesh_core.a | 4 +- .../release/libbtmesh_crypto_common_cache.a | 2 +- .../release/libbtmesh_crypto_common_nocache.a | 2 +- .../release/libbtmesh_crypto_key_cache.a | 2 +- .../libbtmesh_crypto_key_cache_dummy.a | 2 +- .../ble_mesh/release/libbtmesh_crypto_psa.a | 2 +- .../release/libbtmesh_its_keystorage.a | 2 +- .../bt_host/hal/release/libbt_hal_series2.a | 2 +- .../bt_host/hal/release/libbt_hal_series3.a | 2 +- .../cortex-m33/bt_host/release/libbt_host.a | 4 +- .../mesh_app/release/libbtmesh_hal.a | 2 +- .../release/libbtmesh_hal_nonobfuscated_nvm.a | 2 +- .../release/libbtmesh_hal_obfuscated_nvm.a | 2 +- .../mesh_app/release/libbtmesh_hal_psa.a | 2 +- .../release/libbtmesh_dfu_ncp_fw_list.a | 2 +- .../model_dfu/release/libbtmesh_model_dfu.a | 2 +- .../model_mbt/release/libbtmesh_model_mbt.a | 2 +- .../ble_mesh/release/libbtmesh_core.a | 4 +- .../release/libbtmesh_crypto_common_cache.a | 2 +- .../release/libbtmesh_crypto_common_nocache.a | 2 +- .../release/libbtmesh_crypto_key_cache.a | 2 +- .../libbtmesh_crypto_key_cache_dummy.a | 2 +- .../ble_mesh/release/libbtmesh_crypto_psa.a | 2 +- .../release/libbtmesh_its_keystorage.a | 2 +- .../bt_host/hal/release/libbt_hal_series2.a | 2 +- .../bt_host/hal/release/libbt_hal_series3.a | 2 +- .../cortex-m33/bt_host/release/libbt_host.a | 4 +- .../mesh_app/release/libbtmesh_hal.a | 2 +- .../release/libbtmesh_hal_nonobfuscated_nvm.a | 2 +- .../release/libbtmesh_hal_obfuscated_nvm.a | 2 +- .../mesh_app/release/libbtmesh_hal_psa.a | 2 +- protocol/bluetooth/inc/sl_bt_api.h | 31 +- protocol/bluetooth/inc/sl_bt_version.h | 6 +- ...nnect-aes-security-library-efr32xg2x-gcc.a | 2 +- ...nnect-aes-security-library-efr32xg2x-iar.a | 2 +- ...-frequency-hopping-library-efr32xg2x-gcc.a | 2 +- ...-frequency-hopping-library-efr32xg2x-iar.a | 2 +- ...nnect-packet-queue-library-efr32xg2x-gcc.a | 2 +- ...nnect-packet-queue-library-efr32xg2x-iar.a | 2 +- ...ect-parent-support-library-efr32xg2x-gcc.a | 4 +- ...ect-parent-support-library-efr32xg2x-iar.a | 4 +- ...nnect-radio-stream-library-efr32xg2x-gcc.a | 2 +- ...nnect-radio-stream-library-efr32xg2x-iar.a | 2 +- ...nnect-stack-common-library-efr32xg2x-gcc.a | 4 +- ...nnect-stack-common-library-efr32xg2x-iar.a | 2 +- ...ect-stack-counters-library-efr32xg2x-gcc.a | 2 +- ...ect-stack-counters-library-efr32xg2x-iar.a | 2 +- protocol/flex/stack/config/config.h | 2 +- .../component/ot_platform_abstraction.slcc | 2 - .../ot_platform_abstraction_core.slcc | 1 - .../ot_platform_abstraction_source.slcc | 7 + .../component/ot_rtos_wrappers.slcc | 2 +- .../component/ot_rtos_wrappers_real.slcc | 12 + .../component/ot_wrappers_stub.slcc | 14 - .../s2/sl_ncp_spidrv_usart_config.h | 2 +- .../config/sl_gp_interface_config.h | 2 +- .../config/sl_openthread_ant_div_cli_config.h | 2 +- .../config/sl_openthread_ble_cli_config.h | 2 +- .../config/sl_openthread_coex_cli_config.h | 2 +- .../config/sl_openthread_coex_config.h | 2 +- .../config/sl_openthread_features_config.h | 2 +- .../sl_openthread_features_ftd_cert_config.h | 2 +- .../sl_openthread_features_mtd_cert_config.h | 2 +- .../config/sl_openthread_generic_config.h | 8 +- .../sl_openthread_reference_device_config.h | 2 +- .../config/sl_openthread_rtos_config.h | 2 +- .../config/sl_openthread_subghz_config.h | 2 +- .../documentation/release-highlights.txt | 2 +- protocol/openthread/esf.properties | 4 +- .../openthread/include/sl_ot_custom_cli.h | 2 +- .../openthread/include/sl_ot_phy_select.h | 4 +- .../include/template/sl_ot_init.h.jinja | 2 +- protocol/openthread/include/util/byte_util.h | 2 +- .../openthread/include/util/debug_channel.h | 2 +- .../libs/libsl_openthread_efr32mg2x_gcc.a | 2 +- .../libsl_ot_stack_ftd_coap_efr32mg21_gcc.a | 4 +- .../libsl_ot_stack_ftd_coap_efr32mg24_gcc.a | 4 +- .../libsl_ot_stack_ftd_coap_efr32mg26_gcc.a | 4 +- .../libs/libsl_ot_stack_ftd_efr32mg21_gcc.a | 4 +- .../libs/libsl_ot_stack_ftd_efr32mg24_gcc.a | 4 +- .../libs/libsl_ot_stack_ftd_efr32mg26_gcc.a | 4 +- .../libsl_ot_stack_mtd_coap_efr32mg21_gcc.a | 4 +- .../libsl_ot_stack_mtd_coap_efr32mg24_gcc.a | 4 +- .../libsl_ot_stack_mtd_coap_efr32mg26_gcc.a | 4 +- .../libs/libsl_ot_stack_mtd_efr32mg21_gcc.a | 4 +- .../libs/libsl_ot_stack_mtd_efr32mg24_gcc.a | 4 +- .../libs/libsl_ot_stack_mtd_efr32mg26_gcc.a | 4 +- .../libsl_platform_ftd_dmp_efr32mg21_gcc.a | 4 +- .../libsl_platform_ftd_dmp_efr32mg24_gcc.a | 4 +- .../libsl_platform_ftd_dmp_efr32mg26_gcc.a | 4 +- .../libs/libsl_platform_ftd_efr32mg21_gcc.a | 4 +- .../libs/libsl_platform_ftd_efr32mg24_gcc.a | 4 +- .../libs/libsl_platform_ftd_efr32mg26_gcc.a | 4 +- .../libsl_platform_mtd_dmp_efr32mg21_gcc.a | 4 +- .../libsl_platform_mtd_dmp_efr32mg24_gcc.a | 4 +- .../libsl_platform_mtd_dmp_efr32mg26_gcc.a | 4 +- .../libs/libsl_platform_mtd_efr32mg21_gcc.a | 4 +- .../libs/libsl_platform_mtd_efr32mg24_gcc.a | 4 +- .../libs/libsl_platform_mtd_efr32mg26_gcc.a | 4 +- .../openthread/linker/ot-rtos-wrapper-options | 160 +- .../openthread_production_demos.xml | 102 +- .../platform-abstraction/efr32/alarm.c | 615 ++++--- .../platform-abstraction/efr32/alarm.h | 21 +- .../platform-abstraction/efr32/crypto.c | 109 +- .../platform-abstraction/efr32/diag.c | 40 +- .../platform-abstraction/efr32/flash.c | 8 +- .../efr32/ieee802154-packet-utils.cpp | 2 +- .../platform-abstraction/efr32/misc.c | 5 +- .../efr32/openthread-core-efr32-config.h | 68 +- .../efr32/platform-efr32.h | 5 +- .../platform-abstraction/efr32/radio.c | 468 ++--- .../platform-abstraction/efr32/radio_coex.c | 123 +- .../efr32/radio_extension.c | 2 +- .../efr32/radio_power_manager.c | 85 +- .../efr32/sl_gp_interface.c | 41 +- .../platform-abstraction/efr32/sl_multipan.h | 23 +- .../platform-abstraction/efr32/sleep.c | 40 +- .../efr32/soft_source_match_table.c | 4 +- .../platform-abstraction/efr32/spidrv_usart.c | 31 +- .../platform-abstraction/efr32/system.c | 7 +- .../platform-abstraction/efr32/uartdrv_uart.c | 108 +- .../platform-abstraction/include/radio_coex.h | 30 +- .../include/radio_counters.h | 5 +- .../include/radio_extension.h | 67 +- .../include/radio_multi_channel.h | 4 +- .../include/radio_power_manager.h | 34 +- .../include/vendor_spinel.hpp | 2 +- .../platform-abstraction/ncp/ncp_ant_div.cpp | 42 +- .../platform-abstraction/ncp/ncp_ant_div.hpp | 2 +- .../platform-abstraction/ncp/ncp_coex.cpp | 134 +- .../platform-abstraction/ncp/ncp_coex.hpp | 2 +- .../platform-abstraction/ncp/ncp_cpc.cpp | 34 +- .../platform-abstraction/ncp/ncp_cpc.hpp | 9 +- .../ncp/ncp_dispatcher.cpp | 38 +- .../platform-abstraction/ncp/ncp_efr32.cpp | 25 +- .../platform-abstraction/ncp/ncp_efr32.hpp | 2 +- .../platform-abstraction/ncp/ncp_init.cpp | 13 +- .../posix/cpc_interface.cpp | 54 +- .../posix/cpc_interface.hpp | 14 +- .../openthread-core-silabs-posix-config.h | 8 +- .../posix/posix_cli_user_commands.cpp | 2 +- .../posix/posix_vendor_spinel_interface.cpp | 201 ++- .../posix/posix_vendor_spinel_interface.hpp | 12 +- .../posix/radio_extension.cpp | 6 +- .../backbone_router_ftd_wrapper.c | 120 +- .../rtos-wrappers/backbone_router_wrapper.c | 19 +- .../rtos/rtos-wrappers/ble_secure_wrapper.c | 177 +- .../rtos/rtos-wrappers/border_agent_wrapper.c | 57 +- .../rtos-wrappers/border_router_wrapper.c | 70 +- .../rtos-wrappers/border_routing_wrapper.c | 145 +- .../rtos-wrappers/channel_manager_wrapper.c | 90 +- .../rtos-wrappers/channel_monitor_wrapper.c | 43 +- .../rtos-wrappers/child_supervision_wrapper.c | 39 +- .../rtos/rtos-wrappers/cli_wrapper.c | 33 +- .../rtos/rtos-wrappers/coap_secure_wrapper.c | 199 ++- .../rtos/rtos-wrappers/coap_wrapper.c | 277 +-- .../rtos/rtos-wrappers/commissioner_wrapper.c | 165 +- .../rtos/rtos-wrappers/config_wrapper.c | 16 +- .../rtos/rtos-wrappers/crypto_wrapper.c | 52 +- .../rtos/rtos-wrappers/dataset_ftd_wrapper.c | 27 +- .../rtos-wrappers/dataset_updater_wrapper.c | 33 +- .../rtos/rtos-wrappers/dataset_wrapper.c | 151 +- .../rtos/rtos-wrappers/diag_wrapper.c | 35 +- .../rtos/rtos-wrappers/dns_client_wrapper.c | 187 +- .../rtos/rtos-wrappers/dns_wrapper.c | 41 +- .../rtos/rtos-wrappers/dnssd_server_wrapper.c | 63 +- .../rtos/rtos-wrappers/error_wrapper.c | 15 +- .../rtos/rtos-wrappers/heap_wrapper.c | 23 +- .../rtos-wrappers/history_tracker_wrapper.c | 132 +- .../rtos/rtos-wrappers/icmp6_wrapper.c | 37 +- .../rtos/rtos-wrappers/instance_wrapper.c | 79 +- .../rtos/rtos-wrappers/ip6_wrapper.c | 204 ++- .../rtos-wrappers/jam_detection_wrapper.c | 63 +- .../rtos/rtos-wrappers/joiner_wrapper.c | 67 +- .../rtos/rtos-wrappers/link_metrics_wrapper.c | 114 +- .../rtos/rtos-wrappers/link_raw_wrapper.c | 123 +- .../rtos/rtos-wrappers/link_wrapper.c | 297 ++-- .../rtos/rtos-wrappers/logging_wrapper.c | 17 +- .../rtos/rtos-wrappers/mesh_diag_wrapper.c | 72 +- .../rtos/rtos-wrappers/message_wrapper.c | 122 +- .../rtos/rtos-wrappers/multi_radio_wrapper.c | 23 +- .../rtos/rtos-wrappers/nat64_wrapper.c | 120 +- .../rtos/rtos-wrappers/ncp_wrapper.c | 57 +- .../rtos-wrappers/netdata_publisher_wrapper.c | 84 +- .../rtos/rtos-wrappers/netdata_wrapper.c | 94 +- .../rtos/rtos-wrappers/netdiag_wrapper.c | 82 +- .../rtos/rtos-wrappers/network_time_wrapper.c | 43 +- .../rtos/rtos-wrappers/ping_sender_wrapper.c | 23 +- .../rtos/rtos-wrappers/radio_stats_wrapper.c | 23 +- .../rtos-wrappers/random_crypto_wrapper.c | 19 +- .../rtos-wrappers/random_noncrypto_wrapper.c | 37 +- .../rtos/rtos-wrappers/server_wrapper.c | 54 +- .../rtos/rtos-wrappers/sntp_wrapper.c | 29 +- .../srp_client_buffers_wrapper.c | 61 +- .../rtos/rtos-wrappers/srp_client_wrapper.c | 145 +- .../rtos/rtos-wrappers/srp_server_wrapper.c | 218 ++- .../rtos/rtos-wrappers/tasklet_wrapper.c | 23 +- .../rtos/rtos-wrappers/tcat_wrapper.c | 16 +- .../rtos/rtos-wrappers/tcp_ext_wrapper.c | 66 +- .../rtos/rtos-wrappers/tcp_wrapper.c | 111 +- .../rtos/rtos-wrappers/thread_ftd_wrapper.c | 265 +-- .../rtos/rtos-wrappers/thread_wrapper.c | 344 ++-- .../rtos/rtos-wrappers/trel_wrapper.c | 51 +- .../rtos/rtos-wrappers/udp_wrapper.c | 103 +- .../rtos/sl_ot_rtos_adaptation.c | 126 +- .../rtos/sl_ot_rtos_adaptation.h | 38 +- .../sample-apps/ot-ble-dmp/README.md | 48 +- .../openthread/sample-apps/ot-ble-dmp/app.c | 20 +- .../openthread/sample-apps/ot-ble-dmp/app.h | 10 +- .../ot-ble-dmp/bluetooth_event_callback.c | 125 +- .../openthread/sample-apps/ot-ble-dmp/main.c | 45 +- protocol/openthread/sample-apps/ot-cli/app.c | 20 +- protocol/openthread/sample-apps/ot-cli/app.h | 10 +- protocol/openthread/sample-apps/ot-cli/main.c | 47 +- .../sample-apps/ot-cli/trustzone/README.md | 8 +- .../sample-apps/ot-ncp/README-MP-DMP-RCP.md | 3 +- .../sample-apps/ot-ncp/README-MP-RCP.md | 3 +- .../sample-apps/ot-ncp/README-OT-RCP.md | 4 +- protocol/openthread/sample-apps/ot-ncp/app.c | 16 +- protocol/openthread/sample-apps/ot-ncp/app.h | 10 +- protocol/openthread/sample-apps/ot-ncp/main.c | 47 +- .../sample-apps/ot-tz-secure-app/README.md | 28 +- .../sample-apps/sleepy-demo/README.md | 15 +- .../openthread/sample-apps/sleepy-demo/app.c | 14 +- .../openthread/sample-apps/sleepy-demo/app.h | 10 +- .../openthread/sample-apps/sleepy-demo/main.c | 47 +- .../sample-apps/sleepy-demo/sleepy-ftd.c | 22 +- .../sample-apps/sleepy-demo/sleepy-mtd.c | 24 +- .../sample-apps/sleepy-demo/sleepy-ssed.c | 28 +- .../src/cli/antenna_diversity_cli.c | 38 +- protocol/openthread/src/cli/bluetooth_cli.c | 235 ++- protocol/openthread/src/cli/cli_utils.c | 10 +- protocol/openthread/src/cli/coexistence_cli.c | 190 ++- protocol/openthread/src/cli/efr32_cli.c | 82 +- .../openthread/src/core/vendor_extension.cpp | 2 +- .../openthread/src/legacy_hal/crash_handler.c | 43 +- .../openthread/src/legacy_hal/diagnostic.c | 2 +- .../src/legacy_hal/include/crash_handler.h | 2 +- .../src/template/sl_ot_custom_cli.c.jinja | 2 +- .../src/template/sl_ot_init.c.jinja | 2 +- protocol/openthread/src/util/byte_util.c | 12 +- protocol/openthread/src/util/debug_channel.c | 9 +- protocol/wisun/app/wisun_rcp/sl_wsrcp_cpc.c | 1 + protocol/wisun/app/wisun_soc_cli/app_cli.c | 29 +- .../app/wisun_soc_cli/wisun_soc_cli.slcp | 10 + .../app/wisun_soc_cli/wisun_soc_lfn_cli.slcp | 1 + .../wisun/component/wisun_rb_detection.slcc | 4 + protocol/wisun/component/wisun_rcp.slcc | 6 +- .../component/wisun_test_certificates.slcc | 24 - .../plugin/config/sl_wisun_default_phy.h | 7 + .../config/sl_wisun_test_certificates.h | 94 - protocol/wisun/stack/inc/sl_wisun_api.h | 19 +- .../inc/sl_wisun_connection_params_api.h | 14 +- protocol/wisun/stack/inc/sl_wisun_version.h | 2 +- .../stack/libwisun_ffn_efr32xg2x_gcc_debug.a | 4 +- .../libwisun_ffn_efr32xg2x_gcc_release.a | 4 +- .../stack/libwisun_ffn_efr32xg2x_iar_debug.a | 4 +- .../libwisun_ffn_efr32xg2x_iar_release.a | 4 +- .../stack/libwisun_full_efr32xg2x_gcc_debug.a | 4 +- .../libwisun_full_efr32xg2x_gcc_release.a | 4 +- .../stack/libwisun_full_efr32xg2x_iar_debug.a | 4 +- .../libwisun_full_efr32xg2x_iar_release.a | 4 +- .../stack/libwisun_lfn_efr32xg2x_gcc_debug.a | 4 +- .../libwisun_lfn_efr32xg2x_gcc_release.a | 4 +- .../stack/libwisun_lfn_efr32xg2x_iar_debug.a | 4 +- .../libwisun_lfn_efr32xg2x_iar_release.a | 4 +- .../wisun/stack/libwisun_mac_efr32xg2x_gcc.a | 4 +- .../wisun/stack/libwisun_mac_efr32xg2x_iar.a | 4 +- .../wisun/stack/libwisun_rcp_efr32xg2x_gcc.a | 4 +- .../wisun/stack/libwisun_rcp_efr32xg2x_iar.a | 4 +- ..._controller_BRD2603A_REGION_EU_LR_size.txt | 46 +- ...api_controller_BRD2603A_REGION_EU_size.txt | 46 +- ..._controller_BRD2603A_REGION_US_LR_size.txt | 46 +- ...api_controller_BRD2603A_REGION_US_size.txt | 46 +- ..._controller_BRD2705A_REGION_EU_LR_size.txt | 44 +- ...api_controller_BRD2705A_REGION_EU_size.txt | 44 +- ..._controller_BRD2705A_REGION_US_LR_size.txt | 44 +- ...api_controller_BRD2705A_REGION_US_size.txt | 44 +- ..._controller_BRD4204C_REGION_EU_LR_size.txt | 46 +- ...api_controller_BRD4204C_REGION_EU_size.txt | 46 +- ..._controller_BRD4204C_REGION_US_LR_size.txt | 46 +- ...api_controller_BRD4204C_REGION_US_size.txt | 46 +- ..._controller_BRD4204D_REGION_EU_LR_size.txt | 46 +- ...api_controller_BRD4204D_REGION_EU_size.txt | 46 +- ..._controller_BRD4204D_REGION_US_LR_size.txt | 46 +- ...api_controller_BRD4204D_REGION_US_size.txt | 46 +- ..._controller_BRD4205A_REGION_EU_LR_size.txt | 44 +- ...api_controller_BRD4205A_REGION_EU_size.txt | 44 +- ..._controller_BRD4205A_REGION_US_LR_size.txt | 44 +- ...api_controller_BRD4205A_REGION_US_size.txt | 44 +- ..._controller_BRD4205B_REGION_EU_LR_size.txt | 46 +- ...api_controller_BRD4205B_REGION_EU_size.txt | 46 +- ..._controller_BRD4205B_REGION_US_LR_size.txt | 46 +- ...api_controller_BRD4205B_REGION_US_size.txt | 46 +- ..._controller_BRD4210A_REGION_EU_LR_size.txt | 46 +- ..._controller_BRD4210A_REGION_US_LR_size.txt | 46 +- ..._controller_BRD4400B_REGION_EU_LR_size.txt | 44 +- ...api_controller_BRD4400B_REGION_EU_size.txt | 44 +- ..._controller_BRD4400B_REGION_US_LR_size.txt | 44 +- ...api_controller_BRD4400B_REGION_US_size.txt | 44 +- ..._controller_BRD4400C_REGION_EU_LR_size.txt | 44 +- ...api_controller_BRD4400C_REGION_EU_size.txt | 44 +- ..._controller_BRD4400C_REGION_US_LR_size.txt | 44 +- ...api_controller_BRD4400C_REGION_US_size.txt | 44 +- ..._controller_BRD4401B_REGION_EU_LR_size.txt | 44 +- ..._controller_BRD4401B_REGION_US_LR_size.txt | 44 +- ..._controller_BRD4401C_REGION_EU_LR_size.txt | 44 +- ...api_controller_BRD4401C_REGION_EU_size.txt | 44 +- ..._controller_BRD4401C_REGION_US_LR_size.txt | 44 +- ...api_controller_BRD4401C_REGION_US_size.txt | 44 +- ..._end_device_BRD2603A_REGION_EU_LR_size.txt | 44 +- ...api_end_device_BRD2603A_REGION_EU_size.txt | 44 +- ..._end_device_BRD2603A_REGION_US_LR_size.txt | 44 +- ...api_end_device_BRD2603A_REGION_US_size.txt | 44 +- ..._end_device_BRD2705A_REGION_EU_LR_size.txt | 44 +- ...api_end_device_BRD2705A_REGION_EU_size.txt | 44 +- ..._end_device_BRD2705A_REGION_US_LR_size.txt | 44 +- ...api_end_device_BRD2705A_REGION_US_size.txt | 44 +- ..._end_device_BRD4204C_REGION_EU_LR_size.txt | 42 +- ...api_end_device_BRD4204C_REGION_EU_size.txt | 42 +- ..._end_device_BRD4204C_REGION_US_LR_size.txt | 42 +- ...api_end_device_BRD4204C_REGION_US_size.txt | 42 +- ..._end_device_BRD4204D_REGION_EU_LR_size.txt | 42 +- ...api_end_device_BRD4204D_REGION_EU_size.txt | 42 +- ..._end_device_BRD4204D_REGION_US_LR_size.txt | 42 +- ...api_end_device_BRD4204D_REGION_US_size.txt | 42 +- ..._end_device_BRD4205A_REGION_EU_LR_size.txt | 44 +- ...api_end_device_BRD4205A_REGION_EU_size.txt | 44 +- ..._end_device_BRD4205A_REGION_US_LR_size.txt | 44 +- ...api_end_device_BRD4205A_REGION_US_size.txt | 44 +- ..._end_device_BRD4205B_REGION_EU_LR_size.txt | 44 +- ...api_end_device_BRD4205B_REGION_EU_size.txt | 44 +- ..._end_device_BRD4205B_REGION_US_LR_size.txt | 44 +- ...api_end_device_BRD4205B_REGION_US_size.txt | 44 +- ..._end_device_BRD4210A_REGION_EU_LR_size.txt | 42 +- ..._end_device_BRD4210A_REGION_US_LR_size.txt | 42 +- ..._end_device_BRD4400B_REGION_EU_LR_size.txt | 44 +- ...api_end_device_BRD4400B_REGION_EU_size.txt | 44 +- ..._end_device_BRD4400B_REGION_US_LR_size.txt | 44 +- ...api_end_device_BRD4400B_REGION_US_size.txt | 44 +- ..._end_device_BRD4400C_REGION_EU_LR_size.txt | 44 +- ...api_end_device_BRD4400C_REGION_EU_size.txt | 44 +- ..._end_device_BRD4400C_REGION_US_LR_size.txt | 44 +- ...api_end_device_BRD4400C_REGION_US_size.txt | 44 +- ..._end_device_BRD4401B_REGION_EU_LR_size.txt | 44 +- ..._end_device_BRD4401B_REGION_US_LR_size.txt | 44 +- ..._end_device_BRD4401C_REGION_EU_LR_size.txt | 44 +- ...api_end_device_BRD4401C_REGION_EU_size.txt | 44 +- ..._end_device_BRD4401C_REGION_US_LR_size.txt | 44 +- ...api_end_device_BRD4401C_REGION_US_size.txt | 44 +- ...ncp_zniffer_BRD2603A_REGION_EU_LR_size.txt | 46 +- ...ncp_zniffer_BRD2603A_REGION_US_LR_size.txt | 46 +- ...ncp_zniffer_BRD2705A_REGION_EU_LR_size.txt | 44 +- ...ncp_zniffer_BRD2705A_REGION_US_LR_size.txt | 44 +- ...ncp_zniffer_BRD4204D_REGION_EU_LR_size.txt | 42 +- ...ncp_zniffer_BRD4204D_REGION_US_LR_size.txt | 42 +- ...ncp_zniffer_BRD4205B_REGION_EU_LR_size.txt | 46 +- ...ncp_zniffer_BRD4205B_REGION_US_LR_size.txt | 46 +- ...ncp_zniffer_BRD4210A_REGION_EU_LR_size.txt | 42 +- ...ncp_zniffer_BRD4210A_REGION_US_LR_size.txt | 42 +- ...ncp_zniffer_BRD4401C_REGION_EU_LR_size.txt | 44 +- ...ncp_zniffer_BRD4401C_REGION_US_LR_size.txt | 44 +- ...cp_zniffer_pti_BRD2603A_REGION_EU_size.txt | 48 +- ...cp_zniffer_pti_BRD2705A_REGION_EU_size.txt | 46 +- ...zniffer_pti_BRD4204C_REGION_EU_LR_size.txt | 46 +- ...cp_zniffer_pti_BRD4204C_REGION_EU_size.txt | 46 +- ...zniffer_pti_BRD4204C_REGION_US_LR_size.txt | 46 +- ...cp_zniffer_pti_BRD4204C_REGION_US_size.txt | 46 +- ...zniffer_pti_BRD4204D_REGION_EU_LR_size.txt | 46 +- ...cp_zniffer_pti_BRD4204D_REGION_EU_size.txt | 46 +- ...zniffer_pti_BRD4204D_REGION_US_LR_size.txt | 46 +- ...cp_zniffer_pti_BRD4204D_REGION_US_size.txt | 46 +- ...zniffer_pti_BRD4205A_REGION_EU_LR_size.txt | 48 +- ...cp_zniffer_pti_BRD4205A_REGION_EU_size.txt | 48 +- ...zniffer_pti_BRD4205A_REGION_US_LR_size.txt | 48 +- ...cp_zniffer_pti_BRD4205A_REGION_US_size.txt | 48 +- ...zniffer_pti_BRD4205B_REGION_EU_LR_size.txt | 48 +- ...cp_zniffer_pti_BRD4205B_REGION_EU_size.txt | 48 +- ...zniffer_pti_BRD4205B_REGION_US_LR_size.txt | 48 +- ...cp_zniffer_pti_BRD4205B_REGION_US_size.txt | 48 +- ...zniffer_pti_BRD4210A_REGION_EU_LR_size.txt | 46 +- ...zniffer_pti_BRD4210A_REGION_US_LR_size.txt | 46 +- ...zniffer_pti_BRD4400B_REGION_EU_LR_size.txt | 46 +- ...cp_zniffer_pti_BRD4400B_REGION_EU_size.txt | 46 +- ...zniffer_pti_BRD4400B_REGION_US_LR_size.txt | 46 +- ...cp_zniffer_pti_BRD4400B_REGION_US_size.txt | 46 +- ...zniffer_pti_BRD4400C_REGION_EU_LR_size.txt | 46 +- ...cp_zniffer_pti_BRD4400C_REGION_EU_size.txt | 46 +- ...zniffer_pti_BRD4400C_REGION_US_LR_size.txt | 46 +- ...cp_zniffer_pti_BRD4400C_REGION_US_size.txt | 46 +- ...zniffer_pti_BRD4401B_REGION_EU_LR_size.txt | 46 +- ...zniffer_pti_BRD4401B_REGION_US_LR_size.txt | 46 +- ...zniffer_pti_BRD4401C_REGION_EU_LR_size.txt | 46 +- ...cp_zniffer_pti_BRD4401C_REGION_EU_size.txt | 46 +- ...zniffer_pti_BRD4401C_REGION_US_LR_size.txt | 46 +- ...cp_zniffer_pti_BRD4401C_REGION_US_size.txt | 46 +- ...lock_keypad_BRD4204C_REGION_EU_LR_size.txt | 46 +- ...or_lock_keypad_BRD4204C_REGION_EU_size.txt | 46 +- ...lock_keypad_BRD4204C_REGION_US_LR_size.txt | 46 +- ...or_lock_keypad_BRD4204C_REGION_US_size.txt | 46 +- ...lock_keypad_BRD4204D_REGION_EU_LR_size.txt | 46 +- ...or_lock_keypad_BRD4204D_REGION_EU_size.txt | 46 +- ...lock_keypad_BRD4204D_REGION_US_LR_size.txt | 46 +- ...or_lock_keypad_BRD4204D_REGION_US_size.txt | 46 +- ...lock_keypad_BRD4205A_REGION_EU_LR_size.txt | 48 +- ...or_lock_keypad_BRD4205A_REGION_EU_size.txt | 48 +- ...lock_keypad_BRD4205A_REGION_US_LR_size.txt | 48 +- ...or_lock_keypad_BRD4205A_REGION_US_size.txt | 48 +- ...lock_keypad_BRD4205B_REGION_EU_LR_size.txt | 48 +- ...or_lock_keypad_BRD4205B_REGION_EU_size.txt | 48 +- ...lock_keypad_BRD4205B_REGION_US_LR_size.txt | 48 +- ...or_lock_keypad_BRD4205B_REGION_US_size.txt | 48 +- ...lock_keypad_BRD4210A_REGION_EU_LR_size.txt | 46 +- ...lock_keypad_BRD4210A_REGION_US_LR_size.txt | 46 +- ...lock_keypad_BRD4400B_REGION_EU_LR_size.txt | 46 +- ...or_lock_keypad_BRD4400B_REGION_EU_size.txt | 46 +- ...lock_keypad_BRD4400B_REGION_US_LR_size.txt | 46 +- ...or_lock_keypad_BRD4400B_REGION_US_size.txt | 46 +- ...lock_keypad_BRD4400C_REGION_EU_LR_size.txt | 46 +- ...or_lock_keypad_BRD4400C_REGION_EU_size.txt | 46 +- ...lock_keypad_BRD4400C_REGION_US_LR_size.txt | 46 +- ...or_lock_keypad_BRD4400C_REGION_US_size.txt | 46 +- ...lock_keypad_BRD4401B_REGION_EU_LR_size.txt | 46 +- ...lock_keypad_BRD4401B_REGION_US_LR_size.txt | 46 +- ...lock_keypad_BRD4401C_REGION_EU_LR_size.txt | 46 +- ...or_lock_keypad_BRD4401C_REGION_EU_size.txt | 46 +- ...lock_keypad_BRD4401C_REGION_US_LR_size.txt | 46 +- ...or_lock_keypad_BRD4401C_REGION_US_size.txt | 46 +- ..._keypad_u3c_BRD4400C_REGION_EU_LR_size.txt | 48 +- ...ock_keypad_u3c_BRD4400C_REGION_EU_size.txt | 48 +- ..._keypad_u3c_BRD4400C_REGION_US_LR_size.txt | 48 +- ...ock_keypad_u3c_BRD4400C_REGION_US_size.txt | 48 +- ..._keypad_u3c_BRD4401C_REGION_EU_LR_size.txt | 48 +- ...ock_keypad_u3c_BRD4401C_REGION_EU_size.txt | 48 +- ..._keypad_u3c_BRD4401C_REGION_US_LR_size.txt | 48 +- ...ock_keypad_u3c_BRD4401C_REGION_US_size.txt | 48 +- ...oc_led_bulb_BRD2705A_REGION_EU_LR_size.txt | 46 +- ...e_soc_led_bulb_BRD2705A_REGION_EU_size.txt | 46 +- ...oc_led_bulb_BRD2705A_REGION_US_LR_size.txt | 46 +- ...e_soc_led_bulb_BRD2705A_REGION_US_size.txt | 46 +- ...oc_led_bulb_BRD4205A_REGION_EU_LR_size.txt | 48 +- ...e_soc_led_bulb_BRD4205A_REGION_EU_size.txt | 48 +- ...oc_led_bulb_BRD4205A_REGION_US_LR_size.txt | 48 +- ...e_soc_led_bulb_BRD4205A_REGION_US_size.txt | 48 +- ...oc_led_bulb_BRD4205B_REGION_EU_LR_size.txt | 48 +- ...e_soc_led_bulb_BRD4205B_REGION_EU_size.txt | 48 +- ...oc_led_bulb_BRD4205B_REGION_US_LR_size.txt | 48 +- ...e_soc_led_bulb_BRD4205B_REGION_US_size.txt | 48 +- ...evel_sensor_BRD2603A_REGION_EU_LR_size.txt | 48 +- ...tilevel_sensor_BRD2603A_REGION_EU_size.txt | 48 +- ...evel_sensor_BRD2603A_REGION_US_LR_size.txt | 48 +- ...tilevel_sensor_BRD2603A_REGION_US_size.txt | 48 +- ...evel_sensor_BRD2705A_REGION_EU_LR_size.txt | 46 +- ...tilevel_sensor_BRD2705A_REGION_EU_size.txt | 46 +- ...evel_sensor_BRD2705A_REGION_US_LR_size.txt | 46 +- ...tilevel_sensor_BRD2705A_REGION_US_size.txt | 46 +- ...evel_sensor_BRD4204C_REGION_EU_LR_size.txt | 46 +- ...tilevel_sensor_BRD4204C_REGION_EU_size.txt | 46 +- ...evel_sensor_BRD4204C_REGION_US_LR_size.txt | 46 +- ...tilevel_sensor_BRD4204C_REGION_US_size.txt | 46 +- ...evel_sensor_BRD4204D_REGION_EU_LR_size.txt | 46 +- ...tilevel_sensor_BRD4204D_REGION_EU_size.txt | 46 +- ...evel_sensor_BRD4204D_REGION_US_LR_size.txt | 46 +- ...tilevel_sensor_BRD4204D_REGION_US_size.txt | 46 +- ...evel_sensor_BRD4205A_REGION_EU_LR_size.txt | 48 +- ...tilevel_sensor_BRD4205A_REGION_EU_size.txt | 48 +- ...evel_sensor_BRD4205A_REGION_US_LR_size.txt | 48 +- ...tilevel_sensor_BRD4205A_REGION_US_size.txt | 48 +- ...evel_sensor_BRD4205B_REGION_EU_LR_size.txt | 48 +- ...tilevel_sensor_BRD4205B_REGION_EU_size.txt | 48 +- ...evel_sensor_BRD4205B_REGION_US_LR_size.txt | 48 +- ...tilevel_sensor_BRD4205B_REGION_US_size.txt | 48 +- ...evel_sensor_BRD4210A_REGION_EU_LR_size.txt | 46 +- ...evel_sensor_BRD4210A_REGION_US_LR_size.txt | 46 +- ...evel_sensor_BRD4400B_REGION_EU_LR_size.txt | 46 +- ...tilevel_sensor_BRD4400B_REGION_EU_size.txt | 46 +- ...evel_sensor_BRD4400B_REGION_US_LR_size.txt | 46 +- ...tilevel_sensor_BRD4400B_REGION_US_size.txt | 46 +- ...evel_sensor_BRD4400C_REGION_EU_LR_size.txt | 46 +- ...tilevel_sensor_BRD4400C_REGION_EU_size.txt | 46 +- ...evel_sensor_BRD4400C_REGION_US_LR_size.txt | 46 +- ...tilevel_sensor_BRD4400C_REGION_US_size.txt | 46 +- ...evel_sensor_BRD4401B_REGION_EU_LR_size.txt | 46 +- ...evel_sensor_BRD4401B_REGION_US_LR_size.txt | 46 +- ...evel_sensor_BRD4401C_REGION_EU_LR_size.txt | 46 +- ...tilevel_sensor_BRD4401C_REGION_EU_size.txt | 46 +- ...evel_sensor_BRD4401C_REGION_US_LR_size.txt | 46 +- ...tilevel_sensor_BRD4401C_REGION_US_size.txt | 46 +- ...power_strip_BRD2603A_REGION_EU_LR_size.txt | 48 +- ...oc_power_strip_BRD2603A_REGION_EU_size.txt | 48 +- ...power_strip_BRD2603A_REGION_US_LR_size.txt | 48 +- ...oc_power_strip_BRD2603A_REGION_US_size.txt | 48 +- ...power_strip_BRD2705A_REGION_EU_LR_size.txt | 46 +- ...oc_power_strip_BRD2705A_REGION_EU_size.txt | 46 +- ...power_strip_BRD2705A_REGION_US_LR_size.txt | 46 +- ...oc_power_strip_BRD2705A_REGION_US_size.txt | 46 +- ...power_strip_BRD4205A_REGION_EU_LR_size.txt | 48 +- ...oc_power_strip_BRD4205A_REGION_EU_size.txt | 48 +- ...power_strip_BRD4205A_REGION_US_LR_size.txt | 48 +- ...oc_power_strip_BRD4205A_REGION_US_size.txt | 48 +- ...power_strip_BRD4205B_REGION_EU_LR_size.txt | 48 +- ...oc_power_strip_BRD4205B_REGION_EU_size.txt | 48 +- ...power_strip_BRD4205B_REGION_US_LR_size.txt | 48 +- ...oc_power_strip_BRD4205B_REGION_US_size.txt | 48 +- ..._sensor_pir_BRD2603A_REGION_EU_LR_size.txt | 46 +- ...soc_sensor_pir_BRD2603A_REGION_EU_size.txt | 46 +- ..._sensor_pir_BRD2603A_REGION_US_LR_size.txt | 46 +- ...soc_sensor_pir_BRD2603A_REGION_US_size.txt | 46 +- ..._sensor_pir_BRD2705A_REGION_EU_LR_size.txt | 46 +- ...soc_sensor_pir_BRD2705A_REGION_EU_size.txt | 46 +- ..._sensor_pir_BRD2705A_REGION_US_LR_size.txt | 46 +- ...soc_sensor_pir_BRD2705A_REGION_US_size.txt | 46 +- ..._sensor_pir_BRD4204C_REGION_EU_LR_size.txt | 46 +- ...soc_sensor_pir_BRD4204C_REGION_EU_size.txt | 46 +- ..._sensor_pir_BRD4204C_REGION_US_LR_size.txt | 46 +- ...soc_sensor_pir_BRD4204C_REGION_US_size.txt | 46 +- ..._sensor_pir_BRD4204D_REGION_EU_LR_size.txt | 46 +- ...soc_sensor_pir_BRD4204D_REGION_EU_size.txt | 46 +- ..._sensor_pir_BRD4204D_REGION_US_LR_size.txt | 46 +- ...soc_sensor_pir_BRD4204D_REGION_US_size.txt | 46 +- ..._sensor_pir_BRD4205A_REGION_EU_LR_size.txt | 46 +- ...soc_sensor_pir_BRD4205A_REGION_EU_size.txt | 46 +- ..._sensor_pir_BRD4205A_REGION_US_LR_size.txt | 46 +- ...soc_sensor_pir_BRD4205A_REGION_US_size.txt | 46 +- ..._sensor_pir_BRD4205B_REGION_EU_LR_size.txt | 46 +- ...soc_sensor_pir_BRD4205B_REGION_EU_size.txt | 46 +- ..._sensor_pir_BRD4205B_REGION_US_LR_size.txt | 46 +- ...soc_sensor_pir_BRD4205B_REGION_US_size.txt | 46 +- ..._sensor_pir_BRD4210A_REGION_EU_LR_size.txt | 46 +- ..._sensor_pir_BRD4210A_REGION_US_LR_size.txt | 46 +- ..._sensor_pir_BRD4400B_REGION_EU_LR_size.txt | 46 +- ...soc_sensor_pir_BRD4400B_REGION_EU_size.txt | 46 +- ..._sensor_pir_BRD4400B_REGION_US_LR_size.txt | 46 +- ...soc_sensor_pir_BRD4400B_REGION_US_size.txt | 46 +- ..._sensor_pir_BRD4400C_REGION_EU_LR_size.txt | 46 +- ...soc_sensor_pir_BRD4400C_REGION_EU_size.txt | 46 +- ..._sensor_pir_BRD4400C_REGION_US_LR_size.txt | 46 +- ...soc_sensor_pir_BRD4400C_REGION_US_size.txt | 46 +- ..._sensor_pir_BRD4401B_REGION_EU_LR_size.txt | 46 +- ..._sensor_pir_BRD4401B_REGION_US_LR_size.txt | 46 +- ..._sensor_pir_BRD4401C_REGION_EU_LR_size.txt | 46 +- ...soc_sensor_pir_BRD4401C_REGION_EU_size.txt | 46 +- ..._sensor_pir_BRD4401C_REGION_US_LR_size.txt | 46 +- ...soc_sensor_pir_BRD4401C_REGION_US_size.txt | 46 +- ...itch_on_off_BRD2603A_REGION_EU_LR_size.txt | 48 +- ..._switch_on_off_BRD2603A_REGION_EU_size.txt | 48 +- ...itch_on_off_BRD2603A_REGION_US_LR_size.txt | 48 +- ..._switch_on_off_BRD2603A_REGION_US_size.txt | 48 +- ...itch_on_off_BRD2705A_REGION_EU_LR_size.txt | 46 +- ..._switch_on_off_BRD2705A_REGION_EU_size.txt | 46 +- ...itch_on_off_BRD2705A_REGION_US_LR_size.txt | 46 +- ..._switch_on_off_BRD2705A_REGION_US_size.txt | 46 +- ...itch_on_off_BRD4204C_REGION_EU_LR_size.txt | 46 +- ..._switch_on_off_BRD4204C_REGION_EU_size.txt | 46 +- ...itch_on_off_BRD4204C_REGION_US_LR_size.txt | 46 +- ..._switch_on_off_BRD4204C_REGION_US_size.txt | 46 +- ...itch_on_off_BRD4204D_REGION_EU_LR_size.txt | 46 +- ..._switch_on_off_BRD4204D_REGION_EU_size.txt | 46 +- ...itch_on_off_BRD4204D_REGION_US_LR_size.txt | 46 +- ..._switch_on_off_BRD4204D_REGION_US_size.txt | 46 +- ...itch_on_off_BRD4205A_REGION_EU_LR_size.txt | 48 +- ..._switch_on_off_BRD4205A_REGION_EU_size.txt | 48 +- ...itch_on_off_BRD4205A_REGION_US_LR_size.txt | 48 +- ..._switch_on_off_BRD4205A_REGION_US_size.txt | 48 +- ...itch_on_off_BRD4205B_REGION_EU_LR_size.txt | 48 +- ..._switch_on_off_BRD4205B_REGION_EU_size.txt | 48 +- ...itch_on_off_BRD4205B_REGION_US_LR_size.txt | 48 +- ..._switch_on_off_BRD4205B_REGION_US_size.txt | 48 +- ...itch_on_off_BRD4210A_REGION_EU_LR_size.txt | 46 +- ...itch_on_off_BRD4210A_REGION_US_LR_size.txt | 46 +- ...itch_on_off_BRD4400B_REGION_EU_LR_size.txt | 46 +- ..._switch_on_off_BRD4400B_REGION_EU_size.txt | 46 +- ...itch_on_off_BRD4400B_REGION_US_LR_size.txt | 46 +- ..._switch_on_off_BRD4400B_REGION_US_size.txt | 46 +- ...itch_on_off_BRD4400C_REGION_EU_LR_size.txt | 46 +- ..._switch_on_off_BRD4400C_REGION_EU_size.txt | 46 +- ...itch_on_off_BRD4400C_REGION_US_LR_size.txt | 46 +- ..._switch_on_off_BRD4400C_REGION_US_size.txt | 46 +- ...itch_on_off_BRD4401B_REGION_EU_LR_size.txt | 46 +- ...itch_on_off_BRD4401B_REGION_US_LR_size.txt | 46 +- ...itch_on_off_BRD4401C_REGION_EU_LR_size.txt | 46 +- ..._switch_on_off_BRD4401C_REGION_EU_size.txt | 46 +- ...itch_on_off_BRD4401C_REGION_US_LR_size.txt | 46 +- ..._switch_on_off_BRD4401C_REGION_US_size.txt | 46 +- ..._controller_BRD2603A_REGION_EU_LR_size.txt | 48 +- ...all_controller_BRD2603A_REGION_EU_size.txt | 48 +- ..._controller_BRD2603A_REGION_US_LR_size.txt | 48 +- ...all_controller_BRD2603A_REGION_US_size.txt | 48 +- ..._controller_BRD2705A_REGION_EU_LR_size.txt | 46 +- ...all_controller_BRD2705A_REGION_EU_size.txt | 46 +- ..._controller_BRD2705A_REGION_US_LR_size.txt | 46 +- ...all_controller_BRD2705A_REGION_US_size.txt | 46 +- ..._controller_BRD4204C_REGION_EU_LR_size.txt | 46 +- ...all_controller_BRD4204C_REGION_EU_size.txt | 46 +- ..._controller_BRD4204C_REGION_US_LR_size.txt | 46 +- ...all_controller_BRD4204C_REGION_US_size.txt | 46 +- ..._controller_BRD4204D_REGION_EU_LR_size.txt | 46 +- ...all_controller_BRD4204D_REGION_EU_size.txt | 46 +- ..._controller_BRD4204D_REGION_US_LR_size.txt | 46 +- ...all_controller_BRD4204D_REGION_US_size.txt | 46 +- ..._controller_BRD4205A_REGION_EU_LR_size.txt | 48 +- ...all_controller_BRD4205A_REGION_EU_size.txt | 48 +- ..._controller_BRD4205A_REGION_US_LR_size.txt | 48 +- ...all_controller_BRD4205A_REGION_US_size.txt | 48 +- ..._controller_BRD4205B_REGION_EU_LR_size.txt | 48 +- ...all_controller_BRD4205B_REGION_EU_size.txt | 48 +- ..._controller_BRD4205B_REGION_US_LR_size.txt | 48 +- ...all_controller_BRD4205B_REGION_US_size.txt | 48 +- ..._controller_BRD4210A_REGION_EU_LR_size.txt | 46 +- ..._controller_BRD4210A_REGION_US_LR_size.txt | 46 +- ..._controller_BRD4400B_REGION_EU_LR_size.txt | 46 +- ...all_controller_BRD4400B_REGION_EU_size.txt | 46 +- ..._controller_BRD4400B_REGION_US_LR_size.txt | 46 +- ...all_controller_BRD4400B_REGION_US_size.txt | 46 +- ..._controller_BRD4400C_REGION_EU_LR_size.txt | 46 +- ...all_controller_BRD4400C_REGION_EU_size.txt | 46 +- ..._controller_BRD4400C_REGION_US_LR_size.txt | 46 +- ...all_controller_BRD4400C_REGION_US_size.txt | 46 +- ..._controller_BRD4401B_REGION_EU_LR_size.txt | 46 +- ..._controller_BRD4401B_REGION_US_LR_size.txt | 46 +- ..._controller_BRD4401C_REGION_EU_LR_size.txt | 46 +- ...all_controller_BRD4401C_REGION_EU_size.txt | 46 +- ..._controller_BRD4401C_REGION_US_LR_size.txt | 46 +- ...all_controller_BRD4401C_REGION_US_size.txt | 46 +- protocol/z-wave/Apps/bin/demos.xml | 44 +- ...ave_ncp_serial_api_controller_BRD2603A.gbl | 4 +- ...cp_serial_api_controller_BRD2603A_v255.gbl | 4 +- ...ave_ncp_serial_api_controller_BRD2705A.gbl | 4 +- ...cp_serial_api_controller_BRD2705A_v255.gbl | 4 +- ...ave_ncp_serial_api_controller_BRD4204C.gbl | 4 +- ...cp_serial_api_controller_BRD4204C_v255.gbl | 4 +- ...ave_ncp_serial_api_controller_BRD4204D.gbl | 4 +- ...cp_serial_api_controller_BRD4204D_v255.gbl | 4 +- ...ave_ncp_serial_api_controller_BRD4205A.gbl | 4 +- ...cp_serial_api_controller_BRD4205A_v255.gbl | 2 +- ...ave_ncp_serial_api_controller_BRD4205B.gbl | 4 +- ...cp_serial_api_controller_BRD4205B_v255.gbl | 4 +- ...ave_ncp_serial_api_controller_BRD4210A.gbl | 4 +- ...cp_serial_api_controller_BRD4210A_v255.gbl | 4 +- ...ave_ncp_serial_api_controller_BRD4400B.gbl | 4 +- ...cp_serial_api_controller_BRD4400B_v255.gbl | 4 +- ...ave_ncp_serial_api_controller_BRD4400C.gbl | 4 +- ...cp_serial_api_controller_BRD4400C_v255.gbl | 4 +- ...ave_ncp_serial_api_controller_BRD4401B.gbl | 4 +- ...cp_serial_api_controller_BRD4401B_v255.gbl | 4 +- ...ave_ncp_serial_api_controller_BRD4401C.gbl | 4 +- ...cp_serial_api_controller_BRD4401C_v255.gbl | 4 +- ...ave_ncp_serial_api_end_device_BRD2603A.gbl | 4 +- ...cp_serial_api_end_device_BRD2603A_v255.gbl | 4 +- ...ave_ncp_serial_api_end_device_BRD2705A.gbl | 4 +- ...cp_serial_api_end_device_BRD2705A_v255.gbl | 4 +- ...ave_ncp_serial_api_end_device_BRD4204C.gbl | 4 +- ...cp_serial_api_end_device_BRD4204C_v255.gbl | 4 +- ...ave_ncp_serial_api_end_device_BRD4204D.gbl | 4 +- ...cp_serial_api_end_device_BRD4204D_v255.gbl | 4 +- ...ave_ncp_serial_api_end_device_BRD4205A.gbl | 4 +- ...cp_serial_api_end_device_BRD4205A_v255.gbl | 4 +- ...ave_ncp_serial_api_end_device_BRD4205B.gbl | 4 +- ...cp_serial_api_end_device_BRD4205B_v255.gbl | 4 +- ...ave_ncp_serial_api_end_device_BRD4210A.gbl | 4 +- ...cp_serial_api_end_device_BRD4210A_v255.gbl | 4 +- ...ave_ncp_serial_api_end_device_BRD4400B.gbl | 4 +- ...cp_serial_api_end_device_BRD4400B_v255.gbl | 4 +- ...ave_ncp_serial_api_end_device_BRD4400C.gbl | 4 +- ...cp_serial_api_end_device_BRD4400C_v255.gbl | 4 +- ...ave_ncp_serial_api_end_device_BRD4401B.gbl | 4 +- ...cp_serial_api_end_device_BRD4401B_v255.gbl | 4 +- ...ave_ncp_serial_api_end_device_BRD4401C.gbl | 4 +- ...cp_serial_api_end_device_BRD4401C_v255.gbl | 4 +- .../bin/gbl/zwave_ncp_zniffer_BRD2603A.gbl | 4 +- .../gbl/zwave_ncp_zniffer_BRD2603A_v255.gbl | 4 +- .../bin/gbl/zwave_ncp_zniffer_BRD2705A.gbl | 4 +- .../gbl/zwave_ncp_zniffer_BRD2705A_v255.gbl | 2 +- .../bin/gbl/zwave_ncp_zniffer_BRD4204D.gbl | 4 +- .../gbl/zwave_ncp_zniffer_BRD4204D_v255.gbl | 4 +- .../bin/gbl/zwave_ncp_zniffer_BRD4205B.gbl | 4 +- .../gbl/zwave_ncp_zniffer_BRD4205B_v255.gbl | 4 +- .../bin/gbl/zwave_ncp_zniffer_BRD4210A.gbl | 4 +- .../gbl/zwave_ncp_zniffer_BRD4210A_v255.gbl | 4 +- .../bin/gbl/zwave_ncp_zniffer_BRD4401C.gbl | 4 +- .../gbl/zwave_ncp_zniffer_BRD4401C_v255.gbl | 4 +- .../gbl/zwave_ncp_zniffer_pti_BRD4204C.gbl | 4 +- .../zwave_ncp_zniffer_pti_BRD4204C_v255.gbl | 4 +- .../gbl/zwave_ncp_zniffer_pti_BRD4204D.gbl | 4 +- .../zwave_ncp_zniffer_pti_BRD4204D_v255.gbl | 4 +- .../gbl/zwave_ncp_zniffer_pti_BRD4205A.gbl | 4 +- .../zwave_ncp_zniffer_pti_BRD4205A_v255.gbl | 4 +- .../gbl/zwave_ncp_zniffer_pti_BRD4205B.gbl | 4 +- .../zwave_ncp_zniffer_pti_BRD4205B_v255.gbl | 4 +- .../gbl/zwave_ncp_zniffer_pti_BRD4210A.gbl | 4 +- .../zwave_ncp_zniffer_pti_BRD4210A_v255.gbl | 4 +- .../gbl/zwave_ncp_zniffer_pti_BRD4400B.gbl | 4 +- .../zwave_ncp_zniffer_pti_BRD4400B_v255.gbl | 4 +- .../gbl/zwave_ncp_zniffer_pti_BRD4400C.gbl | 4 +- .../zwave_ncp_zniffer_pti_BRD4400C_v255.gbl | 4 +- .../gbl/zwave_ncp_zniffer_pti_BRD4401B.gbl | 4 +- .../zwave_ncp_zniffer_pti_BRD4401B_v255.gbl | 4 +- .../gbl/zwave_ncp_zniffer_pti_BRD4401C.gbl | 4 +- .../zwave_ncp_zniffer_pti_BRD4401C_v255.gbl | 4 +- .../zwave_soc_door_lock_keypad_BRD4204C.gbl | 4 +- ...ave_soc_door_lock_keypad_BRD4204C_v255.gbl | 4 +- .../zwave_soc_door_lock_keypad_BRD4204D.gbl | 2 +- ...ave_soc_door_lock_keypad_BRD4204D_v255.gbl | 4 +- .../zwave_soc_door_lock_keypad_BRD4205A.gbl | 4 +- ...ave_soc_door_lock_keypad_BRD4205A_v255.gbl | 4 +- .../zwave_soc_door_lock_keypad_BRD4205B.gbl | 4 +- ...ave_soc_door_lock_keypad_BRD4205B_v255.gbl | 4 +- .../zwave_soc_door_lock_keypad_BRD4210A.gbl | 4 +- ...ave_soc_door_lock_keypad_BRD4210A_v255.gbl | 4 +- .../zwave_soc_door_lock_keypad_BRD4400B.gbl | 4 +- ...ave_soc_door_lock_keypad_BRD4400B_v255.gbl | 4 +- .../zwave_soc_door_lock_keypad_BRD4400C.gbl | 4 +- ...ave_soc_door_lock_keypad_BRD4400C_v255.gbl | 4 +- .../zwave_soc_door_lock_keypad_BRD4401B.gbl | 4 +- ...ave_soc_door_lock_keypad_BRD4401B_v255.gbl | 4 +- .../zwave_soc_door_lock_keypad_BRD4401C.gbl | 4 +- ...ave_soc_door_lock_keypad_BRD4401C_v255.gbl | 4 +- ...wave_soc_door_lock_keypad_u3c_BRD4400C.gbl | 4 +- ...soc_door_lock_keypad_u3c_BRD4400C_v255.gbl | 4 +- ...wave_soc_door_lock_keypad_u3c_BRD4401C.gbl | 4 +- ...soc_door_lock_keypad_u3c_BRD4401C_v255.gbl | 4 +- .../bin/gbl/zwave_soc_led_bulb_BRD2705A.gbl | 4 +- .../gbl/zwave_soc_led_bulb_BRD2705A_v255.gbl | 4 +- .../bin/gbl/zwave_soc_led_bulb_BRD4205A.gbl | 4 +- .../gbl/zwave_soc_led_bulb_BRD4205A_v255.gbl | 4 +- .../bin/gbl/zwave_soc_led_bulb_BRD4205B.gbl | 4 +- .../gbl/zwave_soc_led_bulb_BRD4205B_v255.gbl | 4 +- .../zwave_soc_multilevel_sensor_BRD2603A.gbl | 4 +- ...ve_soc_multilevel_sensor_BRD2603A_v255.gbl | 4 +- .../zwave_soc_multilevel_sensor_BRD2705A.gbl | 4 +- ...ve_soc_multilevel_sensor_BRD2705A_v255.gbl | 4 +- .../zwave_soc_multilevel_sensor_BRD4204C.gbl | 4 +- ...ve_soc_multilevel_sensor_BRD4204C_v255.gbl | 4 +- .../zwave_soc_multilevel_sensor_BRD4204D.gbl | 4 +- ...ve_soc_multilevel_sensor_BRD4204D_v255.gbl | 4 +- .../zwave_soc_multilevel_sensor_BRD4205A.gbl | 4 +- ...ve_soc_multilevel_sensor_BRD4205A_v255.gbl | 4 +- .../zwave_soc_multilevel_sensor_BRD4205B.gbl | 4 +- ...ve_soc_multilevel_sensor_BRD4205B_v255.gbl | 4 +- .../zwave_soc_multilevel_sensor_BRD4210A.gbl | 4 +- ...ve_soc_multilevel_sensor_BRD4210A_v255.gbl | 4 +- .../zwave_soc_multilevel_sensor_BRD4400B.gbl | 4 +- ...ve_soc_multilevel_sensor_BRD4400B_v255.gbl | 4 +- .../zwave_soc_multilevel_sensor_BRD4400C.gbl | 4 +- ...ve_soc_multilevel_sensor_BRD4400C_v255.gbl | 4 +- .../zwave_soc_multilevel_sensor_BRD4401B.gbl | 4 +- ...ve_soc_multilevel_sensor_BRD4401B_v255.gbl | 4 +- .../zwave_soc_multilevel_sensor_BRD4401C.gbl | 4 +- ...ve_soc_multilevel_sensor_BRD4401C_v255.gbl | 4 +- .../gbl/zwave_soc_power_strip_BRD2603A.gbl | 4 +- .../zwave_soc_power_strip_BRD2603A_v255.gbl | 4 +- .../gbl/zwave_soc_power_strip_BRD2705A.gbl | 4 +- .../zwave_soc_power_strip_BRD2705A_v255.gbl | 4 +- .../gbl/zwave_soc_power_strip_BRD4205A.gbl | 4 +- .../zwave_soc_power_strip_BRD4205A_v255.gbl | 4 +- .../gbl/zwave_soc_power_strip_BRD4205B.gbl | 4 +- .../zwave_soc_power_strip_BRD4205B_v255.gbl | 4 +- .../bin/gbl/zwave_soc_sensor_pir_BRD2603A.gbl | 4 +- .../zwave_soc_sensor_pir_BRD2603A_v255.gbl | 4 +- .../bin/gbl/zwave_soc_sensor_pir_BRD2705A.gbl | 4 +- .../zwave_soc_sensor_pir_BRD2705A_v255.gbl | 4 +- .../bin/gbl/zwave_soc_sensor_pir_BRD4204C.gbl | 4 +- .../zwave_soc_sensor_pir_BRD4204C_v255.gbl | 4 +- .../bin/gbl/zwave_soc_sensor_pir_BRD4204D.gbl | 4 +- .../zwave_soc_sensor_pir_BRD4204D_v255.gbl | 4 +- .../bin/gbl/zwave_soc_sensor_pir_BRD4205A.gbl | 4 +- .../zwave_soc_sensor_pir_BRD4205A_v255.gbl | 4 +- .../bin/gbl/zwave_soc_sensor_pir_BRD4205B.gbl | 4 +- .../zwave_soc_sensor_pir_BRD4205B_v255.gbl | 4 +- .../bin/gbl/zwave_soc_sensor_pir_BRD4210A.gbl | 4 +- .../zwave_soc_sensor_pir_BRD4210A_v255.gbl | 4 +- .../bin/gbl/zwave_soc_sensor_pir_BRD4400B.gbl | 2 +- .../zwave_soc_sensor_pir_BRD4400B_v255.gbl | 4 +- .../bin/gbl/zwave_soc_sensor_pir_BRD4400C.gbl | 4 +- .../zwave_soc_sensor_pir_BRD4400C_v255.gbl | 4 +- .../bin/gbl/zwave_soc_sensor_pir_BRD4401B.gbl | 4 +- .../zwave_soc_sensor_pir_BRD4401B_v255.gbl | 4 +- .../bin/gbl/zwave_soc_sensor_pir_BRD4401C.gbl | 4 +- .../zwave_soc_sensor_pir_BRD4401C_v255.gbl | 4 +- .../gbl/zwave_soc_switch_on_off_BRD2603A.gbl | 4 +- .../zwave_soc_switch_on_off_BRD2603A_v255.gbl | 4 +- .../gbl/zwave_soc_switch_on_off_BRD2705A.gbl | 4 +- .../zwave_soc_switch_on_off_BRD2705A_v255.gbl | 4 +- .../gbl/zwave_soc_switch_on_off_BRD4204C.gbl | 4 +- .../zwave_soc_switch_on_off_BRD4204C_v255.gbl | 4 +- .../gbl/zwave_soc_switch_on_off_BRD4204D.gbl | 4 +- .../zwave_soc_switch_on_off_BRD4204D_v255.gbl | 4 +- .../gbl/zwave_soc_switch_on_off_BRD4205A.gbl | 4 +- .../zwave_soc_switch_on_off_BRD4205A_v255.gbl | 4 +- .../gbl/zwave_soc_switch_on_off_BRD4205B.gbl | 2 +- .../zwave_soc_switch_on_off_BRD4205B_v255.gbl | 4 +- .../gbl/zwave_soc_switch_on_off_BRD4210A.gbl | 4 +- .../zwave_soc_switch_on_off_BRD4210A_v255.gbl | 4 +- .../gbl/zwave_soc_switch_on_off_BRD4400B.gbl | 4 +- .../zwave_soc_switch_on_off_BRD4400B_v255.gbl | 4 +- .../gbl/zwave_soc_switch_on_off_BRD4400C.gbl | 4 +- .../zwave_soc_switch_on_off_BRD4400C_v255.gbl | 4 +- .../gbl/zwave_soc_switch_on_off_BRD4401B.gbl | 4 +- .../zwave_soc_switch_on_off_BRD4401B_v255.gbl | 4 +- .../gbl/zwave_soc_switch_on_off_BRD4401C.gbl | 4 +- .../zwave_soc_switch_on_off_BRD4401C_v255.gbl | 4 +- .../zwave_soc_wall_controller_BRD2603A.gbl | 4 +- ...wave_soc_wall_controller_BRD2603A_v255.gbl | 4 +- .../zwave_soc_wall_controller_BRD2705A.gbl | 4 +- ...wave_soc_wall_controller_BRD2705A_v255.gbl | 2 +- .../zwave_soc_wall_controller_BRD4204C.gbl | 4 +- ...wave_soc_wall_controller_BRD4204C_v255.gbl | 4 +- .../zwave_soc_wall_controller_BRD4204D.gbl | 4 +- ...wave_soc_wall_controller_BRD4204D_v255.gbl | 4 +- .../zwave_soc_wall_controller_BRD4205A.gbl | 4 +- ...wave_soc_wall_controller_BRD4205A_v255.gbl | 4 +- .../zwave_soc_wall_controller_BRD4205B.gbl | 4 +- ...wave_soc_wall_controller_BRD4205B_v255.gbl | 4 +- .../zwave_soc_wall_controller_BRD4210A.gbl | 4 +- ...wave_soc_wall_controller_BRD4210A_v255.gbl | 4 +- .../zwave_soc_wall_controller_BRD4400B.gbl | 4 +- ...wave_soc_wall_controller_BRD4400B_v255.gbl | 4 +- .../zwave_soc_wall_controller_BRD4400C.gbl | 2 +- ...wave_soc_wall_controller_BRD4400C_v255.gbl | 4 +- .../zwave_soc_wall_controller_BRD4401B.gbl | 4 +- ...wave_soc_wall_controller_BRD4401B_v255.gbl | 4 +- .../zwave_soc_wall_controller_BRD4401C.gbl | 4 +- ...wave_soc_wall_controller_BRD4401C_v255.gbl | 4 +- .../z-wave/Apps/zwave_ncp_serial_api/app.c | 8 + .../z-wave/Apps/zwave_ncp_serial_api/app.h | 34 +- .../Apps/zwave_ncp_serial_api/cmd_handlers.c | 12 +- .../DoorLockKeyPadU3C.cc_config | 10 - .../Apps/zwave_soc_door_lock_keypad/README.md | 97 ++ .../Apps/zwave_soc_door_lock_keypad/app_cli.c | 2 +- .../app_cli_cc_user_credential.c | 755 ++++++++ .../app_credentials.c | 2 +- .../zwave_soc_door_lock_keypad_u3c.slcp | 108 ++ ...ader-storage-internal-single-512k_ota.slcp | 2 + .../series2/bootloader-uart-xmodem_otw.slcp | 2 + .../ZAF/ApplicationUtilities/ZAF_file_ids.h | 5 + .../Notification/inc/cc_notification_events.h | 10 - .../CommandClasses/UserCode/src/CC_UserCode.c | 4 +- .../config/cc_user_credential_config.h | 154 +- .../UserCredential/inc/CC_UserCredential.h | 132 +- .../inc/cc_user_credential_config_api.h | 12 +- .../inc/cc_user_credential_io.h | 43 +- .../inc/cc_user_credential_nvm.h | 92 + .../inc/cc_user_credential_validation.h | 28 + .../UserCredential/src/CC_UserCredential.c | 1498 +++++++++------- .../cc_user_code_database_user_credential.c | 47 +- .../src/cc_user_credential_config_api.c | 79 +- .../src/cc_user_credential_io_weak.c | 12 + ..._credential_manufacturer_validation_weak.c | 66 +- .../src/cc_user_credential_nvm.c | 380 +++-- .../src/cc_user_credential_validation.c | 123 ++ .../__pycache__/cc_base.cpython-310.pyc | Bin 4084 -> 4084 bytes .../__pycache__/ccs.cpython-310.pyc | Bin 1965 -> 1965 bytes .../CommandClasses/zw_cc_user_credential.slcc | 2 + .../zw_cc_user_credential_nvm.slcc | 4 + protocol/z-wave/component/zw_versions.slcc | 4 +- .../z-wave/dist/include/zwave/ZW_classcmd.h | 554 ++---- .../dist/lib/libZWaveController_series2.a | 4 +- .../z-wave/dist/lib/libZWaveSlave_series2.a | 4 +- protocol/z-wave/dist/lib/libzpal_EFR32ZG23.a | 2 +- .../dist/lib/libzpal_EFR32ZG23_zniffer.a | 2 +- .../dist/lib/libzpal_EFR32ZG23_zniffer_app.a | 2 +- protocol/z-wave/dist/lib/libzpal_EFR32ZG28.a | 2 +- .../dist/lib/libzpal_EFR32ZG28_zniffer.a | 2 +- .../dist/lib/libzpal_EFR32ZG28_zniffer_app.a | 2 +- protocol/z-wave/dist/lib/libzpal_ZGM23.a | 4 +- .../z-wave/dist/lib/libzpal_ZGM23_zniffer.a | 4 +- .../dist/lib/libzpal_ZGM23_zniffer_app.a | 4 +- protocol/z-wave/docs_public/docs.xml | 26 +- .../src/DoorLockKeyPad/DoorLockKeyPad_hw.c | 7 +- .../cc_user_credential_config.h | 106 +- protocol/z-wave/z-wave_production_demos.xml | 708 ++++---- protocol/z-wave/zwave.properties | 4 +- .../component/zigbee_high_datarate_phy.slcc | 14 + .../high_datarate_phy/high_datarate_phy.c | 64 +- .../high_datarate_phy/high_datarate_phy.h | 21 +- .../green-power-af-wrapper.c | 3 + .../app/framework/scenarios/z3/Z3Light/app.c | 6 +- .../scenarios/z3/Z3LightGPCombo/app.c | 1 - .../scenarios/z3/z3-light_ot-ftd_soc/app.c | 2 - protocol/zigbee/app/framework/util/util.c | 3 + .../release/libncp-pro-library.a | 2 +- .../libncp-pro-library.a | 2 +- .../release/libzigbee-cbke-core.a | 2 +- .../libzigbee-cbke-core.a | 2 +- .../release/libzigbee-dynamic-commissioning.a | 2 +- .../libzigbee-dynamic-commissioning.a | 2 +- .../zigbee-gp/release/libzigbee-gp.a | 2 +- .../release_singlenetwork/libzigbee-gp.a | 2 +- .../zigbee-mfglib/release/libzigbee-mfglib.a | 2 +- .../release_singlenetwork/libzigbee-mfglib.a | 2 +- .../release/libzigbee-multi-network.a | 2 +- .../release/libzigbee-ncp-uart.a | 2 +- .../libzigbee-ncp-uart.a | 2 +- .../release/libzigbee-pro-leaf-stack.a | 4 +- .../libzigbee-pro-leaf-stack.a | 4 +- .../release/libzigbee-pro-router-stack.a | 4 +- .../libzigbee-pro-router-stack.a | 4 +- .../libzigbee-pro-stack-mac-test-cmds.a | 4 +- .../libzigbee-pro-stack-mac-test-cmds.a | 4 +- .../release/libzigbee-pro-stack.a | 4 +- .../libzigbee-pro-stack.a | 4 +- .../libzigbee-r22-support-mac-test-cmds.a | 2 +- .../libzigbee-r22-support-mac-test-cmds.a | 2 +- .../release/libzigbee-r22-support.a | 2 +- .../libzigbee-r22-support.a | 2 +- .../release/libzigbee-r23-support.a | 2 +- .../libzigbee-r23-support.a | 2 +- .../zigbee-zll/release/libzigbee-zll.a | 2 +- .../release_singlenetwork/libzigbee-zll.a | 2 +- .../release/libncp-pro-library.a | 2 +- .../libncp-pro-library.a | 2 +- .../release/libzigbee-cbke-core.a | 2 +- .../libzigbee-cbke-core.a | 2 +- .../release/libzigbee-dynamic-commissioning.a | 2 +- .../libzigbee-dynamic-commissioning.a | 2 +- .../arm32v7/zigbee-gp/release/libzigbee-gp.a | 2 +- .../release_singlenetwork/libzigbee-gp.a | 2 +- .../zigbee-mfglib/release/libzigbee-mfglib.a | 2 +- .../release_singlenetwork/libzigbee-mfglib.a | 2 +- .../release/libzigbee-multi-network.a | 2 +- .../release/libzigbee-ncp-uart.a | 2 +- .../libzigbee-ncp-uart.a | 2 +- .../release/libzigbee-pro-leaf-stack.a | 4 +- .../libzigbee-pro-leaf-stack.a | 4 +- .../release/libzigbee-pro-router-stack.a | 4 +- .../libzigbee-pro-router-stack.a | 4 +- .../libzigbee-pro-stack-mac-test-cmds.a | 4 +- .../libzigbee-pro-stack-mac-test-cmds.a | 4 +- .../release/libzigbee-pro-stack.a | 4 +- .../libzigbee-pro-stack.a | 4 +- .../libzigbee-r22-support-mac-test-cmds.a | 2 +- .../libzigbee-r22-support-mac-test-cmds.a | 2 +- .../release/libzigbee-r22-support.a | 2 +- .../libzigbee-r22-support.a | 2 +- .../release/libzigbee-r23-support.a | 2 +- .../libzigbee-r23-support.a | 2 +- .../zigbee-zll/release/libzigbee-zll.a | 2 +- .../release_singlenetwork/libzigbee-zll.a | 2 +- .../release/libncp-pro-library.a | 2 +- .../libncp-pro-library.a | 2 +- .../release/libzigbee-cbke-core.a | 2 +- .../libzigbee-cbke-core.a | 2 +- .../release/libzigbee-dynamic-commissioning.a | 2 +- .../libzigbee-dynamic-commissioning.a | 2 +- .../arm64v8/zigbee-gp/release/libzigbee-gp.a | 2 +- .../release_singlenetwork/libzigbee-gp.a | 2 +- .../zigbee-mfglib/release/libzigbee-mfglib.a | 2 +- .../release_singlenetwork/libzigbee-mfglib.a | 2 +- .../release/libzigbee-multi-network.a | 2 +- .../release/libzigbee-ncp-uart.a | 2 +- .../libzigbee-ncp-uart.a | 2 +- .../release/libzigbee-pro-leaf-stack.a | 4 +- .../libzigbee-pro-leaf-stack.a | 4 +- .../release/libzigbee-pro-router-stack.a | 4 +- .../libzigbee-pro-router-stack.a | 4 +- .../libzigbee-pro-stack-mac-test-cmds.a | 4 +- .../libzigbee-pro-stack-mac-test-cmds.a | 4 +- .../release/libzigbee-pro-stack.a | 4 +- .../libzigbee-pro-stack.a | 4 +- .../libzigbee-r22-support-mac-test-cmds.a | 2 +- .../libzigbee-r22-support-mac-test-cmds.a | 2 +- .../release/libzigbee-r22-support.a | 2 +- .../libzigbee-r22-support.a | 2 +- .../release/libzigbee-r23-support.a | 2 +- .../libzigbee-r23-support.a | 2 +- .../zigbee-zll/release/libzigbee-zll.a | 2 +- .../release_singlenetwork/libzigbee-zll.a | 2 +- .../release/libncp-cbke-library.a | 2 +- .../release_dualrail/libncp-cbke-library.a | 2 +- .../libncp-cbke-library.a | 2 +- .../libncp-cbke-library.a | 2 +- .../release/libncp-gp-library.a | 2 +- .../release_dualrail/libncp-gp-library.a | 2 +- .../libncp-gp-library.a | 2 +- .../release_singlenetwork/libncp-gp-library.a | 2 +- .../release/libncp-mfglib-library.a | 2 +- .../release_dualrail/libncp-mfglib-library.a | 2 +- .../libncp-mfglib-library.a | 2 +- .../libncp-mfglib-library.a | 2 +- .../release/libncp-pro-library.a | 2 +- .../release_dualrail/libncp-pro-library.a | 2 +- .../libncp-pro-library.a | 2 +- .../libncp-pro-library.a | 2 +- .../release/libncp-source-route-library.a | 2 +- .../libncp-source-route-library.a | 2 +- .../libncp-source-route-library.a | 2 +- .../libncp-source-route-library.a | 2 +- .../release/libncp-zll-library.a | 2 +- .../release_dualrail/libncp-zll-library.a | 2 +- .../libncp-zll-library.a | 2 +- .../libncp-zll-library.a | 2 +- .../release/libzigbee-cbke-163k1.a | 2 +- .../release_dualrail/libzigbee-cbke-163k1.a | 2 +- .../libzigbee-cbke-163k1.a | 2 +- .../libzigbee-cbke-163k1.a | 2 +- .../release/libzigbee-cbke-283k1.a | 2 +- .../release_dualrail/libzigbee-cbke-283k1.a | 2 +- .../libzigbee-cbke-283k1.a | 2 +- .../libzigbee-cbke-283k1.a | 2 +- .../release/libzigbee-cbke-core.a | 2 +- .../release_dualrail/libzigbee-cbke-core.a | 2 +- .../libzigbee-cbke-core.a | 2 +- .../libzigbee-cbke-core.a | 2 +- .../release/libzigbee-cbke-dsa-sign.a | 2 +- .../libzigbee-cbke-dsa-sign.a | 2 +- .../libzigbee-cbke-dsa-sign.a | 2 +- .../libzigbee-cbke-dsa-sign.a | 2 +- .../release/libzigbee-cbke-dsa-verify-283k1.a | 2 +- .../libzigbee-cbke-dsa-verify-283k1.a | 2 +- .../libzigbee-cbke-dsa-verify-283k1.a | 2 +- .../libzigbee-cbke-dsa-verify-283k1.a | 2 +- .../release/libzigbee-cbke-dsa-verify.a | 2 +- .../libzigbee-cbke-dsa-verify.a | 2 +- .../libzigbee-cbke-dsa-verify.a | 2 +- .../libzigbee-cbke-dsa-verify.a | 2 +- .../release/libzigbee-debug-basic.a | 2 +- .../release_dualrail/libzigbee-debug-basic.a | 2 +- .../libzigbee-debug-basic.a | 2 +- .../libzigbee-debug-basic.a | 2 +- .../release/libzigbee-debug-extended.a | 2 +- .../libzigbee-debug-extended.a | 2 +- .../libzigbee-debug-extended.a | 2 +- .../libzigbee-debug-extended.a | 2 +- .../release/libzigbee-dynamic-commissioning.a | 2 +- .../libzigbee-dynamic-commissioning.a | 2 +- .../libzigbee-dynamic-commissioning.a | 2 +- .../libzigbee-dynamic-commissioning.a | 2 +- .../zigbee-gp/release/libzigbee-gp.a | 2 +- .../zigbee-gp/release_dualrail/libzigbee-gp.a | 2 +- .../libzigbee-gp.a | 2 +- .../release_singlenetwork/libzigbee-gp.a | 2 +- .../zigbee-mfglib/release/libzigbee-mfglib.a | 2 +- .../release_dualrail/libzigbee-mfglib.a | 2 +- .../libzigbee-mfglib.a | 2 +- .../release_singlenetwork/libzigbee-mfglib.a | 2 +- .../release/libzigbee-multi-network.a | 2 +- .../release/libzigbee-multi-pan.a | 2 +- .../release/libzigbee-ncp-cpc.a | 2 +- .../release_dualrail/libzigbee-ncp-cpc.a | 2 +- .../libzigbee-ncp-cpc.a | 2 +- .../release_singlenetwork/libzigbee-ncp-cpc.a | 2 +- .../release/libzigbee-ncp-spi.a | 2 +- .../release_dualrail/libzigbee-ncp-spi.a | 2 +- .../libzigbee-ncp-spi.a | 2 +- .../release_singlenetwork/libzigbee-ncp-spi.a | 2 +- .../release/libzigbee-ncp-uart.a | 2 +- .../release_dualrail/libzigbee-ncp-uart.a | 2 +- .../libzigbee-ncp-uart.a | 2 +- .../libzigbee-ncp-uart.a | 2 +- .../libzigbee-pro-leaf-stack-mac-test-cmds.a | 4 +- .../libzigbee-pro-leaf-stack-mac-test-cmds.a | 4 +- .../libzigbee-pro-leaf-stack-mac-test-cmds.a | 4 +- .../libzigbee-pro-leaf-stack-mac-test-cmds.a | 4 +- .../release/libzigbee-pro-leaf-stack.a | 4 +- .../libzigbee-pro-leaf-stack.a | 4 +- .../libzigbee-pro-leaf-stack.a | 4 +- .../libzigbee-pro-leaf-stack.a | 4 +- ...er-stack-with-high-datarate-phy-rail-mux.a | 4 +- ...er-stack-with-high-datarate-phy-rail-mux.a | 4 +- ...-pro-router-stack-with-high-datarate-phy.a | 4 +- ...-pro-router-stack-with-high-datarate-phy.a | 4 +- .../release/libzigbee-pro-router-stack.a | 4 +- .../libzigbee-pro-router-stack.a | 4 +- .../libzigbee-pro-router-stack.a | 4 +- .../libzigbee-pro-router-stack.a | 4 +- .../release/libzigbee-pro-stack-alt-mac.a | 4 +- .../libzigbee-pro-stack-alt-mac.a | 4 +- .../libzigbee-pro-stack-alt-mac.a | 4 +- .../libzigbee-pro-stack-alt-mac.a | 4 +- .../libzigbee-pro-stack-mac-test-cmds.a | 4 +- .../libzigbee-pro-stack-mac-test-cmds.a | 4 +- .../libzigbee-pro-stack-mac-test-cmds.a | 4 +- .../libzigbee-pro-stack-mac-test-cmds.a | 4 +- .../libzigbee-pro-stack-non-default-mac.a | 4 +- .../libzigbee-pro-stack-non-default-mac.a | 4 +- .../libzigbee-pro-stack-non-default-mac.a | 4 +- .../libzigbee-pro-stack-non-default-mac.a | 4 +- .../release/libzigbee-pro-stack-rail-mux.a | 4 +- .../libzigbee-pro-stack-rail-mux.a | 4 +- ...ro-stack-with-high-datarate-phy-rail-mux.a | 4 +- ...ro-stack-with-high-datarate-phy-rail-mux.a | 4 +- ...bzigbee-pro-stack-with-high-datarate-phy.a | 4 +- ...bzigbee-pro-stack-with-high-datarate-phy.a | 4 +- .../release/libzigbee-pro-stack.a | 4 +- .../release_dualrail/libzigbee-pro-stack.a | 4 +- .../libzigbee-pro-stack.a | 4 +- .../libzigbee-pro-stack.a | 4 +- .../libzigbee-r22-support-mac-test-cmds.a | 2 +- .../libzigbee-r22-support-mac-test-cmds.a | 2 +- .../libzigbee-r22-support-mac-test-cmds.a | 2 +- .../libzigbee-r22-support-mac-test-cmds.a | 2 +- .../release/libzigbee-r22-support.a | 2 +- .../release_dualrail/libzigbee-r22-support.a | 2 +- .../libzigbee-r22-support.a | 2 +- .../libzigbee-r22-support.a | 2 +- .../release/libzigbee-r23-support.a | 2 +- .../release_dualrail/libzigbee-r23-support.a | 2 +- .../libzigbee-r23-support.a | 2 +- .../libzigbee-r23-support.a | 2 +- .../release/libzigbee-source-route.a | 2 +- .../release_dualrail/libzigbee-source-route.a | 2 +- .../libzigbee-source-route.a | 2 +- .../libzigbee-source-route.a | 2 +- .../zigbee-xncp/release/libzigbee-xncp.a | 2 +- .../release_dualrail/libzigbee-xncp.a | 2 +- .../libzigbee-xncp.a | 2 +- .../release_singlenetwork/libzigbee-xncp.a | 2 +- .../zigbee-zll/release/libzigbee-zll.a | 2 +- .../release_dualrail/libzigbee-zll.a | 2 +- .../libzigbee-zll.a | 2 +- .../release_singlenetwork/libzigbee-zll.a | 2 +- .../release/libncp-pro-library.a | 2 +- .../libncp-pro-library.a | 2 +- .../release/libzigbee-cbke-core.a | 2 +- .../libzigbee-cbke-core.a | 2 +- .../release/libzigbee-dynamic-commissioning.a | 2 +- .../libzigbee-dynamic-commissioning.a | 2 +- .../gcc/i386/zigbee-gp/release/libzigbee-gp.a | 2 +- .../release_singlenetwork/libzigbee-gp.a | 2 +- .../zigbee-mfglib/release/libzigbee-mfglib.a | 2 +- .../release_singlenetwork/libzigbee-mfglib.a | 2 +- .../release/libzigbee-multi-network.a | 2 +- .../release/libzigbee-ncp-uart.a | 2 +- .../libzigbee-ncp-uart.a | 2 +- .../release/libzigbee-pro-leaf-stack.a | 4 +- .../libzigbee-pro-leaf-stack.a | 4 +- .../release/libzigbee-pro-router-stack.a | 4 +- .../libzigbee-pro-router-stack.a | 4 +- .../libzigbee-pro-stack-mac-test-cmds.a | 4 +- .../libzigbee-pro-stack-mac-test-cmds.a | 4 +- .../release/libzigbee-pro-stack.a | 4 +- .../libzigbee-pro-stack.a | 4 +- .../libzigbee-r22-support-mac-test-cmds.a | 2 +- .../libzigbee-r22-support-mac-test-cmds.a | 2 +- .../release/libzigbee-r22-support.a | 2 +- .../libzigbee-r22-support.a | 2 +- .../release/libzigbee-r23-support.a | 2 +- .../libzigbee-r23-support.a | 2 +- .../i386/zigbee-zll/release/libzigbee-zll.a | 2 +- .../release_singlenetwork/libzigbee-zll.a | 2 +- .../release/libncp-pro-library.a | 2 +- .../libncp-pro-library.a | 2 +- .../release/libzigbee-cbke-core.a | 2 +- .../libzigbee-cbke-core.a | 2 +- .../release/libzigbee-dynamic-commissioning.a | 2 +- .../libzigbee-dynamic-commissioning.a | 2 +- .../x86-64/zigbee-gp/release/libzigbee-gp.a | 2 +- .../release_singlenetwork/libzigbee-gp.a | 2 +- .../zigbee-mfglib/release/libzigbee-mfglib.a | 2 +- .../release_singlenetwork/libzigbee-mfglib.a | 2 +- .../release/libzigbee-multi-network.a | 2 +- .../release/libzigbee-ncp-uart.a | 2 +- .../libzigbee-ncp-uart.a | 2 +- .../release/libzigbee-pro-leaf-stack.a | 4 +- .../libzigbee-pro-leaf-stack.a | 4 +- .../release/libzigbee-pro-router-stack.a | 4 +- .../libzigbee-pro-router-stack.a | 4 +- .../libzigbee-pro-stack-mac-test-cmds.a | 4 +- .../libzigbee-pro-stack-mac-test-cmds.a | 4 +- .../release/libzigbee-pro-stack.a | 4 +- .../libzigbee-pro-stack.a | 4 +- .../libzigbee-r22-support-mac-test-cmds.a | 2 +- .../libzigbee-r22-support-mac-test-cmds.a | 2 +- .../release/libzigbee-r22-support.a | 2 +- .../libzigbee-r22-support.a | 2 +- .../release/libzigbee-r23-support.a | 2 +- .../libzigbee-r23-support.a | 2 +- .../x86-64/zigbee-zll/release/libzigbee-zll.a | 2 +- .../release_singlenetwork/libzigbee-zll.a | 2 +- .../release/libncp-cbke-library.a | 2 +- .../release_dualrail/libncp-cbke-library.a | 2 +- .../libncp-cbke-library.a | 2 +- .../libncp-cbke-library.a | 2 +- .../libncp-cbke-library.a | 2 +- .../libncp-cbke-library.a | 2 +- .../libncp-cbke-library.a | 2 +- .../libncp-cbke-library.a | 2 +- .../release/libncp-gp-library.a | 2 +- .../release_dualrail/libncp-gp-library.a | 2 +- .../libncp-gp-library.a | 2 +- .../release_singlenetwork/libncp-gp-library.a | 2 +- .../libncp-gp-library.a | 2 +- .../libncp-gp-library.a | 2 +- .../libncp-gp-library.a | 2 +- .../libncp-gp-library.a | 2 +- .../release/libncp-mfglib-library.a | 2 +- .../release_dualrail/libncp-mfglib-library.a | 2 +- .../libncp-mfglib-library.a | 2 +- .../libncp-mfglib-library.a | 2 +- .../libncp-mfglib-library.a | 2 +- .../libncp-mfglib-library.a | 2 +- .../libncp-mfglib-library.a | 2 +- .../libncp-mfglib-library.a | 2 +- .../release/libncp-pro-library.a | 2 +- .../release_dualrail/libncp-pro-library.a | 2 +- .../libncp-pro-library.a | 2 +- .../libncp-pro-library.a | 2 +- .../libncp-pro-library.a | 2 +- .../libncp-pro-library.a | 2 +- .../libncp-pro-library.a | 2 +- .../libncp-pro-library.a | 2 +- .../release/libncp-source-route-library.a | 2 +- .../libncp-source-route-library.a | 2 +- .../libncp-source-route-library.a | 2 +- .../libncp-source-route-library.a | 2 +- .../libncp-source-route-library.a | 2 +- .../libncp-source-route-library.a | 2 +- .../libncp-source-route-library.a | 2 +- .../libncp-source-route-library.a | 2 +- .../release/libncp-zll-library.a | 2 +- .../release_dualrail/libncp-zll-library.a | 2 +- .../libncp-zll-library.a | 2 +- .../libncp-zll-library.a | 2 +- .../libncp-zll-library.a | 2 +- .../libncp-zll-library.a | 2 +- .../libncp-zll-library.a | 2 +- .../libncp-zll-library.a | 2 +- .../release/libzigbee-cbke-163k1.a | 2 +- .../release_dualrail/libzigbee-cbke-163k1.a | 2 +- .../libzigbee-cbke-163k1.a | 2 +- .../libzigbee-cbke-163k1.a | 2 +- .../libzigbee-cbke-163k1.a | 2 +- .../libzigbee-cbke-163k1.a | 2 +- .../libzigbee-cbke-163k1.a | 2 +- .../libzigbee-cbke-163k1.a | 2 +- .../release/libzigbee-cbke-283k1.a | 2 +- .../release_dualrail/libzigbee-cbke-283k1.a | 2 +- .../libzigbee-cbke-283k1.a | 2 +- .../libzigbee-cbke-283k1.a | 2 +- .../libzigbee-cbke-283k1.a | 2 +- .../libzigbee-cbke-283k1.a | 2 +- .../libzigbee-cbke-283k1.a | 2 +- .../libzigbee-cbke-283k1.a | 2 +- .../release/libzigbee-cbke-core.a | 2 +- .../release_dualrail/libzigbee-cbke-core.a | 2 +- .../libzigbee-cbke-core.a | 2 +- .../libzigbee-cbke-core.a | 2 +- .../libzigbee-cbke-core.a | 2 +- .../libzigbee-cbke-core.a | 2 +- .../libzigbee-cbke-core.a | 2 +- .../libzigbee-cbke-core.a | 2 +- .../release/libzigbee-cbke-dsa-sign.a | 2 +- .../libzigbee-cbke-dsa-sign.a | 2 +- .../libzigbee-cbke-dsa-sign.a | 2 +- .../libzigbee-cbke-dsa-sign.a | 2 +- .../libzigbee-cbke-dsa-sign.a | 2 +- .../libzigbee-cbke-dsa-sign.a | 2 +- .../libzigbee-cbke-dsa-sign.a | 2 +- .../libzigbee-cbke-dsa-sign.a | 2 +- .../release/libzigbee-cbke-dsa-verify-283k1.a | 2 +- .../libzigbee-cbke-dsa-verify-283k1.a | 2 +- .../libzigbee-cbke-dsa-verify-283k1.a | 2 +- .../libzigbee-cbke-dsa-verify-283k1.a | 2 +- .../libzigbee-cbke-dsa-verify-283k1.a | 2 +- .../libzigbee-cbke-dsa-verify-283k1.a | 2 +- .../libzigbee-cbke-dsa-verify-283k1.a | 2 +- .../libzigbee-cbke-dsa-verify-283k1.a | 2 +- .../release/libzigbee-cbke-dsa-verify.a | 2 +- .../libzigbee-cbke-dsa-verify.a | 2 +- .../libzigbee-cbke-dsa-verify.a | 2 +- .../libzigbee-cbke-dsa-verify.a | 2 +- .../libzigbee-cbke-dsa-verify.a | 2 +- .../libzigbee-cbke-dsa-verify.a | 2 +- .../libzigbee-cbke-dsa-verify.a | 2 +- .../libzigbee-cbke-dsa-verify.a | 2 +- .../release/libzigbee-debug-basic.a | 2 +- .../release_dualrail/libzigbee-debug-basic.a | 2 +- .../libzigbee-debug-basic.a | 2 +- .../libzigbee-debug-basic.a | 2 +- .../libzigbee-debug-basic.a | 2 +- .../libzigbee-debug-basic.a | 2 +- .../libzigbee-debug-basic.a | 2 +- .../libzigbee-debug-basic.a | 2 +- .../release/libzigbee-debug-extended.a | 2 +- .../libzigbee-debug-extended.a | 2 +- .../libzigbee-debug-extended.a | 2 +- .../libzigbee-debug-extended.a | 2 +- .../libzigbee-debug-extended.a | 2 +- .../libzigbee-debug-extended.a | 2 +- .../libzigbee-debug-extended.a | 2 +- .../libzigbee-debug-extended.a | 2 +- .../release/libzigbee-dynamic-commissioning.a | 2 +- .../libzigbee-dynamic-commissioning.a | 2 +- .../libzigbee-dynamic-commissioning.a | 2 +- .../libzigbee-dynamic-commissioning.a | 2 +- .../libzigbee-dynamic-commissioning.a | 2 +- .../libzigbee-dynamic-commissioning.a | 2 +- .../libzigbee-dynamic-commissioning.a | 2 +- .../libzigbee-dynamic-commissioning.a | 2 +- .../zigbee-gp/release/libzigbee-gp.a | 2 +- .../zigbee-gp/release_dualrail/libzigbee-gp.a | 2 +- .../libzigbee-gp.a | 2 +- .../release_singlenetwork/libzigbee-gp.a | 2 +- .../release_stackprotection/libzigbee-gp.a | 2 +- .../libzigbee-gp.a | 2 +- .../libzigbee-gp.a | 2 +- .../libzigbee-gp.a | 2 +- .../zigbee-mfglib/release/libzigbee-mfglib.a | 2 +- .../release_dualrail/libzigbee-mfglib.a | 2 +- .../libzigbee-mfglib.a | 2 +- .../release_singlenetwork/libzigbee-mfglib.a | 2 +- .../libzigbee-mfglib.a | 2 +- .../libzigbee-mfglib.a | 2 +- .../libzigbee-mfglib.a | 2 +- .../libzigbee-mfglib.a | 2 +- .../release/libzigbee-multi-network.a | 2 +- .../libzigbee-multi-network.a | 2 +- .../release/libzigbee-multi-pan.a | 2 +- .../libzigbee-multi-pan.a | 2 +- .../release/libzigbee-ncp-cpc.a | 2 +- .../release_dualrail/libzigbee-ncp-cpc.a | 2 +- .../libzigbee-ncp-cpc.a | 2 +- .../release_singlenetwork/libzigbee-ncp-cpc.a | 2 +- .../libzigbee-ncp-cpc.a | 2 +- .../libzigbee-ncp-cpc.a | 2 +- .../libzigbee-ncp-cpc.a | 2 +- .../libzigbee-ncp-cpc.a | 2 +- .../release/libzigbee-ncp-spi.a | 2 +- .../release_dualrail/libzigbee-ncp-spi.a | 2 +- .../libzigbee-ncp-spi.a | 2 +- .../release_singlenetwork/libzigbee-ncp-spi.a | 2 +- .../libzigbee-ncp-spi.a | 2 +- .../libzigbee-ncp-spi.a | 2 +- .../libzigbee-ncp-spi.a | 2 +- .../libzigbee-ncp-spi.a | 2 +- .../release/libzigbee-ncp-uart.a | 2 +- .../release_dualrail/libzigbee-ncp-uart.a | 2 +- .../libzigbee-ncp-uart.a | 2 +- .../libzigbee-ncp-uart.a | 2 +- .../libzigbee-ncp-uart.a | 2 +- .../libzigbee-ncp-uart.a | 2 +- .../libzigbee-ncp-uart.a | 2 +- .../libzigbee-ncp-uart.a | 2 +- .../libzigbee-pro-leaf-stack-mac-test-cmds.a | 4 +- .../libzigbee-pro-leaf-stack-mac-test-cmds.a | 4 +- .../libzigbee-pro-leaf-stack-mac-test-cmds.a | 4 +- .../libzigbee-pro-leaf-stack-mac-test-cmds.a | 4 +- .../libzigbee-pro-leaf-stack-mac-test-cmds.a | 4 +- .../libzigbee-pro-leaf-stack-mac-test-cmds.a | 4 +- .../libzigbee-pro-leaf-stack-mac-test-cmds.a | 4 +- .../libzigbee-pro-leaf-stack-mac-test-cmds.a | 4 +- .../release/libzigbee-pro-leaf-stack.a | 4 +- .../libzigbee-pro-leaf-stack.a | 4 +- .../libzigbee-pro-leaf-stack.a | 4 +- .../libzigbee-pro-leaf-stack.a | 4 +- .../libzigbee-pro-leaf-stack.a | 4 +- .../libzigbee-pro-leaf-stack.a | 4 +- .../libzigbee-pro-leaf-stack.a | 4 +- .../libzigbee-pro-leaf-stack.a | 4 +- ...er-stack-with-high-datarate-phy-rail-mux.a | 4 +- ...er-stack-with-high-datarate-phy-rail-mux.a | 4 +- ...er-stack-with-high-datarate-phy-rail-mux.a | 4 +- ...er-stack-with-high-datarate-phy-rail-mux.a | 4 +- ...-pro-router-stack-with-high-datarate-phy.a | 4 +- ...-pro-router-stack-with-high-datarate-phy.a | 4 +- ...-pro-router-stack-with-high-datarate-phy.a | 4 +- ...-pro-router-stack-with-high-datarate-phy.a | 4 +- .../release/libzigbee-pro-router-stack.a | 4 +- .../libzigbee-pro-router-stack.a | 4 +- .../libzigbee-pro-router-stack.a | 4 +- .../libzigbee-pro-router-stack.a | 4 +- .../libzigbee-pro-router-stack.a | 4 +- .../libzigbee-pro-router-stack.a | 4 +- .../libzigbee-pro-router-stack.a | 4 +- .../libzigbee-pro-router-stack.a | 4 +- .../release/libzigbee-pro-stack-alt-mac.a | 4 +- .../libzigbee-pro-stack-alt-mac.a | 4 +- .../libzigbee-pro-stack-alt-mac.a | 4 +- .../libzigbee-pro-stack-alt-mac.a | 4 +- .../libzigbee-pro-stack-alt-mac.a | 4 +- .../libzigbee-pro-stack-alt-mac.a | 4 +- .../libzigbee-pro-stack-alt-mac.a | 4 +- .../libzigbee-pro-stack-alt-mac.a | 4 +- .../libzigbee-pro-stack-mac-test-cmds.a | 4 +- .../libzigbee-pro-stack-mac-test-cmds.a | 4 +- .../libzigbee-pro-stack-mac-test-cmds.a | 4 +- .../libzigbee-pro-stack-mac-test-cmds.a | 4 +- .../libzigbee-pro-stack-mac-test-cmds.a | 4 +- .../libzigbee-pro-stack-mac-test-cmds.a | 4 +- .../libzigbee-pro-stack-mac-test-cmds.a | 4 +- .../libzigbee-pro-stack-mac-test-cmds.a | 4 +- .../libzigbee-pro-stack-non-default-mac.a | 4 +- .../libzigbee-pro-stack-non-default-mac.a | 4 +- .../libzigbee-pro-stack-non-default-mac.a | 4 +- .../libzigbee-pro-stack-non-default-mac.a | 4 +- .../libzigbee-pro-stack-non-default-mac.a | 4 +- .../libzigbee-pro-stack-non-default-mac.a | 4 +- .../libzigbee-pro-stack-non-default-mac.a | 4 +- .../libzigbee-pro-stack-non-default-mac.a | 4 +- .../release/libzigbee-pro-stack-rail-mux.a | 4 +- .../libzigbee-pro-stack-rail-mux.a | 4 +- .../libzigbee-pro-stack-rail-mux.a | 4 +- .../libzigbee-pro-stack-rail-mux.a | 4 +- ...ro-stack-with-high-datarate-phy-rail-mux.a | 4 +- ...ro-stack-with-high-datarate-phy-rail-mux.a | 4 +- ...ro-stack-with-high-datarate-phy-rail-mux.a | 4 +- ...ro-stack-with-high-datarate-phy-rail-mux.a | 4 +- ...bzigbee-pro-stack-with-high-datarate-phy.a | 4 +- ...bzigbee-pro-stack-with-high-datarate-phy.a | 4 +- ...bzigbee-pro-stack-with-high-datarate-phy.a | 4 +- ...bzigbee-pro-stack-with-high-datarate-phy.a | 4 +- .../release/libzigbee-pro-stack.a | 4 +- .../release_dualrail/libzigbee-pro-stack.a | 4 +- .../libzigbee-pro-stack.a | 4 +- .../libzigbee-pro-stack.a | 4 +- .../libzigbee-pro-stack.a | 4 +- .../libzigbee-pro-stack.a | 4 +- .../libzigbee-pro-stack.a | 4 +- .../libzigbee-pro-stack.a | 4 +- .../libzigbee-r22-support-mac-test-cmds.a | 2 +- .../libzigbee-r22-support-mac-test-cmds.a | 2 +- .../libzigbee-r22-support-mac-test-cmds.a | 2 +- .../libzigbee-r22-support-mac-test-cmds.a | 2 +- .../libzigbee-r22-support-mac-test-cmds.a | 2 +- .../libzigbee-r22-support-mac-test-cmds.a | 2 +- .../libzigbee-r22-support-mac-test-cmds.a | 2 +- .../libzigbee-r22-support-mac-test-cmds.a | 2 +- .../release/libzigbee-r22-support.a | 2 +- .../release_dualrail/libzigbee-r22-support.a | 2 +- .../libzigbee-r22-support.a | 2 +- .../libzigbee-r22-support.a | 2 +- .../libzigbee-r22-support.a | 2 +- .../libzigbee-r22-support.a | 2 +- .../libzigbee-r22-support.a | 2 +- .../libzigbee-r22-support.a | 2 +- .../release/libzigbee-r23-support.a | 2 +- .../release_dualrail/libzigbee-r23-support.a | 2 +- .../libzigbee-r23-support.a | 2 +- .../libzigbee-r23-support.a | 2 +- .../libzigbee-r23-support.a | 2 +- .../libzigbee-r23-support.a | 2 +- .../libzigbee-r23-support.a | 2 +- .../libzigbee-r23-support.a | 2 +- .../release/libzigbee-source-route.a | 2 +- .../release_dualrail/libzigbee-source-route.a | 2 +- .../libzigbee-source-route.a | 2 +- .../libzigbee-source-route.a | 2 +- .../libzigbee-source-route.a | 2 +- .../libzigbee-source-route.a | 2 +- .../libzigbee-source-route.a | 2 +- .../libzigbee-source-route.a | 2 +- .../zigbee-xncp/release/libzigbee-xncp.a | 2 +- .../release_dualrail/libzigbee-xncp.a | 2 +- .../libzigbee-xncp.a | 2 +- .../release_singlenetwork/libzigbee-xncp.a | 2 +- .../release_stackprotection/libzigbee-xncp.a | 2 +- .../libzigbee-xncp.a | 2 +- .../libzigbee-xncp.a | 2 +- .../libzigbee-xncp.a | 2 +- .../zigbee-zll/release/libzigbee-zll.a | 2 +- .../release_dualrail/libzigbee-zll.a | 2 +- .../libzigbee-zll.a | 2 +- .../release_singlenetwork/libzigbee-zll.a | 2 +- .../release_stackprotection/libzigbee-zll.a | 2 +- .../libzigbee-zll.a | 2 +- .../libzigbee-zll.a | 2 +- .../libzigbee-zll.a | 2 +- .../zigbee_gsdk_to_sisdk_compatibility.lua | 9 + protocol/zigbee/component/upgrade.slcu | 1 + .../component/zigbee_pro_stack_rail_mux.slcc | 4 +- protocol/zigbee/docs/release-highlights.txt | 2 +- .../documentation/slEmberZNet_docContent.xml | 130 +- protocol/zigbee/esf.properties | 6 +- protocol/zigbee/stack/config/config.h | 4 +- .../stack/core/sl_zigbee_multi_network_stub.c | 4 + .../high_datarate_phy_stack_interface.h | 10 +- ...atarate_phy_stack_interface_internal_def.h | 7 +- ..._phy_stack_interface_baremetal_callbacks.c | 6 +- ...te_phy_stack_interface_baremetal_wrapper.c | 9 + ..._phy_stack_interface_ipc_callback_events.c | 7 +- ..._phy_stack_interface_ipc_callback_events.h | 1 + ...phy_stack_interface_ipc_command_messages.c | 30 + ...phy_stack_interface_ipc_command_messages.h | 15 + .../src/ipc/message_ipc_command_messages.c | 5 +- ...bee_dlk_negotiation_ipc_command_messages.c | 5 +- ...ity_manager_dlk_ecc_ipc_command_messages.c | 39 +- ...lk_ecc_test_vectors_ipc_command_messages.c | 12 +- ...zigbee_zdo_security_ipc_command_messages.c | 10 +- .../src/ipc/stack-info-ipc-command-messages.c | 11 +- ...ee-security-manager-ipc-command-messages.c | 27 +- .../src/ipc/zigbee_ipc_command_messages.h | 1 + ..._phy_stack_interface_internal_weak_stubs.c | 10 + .../stack/platform/zigbee_token_interface.c | 10 +- .../image-builder/image-builder-windows.exe | 2 +- protocol/zigbee/zigbee_production_demos.xml | 20 +- simplicity_sdk.slcs | 23 +- .../release/gcc/aarch64/linux/librtl_static.a | 4 +- .../gcc/arm_m33/generic/librtl_static.a | 4 +- .../release/gcc/armv7l/linux/librtl_static.a | 4 +- .../release/gcc/x86_64/darwin/librtl_static.a | 4 +- .../release/gcc/x86_64/linux/librtl_static.a | 4 +- .../gcc/x86_64/windows/librtl_static.a | 4 +- .../component/aws_demos/aws_demos_core.slcc | 3 + .../component/aws_tests/aws_tests_core.slcc | 3 + .../component/c_sdk/iot_appversion32.slcc | 4 +- .../component/c_sdk/iot_atomic.slcc | 4 +- .../component/c_sdk/iot_cbor_serializer.slcc | 30 +- .../component/c_sdk/iot_config_common.slcc | 3 + .../c_sdk/iot_default_root_certificates.slcc | 4 +- .../component/c_sdk/iot_device_metrics.slcc | 4 +- .../c_sdk/iot_doubly_linked_list.slcc | 4 +- .../component/c_sdk/iot_error.slcc | 4 +- .../component/c_sdk/iot_https_client.slcc | 3 + .../component/c_sdk/iot_init.slcc | 4 +- .../component/c_sdk/iot_json_serializer.slcc | 10 + .../component/c_sdk/iot_lib_init.slcc | 4 +- .../component/c_sdk/iot_lib_tinycbor.slcc | 45 + .../c_sdk/iot_linear_containers.slcc | 4 +- .../component/c_sdk/iot_logging_headers.slcc | 4 +- .../component/c_sdk/iot_mqtt.slcc | 19 +- .../component/c_sdk/iot_network_types.slcc | 4 +- .../c_sdk/iot_sbom_freertos_common.slcc | 21 + .../component/c_sdk/iot_static_memory.slcc | 4 +- .../component/c_sdk/iot_taskpool.slcc | 4 +- .../c_sdk/lib_abstract_backoff_algorithm.slcc | 44 + .../component/core_libs/core_http.slcc | 21 +- .../component/core_libs/core_mqtt.slcc | 11 +- .../component/core_libs/core_pkcs11.slcc | 30 +- .../core_libs/lib_3rdparty_pkcs11.slcc | 29 + .../lib_abstraction_pkcs11_test.slcc | 32 + .../core_libs/lib_mbedtls_utils.slcc | 31 + .../component/freertos_plus/freertos_cli.slcc | 11 + .../freertos_plus/freertos_posix.slcc | 13 +- .../freertos_plus/freertos_tcpip.slcc | 11 + .../component/freertos_plus/iot_crypto.slcc | 5 +- .../freertos_plus/iot_system_init.slcc | 3 + .../component/freertos_plus/iot_tls.slcc | 24 +- .../iot_transport_secure_sockets.slcc | 29 + .../component/iot_ble/iot_ble.slcc | 11 + .../component/iot_common_io/iot_adc.slcc | 7 +- .../iot_common_io/iot_common_io.slcc | 3 + .../component/iot_common_io/iot_efuse.slcc | 6 + .../component/iot_common_io/iot_flash.slcc | 8 +- .../component/iot_common_io/iot_gpio.slcc | 5 + .../component/iot_common_io/iot_i2c.slcc | 5 + .../component/iot_common_io/iot_power.slcc | 6 + .../component/iot_common_io/iot_pwm.slcc | 5 + .../component/iot_common_io/iot_reset.slcc | 5 + .../component/iot_common_io/iot_rtc.slcc | 5 + .../iot_sbom_lib_abstraction_common_io.slcc | 23 + .../component/iot_common_io/iot_spi.slcc | 6 + .../component/iot_common_io/iot_timer.slcc | 6 + .../component/iot_common_io/iot_tsensor.slcc | 6 + .../component/iot_common_io/iot_uart.slcc | 5 + .../component/iot_common_io/iot_watchdog.slcc | 6 + .../component/iot_logging/iot_logging.slcc | 10 + .../component/iot_platform/iot_clock.slcc | 10 + .../component/iot_platform/iot_metrics.slcc | 10 + .../component/iot_platform/iot_network.slcc | 10 + .../iot_platform_secure_sockets.slcc | 33 + .../iot_platform/iot_platform_types.slcc | 15 +- .../component/iot_platform/iot_threads.slcc | 10 + .../aws_demos/config_files/FreeRTOSConfig.h | 1 - .../aws_tests/config_files/FreeRTOSConfig.h | 1 - .../common_io/iot_adc/include/iot_adc_drv.h | 2 +- .../iot_adc/include/iot_adc_drv_inc.h | 2 +- .../iot_adc/include/iot_adc_drv_sar.h | 2 +- .../iot_adc/include/iot_adc_pinout_drv.h | 2 +- .../iot_adc/source/iot_adc_drv_inc.c | 2 +- .../iot_adc/source/iot_adc_drv_sar.c | 2 +- .../iot_adc/source/iot_adc_pinout_drv.c | 2 +- .../iot_efuse/include/iot_efuse_drv_nvm.h | 2 +- .../iot_efuse/include/iot_efuse_drv_ram.h | 2 +- .../iot_efuse/include/iot_efuse_drv_tok.h | 2 +- .../iot_efuse/source/iot_efuse_drv_nvm.c | 2 +- .../iot_efuse/source/iot_efuse_drv_ram.c | 2 +- .../iot_efuse/source/iot_efuse_drv_tok.c | 2 +- .../iot_flash/source/iot_flash_drv_msc.c | 2 +- .../iot_flash/source/iot_flash_drv_spi.c | 8 +- .../common_io/iot_i2c/source/iot_i2c_drv.c | 2 +- .../iot_power/source/iot_power_drv.c | 2 +- .../common_io/iot_pwm/source/iot_pwm_drv.c | 2 +- .../iot_reset/source/iot_reset_drv.c | 2 +- .../iot_reset/source/iot_reset_hal.c | 2 +- .../common_io/iot_rtc/source/iot_rtc_drv.c | 2 +- .../common_io/iot_spi/source/iot_spi_drv.c | 2 +- .../iot_test/iot_test_common_io_setup.c | 2 +- .../iot_timer/source/iot_timer_drv.c | 2 +- .../iot_timer/source/iot_timer_hal.c | 2 +- .../iot_tsensor/source/iot_tsensor_drv.c | 2 +- .../common_io/iot_uart/source/iot_uart_drv.c | 2 +- .../iot_watchdog/source/iot_watchdog_drv.c | 2 +- .../cmsis/lib/gcc/cortex-m33/libCMSISDSP.a | 2 +- .../cmsis/lib/gcc/cortex-m33/libcmsis-nn.a | 2 +- .../cmsis/lib/gcc/cortex-m4/libCMSISDSP.a | 2 +- .../cmsis/lib/gcc/cortex-m4/libcmsis-nn.a | 2 +- .../cmsis/lib/iar/cortex-m33/libCMSISDSP.a | 2 +- .../cmsis/lib/iar/cortex-m33/libcmsis-nn.a | 2 +- .../freertos/config/series3/FreeRTOSConfig.h | 8 +- .../portable/SiliconLabs/tick_power_manager.c | 8 +- .../lwip_addons_ipv6_static_routing.slcc | 10 + .../lwip/component/lwip_addons_netconn.slcc | 10 + .../lwip/component/lwip_addons_tcp_isn.slcc | 12 +- .../lwip/component/lwip_addons_tcp_md5.slcc | 12 +- util/third_party/lwip/component/lwip_api.slcc | 12 +- .../lwip/component/lwip_app_altcp_tls.slcc | 12 +- .../lwip/component/lwip_app_http.slcc | 10 + .../lwip/component/lwip_app_lwiperf.slcc | 12 +- .../lwip/component/lwip_app_mdns.slcc | 12 +- .../lwip/component/lwip_app_mqtt.slcc | 12 +- .../lwip/component/lwip_app_netbiosns.slcc | 12 +- .../lwip/component/lwip_app_smtp.slcc | 12 +- .../lwip/component/lwip_app_snmp.slcc | 12 +- .../lwip/component/lwip_app_sntp.slcc | 12 +- .../lwip/component/lwip_app_tftp.slcc | 12 +- .../third_party/lwip/component/lwip_core.slcc | 10 + .../lwip/component/lwip_netif_bridge.slcc | 12 +- .../lwip/component/lwip_netif_ethernet.slcc | 12 +- .../lwip/component/lwip_netif_lowpan6.slcc | 12 +- .../component/lwip_netif_lowpan6_ble.slcc | 12 +- .../lwip/component/lwip_netif_ppp.slcc | 12 +- .../lwip/component/lwip_netif_slipif.slcc | 12 +- .../lwip/component/lwip_port_freertos.slcc | 10 + .../lwip/component/lwip_port_micriumos.slcc | 10 + .../lib/gcc/cortex-m33/libtflm.a | 2 +- .../lib/gcc/cortex-m4/libtflm.a | 2 +- .../__pycache__/__init__.cpython-310.pyc | Bin 423 -> 423 bytes .../__pycache__/_version.cpython-310.pyc | Bin 240 -> 240 bytes .../__pycache__/builder.cpython-310.pyc | Bin 22440 -> 22440 bytes .../__pycache__/compat.cpython-310.pyc | Bin 1535 -> 1535 bytes .../__pycache__/encode.cpython-310.pyc | Bin 1203 -> 1203 bytes .../__pycache__/number_types.cpython-310.pyc | Bin 4221 -> 4221 bytes .../__pycache__/packer.cpython-310.pyc | Bin 754 -> 754 bytes .../__pycache__/table.cpython-310.pyc | Bin 4287 -> 4287 bytes .../__pycache__/util.cpython-310.pyc | Bin 1225 -> 1225 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 233 -> 233 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 242 -> 242 bytes .../schema_py_generated.cpython-310.pyc | Bin 302617 -> 302617 bytes .../BuiltinOperator.cpython-310.pyc | Bin 3854 -> 3854 bytes .../tflite/__pycache__/Model.cpython-310.pyc | Bin 9347 -> 9347 bytes .../__pycache__/OperatorCode.cpython-310.pyc | Bin 3956 -> 3956 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 216 -> 216 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 628 -> 628 bytes .../__pycache__/tflite_layer.cpython-310.pyc | Bin 18834 -> 18834 bytes .../__pycache__/tflite_model.cpython-310.pyc | Bin 16919 -> 16919 bytes .../__pycache__/tflite_tensor.cpython-310.pyc | Bin 6146 -> 6146 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 328 -> 328 bytes .../flatbuffer_dictionary.cpython-310.pyc | Bin 11886 -> 11886 bytes .../tflite_model_parameters.cpython-310.pyc | Bin 4456 -> 4456 bytes .../__pycache__/BinaryValue.cpython-310.pyc | Bin 3312 -> 3312 bytes .../__pycache__/BoolValue.cpython-310.pyc | Bin 2325 -> 2325 bytes .../__pycache__/Dictionary.cpython-310.pyc | Bin 3778 -> 3778 bytes .../__pycache__/DoubleValue.cpython-310.pyc | Bin 2356 -> 2356 bytes .../schema/__pycache__/Entry.cpython-310.pyc | Bin 3445 -> 3445 bytes .../__pycache__/FloatValue.cpython-310.pyc | Bin 2345 -> 2345 bytes .../__pycache__/Int16Value.cpython-310.pyc | Bin 2327 -> 2327 bytes .../__pycache__/Int32Value.cpython-310.pyc | Bin 2327 -> 2327 bytes .../__pycache__/Int64Value.cpython-310.pyc | Bin 2327 -> 2327 bytes .../__pycache__/Int8Value.cpython-310.pyc | Bin 2314 -> 2314 bytes .../__pycache__/StringList.cpython-310.pyc | Bin 3051 -> 3051 bytes .../__pycache__/StringValue.cpython-310.pyc | Bin 2358 -> 2358 bytes .../__pycache__/Uint16Value.cpython-310.pyc | Bin 2340 -> 2340 bytes .../__pycache__/Uint32Value.cpython-310.pyc | Bin 2340 -> 2340 bytes .../__pycache__/Uint64Value.cpython-310.pyc | Bin 2340 -> 2340 bytes .../__pycache__/Uint8Value.cpython-310.pyc | Bin 2327 -> 2327 bytes .../schema/__pycache__/Value.cpython-310.pyc | Bin 642 -> 642 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 356 -> 356 bytes 3388 files changed, 36177 insertions(+), 19572 deletions(-) create mode 100644 app/flex/component/rail/sl_flex_rail_sleep.slcc create mode 100644 app/flex/component/rail/sl_flex_rail_sleep/sl_flex_rail_sleep.c create mode 100644 app/flex/component/rail/sl_flex_rail_sleep/sl_flex_rail_sleep.h rename app/flex/component/rail/sl_radioprs/config/s2/{sl_radioprs_inst_config.h => sl_radioprs_config_inst.h} (96%) rename app/flex/component/rail/sl_radioprs/config/s2/xg21/{sl_radioprs_inst_config.h => sl_radioprs_config_inst.h} (95%) create mode 100644 app/flex/component/rail/sl_radioprs/template/s2_clock_manager/sl_radioprs_init_instances.c.jinja create mode 100644 app/flex/example/example_host/rail_host_simple_rail_cpc_to_serial/CMakeLists.txt create mode 100644 app/flex/example/example_host/rail_host_simple_rail_cpc_to_serial/cpc_to_serial.c create mode 100644 app/flex/example/example_host/rail_host_simple_rail_cpc_to_serial/makefile rename app/multiprotocol/{containers/multiprotocol-container/_artifacts => apps/zigbeed/usr/local}/etc/zigbeed.conf (99%) rename app/multiprotocol/containers/{multiprotocol-container/_artifacts => host-container/artifacts}/systemd/cpc-hci-bridge.service (100%) rename app/multiprotocol/containers/{multiprotocol-container/_artifacts => host-container/artifacts}/systemd/cpcd.service (84%) rename app/multiprotocol/containers/{multiprotocol-container/_artifacts => host-container/artifacts}/systemd/hciattach.service (100%) rename app/multiprotocol/containers/{multiprotocol-container/_artifacts => host-container/artifacts}/systemd/master.service (100%) rename app/multiprotocol/containers/{multiprotocol-container/_artifacts => host-container/artifacts}/systemd/otbr@.service (100%) rename app/multiprotocol/containers/{multiprotocol-container/_artifacts => host-container/artifacts}/systemd/zigbeed-socat.service (100%) rename app/multiprotocol/containers/{multiprotocol-container/_artifacts => host-container/artifacts}/systemd/zigbeed.service (100%) rename app/multiprotocol/containers/{multiprotocol-container => host-container}/run.sh (99%) create mode 100644 hardware/board/component/brd4276a.slcc create mode 100644 hardware/board/config/brd2606a/sl_icm40627_config.h create mode 100644 hardware/board/config/brd2606a/sl_rail_util_ant_div_config.h create mode 100644 hardware/board/config/brd2606a/sl_rail_util_pa_config.h create mode 100644 hardware/board/config/brd2608a/sl_icm40627_config.h create mode 100644 hardware/board/config/brd4276a_brd4001a/btl_euart_driver_cfg.h create mode 100644 hardware/board/config/brd4276a_brd4001a/btl_gpio_activation_cfg.h create mode 100644 hardware/board/config/brd4276a_brd4001a/btl_spi_controller_eusart_driver_cfg.h create mode 100644 hardware/board/config/brd4276a_brd4001a/btl_spi_peripheral_eusart_driver_cfg.h create mode 100644 hardware/board/config/brd4276a_brd4001a/iot_flash_cfg_msc.h create mode 100644 hardware/board/config/brd4276a_brd4001a/iot_i2c_cfg_exp.h create mode 100644 hardware/board/config/brd4276a_brd4001a/iot_i2c_cfg_sensor.h create mode 100644 hardware/board/config/brd4276a_brd4001a/iot_i2c_cfg_test.h create mode 100644 hardware/board/config/brd4276a_brd4001a/iot_pwm_cfg_led0.h create mode 100644 hardware/board/config/brd4276a_brd4001a/iot_pwm_cfg_led1.h create mode 100644 hardware/board/config/brd4276a_brd4001a/sl_board_control_config.h create mode 100644 hardware/board/config/brd4276a_brd4001a/sl_clock_manager_oscillator_config.h create mode 100644 hardware/board/config/brd4276a_brd4001a/sl_clock_manager_tree_config.h create mode 100644 hardware/board/config/brd4276a_brd4001a/sl_cpc_drv_secondary_spi_eusart_exp_config.h create mode 100644 hardware/board/config/brd4276a_brd4001a/sl_cpc_drv_uart_eusart_exp_config.h create mode 100644 hardware/board/config/brd4276a_brd4001a/sl_cpc_drv_uart_eusart_vcom_config.h create mode 100644 hardware/board/config/brd4276a_brd4001a/sl_cpc_gpio_expander_gpio_btn0_config.h create mode 100644 hardware/board/config/brd4276a_brd4001a/sl_cpc_gpio_expander_gpio_btn1_config.h create mode 100644 hardware/board/config/brd4276a_brd4001a/sl_device_init_hfxo_config.h create mode 100644 hardware/board/config/brd4276a_brd4001a/sl_device_init_lfxo_config.h create mode 100644 hardware/board/config/brd4276a_brd4001a/sl_fem_util_config.h create mode 100644 hardware/board/config/brd4276a_brd4001a/sl_iostream_eusart_exp_config.h create mode 100644 hardware/board/config/brd4276a_brd4001a/sl_iostream_eusart_vcom_config.h create mode 100644 hardware/board/config/brd4276a_brd4001a/sl_memlcd_eusart_config.h create mode 100644 hardware/board/config/brd4276a_brd4001a/sl_mx25_flash_shutdown_eusart_config.h create mode 100644 hardware/board/config/brd4276a_brd4001a/sl_pwm_init_led0_config.h create mode 100644 hardware/board/config/brd4276a_brd4001a/sl_pwm_init_led1_config.h create mode 100644 hardware/board/config/brd4276a_brd4001a/sl_rail_util_pa_config.h create mode 100644 hardware/board/config/brd4276a_brd4001a/sl_rail_util_pti_config.h create mode 100644 hardware/board/config/brd4276a_brd4001a/sl_rail_util_rssi_config.h create mode 100644 hardware/board/config/brd4276a_brd4001a/sl_simple_button_btn0_config.h create mode 100644 hardware/board/config/brd4276a_brd4001a/sl_simple_button_btn1_config.h create mode 100644 hardware/board/config/brd4276a_brd4001a/sl_simple_led_led0_config.h create mode 100644 hardware/board/config/brd4276a_brd4001a/sl_simple_led_led1_config.h create mode 100644 hardware/board/config/brd4276a_brd4001a/sl_spidrv_eusart_exp_config.h create mode 100644 hardware/board/config/brd4276a_brd4001a/sl_uartdrv_eusart_exp_config.h create mode 100644 hardware/board/config/brd4276a_brd4001a/sl_uartdrv_eusart_vcom_config.h create mode 100644 hardware/board/config/brd4276a_brd4001a/sl_usbd_driver_config.h create mode 100644 hardware/board/config/brd4276a_brd4002a/btl_euart_driver_cfg.h create mode 100644 hardware/board/config/brd4276a_brd4002a/btl_gpio_activation_cfg.h create mode 100644 hardware/board/config/brd4276a_brd4002a/btl_spi_controller_eusart_driver_cfg.h create mode 100644 hardware/board/config/brd4276a_brd4002a/btl_spi_peripheral_eusart_driver_cfg.h create mode 100644 hardware/board/config/brd4276a_brd4002a/iot_flash_cfg_msc.h create mode 100644 hardware/board/config/brd4276a_brd4002a/iot_i2c_cfg_exp.h create mode 100644 hardware/board/config/brd4276a_brd4002a/iot_i2c_cfg_sensor.h create mode 100644 hardware/board/config/brd4276a_brd4002a/iot_i2c_cfg_test.h create mode 100644 hardware/board/config/brd4276a_brd4002a/iot_pwm_cfg_led0.h create mode 100644 hardware/board/config/brd4276a_brd4002a/iot_pwm_cfg_led1.h create mode 100644 hardware/board/config/brd4276a_brd4002a/sl_board_control_config.h create mode 100644 hardware/board/config/brd4276a_brd4002a/sl_clock_manager_oscillator_config.h create mode 100644 hardware/board/config/brd4276a_brd4002a/sl_clock_manager_tree_config.h create mode 100644 hardware/board/config/brd4276a_brd4002a/sl_cpc_drv_secondary_spi_eusart_exp_config.h create mode 100644 hardware/board/config/brd4276a_brd4002a/sl_cpc_drv_uart_eusart_exp_config.h create mode 100644 hardware/board/config/brd4276a_brd4002a/sl_cpc_drv_uart_eusart_vcom_config.h create mode 100644 hardware/board/config/brd4276a_brd4002a/sl_cpc_gpio_expander_gpio_btn0_config.h create mode 100644 hardware/board/config/brd4276a_brd4002a/sl_cpc_gpio_expander_gpio_btn1_config.h create mode 100644 hardware/board/config/brd4276a_brd4002a/sl_device_init_hfxo_config.h create mode 100644 hardware/board/config/brd4276a_brd4002a/sl_device_init_lfxo_config.h create mode 100644 hardware/board/config/brd4276a_brd4002a/sl_fem_util_config.h create mode 100644 hardware/board/config/brd4276a_brd4002a/sl_iostream_eusart_exp_config.h create mode 100644 hardware/board/config/brd4276a_brd4002a/sl_iostream_eusart_vcom_config.h create mode 100644 hardware/board/config/brd4276a_brd4002a/sl_memlcd_eusart_config.h create mode 100644 hardware/board/config/brd4276a_brd4002a/sl_mx25_flash_shutdown_eusart_config.h create mode 100644 hardware/board/config/brd4276a_brd4002a/sl_pwm_init_led0_config.h create mode 100644 hardware/board/config/brd4276a_brd4002a/sl_pwm_init_led1_config.h create mode 100644 hardware/board/config/brd4276a_brd4002a/sl_rail_util_pa_config.h create mode 100644 hardware/board/config/brd4276a_brd4002a/sl_rail_util_pti_config.h create mode 100644 hardware/board/config/brd4276a_brd4002a/sl_rail_util_rssi_config.h create mode 100644 hardware/board/config/brd4276a_brd4002a/sl_simple_button_btn0_config.h create mode 100644 hardware/board/config/brd4276a_brd4002a/sl_simple_button_btn1_config.h create mode 100644 hardware/board/config/brd4276a_brd4002a/sl_simple_led_led0_config.h create mode 100644 hardware/board/config/brd4276a_brd4002a/sl_simple_led_led1_config.h create mode 100644 hardware/board/config/brd4276a_brd4002a/sl_spidrv_eusart_exp_config.h create mode 100644 hardware/board/config/brd4276a_brd4002a/sl_uartdrv_eusart_exp_config.h create mode 100644 hardware/board/config/brd4276a_brd4002a/sl_uartdrv_eusart_vcom_config.h create mode 100644 hardware/board/config/brd4276a_brd4002a/sl_usbd_driver_config.h create mode 100644 hardware/board/config/component/brd4276a_config.slcc create mode 100644 hardware/driver/component/icm40627_driver.slcc create mode 100644 hardware/driver/component/imu_driver_icm40627.slcc create mode 100644 hardware/driver/icm40627/config/sl_icm40627_config.h create mode 100644 hardware/driver/icm40627/inc/sl_icm40627.h create mode 100644 hardware/driver/icm40627/inc/sl_icm40627_defs.h create mode 100644 hardware/driver/icm40627/src/sl_icm40627.c create mode 100644 hardware/driver/imu/src/sl_imu_icm40627.c create mode 100644 platform/peripheral/inc/peripheral_dcdc_coulomb_counter.h create mode 100644 platform/peripheral/inc/peripheral_dcdc_coulomb_counter_compat.h create mode 100644 platform/peripheral/inc/peripheral_etampdet.h create mode 100644 platform/peripheral/inc/peripheral_etampdet_compat.h create mode 100644 platform/peripheral/inc/peripheral_keyscan.h create mode 100644 platform/peripheral/inc/peripheral_keyscan_compat.h create mode 100644 platform/peripheral/inc/peripheral_sysrtc.h create mode 100644 platform/peripheral/inc/peripheral_sysrtc_compat.h delete mode 100644 platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/static/base/__pycache__/.nfs000000002ed7bc600002bfa7 delete mode 100644 platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/calculators/__pycache__/.nfs000000002ed7ef470002bff5 delete mode 100644 platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/.nfs000000002ed7e9cb00058dc8 delete mode 100644 platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/phys/__pycache__/.nfs000000002ed7fad60005a6dc delete mode 100644 platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/profiles/__pycache__/.nfs000000002ed7f4580005a6b4 delete mode 100644 platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/nixi/calculators/__pycache__/.nfs000000002ed7f19000058df5 delete mode 100644 platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/__pycache__/.nfs000000002ed7e7ae0005a673 delete mode 100644 platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/profiles/__pycache__/.nfs000000002ed7f6bd0002bffd create mode 100644 platform/radio/rail_lib/plugin/pa-conversions/efr32xg25/pa_curves_brd4276a.h create mode 100644 platform/radio/rail_lib/plugin/pa-conversions/efr32xg25/sl_rail_util_pa_dbm_powersetting_mapping_table_brd4276a.h create mode 100644 protocol/openthread/component/ot_rtos_wrappers_real.slcc delete mode 100644 protocol/openthread/component/ot_wrappers_stub.slcc mode change 100755 => 100644 protocol/openthread/sample-apps/ot-ble-dmp/app.c mode change 100755 => 100644 protocol/openthread/sample-apps/ot-cli/app.c mode change 100755 => 100644 protocol/openthread/sample-apps/ot-ncp/app.c mode change 100755 => 100644 protocol/openthread/sample-apps/sleepy-demo/app.c delete mode 100644 protocol/wisun/component/wisun_test_certificates.slcc delete mode 100644 protocol/wisun/plugin/config/sl_wisun_test_certificates.h create mode 100644 protocol/z-wave/Apps/zwave_soc_door_lock_keypad/app_cli_cc_user_credential.c create mode 100644 protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/cc_user_credential_nvm.h create mode 100644 protocol/z-wave/ZAF/CommandClasses/UserCredential/inc/cc_user_credential_validation.h create mode 100644 protocol/z-wave/ZAF/CommandClasses/UserCredential/src/cc_user_credential_validation.c create mode 100644 protocol/zigbee/component/scripts/zigbee_gsdk_to_sisdk_compatibility.lua create mode 100644 util/third_party/aws_iot_libs/component/c_sdk/iot_lib_tinycbor.slcc create mode 100644 util/third_party/aws_iot_libs/component/c_sdk/iot_sbom_freertos_common.slcc create mode 100644 util/third_party/aws_iot_libs/component/c_sdk/lib_abstract_backoff_algorithm.slcc create mode 100644 util/third_party/aws_iot_libs/component/core_libs/lib_3rdparty_pkcs11.slcc create mode 100644 util/third_party/aws_iot_libs/component/core_libs/lib_abstraction_pkcs11_test.slcc create mode 100644 util/third_party/aws_iot_libs/component/core_libs/lib_mbedtls_utils.slcc create mode 100644 util/third_party/aws_iot_libs/component/freertos_plus/iot_transport_secure_sockets.slcc create mode 100644 util/third_party/aws_iot_libs/component/iot_common_io/iot_sbom_lib_abstraction_common_io.slcc create mode 100644 util/third_party/aws_iot_libs/component/iot_platform/iot_platform_secure_sockets.slcc diff --git a/.properties b/.properties index 9ff718823d..8dc9b05787 100644 --- a/.properties +++ b/.properties @@ -1,6 +1,6 @@ id=com.silabs.sdk.stack.sisdk -version=2024.6.1 +version=2024.6.2 label=Simplicity SDK Suite description=Simplicity SDK Suite diff --git a/README.md b/README.md index 601fc6b254..3e0a10ccf5 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ An archive of all documents associated with the latest release of Simplicity SDK ## Getting Started with Simplicity SDK -The recommended method to get started with the Simplicity SDK is to first install [Simplicity Studio 5](https://www.silabs.com/developers/simplicity-studio), which will set up your development environment and walk you through the installation of Simplicity SDK. Alternatively, Simplicity SDK and other required tools may be installed manually. +The recommended method to get started with the Simplicity SDK is to first install [Simplicity Studio 5](https://www.silabs.com/developers/simplicity-studio), which will setup your development environment and walk you through the installation of Simplicity SDK. Alternatively, Simplicity SDK and other required tools may be installed manually. ### Installing through Simplicity Studio @@ -48,14 +48,14 @@ A Simplicity SDK development environment may also be installed and set up manual #### Simplicity SDK -Simplicity SDK releases are packaged as an archive that may be downloaded from the [Releases](https://github.com/SiliconLabs/simplicity_sdk/releases) page on GitHub. You may also clone this repo using a [git client](https://github.com/git-guides/install-git). Note that an installation of [git lfs](https://git-lfs.github.com/) is also required. If you are installing git lfs only to use with the Simplicity SDK, you do not need to specify file types. +Simplicity SDK releases are packaged as an archive that may be downloaded from the [Releases](https://github.com/SiliconLabs/simplicity_sdk/releases) page on GitHub. You may also clone this repo using a [git client](https://github.com/git-guides/install-git). Note that an installation of [git lfs](https://git-lfs.github.com/) is also required. If you are installing git lfs only to use with the 12.2.rel1, you do not need to specify file types. #### Toolchain -This release of Simplicity SDK supports the Arm Embedded Toolchain version 12.2.1 and IAR Embedded Workbench version 9.40.1. One of these toolchains must be installed: +This release of Simplicity SDK supports the Arm Embedded Toolchain version 12.2.Rel1 and IAR Embedded Workbench version 9.40.1. One of these toolchains must be installed. -- [GNU Arm Embedded Toolchain](https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads/12-2-rel1) - Download and install v12.2.1 for your host operating system. -- [IAR Embedded Workbench for Arm](https://www.iar.com/products/architectures/arm/iar-embedded-workbench-for-arm/) - Only the latest version is available in Downloads; for older versions you must log-in to your "My Pages". +- [GNU Arm Embedded Toolchain](https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads/12-2-rel1) - Download and install v12.2.Rel1 for your host operating system. +- [IAR Embedded Workbench for Arm]( https://www.iar.com/products/architectures/arm/iar-embedded-workbench-for-arm/) - Only the latest version is available in Downloads; for older versions you must log-in to your "My Pages". #### Silicon Labs Configurator (SLC) Command-line Interface (CLI) diff --git a/app/bluetooth/bluetooth_evaluation_demos.xml b/app/bluetooth/bluetooth_evaluation_demos.xml index 33b8c55892..869a43b6c0 100644 --- a/app/bluetooth/bluetooth_evaluation_demos.xml +++ b/app/bluetooth/bluetooth_evaluation_demos.xml @@ -6,11 +6,11 @@ - + - + Channel Sounding (CS) Initiator for Bluetooth LE. This example connects to a CS Reflector device and starts the distance measurement. Results are printed on the display of the WSTK and can be read via the serial port VCOM. It can measure in two CS measurement modes PBR (default) and RTT. RTT mode can be selected by pressing down the BTN0 while resetting the device. It can measure in two object tracking modes as well: in moving object tracking mode (default) or in stationary object tracking mode. In moving object tracking mode measurement results will be calculated for every procedure. In stationary object tracking mode multiple CS procedure data is required for the estimation process. The progress of the estimation will be shown on the LCD and in the logs in percentages. Once the estimation process is done the measurement results will be shown similarly like in the moving object tracking mode. Stationary object tracking mode can be selected by pressing down the BTN1 while resetting the device. In case the default CS mode or object tracking mode is changed in initiator_app_config.h the other CS mode or object tracking mode can be selected with its dedicated push button (BTN0 or BTN1). The actual mode can be checked on the serial output and in the captured logs. To capture JSONL and text logs a log_filter.py Python3 script is provided with this example. This utility will listen to the same serial port VCOM and will extract the necessary logs. Check out the help of log_filter.py for more on capturing logs while measuring distance with CS. @@ -18,11 +18,11 @@ - + - + Channel Sounding (CS) Reflector for Bluetooth LE. This example sends measurement results back to the CS Initiator device via GATT notifications. It is scheduled by the CS Ranging Service. CS Reflector should have to connect to at least one CS Initiator device to send measurement data to and it is also capable to connect to multiple CS Initiators. Check the CS Reflector component for more on the available connections. The application starts advertising after boot and keeps advertising until not every connection slots are occupied. It will stop advertising when it is full. Once at least one slot becomes free again the device start to advertise. @@ -30,10 +30,10 @@ - + - + diff --git a/app/bluetooth/bluetooth_internal_demos.xml b/app/bluetooth/bluetooth_internal_demos.xml index 9d887160dc..7160623829 100644 --- a/app/bluetooth/bluetooth_internal_demos.xml +++ b/app/bluetooth/bluetooth_internal_demos.xml @@ -6,11 +6,11 @@ - + - + This example is an evaluation showcase for a Bluetooth Electronic Shelf Label (ESL) Tag application with the ESL Tag Demo component. The example includes image and display capabilities of an ESL Tag, utilizing the memory LCD display on the WSTK board while images are stored in RAM, only. Instead of the Silicon Labs logo, the Demo example will ask the user to run the QRCode generator on startup using the WSTK's display. After configuration the display will show ESL related information. @@ -18,11 +18,11 @@ - + - + This example is an evaluation showcase for a Bluetooth Electronic Shelf Label (ESL) Tag application with the ESL Tag Demo component. The example includes image and display capabilities of an ESL Tag, utilizing the memory LCD display on the WSTK board while images are stored in RAM, only. Instead of the Silicon Labs logo, the Demo example will ask the user to run the QRCode generator on startup using the WSTK's display. After configuration the display will show ESL related information. @@ -30,11 +30,11 @@ - + - + This example is an evaluation showcase for a Bluetooth Electronic Shelf Label (ESL) Tag application with the ESL Tag Demo component. The example includes image and display capabilities of an ESL Tag, utilizing the memory LCD display on the WSTK board while images are stored in RAM, only. Instead of the Silicon Labs logo, the Demo example will ask the user to run the QRCode generator on startup using the WSTK's display. After configuration the display will show ESL related information. @@ -42,11 +42,11 @@ - + - + This example is an evaluation showcase for a Bluetooth Electronic Shelf Label (ESL) Tag application with the ESL Tag Demo component. The example includes image and display capabilities of an ESL Tag, utilizing the memory LCD display on the WSTK board while images are stored in RAM, only. Instead of the Silicon Labs logo, the Demo example will ask the user to run the QRCode generator on startup using the WSTK's display. After configuration the display will show ESL related information. @@ -54,11 +54,11 @@ - + - + This example is an evaluation showcase for a Bluetooth Electronic Shelf Label (ESL) Tag application with the ESL Tag Demo component. The example includes image and display capabilities of an ESL Tag, utilizing the memory LCD display on the WSTK board while images are stored in RAM, only. Instead of the Silicon Labs logo, the Demo example will ask the user to run the QRCode generator on startup using the WSTK's display. After configuration the display will show ESL related information. @@ -66,11 +66,11 @@ - + - + This example is an evaluation showcase for a Bluetooth Electronic Shelf Label (ESL) Tag application with the ESL Tag Demo component. The example includes image and display capabilities of an ESL Tag, utilizing the memory LCD display on the WSTK board while images are stored in RAM, only. Instead of the Silicon Labs logo, the Demo example will ask the user to run the QRCode generator on startup using the WSTK's display. After configuration the display will show ESL related information. @@ -78,11 +78,11 @@ - + - + This example is an evaluation showcase for a Bluetooth Electronic Shelf Label (ESL) Tag application with the ESL Tag Demo component. The example includes image and display capabilities of an ESL Tag, utilizing the memory LCD display on the WSTK board while images are stored in RAM, only. Instead of the Silicon Labs logo, the Demo example will ask the user to run the QRCode generator on startup using the WSTK's display. After configuration the display will show ESL related information. @@ -90,11 +90,11 @@ - + - + This example is an evaluation showcase for a Bluetooth Electronic Shelf Label (ESL) Tag application with the ESL Tag Demo component. The example includes image and display capabilities of an ESL Tag, utilizing the memory LCD display on the WSTK board while images are stored in RAM, only. Instead of the Silicon Labs logo, the Demo example will ask the user to run the QRCode generator on startup using the WSTK's display. After configuration the display will show ESL related information. @@ -102,11 +102,11 @@ - + - + This example is an evaluation showcase for a Bluetooth Electronic Shelf Label (ESL) Tag application with the ESL Tag Demo component. The example includes image and display capabilities of an ESL Tag, utilizing the memory LCD display on the WSTK board while images are stored in RAM, only. Instead of the Silicon Labs logo, the Demo example will ask the user to run the QRCode generator on startup using the WSTK's display. After configuration the display will show ESL related information. @@ -114,11 +114,11 @@ - + - + This example is an evaluation showcase for a Bluetooth Electronic Shelf Label (ESL) Tag application with the ESL Tag Demo component. The example includes image and display capabilities of an ESL Tag, utilizing the memory LCD display on the WSTK board while images are stored in RAM, only. Instead of the Silicon Labs logo, the Demo example will ask the user to run the QRCode generator on startup using the WSTK's display. After configuration the display will show ESL related information. @@ -126,11 +126,11 @@ - + - + This example is an evaluation showcase for a Bluetooth Electronic Shelf Label (ESL) Tag application with the ESL Tag Demo component. The example includes image and display capabilities of an ESL Tag, utilizing the memory LCD display on the WSTK board while images are stored in RAM, only. Instead of the Silicon Labs logo, the Demo example will ask the user to run the QRCode generator on startup using the WSTK's display. After configuration the display will show ESL related information. @@ -138,11 +138,11 @@ - + - + This example is an evaluation showcase for a Bluetooth Electronic Shelf Label (ESL) Tag application with the ESL Tag Demo component. The example includes image and display capabilities of an ESL Tag, utilizing the memory LCD display on the WSTK board while images are stored in RAM, only. Instead of the Silicon Labs logo, the Demo example will ask the user to run the QRCode generator on startup using the WSTK's display. After configuration the display will show ESL related information. @@ -150,11 +150,11 @@ - + - + This example is an evaluation showcase for a Bluetooth Electronic Shelf Label (ESL) Tag application with the ESL Tag Demo component. The example includes image and display capabilities of an ESL Tag, utilizing the memory LCD display on the WSTK board while images are stored in RAM, only. Instead of the Silicon Labs logo, the Demo example will ask the user to run the QRCode generator on startup using the WSTK's display. After configuration the display will show ESL related information. @@ -162,11 +162,11 @@ - + - + This example is an evaluation showcase for a Bluetooth Electronic Shelf Label (ESL) Tag application with the ESL Tag Demo component. The example includes image and display capabilities of an ESL Tag, utilizing the memory LCD display on the WSTK board while images are stored in RAM, only. Instead of the Silicon Labs logo, the Demo example will ask the user to run the QRCode generator on startup using the WSTK's display. After configuration the display will show ESL related information. @@ -174,11 +174,11 @@ - + - + This example is an evaluation showcase for a Bluetooth Electronic Shelf Label (ESL) Tag application with the ESL Tag Demo component. The example includes image and display capabilities of an ESL Tag, utilizing the memory LCD display on the WSTK board while images are stored in RAM, only. Instead of the Silicon Labs logo, the Demo example will ask the user to run the QRCode generator on startup using the WSTK's display. After configuration the display will show ESL related information. @@ -186,11 +186,11 @@ - + - + This example is an evaluation showcase for a Bluetooth Electronic Shelf Label (ESL) Tag application with the ESL Tag Demo component. The example includes image and display capabilities of an ESL Tag, utilizing the memory LCD display on the WSTK board while images are stored in RAM, only. Instead of the Silicon Labs logo, the Demo example will ask the user to run the QRCode generator on startup using the WSTK's display. After configuration the display will show ESL related information. @@ -198,10 +198,10 @@ - + - + diff --git a/app/bluetooth/bluetooth_production_demos.xml b/app/bluetooth/bluetooth_production_demos.xml index 46ba6c28c4..7862c86161 100644 --- a/app/bluetooth/bluetooth_production_demos.xml +++ b/app/bluetooth/bluetooth_production_demos.xml @@ -6,11 +6,11 @@ - + - + Network Co-Processor (NCP) target application with additional features to support the Electronic Shelf Label Profile ESL Access Point role. Note: Some BLE features unused by the ESL Access Point are removed compared to the NCP target application. @@ -18,11 +18,11 @@ - + - + Network Co-Processor (NCP) target application with additional features to support the Electronic Shelf Label Profile ESL Access Point role. Note: Some BLE features unused by the ESL Access Point are removed compared to the NCP target application. @@ -30,11 +30,11 @@ - + - + Network Co-Processor (NCP) target application with additional features to support the Electronic Shelf Label Profile ESL Access Point role. Note: Some BLE features unused by the ESL Access Point are removed compared to the NCP target application. @@ -42,11 +42,11 @@ - + - + Network Co-Processor (NCP) target application with additional features to support the Electronic Shelf Label Profile ESL Access Point role. Note: Some BLE features unused by the ESL Access Point are removed compared to the NCP target application. @@ -54,11 +54,11 @@ - + - + Network Co-Processor (NCP) target application with additional features to support the Electronic Shelf Label Profile ESL Access Point role. Note: Some BLE features unused by the ESL Access Point are removed compared to the NCP target application. @@ -66,11 +66,11 @@ - + - + Network Co-Processor (NCP) target application with additional features to support the Electronic Shelf Label Profile ESL Access Point role. Note: Some BLE features unused by the ESL Access Point are removed compared to the NCP target application. @@ -78,11 +78,11 @@ - + - + Network Co-Processor (NCP) target application with additional features to support the Electronic Shelf Label Profile ESL Access Point role. Note: Some BLE features unused by the ESL Access Point are removed compared to the NCP target application. @@ -90,11 +90,11 @@ - + - + Network Co-Processor (NCP) target application with additional features to support the Electronic Shelf Label Profile ESL Access Point role. Note: Some BLE features unused by the ESL Access Point are removed compared to the NCP target application. @@ -102,11 +102,11 @@ - + - + Network Co-Processor (NCP) target application with additional features to support the Electronic Shelf Label Profile ESL Access Point role. Note: Some BLE features unused by the ESL Access Point are removed compared to the NCP target application. @@ -114,11 +114,11 @@ - + - + Network Co-Processor (NCP) target application with additional features to support the Electronic Shelf Label Profile ESL Access Point role. Note: Some BLE features unused by the ESL Access Point are removed compared to the NCP target application. @@ -126,11 +126,11 @@ - + - + Network Co-Processor (NCP) target application with additional features to support the Electronic Shelf Label Profile ESL Access Point role. Note: Some BLE features unused by the ESL Access Point are removed compared to the NCP target application. @@ -138,11 +138,11 @@ - + - + Network Co-Processor (NCP) target application with additional features to support the Electronic Shelf Label Profile ESL Access Point role. Note: Some BLE features unused by the ESL Access Point are removed compared to the NCP target application. @@ -150,11 +150,11 @@ - + - + Network Co-Processor (NCP) target application with additional features to support the Electronic Shelf Label Profile ESL Access Point role. Note: Some BLE features unused by the ESL Access Point are removed compared to the NCP target application. @@ -162,11 +162,11 @@ - + - + Network Co-Processor (NCP) target application with additional features to support the Electronic Shelf Label Profile ESL Access Point role. Note: Some BLE features unused by the ESL Access Point are removed compared to the NCP target application. @@ -174,11 +174,11 @@ - + - + Network Co-Processor (NCP) target application with additional features to support the Electronic Shelf Label Profile ESL Access Point role. Note: Some BLE features unused by the ESL Access Point are removed compared to the NCP target application. @@ -186,11 +186,11 @@ - + - + Network Co-Processor (NCP) target application with additional features to support the Electronic Shelf Label Profile ESL Access Point role. Note: Some BLE features unused by the ESL Access Point are removed compared to the NCP target application. @@ -198,11 +198,11 @@ - + - + Network Co-Processor (NCP) target application with additional features to support the Electronic Shelf Label Profile ESL Access Point role. Note: Some BLE features unused by the ESL Access Point are removed compared to the NCP target application. @@ -210,11 +210,11 @@ - + - + Network Co-Processor (NCP) target application with additional features to support the Electronic Shelf Label Profile ESL Access Point role. Note: Some BLE features unused by the ESL Access Point are removed compared to the NCP target application. @@ -222,11 +222,11 @@ - + - + Network Co-Processor (NCP) target application with additional features to support the Electronic Shelf Label Profile ESL Access Point role. Note: Some BLE features unused by the ESL Access Point are removed compared to the NCP target application. @@ -234,11 +234,11 @@ - + - + Network Co-Processor (NCP) target application with additional features to support the Electronic Shelf Label Profile ESL Access Point role. Note: Some BLE features unused by the ESL Access Point are removed compared to the NCP target application. @@ -246,11 +246,11 @@ - + - + Network Co-Processor (NCP) target application with additional features to support the Electronic Shelf Label Profile ESL Access Point role. Note: Some BLE features unused by the ESL Access Point are removed compared to the NCP target application. @@ -258,11 +258,11 @@ - + - + Network Co-Processor (NCP) target application with additional features to support the Electronic Shelf Label Profile ESL Access Point role. Note: Some BLE features unused by the ESL Access Point are removed compared to the NCP target application. @@ -270,11 +270,11 @@ - + - + Network Co-Processor (NCP) target application with additional features to support the Electronic Shelf Label Profile ESL Access Point role. Note: Some BLE features unused by the ESL Access Point are removed compared to the NCP target application. @@ -282,11 +282,11 @@ - + - + Network Co-Processor (NCP) target application. Runs the Bluetooth stack dynamically and provides access to it via Bluetooth API (BGAPI) using UART connection. NCP mode makes it possible to run your application on a host controller or PC. @@ -294,11 +294,11 @@ - + - + Network Co-Processor (NCP) target application. Runs the Bluetooth stack dynamically and provides access to it via Bluetooth API (BGAPI) using UART connection. NCP mode makes it possible to run your application on a host controller or PC. @@ -306,11 +306,11 @@ - + - + Network Co-Processor (NCP) target application. Runs the Bluetooth stack dynamically and provides access to it via Bluetooth API (BGAPI) using UART connection. NCP mode makes it possible to run your application on a host controller or PC. @@ -318,11 +318,11 @@ - + - + Network Co-Processor (NCP) target application. Runs the Bluetooth stack dynamically and provides access to it via Bluetooth API (BGAPI) using UART connection. NCP mode makes it possible to run your application on a host controller or PC. @@ -330,11 +330,11 @@ - + - + Network Co-Processor (NCP) target application. Runs the Bluetooth stack dynamically and provides access to it via Bluetooth API (BGAPI) using UART connection. NCP mode makes it possible to run your application on a host controller or PC. @@ -342,11 +342,11 @@ - + - + Network Co-Processor (NCP) target application. Runs the Bluetooth stack dynamically and provides access to it via Bluetooth API (BGAPI) using UART connection. NCP mode makes it possible to run your application on a host controller or PC. @@ -354,11 +354,11 @@ - + - + Network Co-Processor (NCP) target application. Runs the Bluetooth stack dynamically and provides access to it via Bluetooth API (BGAPI) using UART connection. NCP mode makes it possible to run your application on a host controller or PC. @@ -366,11 +366,11 @@ - + - + Network Co-Processor (NCP) target application. Runs the Bluetooth stack dynamically and provides access to it via Bluetooth API (BGAPI) using UART connection. NCP mode makes it possible to run your application on a host controller or PC. @@ -378,11 +378,11 @@ - + - + Network Co-Processor (NCP) target application. Runs the Bluetooth stack dynamically and provides access to it via Bluetooth API (BGAPI) using UART connection. NCP mode makes it possible to run your application on a host controller or PC. @@ -390,11 +390,11 @@ - + - + Network Co-Processor (NCP) target application. Runs the Bluetooth stack dynamically and provides access to it via Bluetooth API (BGAPI) using UART connection. NCP mode makes it possible to run your application on a host controller or PC. @@ -402,11 +402,11 @@ - + - + Network Co-Processor (NCP) target application. Runs the Bluetooth stack dynamically and provides access to it via Bluetooth API (BGAPI) using UART connection. NCP mode makes it possible to run your application on a host controller or PC. @@ -414,11 +414,11 @@ - + - + Network Co-Processor (NCP) target application. Runs the Bluetooth stack dynamically and provides access to it via Bluetooth API (BGAPI) using UART connection. NCP mode makes it possible to run your application on a host controller or PC. @@ -426,11 +426,11 @@ - + - + Network Co-Processor (NCP) target application. Runs the Bluetooth stack dynamically and provides access to it via Bluetooth API (BGAPI) using UART connection. NCP mode makes it possible to run your application on a host controller or PC. @@ -438,11 +438,11 @@ - + - + Network Co-Processor (NCP) target application. Runs the Bluetooth stack dynamically and provides access to it via Bluetooth API (BGAPI) using UART connection. NCP mode makes it possible to run your application on a host controller or PC. @@ -450,11 +450,11 @@ - + - + Network Co-Processor (NCP) target application. Runs the Bluetooth stack dynamically and provides access to it via Bluetooth API (BGAPI) using UART connection. NCP mode makes it possible to run your application on a host controller or PC. @@ -462,11 +462,11 @@ - + - + Network Co-Processor (NCP) target application. Runs the Bluetooth stack dynamically and provides access to it via Bluetooth API (BGAPI) using UART connection. NCP mode makes it possible to run your application on a host controller or PC. @@ -474,11 +474,11 @@ - + - + Network Co-Processor (NCP) target application. Runs the Bluetooth stack dynamically and provides access to it via Bluetooth API (BGAPI) using UART connection. NCP mode makes it possible to run your application on a host controller or PC. @@ -486,11 +486,11 @@ - + - + Network Co-Processor (NCP) target application. Runs the Bluetooth stack dynamically and provides access to it via Bluetooth API (BGAPI) using UART connection. NCP mode makes it possible to run your application on a host controller or PC. @@ -498,11 +498,11 @@ - + - + Network Co-Processor (NCP) target application. Runs the Bluetooth stack dynamically and provides access to it via Bluetooth API (BGAPI) using UART connection. NCP mode makes it possible to run your application on a host controller or PC. @@ -510,11 +510,11 @@ - + - + Network Co-Processor (NCP) target application. Runs the Bluetooth stack dynamically and provides access to it via Bluetooth API (BGAPI) using UART connection. NCP mode makes it possible to run your application on a host controller or PC. @@ -522,11 +522,11 @@ - + - + Network Co-Processor (NCP) target application. Runs the Bluetooth stack dynamically and provides access to it via Bluetooth API (BGAPI) using UART connection. NCP mode makes it possible to run your application on a host controller or PC. @@ -534,11 +534,11 @@ - + - + Network Co-Processor (NCP) target application. Runs the Bluetooth stack dynamically and provides access to it via Bluetooth API (BGAPI) using UART connection. NCP mode makes it possible to run your application on a host controller or PC. @@ -546,11 +546,11 @@ - + - + Network Co-Processor (NCP) target application. Runs the Bluetooth stack dynamically and provides access to it via Bluetooth API (BGAPI) using UART connection. NCP mode makes it possible to run your application on a host controller or PC. @@ -558,11 +558,11 @@ - + - + Network Co-Processor (NCP) target application. Runs the Bluetooth stack dynamically and provides access to it via Bluetooth API (BGAPI) using UART connection. NCP mode makes it possible to run your application on a host controller or PC. @@ -570,11 +570,11 @@ - + - + Network Co-Processor (NCP) target application. Runs the Bluetooth stack dynamically and provides access to it via Bluetooth API (BGAPI) using UART connection. NCP mode makes it possible to run your application on a host controller or PC. @@ -582,11 +582,11 @@ - + - + Network Co-Processor (NCP) target application. Runs the Bluetooth stack dynamically and provides access to it via Bluetooth API (BGAPI) using UART connection. NCP mode makes it possible to run your application on a host controller or PC. @@ -594,11 +594,11 @@ - + - + The classic blinky example using Bluetooth communication. Demonstrates a simple two-way data exchange over GATT. This can be tested with the EFR Connect mobile app. @@ -606,11 +606,11 @@ - + - + The classic blinky example using Bluetooth communication. Demonstrates a simple two-way data exchange over GATT. This can be tested with the EFR Connect mobile app. @@ -618,11 +618,11 @@ - + - + The classic blinky example using Bluetooth communication. Demonstrates a simple two-way data exchange over GATT. This can be tested with the EFR Connect mobile app. @@ -630,11 +630,11 @@ - + - + The classic blinky example using Bluetooth communication. Demonstrates a simple two-way data exchange over GATT. This can be tested with the EFR Connect mobile app. @@ -642,11 +642,11 @@ - + - + The classic blinky example using Bluetooth communication. Demonstrates a simple two-way data exchange over GATT. This can be tested with the EFR Connect mobile app. @@ -654,11 +654,11 @@ - + - + The classic blinky example using Bluetooth communication. Demonstrates a simple two-way data exchange over GATT. This can be tested with the EFR Connect mobile app. @@ -666,11 +666,11 @@ - + - + The classic blinky example using Bluetooth communication. Demonstrates a simple two-way data exchange over GATT. This can be tested with the EFR Connect mobile app. @@ -678,11 +678,11 @@ - + - + The classic blinky example using Bluetooth communication. Demonstrates a simple two-way data exchange over GATT. This can be tested with the EFR Connect mobile app. @@ -690,11 +690,11 @@ - + - + The classic blinky example using Bluetooth communication. Demonstrates a simple two-way data exchange over GATT. This can be tested with the EFR Connect mobile app. @@ -702,11 +702,11 @@ - + - + The classic blinky example using Bluetooth communication. Demonstrates a simple two-way data exchange over GATT. This can be tested with the EFR Connect mobile app. @@ -714,11 +714,11 @@ - + - + The classic blinky example using Bluetooth communication. Demonstrates a simple two-way data exchange over GATT. This can be tested with the EFR Connect mobile app. @@ -726,11 +726,11 @@ - + - + The classic blinky example using Bluetooth communication. Demonstrates a simple two-way data exchange over GATT. This can be tested with the EFR Connect mobile app. @@ -738,11 +738,11 @@ - + - + The classic blinky example using Bluetooth communication. Demonstrates a simple two-way data exchange over GATT. This can be tested with the EFR Connect mobile app. @@ -750,11 +750,11 @@ - + - + The classic blinky example using Bluetooth communication. Demonstrates a simple two-way data exchange over GATT. This can be tested with the EFR Connect mobile app. @@ -762,11 +762,11 @@ - + - + The classic blinky example using Bluetooth communication. Demonstrates a simple two-way data exchange over GATT. This can be tested with the EFR Connect mobile app. @@ -774,11 +774,11 @@ - + - + The classic blinky example using Bluetooth communication. Demonstrates a simple two-way data exchange over GATT. This can be tested with the EFR Connect mobile app. @@ -786,11 +786,11 @@ - + - + The classic blinky example using Bluetooth communication. Demonstrates a simple two-way data exchange over GATT. This can be tested with the EFR Connect mobile app. @@ -798,11 +798,11 @@ - + - + The classic blinky example using Bluetooth communication. Demonstrates a simple two-way data exchange over GATT. This can be tested with the EFR Connect mobile app. @@ -810,11 +810,11 @@ - + - + The classic blinky example using Bluetooth communication. Demonstrates a simple two-way data exchange over GATT. This can be tested with the EFR Connect mobile app. @@ -822,11 +822,11 @@ - + - + The classic blinky example using Bluetooth communication. Demonstrates a simple two-way data exchange over GATT. This can be tested with the EFR Connect mobile app. @@ -834,11 +834,11 @@ - + - + The classic blinky example using Bluetooth communication. Demonstrates a simple two-way data exchange over GATT. This can be tested with the EFR Connect mobile app. @@ -846,11 +846,11 @@ - + - + The classic blinky example using Bluetooth communication. Demonstrates a simple two-way data exchange over GATT. This can be tested with the EFR Connect mobile app. @@ -858,11 +858,11 @@ - + - + The classic blinky example using Bluetooth communication. Demonstrates a simple two-way data exchange over GATT. This can be tested with the EFR Connect mobile app. @@ -870,11 +870,11 @@ - + - + Demonstrates the features of the EFR32xG24 Dev Kit Board. This can be tested with the EFR Connect mobile app. @@ -882,11 +882,11 @@ - + - + Demonstrates the features of the EFR32xG26 Dev Kit Board. This can be tested with the EFR Connect mobile app. @@ -894,11 +894,11 @@ - + - + Demonstrates the features of the EFR32xG27 DevKit board. Features can be evaluated with the EFR Connect mobile app. @@ -906,11 +906,11 @@ - + - + Implements a GATT Server with the Health Thermometer Profile, which enables a Client device to connect and get temperature data. Temperature is read from the mock relative humidity and temperature sensor. @@ -918,11 +918,11 @@ - + - + Implements a GATT Server with the Health Thermometer Profile, which enables a Client device to connect and get temperature data. Temperature is read from the mock relative humidity and temperature sensor. @@ -930,11 +930,11 @@ - + - + Implements a GATT Server with the Health Thermometer Profile, which enables a Client device to connect and get temperature data. Temperature is read from the mock relative humidity and temperature sensor. @@ -942,11 +942,11 @@ - + - + Implements a GATT Server with the Health Thermometer Profile, which enables a Client device to connect and get temperature data. Temperature is read from the mock relative humidity and temperature sensor. @@ -954,11 +954,11 @@ - + - + Implements a GATT Server with the Health Thermometer Profile, which enables a Client device to connect and get temperature data. Temperature is read from the mock relative humidity and temperature sensor. @@ -966,11 +966,11 @@ - + - + Implements a GATT Server with the Health Thermometer Profile, which enables a Client device to connect and get temperature data. Temperature is read from the mock relative humidity and temperature sensor. @@ -978,11 +978,11 @@ - + - + Implements a GATT Server with the Health Thermometer Profile, which enables a Client device to connect and get temperature data. Temperature is read from the mock relative humidity and temperature sensor. @@ -990,11 +990,11 @@ - + - + Implements a GATT Server with the Health Thermometer Profile, which enables a Client device to connect and get temperature data. Temperature is read from the mock relative humidity and temperature sensor. @@ -1002,11 +1002,11 @@ - + - + Implements a GATT Server with the Health Thermometer Profile, which enables a Client device to connect and get temperature data. Temperature is read from the mock relative humidity and temperature sensor. @@ -1014,11 +1014,11 @@ - + - + Implements a GATT Server with the Health Thermometer Profile, which enables a Client device to connect and get temperature data. Temperature is read from the mock relative humidity and temperature sensor. @@ -1026,11 +1026,11 @@ - + - + Implements a GATT Server with the Health Thermometer Profile, which enables a Client device to connect and get temperature data. Temperature is read from the mock relative humidity and temperature sensor. @@ -1038,11 +1038,11 @@ - + - + Implements a GATT Server with the Health Thermometer Profile, which enables a Client device to connect and get temperature data. Temperature is read from the mock relative humidity and temperature sensor. @@ -1050,11 +1050,11 @@ - + - + Implements a GATT Server with the Health Thermometer Profile, which enables a Client device to connect and get temperature data. Temperature is read from the mock relative humidity and temperature sensor. @@ -1062,11 +1062,11 @@ - + - + Implements a GATT Server with the Health Thermometer Profile, which enables a Client device to connect and get temperature data. Temperature is read from the mock relative humidity and temperature sensor. @@ -1074,11 +1074,11 @@ - + - + Implements a GATT Server with the Health Thermometer Profile, which enables a Client device to connect and get temperature data. Temperature is read from the Si7021 digital relative humidity and temperature sensor of the WSTK or of the Thunderboard. @@ -1086,11 +1086,11 @@ - + - + Implements a GATT Server with the Health Thermometer Profile, which enables a Client device to connect and get temperature data. Temperature is read from the Si7021 digital relative humidity and temperature sensor of the WSTK or of the Thunderboard. @@ -1098,11 +1098,11 @@ - + - + Implements a GATT Server with the Health Thermometer Profile, which enables a Client device to connect and get temperature data. Temperature is read from the Si7021 digital relative humidity and temperature sensor of the WSTK or of the Thunderboard. @@ -1110,11 +1110,11 @@ - + - + Implements a GATT Server with the Health Thermometer Profile, which enables a Client device to connect and get temperature data. Temperature is read from the Si7021 digital relative humidity and temperature sensor of the WSTK or of the Thunderboard. @@ -1122,11 +1122,11 @@ - + - + Implements a GATT Server with the Health Thermometer Profile, which enables a Client device to connect and get temperature data. Temperature is read from the Si7021 digital relative humidity and temperature sensor of the WSTK or of the Thunderboard. @@ -1134,11 +1134,11 @@ - + - + Implements a GATT Server with the Health Thermometer Profile, which enables a Client device to connect and get temperature data. Temperature is read from the Si7021 digital relative humidity and temperature sensor of the WSTK or of the Thunderboard. @@ -1146,11 +1146,11 @@ - + - + Implements a GATT Server with the Health Thermometer Profile, which enables a Client device to connect and get temperature data. Temperature is read from the Si7021 digital relative humidity and temperature sensor of the WSTK or of the Thunderboard. @@ -1158,11 +1158,11 @@ - + - + Implements a GATT Server with the Health Thermometer Profile, which enables a Client device to connect and get temperature data. Temperature is read from the Si7021 digital relative humidity and temperature sensor of the WSTK or of the Thunderboard. @@ -1170,11 +1170,11 @@ - + - + Implements a GATT Server with the Health Thermometer Profile, which enables a Client device to connect and get temperature data. Temperature is read from the Si7021 digital relative humidity and temperature sensor of the WSTK or of the Thunderboard. @@ -1182,11 +1182,11 @@ - + - + Implements a GATT Server with the Health Thermometer Profile, which enables a Client device to connect and get temperature data. Temperature is read from the Si7021 digital relative humidity and temperature sensor of the WSTK or of the Thunderboard. @@ -1194,11 +1194,11 @@ - + - + This example tests the throughput capabilities of the device and can be used to measure throughput between 2 *EFR32* devices, as well as between a device and a smartphone using EFR Connect mobile app, through the Throughput demo tile. @@ -1206,11 +1206,11 @@ - + - + This example tests the throughput capabilities of the device and can be used to measure throughput between 2 *EFR32* devices, as well as between a device and a smartphone using EFR Connect mobile app, through the Throughput demo tile. @@ -1218,11 +1218,11 @@ - + - + This example tests the throughput capabilities of the device and can be used to measure throughput between 2 *EFR32* devices, as well as between a device and a smartphone using EFR Connect mobile app, through the Throughput demo tile. @@ -1230,11 +1230,11 @@ - + - + This example tests the throughput capabilities of the device and can be used to measure throughput between 2 *EFR32* devices, as well as between a device and a smartphone using EFR Connect mobile app, through the Throughput demo tile. @@ -1242,11 +1242,11 @@ - + - + This example tests the throughput capabilities of the device and can be used to measure throughput between 2 *EFR32* devices, as well as between a device and a smartphone using EFR Connect mobile app, through the Throughput demo tile. @@ -1254,11 +1254,11 @@ - + - + This example tests the throughput capabilities of the device and can be used to measure throughput between 2 *EFR32* devices, as well as between a device and a smartphone using EFR Connect mobile app, through the Throughput demo tile. @@ -1266,11 +1266,11 @@ - + - + This example tests the throughput capabilities of the device and can be used to measure throughput between 2 *EFR32* devices, as well as between a device and a smartphone using EFR Connect mobile app, through the Throughput demo tile. @@ -1278,11 +1278,11 @@ - + - + This example tests the throughput capabilities of the device and can be used to measure throughput between 2 *EFR32* devices, as well as between a device and a smartphone using EFR Connect mobile app, through the Throughput demo tile. @@ -1290,11 +1290,11 @@ - + - + This example tests the throughput capabilities of the device and can be used to measure throughput between 2 *EFR32* devices, as well as between a device and a smartphone using EFR Connect mobile app, through the Throughput demo tile. @@ -1302,11 +1302,11 @@ - + - + This example tests the throughput capabilities of the device and can be used to measure throughput between 2 *EFR32* devices, as well as between a device and a smartphone using EFR Connect mobile app, through the Throughput demo tile. @@ -1314,11 +1314,11 @@ - + - + This example tests the throughput capabilities of the device and can be used to measure throughput between 2 *EFR32* devices, as well as between a device and a smartphone using EFR Connect mobile app, through the Throughput demo tile. @@ -1326,11 +1326,11 @@ - + - + This example tests the throughput capabilities of the device and can be used to measure throughput between 2 *EFR32* devices, as well as between a device and a smartphone using EFR Connect mobile app, through the Throughput demo tile. @@ -1338,11 +1338,11 @@ - + - + This example tests the throughput capabilities of the device and can be used to measure throughput between 2 *EFR32* devices, as well as between a device and a smartphone using EFR Connect mobile app, through the Throughput demo tile. @@ -1350,11 +1350,11 @@ - + - + This example tests the throughput capabilities of the device and can be used to measure throughput between 2 *EFR32* devices, as well as between a device and a smartphone using EFR Connect mobile app, through the Throughput demo tile. @@ -1362,11 +1362,11 @@ - + - + This example tests the throughput capabilities of the device and can be used to measure throughput between 2 *EFR32* devices, as well as between a device and a smartphone using EFR Connect mobile app, through the Throughput demo tile. @@ -1374,11 +1374,11 @@ - + - + This example tests the throughput capabilities of the device and can be used to measure throughput between 2 *EFR32* devices, as well as between a device and a smartphone using EFR Connect mobile app, through the Throughput demo tile. @@ -1386,11 +1386,11 @@ - + - + This example tests the throughput capabilities of the device and can be used to measure throughput between 2 *EFR32* devices, as well as between a device and a smartphone using EFR Connect mobile app, through the Throughput demo tile. @@ -1398,11 +1398,11 @@ - + - + This example tests the throughput capabilities of the device and can be used to measure throughput between 2 *EFR32* devices, as well as between a device and a smartphone using EFR Connect mobile app, through the Throughput demo tile. @@ -1410,11 +1410,11 @@ - + - + This example tests the throughput capabilities of the device and can be used to measure throughput between 2 *EFR32* devices, as well as between a device and a smartphone using EFR Connect mobile app, through the Throughput demo tile. @@ -1422,11 +1422,11 @@ - + - + This example tests the throughput capabilities of the device and can be used to measure throughput between 2 *EFR32* devices, as well as between a device and a smartphone using EFR Connect mobile app, through the Throughput demo tile. @@ -1434,11 +1434,11 @@ - + - + This example tests the throughput capabilities of the device and can be used to measure throughput between 2 *EFR32* devices, as well as between a device and a smartphone using EFR Connect mobile app, through the Throughput demo tile. @@ -1446,11 +1446,11 @@ - + - + This example tests the throughput capabilities of the device and can be used to measure throughput between 2 *EFR32* devices, as well as between a device and a smartphone using EFR Connect mobile app, through the Throughput demo tile. @@ -1458,11 +1458,11 @@ - + - + This example tests the throughput capabilities of the device and can be used to measure throughput between 2 *EFR32* devices, as well as between a device and a smartphone using EFR Connect mobile app, through the Throughput demo tile. @@ -1470,11 +1470,11 @@ - + - + Demonstrates the features of the Thunderboard EFR32BG22 Kit. This can be tested with the EFR Connect mobile app. @@ -1482,11 +1482,11 @@ - + - + Demonstrates the features of the Thunderboard EFR32BG22 Kit. This can be tested with the EFR Connect mobile app. @@ -1494,11 +1494,11 @@ - + - + Voice over Bluetooth Low Energy sample application. It is supported by Thunderboard Sense 2 and Thunderboard EFR32BG22 boards and demonstrates how to send voice data over GATT, which is acquired from the on-board microphones. @@ -1506,11 +1506,11 @@ - + - + Voice over Bluetooth Low Energy sample application. It is supported by Thunderboard Sense 2 and Thunderboard EFR32BG22 boards and demonstrates how to send voice data over GATT, which is acquired from the on-board microphones. @@ -1518,11 +1518,11 @@ - + - + Voice over Bluetooth Low Energy sample application. It is supported by Thunderboard Sense 2 and Thunderboard EFR32BG22 boards and demonstrates how to send voice data over GATT, which is acquired from the on-board microphones. @@ -1530,11 +1530,11 @@ - + - + Sends non-connectable advertisements in iBeacon format. The iBeacon Service gives Bluetooth accessories a simple and convenient way to send iBeacons to smartphones. This example can be tested together with the EFR Connect mobile app. @@ -1542,7 +1542,7 @@ - + @@ -1553,7 +1553,7 @@ - + @@ -1564,7 +1564,7 @@ - + @@ -1575,7 +1575,7 @@ - + @@ -1586,7 +1586,7 @@ - + @@ -1597,7 +1597,7 @@ - + @@ -1608,7 +1608,7 @@ - + @@ -1619,7 +1619,7 @@ - + @@ -1630,7 +1630,7 @@ - + @@ -1641,7 +1641,7 @@ - + @@ -1652,7 +1652,7 @@ - + @@ -1663,7 +1663,7 @@ - + @@ -1674,7 +1674,7 @@ - + @@ -1685,7 +1685,7 @@ - + @@ -1696,7 +1696,7 @@ - + @@ -1707,7 +1707,7 @@ - + @@ -1718,7 +1718,7 @@ - + @@ -1729,7 +1729,7 @@ - + @@ -1740,7 +1740,7 @@ - + @@ -1751,7 +1751,7 @@ - + @@ -1762,7 +1762,7 @@ - + @@ -1773,7 +1773,7 @@ - + @@ -1784,7 +1784,7 @@ - + @@ -1795,7 +1795,7 @@ - + @@ -1806,7 +1806,7 @@ - + @@ -1817,7 +1817,7 @@ - + @@ -1828,7 +1828,7 @@ - + @@ -1839,7 +1839,7 @@ - + @@ -1850,7 +1850,7 @@ - + @@ -1861,7 +1861,7 @@ - + @@ -1872,7 +1872,7 @@ - + @@ -1883,7 +1883,7 @@ - + @@ -1894,7 +1894,7 @@ - + @@ -1905,11 +1905,11 @@ - + - + Network Co-Processor (NCP) target application extended with CTE Receiver support. It enables Angle of Arrival (AoA) calculation. Use this application with Direction Finding host examples. @@ -1917,11 +1917,11 @@ - + - + This sample app demonstrates a CTE (Constant Tone Extension) transmitter that can be used as an asset tag in a Direction Finding setup estimating Angle of Arrival (AoA). @@ -1929,11 +1929,11 @@ - + - + This sample app demonstrates a CTE (Constant Tone Extension) transmitter that can be used as an asset tag in a Direction Finding setup estimating Angle of Arrival (AoA). @@ -1941,11 +1941,11 @@ - + - + This sample app demonstrates a CTE (Constant Tone Extension) transmitter that can be used as an asset tag in a Direction Finding setup estimating Angle of Arrival (AoA). @@ -1953,11 +1953,11 @@ - + - + This sample app demonstrates a CTE (Constant Tone Extension) transmitter that can be used as an asset tag in a Direction Finding setup estimating Angle of Arrival (AoA). @@ -1965,11 +1965,11 @@ - + - + This sample app demonstrates a CTE (Constant Tone Extension) transmitter that can be used as an asset tag in a Direction Finding setup estimating Angle of Arrival (AoA). @@ -1977,11 +1977,11 @@ - + - + Network Co-Processor (NCP) target application extended with CTE Receiver support. It enables Angle of Departure (AoD) calculation. Use this application with Direction Finding Studio tools. @@ -1989,11 +1989,11 @@ - + - + Network Co-Processor (NCP) target application extended with CTE Receiver support. It enables Angle of Departure (AoD) calculation. Use this application with Direction Finding Studio tools. @@ -2001,11 +2001,11 @@ - + - + Network Co-Processor (NCP) target application extended with CTE Receiver support. It enables Angle of Departure (AoD) calculation. Use this application with Direction Finding Studio tools. @@ -2013,11 +2013,11 @@ - + - + Network Co-Processor (NCP) target application extended with CTE Receiver support. It enables Angle of Departure (AoD) calculation. Use this application with Direction Finding Studio tools. @@ -2025,11 +2025,11 @@ - + - + Network Co-Processor (NCP) target application extended with CTE Receiver support. It enables Angle of Departure (AoD) calculation. Use this application with Direction Finding Studio tools. @@ -2037,11 +2037,11 @@ - + - + This sample app demonstrates a CTE (Constant Tone Extension) transmitter that can be used as a locator beacon in a Direction Finding setup estimating Angle of Departure (AoD). @@ -2049,11 +2049,11 @@ - + - + This sample app demonstrates a CTE (Constant Tone Extension) transmitter that can be used as a locator beacon in a Direction Finding setup estimating Angle of Departure (AoD). @@ -2061,11 +2061,11 @@ - + - + This is a Dynamic Multiprotocol reference application demonstrating a light bulb that can be switched both via Bluetooth and via a Proprietary protocol. Can be tested with the EFR Connect mobile app and Flex (RAIL) Switch sample app. @@ -2073,7 +2073,7 @@ - + @@ -2084,7 +2084,7 @@ - + @@ -2095,7 +2095,7 @@ - + @@ -2106,7 +2106,7 @@ - + @@ -2117,7 +2117,7 @@ - + @@ -2128,7 +2128,7 @@ - + @@ -2139,7 +2139,7 @@ - + @@ -2150,7 +2150,7 @@ - + @@ -2161,7 +2161,7 @@ - + @@ -2172,7 +2172,7 @@ - + @@ -2183,7 +2183,7 @@ - + @@ -2194,7 +2194,7 @@ - + @@ -2205,7 +2205,7 @@ - + @@ -2216,7 +2216,7 @@ - + @@ -2227,7 +2227,7 @@ - + @@ -2238,7 +2238,7 @@ - + @@ -2249,7 +2249,7 @@ - + diff --git a/app/bluetooth/common/cbap_lib/lib/cbap_CM33_gcc.a b/app/bluetooth/common/cbap_lib/lib/cbap_CM33_gcc.a index 146b1cafce..5fbbab1b54 100644 --- a/app/bluetooth/common/cbap_lib/lib/cbap_CM33_gcc.a +++ b/app/bluetooth/common/cbap_lib/lib/cbap_CM33_gcc.a @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a29470f29b15b1bb3767d7908c2d358d7092d45b6b07b00d8ae214c0cb5fa5cb +oid sha256:df17de04fa3c30b2e890119e53d4119004b5944c402ffc0b12b5fb572d1a24d7 size 5326 diff --git a/app/bluetooth/common/cbap_lib/lib/cbap_CM33_iar.a b/app/bluetooth/common/cbap_lib/lib/cbap_CM33_iar.a index da3cc05c03..ddd1687a2d 100644 --- a/app/bluetooth/common/cbap_lib/lib/cbap_CM33_iar.a +++ b/app/bluetooth/common/cbap_lib/lib/cbap_CM33_iar.a @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d216e4a9f76e52fb495125c55e1338433997eb1f141685cd5931d7f10921be10 +oid sha256:f5f362b66beffe537720b21175654f4b61e5fa0fb8cb60333fb790cfda8b5102 size 10594 diff --git a/app/bluetooth/common/cs_initiator/src/cs_initiator.c b/app/bluetooth/common/cs_initiator/src/cs_initiator.c index 524bb0e29d..0ce2b220a2 100644 --- a/app/bluetooth/common/cs_initiator/src/cs_initiator.c +++ b/app/bluetooth/common/cs_initiator/src/cs_initiator.c @@ -565,7 +565,7 @@ static sl_status_t state_any_on_delete_instance(cs_initiator_t *init data_out.evt_error.sc = sc; sc = initiator_state_machine_event_handler(initiator->conn_handle, INITIATOR_EVT_ERROR, - NULL); + &data_out); } return sc; diff --git a/app/bluetooth/common/ncp/config/sl_ncp_config.h b/app/bluetooth/common/ncp/config/sl_ncp_config.h index 0a30d7ad77..14c2f390e6 100644 --- a/app/bluetooth/common/ncp/config/sl_ncp_config.h +++ b/app/bluetooth/common/ncp/config/sl_ncp_config.h @@ -38,6 +38,8 @@ // <<< Use Configuration Wizard in Context Menu >>> +// General settings + // Command buffer size (bytes) <260-1024> // Default: 260 // Define the size of Bluetooth NCP command buffer in bytes. @@ -52,6 +54,19 @@ // Default: 500 // Allowed timeout in ms for command reception before triggering error. #define SL_NCP_CMD_TIMEOUT_MS (500) + +// + +// Debug settings + +// System error event on incomplete command reception +// Enable sending of a system error event with SL_STATUS_COMMAND_INCOMPLETE status on incomplete command reception. +// The system error data may contain full or partial BGAPI message header data for analysis by the application. +// Default: off +#define SL_NCP_EMIT_SYSTEM_ERROR_EVT 0 + +// + // <<< end of configuration section >>> /** @} (end addtogroup ncp) */ diff --git a/app/bluetooth/common/ncp/sl_ncp.c b/app/bluetooth/common/ncp/sl_ncp.c index 128e91f5a5..981193d38c 100644 --- a/app/bluetooth/common/ncp/sl_ncp.c +++ b/app/bluetooth/common/ncp/sl_ncp.c @@ -695,6 +695,10 @@ static void cmd_timer_cb2(app_timer_t *timer, void *data) #endif // SL_CATALOG_WAKE_LOCK_PRESENT // Transmit command error response sl_simple_com_transmit((uint32_t)(MSG_GET_LEN(response)), rsp_buf); +#if SL_NCP_EMIT_SYSTEM_ERROR_EVT + // Sending system error event as well to help app devs to give async response + sl_bt_send_system_error(SL_STATUS_COMMAND_INCOMPLETE, sizeof(cmd_hdr), rsp_buf); +#endif // SL_NCP_EMIT_SYSTEM_ERROR_EVT } // ----------------------------------------------------------------------------- diff --git a/app/bluetooth/common/throughput/throughput_common.h b/app/bluetooth/common/throughput/throughput_common.h index 3fb44814f6..dffa3f00ec 100644 --- a/app/bluetooth/common/throughput/throughput_common.h +++ b/app/bluetooth/common/throughput/throughput_common.h @@ -47,5 +47,8 @@ typedef enum { act_subscribe_result } action_t; +/// The default PDU size if 27 bytes according to the Core Specification +#define THROUGHPUT_DEFAULT_PDU_SIZE 27u + /** @} (end addtogroup throughput) */ #endif // THROUGHPUT_COMMON_H diff --git a/app/bluetooth/common/throughput_central/throughput_central.c b/app/bluetooth/common/throughput_central/throughput_central.c index e94019e944..da810f2d6e 100644 --- a/app/bluetooth/common/throughput_central/throughput_central.c +++ b/app/bluetooth/common/throughput_central/throughput_central.c @@ -84,7 +84,7 @@ static uint8_t notification_data[THROUGHPUT_CENTRAL_DATA_SIZE_MAX] = { 0 }; static uint8_t indication_data[THROUGHPUT_CENTRAL_DATA_SIZE_MAX] = { 0 }; /// Internal state -static throughput_t central_state = { .allowlist.next = NULL }; +static throughput_t central_state = { .allowlist.next = NULL, .pdu_size = THROUGHPUT_DEFAULT_PDU_SIZE }; /// Bit counter variable static throughput_count_t bytes_received = 0; @@ -558,12 +558,14 @@ void bt_on_event_central(sl_bt_msg_t *evt) central_state.interval = evt->data.evt_connection_parameters.interval; central_state.connection_responder_latency = evt->data.evt_connection_parameters.latency; central_state.connection_timeout = evt->data.evt_connection_parameters.timeout; - central_state.pdu_size = evt->data.evt_connection_parameters.txsize; throughput_central_on_connection_timings_change(central_state.interval, central_state.connection_responder_latency, central_state.connection_timeout); + break; + case sl_bt_evt_connection_data_length_id: + central_state.pdu_size = evt->data.evt_connection_data_length.tx_data_len; throughput_central_on_connection_settings_change(central_state.pdu_size, central_state.mtu_size); break; diff --git a/app/bluetooth/common/throughput_peripheral/throughput_peripheral.c b/app/bluetooth/common/throughput_peripheral/throughput_peripheral.c index e4c4d0e5ed..6a5bb26e84 100644 --- a/app/bluetooth/common/throughput_peripheral/throughput_peripheral.c +++ b/app/bluetooth/common/throughput_peripheral/throughput_peripheral.c @@ -1104,7 +1104,6 @@ void throughput_peripheral_on_bt_event(sl_bt_msg_t *evt) &(peripheral_state.mtu_size)); app_assert_status(sc); - peripheral_state.pdu_size = evt->data.evt_connection_parameters.txsize; throughput_peripheral_calculate_data_size(); sc = sl_bt_gatt_server_write_attribute_value(gattdb_pdu_size, @@ -1133,10 +1132,6 @@ void throughput_peripheral_on_bt_event(sl_bt_msg_t *evt) (uint8_t *)&peripheral_state.connection_timeout); app_assert_status(sc); - sc = sl_bt_gatt_server_notify_all(gattdb_pdu_size, - 1, - (uint8_t *)&peripheral_state.pdu_size); - app_assert_status(sc); sc = sl_bt_gatt_server_notify_all(gattdb_mtu_size, 1, (uint8_t *)&peripheral_state.mtu_size); @@ -1160,6 +1155,19 @@ void throughput_peripheral_on_bt_event(sl_bt_msg_t *evt) peripheral_state.data_size); break; + case sl_bt_evt_connection_data_length_id: + peripheral_state.pdu_size = evt->data.evt_connection_data_length.tx_data_len; + throughput_peripheral_calculate_data_size(); + sc = sl_bt_gatt_server_notify_all(gattdb_pdu_size, + 1, + (uint8_t *)&peripheral_state.pdu_size); + app_assert_status(sc); + throughput_peripheral_on_connection_settings_change(peripheral_state.interval, + peripheral_state.pdu_size, + peripheral_state.mtu_size, + peripheral_state.data_size); + break; + case sl_bt_evt_connection_phy_status_id: peripheral_state.phy = (throughput_phy_t)evt->data.evt_connection_phy_status.phy; diff --git a/app/bluetooth/common/throughput_ui/throughput_ui.c b/app/bluetooth/common/throughput_ui/throughput_ui.c index bd8a363505..2845394d34 100644 --- a/app/bluetooth/common/throughput_ui/throughput_ui.c +++ b/app/bluetooth/common/throughput_ui/throughput_ui.c @@ -3,7 +3,7 @@ * @brief User Interface core logic for throughput test UI. ******************************************************************************* * # License - * Copyright 2021 Silicon Laboratories Inc. www.silabs.com + * Copyright 2024 Silicon Laboratories Inc. www.silabs.com ******************************************************************************* * * SPDX-License-Identifier: Zlib @@ -213,7 +213,7 @@ void throughput_ui_set_rssi(throughput_rssi_t rssi) void throughput_ui_set_connection_interval(throughput_time_t interval) { char buffer[BUFFER_SIZE]; - snprintf(buffer, BUFFER_SIZE, THROUGHPUT_UI_INTERVAL_FORMAT, (int)((float) interval * 1.25) ); + snprintf(buffer, BUFFER_SIZE, THROUGHPUT_UI_INTERVAL_FORMAT, (int)((float) interval * 1.25f) ); clear_row(ROW_INTERVAL); write_row(buffer, ROW_INTERVAL); LOG(buffer); diff --git a/app/bluetooth/common_host/esl_lib/esl_lib.h b/app/bluetooth/common_host/esl_lib/esl_lib.h index 1f57e1c666..8404538ef8 100644 --- a/app/bluetooth/common_host/esl_lib/esl_lib.h +++ b/app/bluetooth/common_host/esl_lib/esl_lib.h @@ -325,6 +325,7 @@ typedef enum esl_lib_status_e { ESL_LIB_STATUS_CONN_TAG_CONFIG_FAILED, ESL_LIB_STATUS_CONTROL_FAILED, ESL_LIB_STATUS_UNKNOWN_COMMAND, + ESL_LIB_STATUS_SYSTEM_ERROR, } esl_lib_status_t; // ------------------------------- diff --git a/app/bluetooth/common_host/esl_lib/esl_lib_connection.c b/app/bluetooth/common_host/esl_lib/esl_lib_connection.c index 89a5002ac1..f5c1219f0f 100644 --- a/app/bluetooth/common_host/esl_lib/esl_lib_connection.c +++ b/app/bluetooth/common_host/esl_lib/esl_lib_connection.c @@ -782,12 +782,10 @@ void esl_lib_connection_on_bt_event(sl_bt_msg_t *evt) &conn); if (sc == SL_STATUS_OK) { conn->security = evt->data.evt_connection_parameters.security_mode; - conn->max_payload = evt->data.evt_connection_parameters.txsize - GATT_OVERHEAD; - esl_lib_log_connection_debug(CONN_FMT "Connection parameters, connection handle = %u, security = %u, payload = %u" APP_LOG_NL, + esl_lib_log_connection_debug(CONN_FMT "Connection parameters, connection handle = %u, security = %u" APP_LOG_NL, conn, conn->connection_handle, - conn->security, - conn->max_payload); + conn->security); // Bonding is considered finished when security has elevated. if (conn->security > sl_bt_connection_mode1_level1) { if (conn->state == ESL_LIB_CONNECTION_STATE_BONDING @@ -897,6 +895,16 @@ void esl_lib_connection_on_bt_event(sl_bt_msg_t *evt) sc = SL_STATUS_OK; } break; + case sl_bt_evt_connection_data_length_id: + sc = esl_lib_connection_find(evt->data.evt_connection_data_length.connection, + &conn); + if (sc == SL_STATUS_OK) { + conn->max_payload = evt->data.evt_connection_data_length.tx_data_len - GATT_OVERHEAD; + esl_lib_log_connection_debug(CONN_FMT "Connection payload = %u" APP_LOG_NL, + conn, + conn->max_payload); + } + break; // Bonding case sl_bt_evt_external_bondingdb_data_request_id: sc = esl_lib_connection_find(evt->data.evt_external_bondingdb_data_request.connection, diff --git a/app/bluetooth/common_host/esl_lib/esl_lib_core.c b/app/bluetooth/common_host/esl_lib/esl_lib_core.c index b508f1d438..8bcd45acc4 100644 --- a/app/bluetooth/common_host/esl_lib/esl_lib_core.c +++ b/app/bluetooth/common_host/esl_lib/esl_lib_core.c @@ -296,6 +296,43 @@ static void esl_lib_core_on_bt_event(sl_bt_msg_t *evt) SL_STATUS_ALLOCATION_FAILED, ap_state->core_state); break; + case sl_bt_evt_system_error_id: { + uint32_t data = 0; + lib_status = ESL_LIB_STATUS_SYSTEM_ERROR; + + // Get a maximum of 4 bytes from the available data. If there's any. + switch (evt->data.evt_system_error.data.len) { + default: + /* FALLTHROUGH */ + case 4: + data |= (evt->data.evt_system_error.data.data[3] << 24); + /* FALLTHROUGH */ + case 3: + data |= (evt->data.evt_system_error.data.data[2] << 16); + /* FALLTHROUGH */ + case 2: + data |= (evt->data.evt_system_error.data.data[1] << 8); + /* FALLTHROUGH */ + case 1: + data |= evt->data.evt_system_error.data.data[0]; + /* FALLTHROUGH */ + case 0: + break; + } + // Swap DATA endianness for better readability in error message (can be read as BGAPI MSG HDR data if complete) + data = ((data >> 24) & 0xff) // move byte 3 to byte 0 + | ((data << 8) & 0xff0000) // move byte 1 to byte 2 + | ((data >> 8) & 0xff00) // move byte 2 to byte 1 + | ((data << 24) & 0xff000000); // byte 0 to byte 3 + + if (evt->data.evt_system_error.reason == SL_STATUS_COMMAND_INCOMPLETE) { + // Reduce the severity level for incomplete commands (only!) + lib_critical_error = false; + } else { + lib_critical_error = true; + } + esl_lib_log_core_error("System error occured, sc = 0x%04x, data=0x%08x" APP_LOG_NL, evt->data.evt_system_error.reason, data); + } break; default: break; } diff --git a/app/bluetooth/common_host/ncp_host/ncp_host.c b/app/bluetooth/common_host/ncp_host/ncp_host.c index 94d9c7ac46..eb3061d476 100644 --- a/app/bluetooth/common_host/ncp_host/ncp_host.c +++ b/app/bluetooth/common_host/ncp_host/ncp_host.c @@ -376,6 +376,12 @@ static int32_t ncp_host_get_boot_event(void) booted = true; (void)app_timer_stop(&boot_timer); +#if defined(SECURITY) && SECURITY == 1 + if (enable_security) { + ncp_sec_host_command_handler(&buf_ncp_in); + } +#endif // defined(SECURITY) && SECURITY == 1 + return buf_ncp_in.len; } diff --git a/app/bluetooth/documentation/slBluetooth_docContent.xml b/app/bluetooth/documentation/slBluetooth_docContent.xml index 5861748c54..083669ad00 100644 --- a/app/bluetooth/documentation/slBluetooth_docContent.xml +++ b/app/bluetooth/documentation/slBluetooth_docContent.xml @@ -1,6 +1,6 @@ - + Includes detailed information on using the Gecko Bootloader with Silicon Labs Bluetooth applications. It supplements the general Gecko Bootloader implementation information provided in UG489: Silicon Labs Gecko Bootloader User's Guide. @@ -8,7 +8,7 @@ - + Describes the Wi-Fi impact on Bluetooth and methods to improve Bluetooth coexistence with Wi-Fi. Explains design considerations to improve coexistence without direct interaction between Bluetooth and Wi-Fi radios. These techniques are applicable to the EFR32MGx and EFR32BGx series. Discusses the Silicon Labs Packet Traffic Arbitration (PTA) support to coordinate 2.4GHz RF traffic for co-located Bluetooth and Wi-Fi radios. @@ -16,7 +16,7 @@ - + Explains how NVM3 can be used as non-volatile data storage in various protocol implementations. @@ -24,7 +24,7 @@ - + Describes how to lock and unlock the debug access of EFR32 Gecko Series 2 devices. Many aspects of the debug access, including the secure debug unlock are described. The Debug Challenge Interface (DCI) and Secure Engine (SE) Mailbox Interface for locking and unlocking debug access are also included. @@ -32,7 +32,7 @@ - + Contains detailed information on configuring and using the Secure Boot with hardware Root of Trust and Secure Loader on Series 2 devices, including how to provision the signing key. This is a companion document to UG489: Silicon Labs Gecko Bootloader User's Guide. @@ -40,7 +40,7 @@ - + Details on programming, provisioning, and configuring Series 2 devices in production environments. Covers Secure Engine Subsystem of Series 2 devices, which runs easily upgradeable Secure Engine (SE) or Virtual Secure Engine (VSE) firmware. @@ -48,14 +48,14 @@ - + Describes how to measure the power consumption of EFR32BG devices running the Bluetooth i-Beacon example. For general instructions, see AN969: Measuring Power Consumption in Wireless Gecko Devices, available on silabs.com. - + How to program, provision, and configure the anti-tamper module on EFR32 Series 2 devices with Secure Vault. @@ -63,7 +63,7 @@ - + Describes how to configure the NCP target and how to program the NCP host when using the Bluetooth Stack in Network Co-Processor mode @@ -71,14 +71,14 @@ - + Describes how to integrate a v3.x Silicon Labs Bluetooth application with an RTOS, and demonstrate how a time- and event-driven application can be run in parallel with the Bluetooth stack. - + Reviews performing radio frequency physical layer evaluation with EFR32BG SoCs and BGM modules using the Direct Test Mode protocol in Bluetooth SDK v3.x. @@ -86,7 +86,7 @@ - + How to authenticate an EFR32 Series 2 device with Secure Vault, using secure device certificates and signatures. @@ -94,14 +94,14 @@ - + Provides details on how to develop a dynamic multiprotocol application running Bluetooth and a proprietary protocol on RAIL in GSDK v3.x. - + How to securely "wrap" keys in EFR32 Series 2 devices with Secure Vault, so they can be stored in non-volatile storage. @@ -109,28 +109,28 @@ - + Describes the sample applications provided to demonstrate the directing finding capabilities of Bluetooth 5.1. Angle of Arrival (AoA) estimation is demonstrated with the use of Silicon Labs' Real Time Locating (RTL) library. These techniques are applicable to the EFR32MGx and EFR32BGx series. - + Bluetooth 5.1 makes it possible to send Constant Tone Extensions (CTEs) in Bluetooth packets on which phase measurements can be done. This guide is for those implementing custom applications that take advantage of phase measurement and antenna switching capabilites. - + Provides details on designing Bluetooth Low Energy applications with security and privacy in mind. - + Describes how to provision and configure Series 2 devices through the DCI and SWD. @@ -138,14 +138,14 @@ - + Includes the results of the interoperability testing of Silicon Labs' ICs and Bluetooth Low Energy stack with Android and iOS smart phones. - + Describes how to integrate crypto functionality into applications using PSA Crypto compared to Mbed TLS. @@ -153,7 +153,7 @@ - + Describes using Simplicity Studio 5's Network Analyzer to debug Bluetooth Mesh and Low Energy applications. It can be read jointly with AN958: Debugging and Programming Interfaces for Customer Designs for more information on using Packet Trace Interface with custom hardware. @@ -161,7 +161,7 @@ - + Gecko Bootloader v2.x, introduced in GSDK 4.0, contains a number of changes compared to Gecko Bootloader v1.x. This document describes the differences between the versions, including how to configure the new Gecko Bootloader in Simplicity Studio 5. @@ -169,14 +169,14 @@ - + Gives a short overview of the standard Host Controller Interface (HCI) and how to use it with a Silicon Labs Bluetooth LE controller. - + Describes how to run any combination of Zigbee EmberZNet, OpenThread, and Bluetooth networking stacks on a Linux host processor, interfacing with a single EFR32 Radio Co-processor (RCP) with multiprotocol and multi-PAN support, as well as how to run the Zigbee stack on the EFR32 as a network co-processor (NCP) alongside the OpenThread RCP. @@ -184,21 +184,21 @@ - + Summarizes Amazon FreeRTOS components and sample applications, and explains how to use the examples to communicate with the Amazon Web Services (AWS) cloud with a smart phone app. - + Describes how to exploit the different features of Bluetooth technology to achieve the minimum possible energy consumption for a given use case. - + Covers the basics of ARMv8-M TrustZone, describes how TrustZone is implemented on Series 2 devices, and provides application examples. @@ -206,70 +206,70 @@ - + Describes the theoretical background of certificate-based authentication and pairing, and demonstrates the usage of the related sample applications that can be found in the Silicon Labs Bluetooth SDK. - + This application note summarizes the results of Zigbee/BLE dynamic multiprotocol (DMP) large network performance tests using Zigbee unicast and broadcast packets to measure the reliability, latency, and loss of a variety of scenarios. - + Provides an overview and hyperlinks to all packaged documentation. - + Describes the differences between using Bluetooth SDK v2.x in Simplicity Studio 4 and using Bluetooth SDK v3.x in Simplicity Studio 5. Outlines the steps needed to migrate a v2.x project to v3.x. - + Describes the software components provided by Silicon Labs to support Direction Finding (DF) and provides instructions on how to start developing your own application. - + Contains a comprehensive list of APIs used to interface to the Silicon Labs Bluetooth Real-Time Locating Library. - + Contains a comprehensive list of APIs used to interface to the Silicon Labs Bluetooth stack. - + Lists compatibility requirements and sources for all software components in the development environment. Discusses the latest changes to the Silicon Labs Bluetooth SDK and associated utilities, including added/deleted/deprecated features/API, and lists fixed and known issues. - + Discusses the latest changes to the The Real-Time Locating (RTL) library, including added/deleted/deprecated APIs, and lists fixed and known issues. - + A detailed overview of the changes, additions, and fixes in the Gecko Platform components. The Gecko Platform includes EMLIB, EMDRV, RAIL Library, NVM3, and the component-based infrastructure. @@ -277,7 +277,7 @@ - + Introduces the security concepts that must be considered when implementing an Internet of Things (IoT) system. Using the ioXt Alliance's eight security principles as a structure, it clearly delineates the solutions Silicon Labs provides to support endpoint security and what you must do outside of the Silicon Labs framework. @@ -285,7 +285,7 @@ - + Introduces bootloading for Silicon Labs networking devices. Discusses the Gecko Bootloader as well as legacy Ember and Bluetooth bootloaders, and describes the file formats used by each. @@ -293,7 +293,7 @@ - + Introduces non-volatile data storage using flash and the three different storage implementations offered for Silicon Labs microcontrollers and SoCs: PS Store and NVM3. @@ -301,14 +301,14 @@ - + Offers an overview for those new to the Bluetooth low energy technology. - + Describes the four multiprotocol modes, discusses considerations when selecting protocols for multiprotocol implementations, and reviews the Radio Scheduler, a required component of a dynamic multiprotocol solution. @@ -316,7 +316,7 @@ - + Describes methods to improve the coexistence of 2.4 GHz IEEE 802.11b/g/n Wi-Fi and other 2.4 GHz radios such as Bluetooth, Bluetooth Mesh, Bluetooth Low Energy, and IEEE 802.15.4-based radios such as Zigbee and OpenThread. @@ -324,14 +324,14 @@ - + Explains the basics of Bluetooth Angle of Arrival (AoA) and Angle of Departure (AoD) direction finding technologies and provides the theory behind estimating angle of arrival. - + Reviews using this XML-based mark-up language to describe the Bluetooth GATT database, configure access and security properties, and include the GATT database as part of the firmware. @@ -339,7 +339,7 @@ - + Describes how and when to use Simplicity Commander's Command-Line Interface. @@ -347,7 +347,7 @@ - + Describes how to implement a dynamic multiprotocol solution. @@ -355,14 +355,14 @@ - + Covers the Bluetooth stack v7.x architecture, application development flow, using the MCU core and peripherals, stack configuration options, and stack resource usage. - + Describes how to use the Simplicity Studio 5 GATT Configurator, an intuitive interface providing access to all the Profiles, Services, Characteristics, and Descriptors as defined in the Bluetooth specification. @@ -370,7 +370,7 @@ - + Describes the high-level implementation of the Silicon Labs Gecko Bootloader for EFR32 SoCs and NCPs, and provides information on how to get started using the Gecko Bootloader with Silicon Labs wireless protocol stacks in GSDK 4.0 and higher. @@ -378,7 +378,7 @@ - + The Bluetooth Direction Finding Tool Suite is meant to ease development with the Silicon Labs' RTL library. It provides multiple tools to configure the system, and also helps the development with analyzer tools that calculate many output parameters from the observed IQ samples. diff --git a/app/bluetooth/esf.properties b/app/bluetooth/esf.properties index 32b5278848..e039c8c874 100644 --- a/app/bluetooth/esf.properties +++ b/app/bluetooth/esf.properties @@ -3,8 +3,8 @@ id=com.silabs.stack.ble label=Bluetooth SDK description=Bluetooth Software Development Kit -version=8.1.0.0 -prop.subLabel=Bluetooth\\ 8.1.0 +version=8.2.0.0 +prop.subLabel=Bluetooth\\ 8.2.0 # Default compatibility of the BLE SDK prop.boardCompatibility=.* diff --git a/app/bluetooth/example/bt_cs_soc_initiator/app.c b/app/bluetooth/example/bt_cs_soc_initiator/app.c index bda8ca9f4a..93d444b3f8 100644 --- a/app/bluetooth/example/bt_cs_soc_initiator/app.c +++ b/app/bluetooth/example/bt_cs_soc_initiator/app.c @@ -27,6 +27,8 @@ * 3. This notice may not be removed or altered from any source distribution. * ******************************************************************************/ +// ----------------------------------------------------------------------------- +// Includes #include #include #include "sl_bluetooth.h" @@ -52,14 +54,24 @@ #include "ble_peer_manager_connections.h" #include "ble_peer_manager_central.h" #include "ble_peer_manager_filter.h" -#include "sl_simple_button.h" -#include "sl_simple_button_instances.h" + #ifdef SL_CATALOG_CS_INITIATOR_CLI_PRESENT #include "cs_initiator_cli.h" #endif // SL_CATALOG_CS_INITIATOR_CLI_PRESENT -#define PB0 SL_SIMPLE_BUTTON_INSTANCE(0) -#define PB1 SL_SIMPLE_BUTTON_INSTANCE(1) +#ifdef SL_CATALOG_SIMPLE_BUTTON_PRESENT +#include "sl_simple_button.h" +#include "sl_simple_button_instances.h" + +// ----------------------------------------------------------------------------- +// Macros +#if (SL_SIMPLE_BUTTON_COUNT < 1) +#warning "Selecting CS mode and Object tracking mode with push buttons is not configured!" +#endif +#if (SL_SIMPLE_BUTTON_COUNT == 1) +#warning "Only one push button configured: only CS mode can be selected by push button." +#endif +#endif // SL_CATALOG_SIMPLE_BUTTON_PRESENT #define MAX_PERCENTAGE 100u #define NL APP_LOG_NL @@ -67,12 +79,24 @@ #define INSTANCE_PREFIX "[%u] " #define APP_INSTANCE_PREFIX APP_PREFIX INSTANCE_PREFIX +// ----------------------------------------------------------------------------- +// Static function declarations static void cs_on_result(const cs_result_t *result, const void *user_data); static void cs_on_intermediate_result(const cs_intermediate_result_t *intermediate_result, const void *user_data); static void cs_on_error(uint8_t conn_handle, cs_error_event_t err_evt, sl_status_t sc); -static bool mode_button_pressed = false, algo_mode_button_pressed = false; +// ----------------------------------------------------------------------------- +// Static variables + +#if (SL_SIMPLE_BUTTON_COUNT > 0) +static bool mode_button_pressed = false; +#endif + +#if (SL_SIMPLE_BUTTON_COUNT > 1) +static bool algo_mode_button_pressed = false; +#endif + static bool measurement_arrived = false; static bool measurement_progress_changed = false; static uint32_t measurement_cnt = 0u; @@ -93,26 +117,28 @@ SL_WEAK void app_init(void) app_log_filter_threshold_set(APP_LOG_LEVEL_INFO); app_log_filter_threshold_enable(true); - app_log_info(NL); - app_log_append_info("+-[CS initiator by Silicon Labs]--------------------------+" NL); - app_log_append_info("+---------------------------------------------------------+" APP_LOG_NL APP_LOG_NL); + app_log_info("+-[CS initiator by Silicon Labs]--------------------------+" NL); + app_log_append_info("+---------------------------------------------------------+" NL); app_log_append_info(APP_PREFIX "Default measurement mode: %s" NL, MEASUREMENT_MODE == sl_bt_cs_mode_rtt ? "RTT" : "PBR"); - app_log_append_info(APP_PREFIX "Press PB0 while reset to select %s measurement mode!" NL, +#if (SL_SIMPLE_BUTTON_COUNT > 0) + app_log_append_info(APP_PREFIX "Press BTN0 while reset to select %s measurement mode!" NL, MEASUREMENT_MODE == sl_bt_cs_mode_rtt ? "PBR" : "RTT"); +#endif // (SL_SIMPLE_BUTTON_COUNT > 0) app_log_append_info("+---------------------------------------------------------+" NL); app_log_append_info(APP_PREFIX "Default object tracking mode: %s" NL, OBJECT_TRACKING_MODE == SL_RTL_CS_ALGO_MODE_STATIC_HIGH_ACCURACY ? "stationary object tracking" : "moving object tracking "); - - app_log_append_info(APP_PREFIX "Press PB1 while reset to select object tracking mode:" NL); +#if (SL_SIMPLE_BUTTON_COUNT > 1) + app_log_append_info(APP_PREFIX "Press BTN1 while reset to select object tracking mode:" NL); app_log_append_info("%s" NL, OBJECT_TRACKING_MODE == SL_RTL_CS_ALGO_MODE_STATIC_HIGH_ACCURACY ? "moving object tracking " : "stationary object tracking"); +#endif // (SL_SIMPLE_BUTTON_COUNT > 1) app_log_append_info("+---------------------------------------------------------+" NL); @@ -144,44 +170,39 @@ SL_WEAK void app_init(void) app_log_append_info(NL); app_log_info("+-------------------------------------------------------+" NL); - if (SL_SIMPLE_BUTTON_COUNT > 1) { - mode_button_pressed = sl_button_get_state(PB0); - algo_mode_button_pressed = sl_button_get_state(PB1); - } else { - app_assert_status_f(SL_STATUS_FAIL, "Not enough buttons configured!" - "BTN0 and BTN1 are required for this example!"); - } +#if (SL_SIMPLE_BUTTON_COUNT > 0) + mode_button_pressed = sl_button_get_state(SL_SIMPLE_BUTTON_INSTANCE(0)); - // Start with a different mode when buttons pressed! - if (algo_mode_button_pressed == SL_SIMPLE_BUTTON_PRESSED - && OBJECT_TRACKING_MODE == SL_RTL_CS_ALGO_MODE_REAL_TIME_BASIC) { - algo_mode = SL_RTL_CS_ALGO_MODE_STATIC_HIGH_ACCURACY; - } else if (algo_mode_button_pressed == SL_SIMPLE_BUTTON_PRESSED - && OBJECT_TRACKING_MODE == SL_RTL_CS_ALGO_MODE_STATIC_HIGH_ACCURACY) { - algo_mode = SL_RTL_CS_ALGO_MODE_REAL_TIME_BASIC; + if (mode_button_pressed == SL_SIMPLE_BUTTON_PRESSED) { + mode = MEASUREMENT_MODE == sl_bt_cs_mode_pbr + ? sl_bt_cs_mode_rtt + : sl_bt_cs_mode_pbr; } - app_log_info(APP_PREFIX "Measurement mode selected: "); - if (mode_button_pressed == SL_SIMPLE_BUTTON_PRESSED - && MEASUREMENT_MODE == sl_bt_cs_mode_pbr) { - mode = sl_bt_cs_mode_rtt; - } else if (mode_button_pressed == SL_SIMPLE_BUTTON_PRESSED - && MEASUREMENT_MODE == sl_bt_cs_mode_rtt) { - mode = sl_bt_cs_mode_pbr; - } app_log_append_info("%s" NL, mode == sl_bt_cs_mode_rtt ? "RTT" : "PBR"); +#endif // (SL_SIMPLE_BUTTON_COUNT > 0) initiator_config.cs_mode = mode; +#if (SL_SIMPLE_BUTTON_COUNT > 1) + algo_mode_button_pressed = sl_button_get_state(SL_SIMPLE_BUTTON_INSTANCE(1)); + + if (algo_mode_button_pressed == SL_SIMPLE_BUTTON_PRESSED) { + algo_mode = OBJECT_TRACKING_MODE == SL_RTL_CS_ALGO_MODE_REAL_TIME_BASIC + ? SL_RTL_CS_ALGO_MODE_STATIC_HIGH_ACCURACY + : SL_RTL_CS_ALGO_MODE_REAL_TIME_BASIC; + } + app_log_info(APP_PREFIX "Object tracking mode selected: %s" NL, algo_mode == SL_RTL_CS_ALGO_MODE_STATIC_HIGH_ACCURACY ? "stationary object tracking" : "moving object tracking"); +#endif // (SL_SIMPLE_BUTTON_COUNT > 1) rtl_config.algo_mode = algo_mode; -#ifdef SL_CATALOG_CS_INITIATOR_CLI_PRESENT +#if defined(SL_CATALOG_CS_INITIATOR_CLI_PRESENT) && defined(SL_CATALOG_SIMPLE_BUTTON_PRESENT) app_log_warning(APP_PREFIX "Measurement mode and Object tracking mode selected by " "push buttons may be overruled by CLI configuration!" NL); -#endif // SL_CATALOG_CS_INITIATOR_CLI_PRESENT +#endif // defined (SL_CATALOG_CS_INITIATOR_CLI_PRESENT) && defined(SL_CATALOG_SIMPLE_BUTTON_PRESENT) // Show the first LCD screen sc = cs_initiator_display_init(); @@ -274,7 +295,7 @@ SL_WEAK void app_process_action(void) } // ----------------------------------------------------------------------------- -// Static function declarations +// Static function definitions /****************************************************************************** * Extract measurement results @@ -313,7 +334,7 @@ static void cs_on_error(uint8_t conn_handle, cs_error_event_t err_evt, sl_status case CS_ERROR_EVENT_CS_PROCEDURE_UNEXPECTED_DATA: app_assert(false, APP_INSTANCE_PREFIX "Unrecoverable CS procedure error happened!" - "[E: 0x%x sc: 0x%lx]" APP_LOG_NL, + "[E: 0x%x sc: 0x%lx]" NL, conn_handle, err_evt, sc); @@ -321,7 +342,7 @@ static void cs_on_error(uint8_t conn_handle, cs_error_event_t err_evt, sl_status // Discard case CS_ERROR_EVENT_RTL_PROCESS_ERROR: app_log_error(APP_INSTANCE_PREFIX "RTL processing error happened!" - "[E: 0x%x sc: 0x%lx]" APP_LOG_NL, + "[E: 0x%x sc: 0x%lx]" NL, conn_handle, err_evt, sc); @@ -329,15 +350,15 @@ static void cs_on_error(uint8_t conn_handle, cs_error_event_t err_evt, sl_status // Close connection default: app_log_error(APP_INSTANCE_PREFIX "Error happened! Closing connection." - "[E: 0x%x sc: 0x%lx]" APP_LOG_NL, + "[E: 0x%x sc: 0x%lx]" NL, conn_handle, err_evt, sc); // Common errors if (err_evt == CS_ERROR_EVENT_TIMER_ELAPSED) { - app_log_error(APP_INSTANCE_PREFIX "Operation timeout." APP_LOG_NL, conn_handle); + app_log_error(APP_INSTANCE_PREFIX "Operation timeout." NL, conn_handle); } else if (err_evt == CS_ERROR_EVENT_INITIATOR_FAILED_TO_INCREASE_SECURITY) { - app_log_error(APP_INSTANCE_PREFIX "Security level increase failed." APP_LOG_NL, conn_handle); + app_log_error(APP_INSTANCE_PREFIX "Security level increase failed." NL, conn_handle); } // Close the connection (void)ble_peer_manager_central_close_connection(conn_handle); @@ -372,8 +393,8 @@ void sl_bt_on_event(sl_bt_msg_t *evt) &min_tx_power_x10, &max_tx_power_x10); app_assert_status(sc); - app_log_info(APP_PREFIX "Minimum system TX power is set to: %d dBm" APP_LOG_NL, min_tx_power_x10 / 10); - app_log_info(APP_PREFIX "Maximum system TX power is set to: %d dBm" APP_LOG_NL, max_tx_power_x10 / 10); + app_log_info(APP_PREFIX "Minimum system TX power is set to: %d dBm" NL, min_tx_power_x10 / 10); + app_log_info(APP_PREFIX "Maximum system TX power is set to: %d dBm" NL, max_tx_power_x10 / 10); // Print the Bluetooth address bd_addr address; @@ -405,7 +426,7 @@ void sl_bt_on_event(sl_bt_msg_t *evt) // Start scanning for reflector connections app_log_info(APP_PREFIX "Scanning started for reflector connections..." NL); #else - app_log_info("CS CLI is active." APP_LOG_NL); + app_log_info("CS CLI is active." NL); #endif // SL_CATALOG_CS_INITIATOR_CLI_PRESENT break; diff --git a/app/bluetooth/example/bt_ncp/bt_ncp_esl_ap.slcp b/app/bluetooth/example/bt_ncp/bt_ncp_esl_ap.slcp index 1136086a8f..0a6b3fffc4 100644 --- a/app/bluetooth/example/bt_ncp/bt_ncp_esl_ap.slcp +++ b/app/bluetooth/example/bt_ncp/bt_ncp_esl_ap.slcp @@ -146,6 +146,8 @@ configuration: value: "0" - name: NVM3_DEFAULT_NVM_SIZE value: "32768" + - name: SL_NCP_EMIT_SYSTEM_ERROR_EVT + value: "1" tag: - prebuilt_demo diff --git a/app/bluetooth/example/bt_soc_throughput/app.c b/app/bluetooth/example/bt_soc_throughput/app.c index e3c220c908..c30dc45110 100644 --- a/app/bluetooth/example/bt_soc_throughput/app.c +++ b/app/bluetooth/example/bt_soc_throughput/app.c @@ -3,7 +3,7 @@ * @brief Core application logic. ******************************************************************************* * # License - * Copyright 2021 Silicon Laboratories Inc. www.silabs.com + * Copyright 2024 Silicon Laboratories Inc. www.silabs.com ******************************************************************************* * * SPDX-License-Identifier: Zlib @@ -47,17 +47,17 @@ #endif #if SL_SIMPLE_BUTTON_COUNT >= 2 -#define PB0 SL_SIMPLE_BUTTON_INSTANCE(0) -#define PB1 SL_SIMPLE_BUTTON_INSTANCE(1) +#define BUTTON_0 SL_SIMPLE_BUTTON_INSTANCE(0) +#define BUTTON_1 SL_SIMPLE_BUTTON_INSTANCE(1) #elif SL_SIMPLE_BUTTON_COUNT == 1 -#define PB0 SL_SIMPLE_BUTTON_INSTANCE(0) -#define PB1 PB0 +#define BUTTON_0 SL_SIMPLE_BUTTON_INSTANCE(0) +#define BUTTON_1 BUTTON_0 #define LED0 SL_SIMPLE_LED_INSTANCE(0) #define BUTTON_TIMEOUT 1000 #endif // SL_SIMPLE_BUTTON_COUNT -#define PB0_VALUE ((uint8_t)(1 << 0)) ///< Button 0 pressed. -#define PB1_VALUE ((uint8_t)(1 << 1)) ///< Button 1 pressed. +#define BUTTON_0_VALUE ((uint8_t)(1 << 0)) ///< Button 0 pressed. +#define BUTTON_1_VALUE ((uint8_t)(1 << 1)) ///< Button 1 pressed. /// Enabled, if switching roles (central - peripheral) bool switching_roles = false; @@ -176,11 +176,11 @@ static void handle_cli_switch_command(throughput_role_t role_request) uint8_t app_check_buttons() { uint8_t ret = 0; - if (sl_button_get_state(PB0) == SL_SIMPLE_BUTTON_PRESSED) { - ret |= PB0_VALUE; + if (sl_button_get_state(BUTTON_0) == SL_SIMPLE_BUTTON_PRESSED) { + ret |= BUTTON_0_VALUE; } - if (sl_button_get_state(PB1) == SL_SIMPLE_BUTTON_PRESSED) { - ret |= PB1_VALUE; + if (sl_button_get_state(BUTTON_1) == SL_SIMPLE_BUTTON_PRESSED) { + ret |= BUTTON_1_VALUE; } return ret; } diff --git a/app/bluetooth/example_host/bt_host_esl_ap/ap_core.py b/app/bluetooth/example_host/bt_host_esl_ap/ap_core.py index 1eb4420ee6..5fa9754fab 100644 --- a/app/bluetooth/example_host/bt_host_esl_ap/ap_core.py +++ b/app/bluetooth/example_host/bt_host_esl_ap/ap_core.py @@ -88,7 +88,7 @@ def __init__(self, config, unsecure, cmd_mode=False, demo_mode=False): self.esl_command_queue_lock = threading.Lock() self.esl_pending_commands_lock = threading.Lock() # Shutdown timer is executed if boot event fails - self.shutdown_timer = threading.Timer(3.0, self.shutdown_timeout) + self.shutdown_timer = threading.Timer(5.0, self.shutdown_timeout) self.shutdown_timer.daemon = True self.shutdown_timer.start() # ESL Demo controller related attributes @@ -1004,13 +1004,13 @@ def synchronization_handler(self): self.remove_esl_pending_command(cmd) # this will remove given command from self.esl_pending_commands # Tag must be in IDLE state to send the command if tag.state == TagState.IDLE and tag.unresp_command_number < ESL_CMD_MAX_RETRY_COUNT: - self.log.info("Resending command: (0x%s) to ESL %d in group %d", cmd.params.hex(), tag.esl_id, tag.group_id) + self.log.info("Resending command: (0x%s) to ESL ID %d in group %d", cmd.params.hex(), tag.esl_id, tag.group_id) self.requeue_pawr_command(cmd.group_id, cmd.params) # and then re-queuing it to the bottom of the "FIFO" if cmd.slot_number not in already_sent: tag.unresp_command_number += 1 already_sent.append(cmd.slot_number) elif tag.unresp_command_number >= ESL_CMD_MAX_RETRY_COUNT: - self.log.warning("Tag at address %s does not respond to synchronization packets, stop retrying", tag.ble_address) + self.log.warning(" ESL ID %d in group %d at address %s does not respond to synchronization packets, stop retrying", tag.esl_id, tag.group_id, tag.ble_address) tag.unresp_command_number = 0 unsyncronized_tags = self.tag_db.list_esl_state(EslState.UNSYNCHRONIZED) @@ -1200,7 +1200,7 @@ def esl_event_connection_closed(self, evt: esl_lib.EventConnectionClosed): if tag.provisioned and not tag.advertising and evt.reason == elw.SL_STATUS_BT_CTRL_CONNECTION_TIMEOUT: # Handle a special edge case in which the synced flag is not set after "succesfully failed" disconnection # i.e. the very last LL handshake can be lost due to radio noise -> sl_status is reported as 0x1008 yet the connection is in fact closed - self.log.debug("Check if Tag at address %s got synchronized despite the reported hypervisor timeout.", tag.ble_address) + self.log.debug("Check if ESL ID %d in group %d at address %s got synchronized despite the reported hypervisor timeout.", tag.esl_id, tag.group_id, tag.ble_address) self.ap_ping(tag.esl_id, tag.group_id) if self.cmd_mode or (logLevel() <= LEVELS['DEBUG'] and tag.associated): log("Tag info about disconnected device:", _half_indent_log=True) @@ -1251,12 +1251,12 @@ def esl_event_error(self, evt: esl_lib.EventError): if tag is not None and not tag.provisioned: if evt.sl_status == elw.SL_STATUS_ABORT or evt.sl_status == elw.SL_STATUS_BT_CTRL_AUTHENTICATION_FAILURE: # handle advertisers that refuse connection retry attempts - e.g. because bonded to other AP if not tag.blocked: - self.log.warning("ESL at address %s has been blocked due to unsuccessful connection attempt(s).", evt.node_id) + self.log.warning("Tag at address %s has been blocked due to unsuccessful connection attempt(s).", evt.node_id) tag.block(elw.ESL_LIB_STATUS_BONDING_FAILED) elif evt.sl_status == elw.SL_STATUS_BT_CTRL_CONNECTION_TERMINATED_BY_LOCAL_HOST and (evt.data == elw.ESL_LIB_CONNECTION_STATE_ESL_DISCOVERY or evt.data == elw.ESL_LIB_CONNECTION_STATE_SERVICE_DISCOVERY): if tag.blocked: self.key_db.delete_ltk(tag.ble_address) # remove key of ESLs which are violating the spec (that is, which are lack of any mandatory GATT entries) - self.log.debug("Bonding for ESL at address %s deleted due to ESL Profile/Service violation.", tag.ble_address) + self.log.debug("Bonding for tag at address %s deleted due to ESL Profile/Service violation.", tag.ble_address) if evt.sl_status in [elw.SL_STATUS_NO_MORE_RESOURCE, elw.SL_STATUS_BT_CTRL_CONNECTION_LIMIT_EXCEEDED] and not self.max_conn_count_reached: self.max_conn_count_reached = True self.log.warning("Access point connection limit reached - suspend connect requests until a connection is closed.") @@ -1291,7 +1291,7 @@ def esl_event_error(self, evt: esl_lib.EventError): elif evt.lib_status == elw.ESL_LIB_STATUS_CONN_DISCOVERY_FAILED and evt.sl_status == elw.SL_STATUS_BT_ATT_REQUEST_NOT_SUPPORTED and evt.data == elw.ESL_LIB_CONNECTION_STATE_SERVICE_DISCOVERY: tag = self.tag_db.find(evt.node_id) if tag is not None and not tag.blocked: - self.log.warning("ESL at address %s has been blocked due to missing mandatory service!", evt.node_id) + self.log.warning("Device at address %s has been blocked due to missing mandatory service!", evt.node_id) tag.block(evt.lib_status) def esl_event_image_type(self, evt: esl_lib.EventImageType): """ ESL event handler """ @@ -1312,7 +1312,7 @@ def cli_esl_event_error(self, evt: esl_lib.EventError): if evt.lib_status in [elw.ESL_LIB_STATUS_CONN_FAILED, elw.ESL_LIB_STATUS_CONN_CLOSE_FAILED, elw.ESL_LIB_STATUS_CONN_TIMEOUT]: if evt.lib_status == elw.ESL_LIB_STATUS_CONN_FAILED: if evt.sl_status == elw.SL_STATUS_BT_CTRL_AUTHENTICATION_FAILURE or evt.data == elw.ESL_LIB_CONNECTION_STATE_NEW_BOND_REQUIRED: # handle advertisers bonded to different AP - self.log.info("ESL at address %s refused connection attempts - seemingly bonded to other AP", evt.node_id) + self.log.info("Tag at address %s refused connection attempts - seemingly bonded to other AP", evt.node_id) elif evt.lib_status == elw.ESL_LIB_STATUS_CONN_TIMEOUT: if evt.data == elw.ESL_LIB_CONNECTION_STATE_CONNECTING: self.log.error("Timeout occured on connection attempt to address %s", evt.node_id) @@ -2173,7 +2173,7 @@ def handle_pawr_response(self, data, response_slot, subevent): # Resend retry error responses if response_data[0] == TLV_RESPONSE_ERROR: if response_data[1] == ERROR_RESPONSE_RETRY or response_data[1] == ERROR_RESPONSE_CAPACITY_LIMIT: - self.log.info("Resending command: (0x%s) to ESL %d in group %d", cmd.params.hex(), tag.esl_id, tag.group_id) + self.log.info("Resending command: (0x%s) to ESL ID %d in group %d", cmd.params.hex(), tag.esl_id, tag.group_id) self.queue_pawr_command(cmd.group_id, cmd.params) # pop_list is for already processed answers - will skip those in any next round of this the for cycle pop_list.append(self.esl_pending_commands[subevent].index(cmd)) diff --git a/app/bluetooth/example_host/bt_host_esl_ap/esl_tag.py b/app/bluetooth/example_host/bt_host_esl_ap/esl_tag.py index 5388da7b56..e8640189dd 100644 --- a/app/bluetooth/example_host/bt_host_esl_ap/esl_tag.py +++ b/app/bluetooth/example_host/bt_host_esl_ap/esl_tag.py @@ -634,7 +634,12 @@ def handle_event(self, evt): for ix, (tlv, value) in enumerate(evt.tlv_data.items()): if len(value) == 0: # According to the ESL Service Specification, none of the ESL Information Characteristics can be valid without data! self.block(elw.ESL_LIB_STATUS_CONN_DISCOVERY_FAILED) - self.log.error("ESL at address %s blocked due to invalid zero length characteristic data for TLV type %d at data index %d", self.ble_address, tlv, ix) + self.log.error( + "Tag at address %s blocked due to invalid zero length characteristic data for TLV type %d at data index %d", + self.ble_address, + tlv, + ix, + ) self.close_connection(force_close=True) self.gatt_values.update(evt.tlv_data) if elw.ESL_LIB_DATA_TYPE_GATT_PNP_ID in evt.tlv_data: @@ -667,7 +672,12 @@ def handle_event(self, evt): else: self._associated = False if self.provisioned: - self.log.info("ESL Tag fully provisioned at address %s", self.ble_address) + self.log.info( + "Tag fully provisioned at address %s as ESL ID %d in group %d.", + self.ble_address, + self.esl_id, + self.group_id, + ) self.busy = False elif isinstance(evt, esl_lib.EventImageType): if evt.connection_handle == self.connection_handle: @@ -702,7 +712,10 @@ def handle_event(self, evt): if self.advertising: if self.esl_state == EslState.SYNCHRONIZED: self.log.warning( - "ESL at address %s lost sync!", self.ble_address + "ESL ID %d in group %d at address %s lost sync!", + self.esl_id, + self.group_id, + self.ble_address, ) self.reset() # reset will clear _advertising state, too self._advertising = True # set _advertising back - since it is indeed advertising @@ -714,7 +727,10 @@ def handle_event(self, evt): elif evt.lib_status == elw.ESL_LIB_STATUS_CONN_SUBSCRIBE_FAILED: if evt.sl_status == elw.SL_STATUS_BT_ATT_CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_IMPROPERLY_CONFIGURED and not self.blocked: self.block(evt.lib_status) - self.log.error("ESL at address %s blocked due to violation of ESL Profile / Service specification!", self.ble_address) + self.log.error( + "Tag at address %s blocked due to violation of ESL Profile / Service specification!", + self.ble_address, + ) else: self.log.warning("Failed subscription attempt to the ESL Control Point at address %s - connection will be terminated!", self.ble_address) elif evt.lib_status == elw.ESL_LIB_STATUS_CONN_FAILED: @@ -735,8 +751,13 @@ def handle_event(self, evt): self._past_timer.cancel() self._past_initiated = False self.connection_handle = None - if evt.data in [elw.ESL_LIB_CONNECTION_STATE_PAST_CLOSE_CONNECTION, elw.ESL_LIB_CONNECTION_STATE_PAST_INIT]: - self.log.warning("ESL at address %s failed to sync!", self.ble_address) + if evt.data in [ + elw.ESL_LIB_CONNECTION_STATE_PAST_CLOSE_CONNECTION, + elw.ESL_LIB_CONNECTION_STATE_PAST_INIT, + ]: + self.log.warning( + "Tag at address %s failed to sync!", self.ble_address + ) self.reset() elif evt.lib_status == elw.ESL_LIB_STATUS_OTS_GOTO_FAILED: if evt.sl_status == elw.SL_STATUS_NOT_FOUND: diff --git a/app/btmesh/btmesh.properties b/app/btmesh/btmesh.properties index f689f23e65..2a5d631c3a 100644 --- a/app/btmesh/btmesh.properties +++ b/app/btmesh/btmesh.properties @@ -2,8 +2,8 @@ id=com.silabs.stack.btMesh label=Bluetooth Mesh SDK description=Bluetooth Mesh Software Development Kit -version=7.0.1.0 -prop.subLabel=Bluetooth\\ Mesh\\ 7.0.1 +version=7.0.2.0 +prop.subLabel=Bluetooth\\ Mesh\\ 7.0.2 # Default compatibility of the BT Mesh SDK (This is needed for the documentation only) prop.boardCompatibility=.* diff --git a/app/btmesh/btmesh_internal_demos.xml b/app/btmesh/btmesh_internal_demos.xml index c3fee88130..46ad07c3a2 100644 --- a/app/btmesh/btmesh_internal_demos.xml +++ b/app/btmesh/btmesh_internal_demos.xml @@ -6,11 +6,11 @@ - + - + Friend example for IOP test. This node acts as a friend for the low power node and caches messages sent to it when the low power node is sleeping. @@ -18,11 +18,11 @@ - + - + Friend example for IOP test. This node acts as a friend for the low power node and caches messages sent to it when the low power node is sleeping. @@ -30,11 +30,11 @@ - + - + Friend example for IOP test. This node acts as a friend for the low power node and caches messages sent to it when the low power node is sleeping. @@ -42,11 +42,11 @@ - + - + Friend example for IOP test. This node acts as a friend for the low power node and caches messages sent to it when the low power node is sleeping. @@ -54,11 +54,11 @@ - + - + Low power node example for IOP test. This node acts as a typical low power device and sleeps most of the time. It needs a friend node to cache messages and forward them when polled. @@ -66,11 +66,11 @@ - + - + Low power node example for IOP test. This node acts as a typical low power device and sleeps most of the time. It needs a friend node to cache messages and forward them when polled. @@ -78,11 +78,11 @@ - + - + Low power node example for IOP test. This node acts as a typical low power device and sleeps most of the time. It needs a friend node to cache messages and forward them when polled. @@ -90,11 +90,11 @@ - + - + Low power node example for IOP test. This node acts as a typical low power device and sleeps most of the time. It needs a friend node to cache messages and forward them when polled. @@ -102,11 +102,11 @@ - + - + Low power node example for IOP test. This node acts as a typical low power device and sleeps most of the time. It needs a friend node to cache messages and forward them when polled. @@ -114,11 +114,11 @@ - + - + Low power node example for IOP test. This node acts as a typical low power device and sleeps most of the time. It needs a friend node to cache messages and forward them when polled. @@ -126,11 +126,11 @@ - + - + Proxy example for IOP test. This node forwards/relays messages between GATT and advertising bearers in the network. @@ -138,11 +138,11 @@ - + - + Proxy example for IOP test. This node forwards/relays messages between GATT and advertising bearers in the network. @@ -150,11 +150,11 @@ - + - + Proxy example for IOP test. This node forwards/relays messages between GATT and advertising bearers in the network. @@ -162,11 +162,11 @@ - + - + Proxy example for IOP test. This node forwards/relays messages between GATT and advertising bearers in the network. @@ -174,11 +174,11 @@ - + - + Proxy example for IOP test. This node forwards/relays messages between GATT and advertising bearers in the network. @@ -186,11 +186,11 @@ - + - + Relay example for IOP test. This node acts as a relay, i.e. if a node is out of range for another node, it relays messages between the two, provided the relay node is in range for both. @@ -198,11 +198,11 @@ - + - + Relay example for IOP test. This node acts as a relay, i.e. if a node is out of range for another node, it relays messages between the two, provided the relay node is in range for both. @@ -210,11 +210,11 @@ - + - + Relay example for IOP test. This node acts as a relay, i.e. if a node is out of range for another node, it relays messages between the two, provided the relay node is in range for both. @@ -222,11 +222,11 @@ - + - + Relay example for IOP test. This node acts as a relay, i.e. if a node is out of range for another node, it relays messages between the two, provided the relay node is in range for both. @@ -234,11 +234,11 @@ - + - + Relay example for IOP test. This node acts as a relay, i.e. if a node is out of range for another node, it relays messages between the two, provided the relay node is in range for both. @@ -246,10 +246,10 @@ - + - + diff --git a/app/btmesh/btmesh_production_demos.xml b/app/btmesh/btmesh_production_demos.xml index c8cc62f54b..ed59a571c0 100644 --- a/app/btmesh/btmesh_production_demos.xml +++ b/app/btmesh/btmesh_production_demos.xml @@ -6,11 +6,11 @@ - + - + An NCP Target C application that makes it possible for the NCP Host Controller to access the Bluetooth Mesh stack via UART. It provides access to the host layer via BGAPI and not to the link layer via HCI. @@ -18,11 +18,11 @@ - + - + An NCP Target C application that makes it possible for the NCP Host Controller to access the Bluetooth Mesh stack via UART. It provides access to the host layer via BGAPI and not to the link layer via HCI. @@ -30,11 +30,11 @@ - + - + Demonstrates the bare minimum needed for an NCP Target C application. This example is recommended for EFR32xG22, which has limited RAM and flash, and therefore some of the stack classes are disabled by default. @@ -42,11 +42,11 @@ - + - + An NCP Target C application that makes it possible for the NCP Host Controller to access the Bluetooth Mesh stack via UART. It provides access to the host layer via BGAPI and not to the link layer via HCI. @@ -54,11 +54,11 @@ - + - + An NCP Target C application that makes it possible for the NCP Host Controller to access the Bluetooth Mesh stack via UART. It provides access to the host layer via BGAPI and not to the link layer via HCI. @@ -66,11 +66,11 @@ - + - + An NCP Target C application that makes it possible for the NCP Host Controller to access the Bluetooth Mesh stack via UART. It provides access to the host layer via BGAPI and not to the link layer via HCI. @@ -78,11 +78,11 @@ - + - + An NCP Target C application that makes it possible for the NCP Host Controller to access the Bluetooth Mesh stack via UART. It provides access to the host layer via BGAPI and not to the link layer via HCI. @@ -90,11 +90,11 @@ - + - + Demonstrates the bare minimum needed for an NCP Target C application. This example is recommended for EFR32xG22, which has limited RAM and flash, and therefore some of the stack classes are disabled by default. @@ -102,11 +102,11 @@ - + - + Demonstrates the bare minimum needed for an NCP Target C application. This example is recommended for EFR32xG22, which has limited RAM and flash, and therefore some of the stack classes are disabled by default. @@ -114,11 +114,11 @@ - + - + Demonstrates the bare minimum needed for an NCP Target C application. This example is recommended for EFR32xG22, which has limited RAM and flash, and therefore some of the stack classes are disabled by default. @@ -126,11 +126,11 @@ - + - + Demonstrates the bare minimum needed for an NCP Target C application. This example is recommended for EFR32xG22, which has limited RAM and flash, and therefore some of the stack classes are disabled by default. @@ -138,11 +138,11 @@ - + - + Demonstrates the bare minimum needed for an NCP Target C application. This example is recommended for EFR32xG22, which has limited RAM and flash, and therefore some of the stack classes are disabled by default. @@ -150,11 +150,11 @@ - + - + An NCP Target C application that makes it possible for the NCP Host Controller to access the Bluetooth Mesh stack via UART. It provides access to the host layer via BGAPI and not to the link layer via HCI. @@ -162,11 +162,11 @@ - + - + An NCP Target C application that makes it possible for the NCP Host Controller to access the Bluetooth Mesh stack via UART. It provides access to the host layer via BGAPI and not to the link layer via HCI. @@ -174,11 +174,11 @@ - + - + An NCP Target C application that makes it possible for the NCP Host Controller to access the Bluetooth Mesh stack via UART. It provides access to the host layer via BGAPI and not to the link layer via HCI. @@ -186,11 +186,11 @@ - + - + An NCP Target C application that makes it possible for the NCP Host Controller to access the Bluetooth Mesh stack via UART. It provides access to the host layer via BGAPI and not to the link layer via HCI. @@ -198,11 +198,11 @@ - + - + An NCP Target C application that makes it possible for the NCP Host Controller to access the Bluetooth Mesh stack via UART. It provides access to the host layer via BGAPI and not to the link layer via HCI. @@ -210,11 +210,11 @@ - + - + An NCP Target C application that makes it possible for the NCP Host Controller to access the Bluetooth Mesh stack via UART. It provides access to the host layer via BGAPI and not to the link layer via HCI. @@ -222,11 +222,11 @@ - + - + An NCP Target C application that makes it possible for the NCP Host Controller to access the Bluetooth Mesh stack via UART. It provides access to the host layer via BGAPI and not to the link layer via HCI. @@ -234,11 +234,11 @@ - + - + An NCP Target C application that makes it possible for the NCP Host Controller to access the Bluetooth Mesh stack via UART. It provides access to the host layer via BGAPI and not to the link layer via HCI. @@ -246,11 +246,11 @@ - + - + An NCP Target C application that makes it possible for the NCP Host Controller to access the Bluetooth Mesh stack via UART. It provides access to the host layer via BGAPI and not to the link layer via HCI. @@ -258,11 +258,11 @@ - + - + An NCP Target C application that makes it possible for the NCP Host Controller to access the Bluetooth Mesh stack via UART. It provides access to the host layer via BGAPI and not to the link layer via HCI. @@ -270,11 +270,11 @@ - + - + An NCP Target C application that makes it possible for the NCP Host Controller to access the Bluetooth Mesh stack via UART. It provides access to the host layer via BGAPI and not to the link layer via HCI. @@ -282,11 +282,11 @@ - + - + Demonstrates the bare minimum needed for an NCP Target C application. This example is recommended for EFR32xG22, which has limited RAM and flash, and therefore some of the stack classes are disabled by default. @@ -294,11 +294,11 @@ - + - + Demonstrates the bare minimum needed for an NCP Target C application. This example is recommended for EFR32xG22, which has limited RAM and flash, and therefore some of the stack classes are disabled by default. @@ -306,11 +306,11 @@ - + - + Demonstrates the bare minimum needed for an NCP Target C application. This example is recommended for EFR32xG22, which has limited RAM and flash, and therefore some of the stack classes are disabled by default. @@ -318,11 +318,11 @@ - + - + An out-of-the-box Software Demo where the device acts as an ambient light sensor in a Networked Lighting Control (NLC) system. The device simulates ambient light measurements and sends these to the network. Properly configured NLC Basic Lightness Controllers then can act on the received data. @@ -330,11 +330,11 @@ - + - + An out-of-the-box Software Demo where the device acts as an ambient light sensor in a Networked Lighting Control (NLC) system. The device simulates ambient light measurements and sends these to the network. Properly configured NLC Basic Lightness Controllers then can act on the received data. @@ -342,11 +342,11 @@ - + - + An out-of-the-box Software Demo where the device acts as an ambient light sensor in a Networked Lighting Control (NLC) system. The device simulates ambient light measurements and sends these to the network. Properly configured NLC Basic Lightness Controllers then can act on the received data. @@ -354,11 +354,11 @@ - + - + An out-of-the-box Software Demo where the device acts as an ambient light sensor in a Networked Lighting Control (NLC) system. The device simulates ambient light measurements and sends these to the network. Properly configured NLC Basic Lightness Controllers then can act on the received data. @@ -366,11 +366,11 @@ - + - + An out-of-the-box Software Demo where the device acts as an ambient light sensor in a Networked Lighting Control (NLC) system. The device simulates ambient light measurements and sends these to the network. Properly configured NLC Basic Lightness Controllers then can act on the received data. @@ -378,11 +378,11 @@ - + - + An out-of-the-box Software Demo where the device acts as an ambient light sensor in a Networked Lighting Control (NLC) system. The device simulates ambient light measurements and sends these to the network. Properly configured NLC Basic Lightness Controllers then can act on the received data. @@ -390,11 +390,11 @@ - + - + An out-of-the-box Software Demo where the device acts as an ambient light sensor in a Networked Lighting Control (NLC) system. The device simulates ambient light measurements and sends these to the network. Properly configured NLC Basic Lightness Controllers then can act on the received data. @@ -402,11 +402,11 @@ - + - + An out-of-the-box Software Demo where the device acts as an ambient light sensor in a Networked Lighting Control (NLC) system. The device simulates ambient light measurements and sends these to the network. Properly configured NLC Basic Lightness Controllers then can act on the received data. @@ -414,11 +414,11 @@ - + - + An out-of-the-box Software Demo where the device acts as an ambient light sensor in a Networked Lighting Control (NLC) system. The device simulates ambient light measurements and sends these to the network. Properly configured NLC Basic Lightness Controllers then can act on the received data. @@ -426,11 +426,11 @@ - + - + An out-of-the-box Software Demo where the device acts as an ambient light sensor in a Networked Lighting Control (NLC) system. The device simulates ambient light measurements and sends these to the network. Properly configured NLC Basic Lightness Controllers then can act on the received data. @@ -438,11 +438,11 @@ - + - + An out-of-the-box Software Demo where the device acts as an ambient light sensor in a Networked Lighting Control (NLC) system. The device simulates ambient light measurements and sends these to the network. Properly configured NLC Basic Lightness Controllers then can act on the received data. @@ -450,11 +450,11 @@ - + - + An out-of-the-box Software Demo where the device acts as an ambient light sensor in a Networked Lighting Control (NLC) system. The device simulates ambient light measurements and sends these to the network. Properly configured NLC Basic Lightness Controllers then can act on the received data. @@ -462,11 +462,11 @@ - + - + An out-of-the-box Software Demo where the device acts as an ambient light sensor in a Networked Lighting Control (NLC) system. The device simulates ambient light measurements and sends these to the network. Properly configured NLC Basic Lightness Controllers then can act on the received data. @@ -474,11 +474,11 @@ - + - + An out-of-the-box Software Demo where the device acts as an ambient light sensor in a Networked Lighting Control (NLC) system. The device simulates ambient light measurements and sends these to the network. Properly configured NLC Basic Lightness Controllers then can act on the received data. @@ -486,11 +486,11 @@ - + - + An out-of-the-box Software Demo where the device acts as an ambient light sensor in a Networked Lighting Control (NLC) system. The device simulates ambient light measurements and sends these to the network. Properly configured NLC Basic Lightness Controllers then can act on the received data. @@ -498,11 +498,11 @@ - + - + An out-of-the-box Software Demo where the device acts as an ambient light sensor in a Networked Lighting Control (NLC) system. The device simulates ambient light measurements and sends these to the network. Properly configured NLC Basic Lightness Controllers then can act on the received data. @@ -510,11 +510,11 @@ - + - + An out-of-the-box Software Demo where the device acts as an ambient light sensor in a Networked Lighting Control (NLC) system. The device simulates ambient light measurements and sends these to the network. Properly configured NLC Basic Lightness Controllers then can act on the received data. @@ -522,11 +522,11 @@ - + - + An out-of-the-box Software Demo where the device acts as an ambient light sensor in a Networked Lighting Control (NLC) system. The device simulates ambient light measurements and sends these to the network. Properly configured NLC Basic Lightness Controllers then can act on the received data. @@ -534,11 +534,11 @@ - + - + An out-of-the-box Software Demo where the device acts as an ambient light sensor in a Networked Lighting Control (NLC) system. The device simulates ambient light measurements and sends these to the network. Properly configured NLC Basic Lightness Controllers then can act on the received data. @@ -546,11 +546,11 @@ - + - + An out-of-the-box Software Demo where the device acts as an ambient light sensor in a Networked Lighting Control (NLC) system. The device simulates ambient light measurements and sends these to the network. Properly configured NLC Basic Lightness Controllers then can act on the received data. @@ -558,11 +558,11 @@ - + - + An out-of-the-box Software Demo where the device acts as an ambient light sensor in a Networked Lighting Control (NLC) system. The device simulates ambient light measurements and sends these to the network. Properly configured NLC Basic Lightness Controllers then can act on the received data. @@ -570,11 +570,11 @@ - + - + An out-of-the-box Software Demo where the device acts as an Ambient Light Sensor in a Networked Lighting Control (NLC) system. The device measures ambient light and sends these measurements to the network. Properly configured NLC Basic Lightness Controllers then can act on the received data. @@ -582,11 +582,11 @@ - + - + An out-of-the-box Software Demo where the device acts as an Ambient Light Sensor in a Networked Lighting Control (NLC) system. The device measures ambient light and sends these measurements to the network. Properly configured NLC Basic Lightness Controllers then can act on the received data. @@ -594,11 +594,11 @@ - + - + An out-of-the-box Software Demo where the device acts as an Ambient Light Sensor in a Networked Lighting Control (NLC) system. The device measures ambient light and sends these measurements to the network. Properly configured NLC Basic Lightness Controllers then can act on the received data. @@ -606,11 +606,11 @@ - + - + An out-of-the-box Software Demo where the device acts as an Ambient Light Sensor in a Networked Lighting Control (NLC) system. The device measures ambient light and sends these measurements to the network. Properly configured NLC Basic Lightness Controllers then can act on the received data. @@ -618,11 +618,11 @@ - + - + An out-of-the-box software demo where the device acts as a Basic Lightness Controller in a Networked Lighting Control (NLC) system. The device listens to messages from other NLC devices, namely Occupancy Sensor, Ambient Light Sensor, Dimming Control and Basic Scene Selector nodes. @@ -631,11 +631,11 @@ This project uses the RGB LED on the xG24 Dev Kit. - + - + An out-of-the-box software demo where the device acts as a Basic Lightness controller in a Networked Lighting Control (NLC) system. The device listens to messages from other NLC devices, namely Occupancy Sensor, Ambient Light Sensor, Dimming Control and Basic Scene Selector nodes. @@ -644,7 +644,7 @@ This project uses the LEDs on the mainboard. - + @@ -656,11 +656,11 @@ This project uses the LEDs on the mainboard. - + - + An out-of-the-box software demo where the device acts as a Basic Lightness controller in a Networked Lighting Control (NLC) system. The device listens to messages from other NLC devices, namely Occupancy Sensor, Ambient Light Sensor, Dimming Control and Basic Scene Selector nodes. @@ -669,7 +669,7 @@ This project uses the LEDs on the mainboard. - + @@ -681,7 +681,7 @@ This project uses the LEDs on the mainboard. - + @@ -693,7 +693,7 @@ This project uses the LEDs on the mainboard. - + @@ -705,7 +705,7 @@ This project uses the LEDs on the mainboard. - + @@ -717,11 +717,11 @@ This project uses the LEDs on the mainboard. - + - + An out-of-the-box software demo where the device acts as a Basic Lightness controller in a Networked Lighting Control (NLC) system. The device listens to messages from other NLC devices, namely Occupancy Sensor, Ambient Light Sensor, Dimming Control and Basic Scene Selector nodes. @@ -730,11 +730,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the device acts as a Basic Lightness controller in a Networked Lighting Control (NLC) system. The device listens to messages from other NLC devices, namely Occupancy Sensor, Ambient Light Sensor, Dimming Control and Basic Scene Selector nodes. @@ -743,11 +743,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the device acts as a Basic Lightness controller in a Networked Lighting Control (NLC) system. The device listens to messages from other NLC devices, namely Occupancy Sensor, Ambient Light Sensor, Dimming Control and Basic Scene Selector nodes. @@ -756,11 +756,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the device acts as a Basic Lightness controller in a Networked Lighting Control (NLC) system. The device listens to messages from other NLC devices, namely Occupancy Sensor, Ambient Light Sensor, Dimming Control and Basic Scene Selector nodes. @@ -769,11 +769,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the device acts as a Basic Lightness controller in a Networked Lighting Control (NLC) system. The device listens to messages from other NLC devices, namely Occupancy Sensor, Ambient Light Sensor, Dimming Control and Basic Scene Selector nodes. @@ -782,11 +782,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the device acts as a Basic Lightness controller in a Networked Lighting Control (NLC) system. The device listens to messages from other NLC devices, namely Occupancy Sensor, Ambient Light Sensor, Dimming Control and Basic Scene Selector nodes. @@ -795,11 +795,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the device acts as a Basic Lightness controller in a Networked Lighting Control (NLC) system. The device listens to messages from other NLC devices, namely Occupancy Sensor, Ambient Light Sensor, Dimming Control and Basic Scene Selector nodes. @@ -808,11 +808,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the device acts as a Basic Lightness controller in a Networked Lighting Control (NLC) system. The device listens to messages from other NLC devices, namely Occupancy Sensor, Ambient Light Sensor, Dimming Control and Basic Scene Selector nodes. @@ -821,11 +821,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the device acts as a Basic Lightness controller in a Networked Lighting Control (NLC) system. The device listens to messages from other NLC devices, namely Occupancy Sensor, Ambient Light Sensor, Dimming Control and Basic Scene Selector nodes. @@ -834,11 +834,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the device acts as a Basic Lightness controller in a Networked Lighting Control (NLC) system. The device listens to messages from other NLC devices, namely Occupancy Sensor, Ambient Light Sensor, Dimming Control and Basic Scene Selector nodes. @@ -847,11 +847,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the device acts as a Basic Lightness controller in a Networked Lighting Control (NLC) system. The device listens to messages from other NLC devices, namely Occupancy Sensor, Ambient Light Sensor, Dimming Control and Basic Scene Selector nodes. @@ -860,11 +860,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the device acts as a Basic Lightness controller in a Networked Lighting Control (NLC) system. The device listens to messages from other NLC devices, namely Occupancy Sensor, Ambient Light Sensor, Dimming Control and Basic Scene Selector nodes. @@ -873,11 +873,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the device acts as a Basic Lightness controller in a Networked Lighting Control (NLC) system. The device listens to messages from other NLC devices, namely Occupancy Sensor, Ambient Light Sensor, Dimming Control and Basic Scene Selector nodes. @@ -886,11 +886,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the device acts as a Basic Lightness controller in a Networked Lighting Control (NLC) system. The device listens to messages from other NLC devices, namely Occupancy Sensor, Ambient Light Sensor, Dimming Control and Basic Scene Selector nodes. @@ -899,11 +899,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -911,11 +911,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -923,11 +923,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -935,11 +935,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -947,11 +947,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -959,11 +959,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -971,11 +971,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -983,11 +983,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -995,11 +995,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1007,11 +1007,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1019,11 +1019,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1031,11 +1031,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1043,11 +1043,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1055,11 +1055,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1067,11 +1067,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1079,11 +1079,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1091,11 +1091,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1103,11 +1103,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1115,11 +1115,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1127,11 +1127,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1139,11 +1139,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1151,11 +1151,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1163,11 +1163,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1175,11 +1175,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1187,11 +1187,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1199,11 +1199,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1211,11 +1211,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1223,11 +1223,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1235,11 +1235,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1247,11 +1247,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1259,11 +1259,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1271,11 +1271,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1283,11 +1283,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1295,11 +1295,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1307,11 +1307,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1319,11 +1319,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1331,11 +1331,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1343,11 +1343,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1355,11 +1355,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1367,11 +1367,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1379,11 +1379,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1391,11 +1391,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1403,11 +1403,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1415,11 +1415,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1427,11 +1427,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1439,11 +1439,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1451,11 +1451,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1463,11 +1463,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1475,11 +1475,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1487,11 +1487,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1499,11 +1499,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1511,11 +1511,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1523,11 +1523,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1535,11 +1535,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Basic Scene Selector in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by scene recall requests. @@ -1547,11 +1547,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -1559,11 +1559,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -1571,11 +1571,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -1583,11 +1583,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -1595,11 +1595,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -1607,11 +1607,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -1619,11 +1619,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -1631,11 +1631,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -1643,11 +1643,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -1655,11 +1655,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -1667,11 +1667,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -1679,11 +1679,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -1691,11 +1691,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -1703,11 +1703,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -1715,11 +1715,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -1727,11 +1727,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -1739,11 +1739,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -1751,11 +1751,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -1763,11 +1763,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -1775,11 +1775,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -1787,11 +1787,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -1799,11 +1799,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -1811,11 +1811,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -1823,11 +1823,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -1835,11 +1835,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -1847,11 +1847,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -1859,11 +1859,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -1871,11 +1871,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -1883,11 +1883,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -1895,11 +1895,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -1907,11 +1907,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -1919,11 +1919,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -1931,11 +1931,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -1943,11 +1943,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -1955,11 +1955,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -1967,11 +1967,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -1979,11 +1979,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -1991,11 +1991,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -2003,11 +2003,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -2015,11 +2015,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -2027,11 +2027,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -2039,11 +2039,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -2051,11 +2051,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -2063,11 +2063,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -2075,11 +2075,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -2087,11 +2087,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -2099,11 +2099,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -2111,11 +2111,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -2123,11 +2123,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -2135,11 +2135,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -2147,11 +2147,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -2159,11 +2159,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -2171,11 +2171,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a Dimming Control in a Networked Lighting Control (NLC) system. Push Button presses control Basic Lightness Controllers in the network by Generic Level Delta or Generic On/Off messages. @@ -2183,11 +2183,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as an Occupancy Sensor in a Networked Lighting Control (NLC) system. Push Button presses imitate people count changes which can control a properly configured NLC Basic Lightness Controller. @@ -2195,11 +2195,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as an Occupancy Sensor in a Networked Lighting Control (NLC) system. Push Button presses imitate people count changes which can control a properly configured NLC Basic Lightness Controller. @@ -2207,11 +2207,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as an Occupancy Sensor in a Networked Lighting Control (NLC) system. Push Button presses imitate people count changes which can control a properly configured NLC Basic Lightness Controller. @@ -2219,11 +2219,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as an Occupancy Sensor in a Networked Lighting Control (NLC) system. Push Button presses imitate people count changes which can control a properly configured NLC Basic Lightness Controller. @@ -2231,11 +2231,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as an Occupancy Sensor in a Networked Lighting Control (NLC) system. Push Button presses imitate people count changes which can control a properly configured NLC Basic Lightness Controller. @@ -2243,11 +2243,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as an Occupancy Sensor in a Networked Lighting Control (NLC) system. Push Button presses imitate people count changes which can control a properly configured NLC Basic Lightness Controller. @@ -2255,11 +2255,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as an Occupancy Sensor in a Networked Lighting Control (NLC) system. Push Button presses imitate people count changes which can control a properly configured NLC Basic Lightness Controller. @@ -2267,11 +2267,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as an Occupancy Sensor in a Networked Lighting Control (NLC) system. Push Button presses imitate people count changes which can control a properly configured NLC Basic Lightness Controller. @@ -2279,11 +2279,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as an Occupancy Sensor in a Networked Lighting Control (NLC) system. Push Button presses imitate people count changes which can control a properly configured NLC Basic Lightness Controller. @@ -2291,11 +2291,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as an Occupancy Sensor in a Networked Lighting Control (NLC) system. Push Button presses imitate people count changes which can control a properly configured NLC Basic Lightness Controller. @@ -2303,11 +2303,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as an Occupancy Sensor in a Networked Lighting Control (NLC) system. Push Button presses imitate people count changes which can control a properly configured NLC Basic Lightness Controller. @@ -2315,11 +2315,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as an Occupancy Sensor in a Networked Lighting Control (NLC) system. Push Button presses imitate people count changes which can control a properly configured NLC Basic Lightness Controller. @@ -2327,11 +2327,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as an Occupancy Sensor in a Networked Lighting Control (NLC) system. Push Button presses imitate people count changes which can control a properly configured NLC Basic Lightness Controller. @@ -2339,11 +2339,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as an Occupancy Sensor in a Networked Lighting Control (NLC) system. Push Button presses imitate people count changes which can control a properly configured NLC Basic Lightness Controller. @@ -2351,11 +2351,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as an Occupancy Sensor in a Networked Lighting Control (NLC) system. Push Button presses imitate people count changes which can control a properly configured NLC Basic Lightness Controller. @@ -2363,11 +2363,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as an Occupancy Sensor in a Networked Lighting Control (NLC) system. Push Button presses imitate people count changes which can control a properly configured NLC Basic Lightness Controller. @@ -2375,11 +2375,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as an Occupancy Sensor in a Networked Lighting Control (NLC) system. Push Button presses imitate people count changes which can control a properly configured NLC Basic Lightness Controller. @@ -2387,11 +2387,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as an Occupancy Sensor in a Networked Lighting Control (NLC) system. Push Button presses imitate people count changes which can control a properly configured NLC Basic Lightness Controller. @@ -2399,11 +2399,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as an Occupancy Sensor in a Networked Lighting Control (NLC) system. Push Button presses imitate people count changes which can control a properly configured NLC Basic Lightness Controller. @@ -2411,11 +2411,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as an Occupancy Sensor in a Networked Lighting Control (NLC) system. Push Button presses imitate people count changes which can control a properly configured NLC Basic Lightness Controller. @@ -2423,11 +2423,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as an Occupancy Sensor in a Networked Lighting Control (NLC) system. Push Button presses imitate people count changes which can control a properly configured NLC Basic Lightness Controller. @@ -2435,11 +2435,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as an Occupancy Sensor in a Networked Lighting Control (NLC) system. Push Button presses imitate people count changes which can control a properly configured NLC Basic Lightness Controller. @@ -2447,11 +2447,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as an Occupancy Sensor in a Networked Lighting Control (NLC) system. Push Button presses imitate people count changes which can control a properly configured NLC Basic Lightness Controller. @@ -2459,11 +2459,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as an Occupancy Sensor in a Networked Lighting Control (NLC) system. Push Button presses imitate people count changes which can control a properly configured NLC Basic Lightness Controller. @@ -2471,11 +2471,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as an Occupancy Sensor in a Networked Lighting Control (NLC) system. Push Button presses imitate people count changes which can control a properly configured NLC Basic Lightness Controller. @@ -2483,11 +2483,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as an Occupancy Sensor in a Networked Lighting Control (NLC) system. Push Button presses imitate people count changes which can control a properly configured NLC Basic Lightness Controller. @@ -2495,11 +2495,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as an Occupancy Sensor in a Networked Lighting Control (NLC) system. Push Button presses imitate people count changes which can control a properly configured NLC Basic Lightness Controller. @@ -2507,11 +2507,11 @@ This project uses the LEDs and display on the WSTK. - + - + Certificate generating firmware example. Software is generating the device EC key pair, the signing request for the device certificate, and other related data. The generated data can be read out by the Central Authority. @@ -2519,11 +2519,11 @@ This project uses the LEDs and display on the WSTK. - + - + Certificate generating firmware example. Software is generating the device EC key pair, the signing request for the device certificate, and other related data. The generated data can be read out by the Central Authority. @@ -2531,11 +2531,11 @@ This project uses the LEDs and display on the WSTK. - + - + Certificate generating firmware example. Software is generating the device EC key pair, the signing request for the device certificate, and other related data. The generated data can be read out by the Central Authority. @@ -2543,11 +2543,11 @@ This project uses the LEDs and display on the WSTK. - + - + Certificate generating firmware example. Software is generating the device EC key pair, the signing request for the device certificate, and other related data. The generated data can be read out by the Central Authority. @@ -2555,11 +2555,11 @@ This project uses the LEDs and display on the WSTK. - + - + Certificate generating firmware example. Software is generating the device EC key pair, the signing request for the device certificate, and other related data. The generated data can be read out by the Central Authority. @@ -2567,11 +2567,11 @@ This project uses the LEDs and display on the WSTK. - + - + Certificate generating firmware example. Software is generating the device EC key pair, the signing request for the device certificate, and other related data. The generated data can be read out by the Central Authority. @@ -2579,11 +2579,11 @@ This project uses the LEDs and display on the WSTK. - + - + Certificate generating firmware example. Software is generating the device EC key pair, the signing request for the device certificate, and other related data. The generated data can be read out by the Central Authority. @@ -2591,11 +2591,11 @@ This project uses the LEDs and display on the WSTK. - + - + Certificate generating firmware example. Software is generating the device EC key pair, the signing request for the device certificate, and other related data. The generated data can be read out by the Central Authority. @@ -2603,11 +2603,11 @@ This project uses the LEDs and display on the WSTK. - + - + Certificate generating firmware example. Software is generating the device EC key pair, the signing request for the device certificate, and other related data. The generated data can be read out by the Central Authority. @@ -2615,11 +2615,11 @@ This project uses the LEDs and display on the WSTK. - + - + Certificate generating firmware example. Software is generating the device EC key pair, the signing request for the device certificate, and other related data. The generated data can be read out by the Central Authority. @@ -2627,11 +2627,11 @@ This project uses the LEDs and display on the WSTK. - + - + Certificate generating firmware example. Software is generating the device EC key pair, the signing request for the device certificate, and other related data. The generated data can be read out by the Central Authority. @@ -2639,11 +2639,11 @@ This project uses the LEDs and display on the WSTK. - + - + Certificate generating firmware example. Software is generating the device EC key pair, the signing request for the device certificate, and other related data. The generated data can be read out by the Central Authority. @@ -2651,11 +2651,11 @@ This project uses the LEDs and display on the WSTK. - + - + Certificate generating firmware example. Software is generating the device EC key pair, the signing request for the device certificate, and other related data. The generated data can be read out by the Central Authority. @@ -2663,11 +2663,11 @@ This project uses the LEDs and display on the WSTK. - + - + Demonstrates the Firmware Distributor role based on the BT Mesh Model specification. Distributor is responsible for delivering new firmware images to the Target nodes and monitoring the progress of the firmware update. @@ -2675,11 +2675,11 @@ This project uses the LEDs and display on the WSTK. - + - + Demonstrates the Firmware Distributor role based on the BT Mesh Model specification. Distributor is responsible for delivering new firmware images to the Target nodes and monitoring the progress of the firmware update. @@ -2687,11 +2687,11 @@ This project uses the LEDs and display on the WSTK. - + - + Demonstrates the Firmware Distributor role based on the BT Mesh Model specification. Distributor is responsible for delivering new firmware images to the Target nodes and monitoring the progress of the firmware update. @@ -2699,11 +2699,11 @@ This project uses the LEDs and display on the WSTK. - + - + Demonstrates the Firmware Distributor role based on the BT Mesh Model specification. Distributor is responsible for delivering new firmware images to the Target nodes and monitoring the progress of the firmware update. @@ -2711,11 +2711,11 @@ This project uses the LEDs and display on the WSTK. - + - + Demonstrates the Firmware Distributor role based on the BT Mesh Model specification. Distributor is responsible for delivering new firmware images to the Target nodes and monitoring the progress of the firmware update. @@ -2723,11 +2723,11 @@ This project uses the LEDs and display on the WSTK. - + - + Demonstrates the Firmware Distributor role based on the BT Mesh Model specification. Distributor is responsible for delivering new firmware images to the Target nodes and monitoring the progress of the firmware update. @@ -2735,11 +2735,11 @@ This project uses the LEDs and display on the WSTK. - + - + Demonstrates the Firmware Distributor role based on the BT Mesh Model specification. Distributor is responsible for delivering new firmware images to the Target nodes and monitoring the progress of the firmware update. @@ -2747,11 +2747,11 @@ This project uses the LEDs and display on the WSTK. - + - + Demonstrates the Firmware Distributor role based on the BT Mesh Model specification. Distributor is responsible for delivering new firmware images to the Target nodes and monitoring the progress of the firmware update. @@ -2759,11 +2759,11 @@ This project uses the LEDs and display on the WSTK. - + - + Demonstrates the Firmware Distributor role based on the BT Mesh Model specification. Distributor is responsible for delivering new firmware images to the Target nodes and monitoring the progress of the firmware update. @@ -2771,11 +2771,11 @@ This project uses the LEDs and display on the WSTK. - + - + Demonstrates the Firmware Distributor role based on the BT Mesh Model specification. Distributor is responsible for delivering new firmware images to the Target nodes and monitoring the progress of the firmware update. @@ -2783,11 +2783,11 @@ This project uses the LEDs and display on the WSTK. - + - + Demonstrates the Firmware Distributor role based on the BT Mesh Model specification. Distributor is responsible for delivering new firmware images to the Target nodes and monitoring the progress of the firmware update. @@ -2795,11 +2795,11 @@ This project uses the LEDs and display on the WSTK. - + - + Demonstrates the Firmware Distributor role based on the BT Mesh Model specification. Distributor is responsible for delivering new firmware images to the Target nodes and monitoring the progress of the firmware update. @@ -2807,11 +2807,11 @@ This project uses the LEDs and display on the WSTK. - + - + Demonstrates the Firmware Distributor role based on the BT Mesh Model specification. Distributor is responsible for delivering new firmware images to the Target nodes and monitoring the progress of the firmware update. @@ -2819,11 +2819,11 @@ This project uses the LEDs and display on the WSTK. - + - + Demonstrates the Firmware Distributor role based on the BT Mesh Model specification. Distributor is responsible for delivering new firmware images to the Target nodes and monitoring the progress of the firmware update. @@ -2831,11 +2831,11 @@ This project uses the LEDs and display on the WSTK. - + - + Demonstrates the Firmware Distributor role based on the BT Mesh Model specification. Distributor is responsible for delivering new firmware images to the Target nodes and monitoring the progress of the firmware update. @@ -2843,11 +2843,11 @@ This project uses the LEDs and display on the WSTK. - + - + Demonstrates the Firmware Distributor role based on the BT Mesh Model specification. Distributor is responsible for delivering new firmware images to the Target nodes and monitoring the progress of the firmware update. @@ -2855,11 +2855,11 @@ This project uses the LEDs and display on the WSTK. - + - + Demonstrates the Firmware Distributor role based on the BT Mesh Model specification. Distributor is responsible for delivering new firmware images to the Target nodes and monitoring the progress of the firmware update. @@ -2867,11 +2867,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the LEDs of the mainboard can be switched on and off, and their lighting intensity, color temperature, and delta UV can be set. @@ -2879,11 +2879,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the LEDs of the mainboard can be switched on and off, and their lighting intensity, color temperature, and delta UV can be set. @@ -2891,11 +2891,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the LEDs of the mainboard can be switched on and off, and their lighting intensity, color temperature, and delta UV can be set. @@ -2903,11 +2903,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the LEDs of the mainboard can be switched on and off, and their lighting intensity, color temperature, and delta UV can be set. @@ -2915,11 +2915,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the LEDs of the WSTK can be switched on and off, and their lighting intensity, color temperature, and delta UV can be set. @@ -2927,11 +2927,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the LEDs of the WSTK can be switched on and off, and their lighting intensity, color temperature, and delta UV can be set. @@ -2939,11 +2939,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the LEDs of the WSTK can be switched on and off, and their lighting intensity, color temperature, and delta UV can be set. @@ -2951,11 +2951,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the LEDs of the WSTK can be switched on and off, and their lighting intensity, color temperature, and delta UV can be set. @@ -2963,11 +2963,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the LEDs of the WSTK can be switched on and off, and their lighting intensity, color temperature, and delta UV can be set. @@ -2975,11 +2975,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the LEDs of the WSTK can be switched on and off, and their lighting intensity, color temperature, and delta UV can be set. @@ -2987,11 +2987,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the LEDs of the WSTK can be switched on and off, and their lighting intensity, color temperature, and delta UV can be set. @@ -2999,11 +2999,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the LEDs of the WSTK can be switched on and off, and their lighting intensity, color temperature, and delta UV can be set. @@ -3011,11 +3011,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the LEDs of the WSTK can be switched on and off, and their lighting intensity, color temperature, and delta UV can be set. @@ -3023,11 +3023,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the LEDs of the WSTK can be switched on and off, and their lighting intensity, color temperature, and delta UV can be set. @@ -3035,11 +3035,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the LEDs of the WSTK can be switched on and off, and their lighting intensity, color temperature, and delta UV can be set. @@ -3047,11 +3047,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the LEDs of the WSTK can be switched on and off, and their lighting intensity, color temperature, and delta UV can be set. @@ -3059,11 +3059,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the LEDs of the WSTK can be switched on and off, and their lighting intensity, color temperature, and delta UV can be set. @@ -3071,11 +3071,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the LEDs of the WSTK can be switched on and off, and their lighting intensity, color temperature, and delta UV can be set. @@ -3083,11 +3083,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the LEDs of the mainboard can be switched on and off, and their lighting intensity, hue, and saturation can be set. The example also tries to establish friendship as a Friend node. @@ -3095,11 +3095,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the LEDs of the mainboard can be switched on and off, and their lighting intensity, hue, and saturation can be set. The example also tries to establish friendship as a Friend node. @@ -3107,11 +3107,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the LEDs of the mainboard can be switched on and off, and their lighting intensity, hue, and saturation can be set. The example also tries to establish friendship as a Friend node. @@ -3119,11 +3119,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the LEDs of the mainboard can be switched on and off, and their lighting intensity, hue, and saturation can be set. The example also tries to establish friendship as a Friend node. @@ -3131,11 +3131,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the LEDs of the mainboard can be switched on and off, and their lighting intensity, hue, and saturation can be set. The example also tries to establish friendship as a Friend node. @@ -3143,11 +3143,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the LEDs of the mainboard can be switched on and off, and their lighting intensity, hue, and saturation can be set. The example also tries to establish friendship as a Friend node. @@ -3155,11 +3155,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the LEDs of the mainboard can be switched on and off, and their lighting intensity, hue, and saturation can be set. The example also tries to establish friendship as a Friend node. @@ -3167,11 +3167,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the LEDs of the mainboard can be switched on and off, and their lighting intensity, hue, and saturation can be set. The example also tries to establish friendship as a Friend node. @@ -3179,11 +3179,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the LEDs of the mainboard can be switched on and off, and their lighting intensity, hue, and saturation can be set. The example also tries to establish friendship as a Friend node. @@ -3191,11 +3191,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the LEDs of the mainboard can be switched on and off, and their lighting intensity, hue, and saturation can be set. The example also tries to establish friendship as a Friend node. @@ -3203,11 +3203,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the LEDs of the mainboard can be switched on and off, and their lighting intensity, hue, and saturation can be set. The example also tries to establish friendship as a Friend node. @@ -3215,11 +3215,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the LEDs of the mainboard can be switched on and off, and their lighting intensity, hue, and saturation can be set. The example also tries to establish friendship as a Friend node. @@ -3227,11 +3227,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the LEDs of the mainboard can be switched on and off, and their lighting intensity, hue, and saturation can be set. The example also tries to establish friendship as a Friend node. @@ -3239,11 +3239,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the LEDs of the mainboard can be switched on and off, and their lighting intensity, hue, and saturation can be set. The example also tries to establish friendship as a Friend node. @@ -3251,11 +3251,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the LEDs of the mainboard can be switched on and off, and their lighting intensity, hue, and saturation can be set. The example also tries to establish friendship as a Friend node. @@ -3263,11 +3263,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the LEDs of the mainboard can be switched on and off, and their lighting intensity, hue, and saturation can be set. The example also tries to establish friendship as a Friend node. @@ -3275,11 +3275,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the LEDs of the mainboard can be switched on and off, and their lighting intensity, hue, and saturation can be set. The example also tries to establish friendship as a Friend node. @@ -3287,11 +3287,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box software demo where the LEDs of the mainboard can be switched on and off, and their lighting intensity, hue, and saturation can be set. The example also tries to establish friendship as a Friend node. @@ -3299,11 +3299,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Client Model. It collects and displays sensor measurement data from remote device(s) (e.g., btmesh_soc_sensor_server). @@ -3311,11 +3311,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Client Model. It collects and displays sensor measurement data from remote device(s) (e.g., btmesh_soc_sensor_server). @@ -3323,11 +3323,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Client Model. It collects and displays sensor measurement data from remote device(s) (e.g., btmesh_soc_sensor_server). @@ -3335,11 +3335,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Client Model. It collects and displays sensor measurement data from remote device(s) (e.g., btmesh_soc_sensor_server). @@ -3347,11 +3347,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Client Model. It collects and displays sensor measurement data from remote device(s) (e.g., btmesh_soc_sensor_server). @@ -3359,11 +3359,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Client Model. It collects and displays sensor measurement data from remote device(s) (e.g., btmesh_soc_sensor_server). @@ -3371,11 +3371,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Client Model. It collects and displays sensor measurement data from remote device(s) (e.g., btmesh_soc_sensor_server). @@ -3383,11 +3383,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Client Model. It collects and displays sensor measurement data from remote device(s) (e.g., btmesh_soc_sensor_server). @@ -3395,11 +3395,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Client Model. It collects and displays sensor measurement data from remote device(s) (e.g., btmesh_soc_sensor_server). @@ -3407,11 +3407,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Client Model. It collects and displays sensor measurement data from remote device(s) (e.g., btmesh_soc_sensor_server). @@ -3419,11 +3419,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Client Model. It collects and displays sensor measurement data from remote device(s) (e.g., btmesh_soc_sensor_server). @@ -3431,11 +3431,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Client Model. It collects and displays sensor measurement data from remote device(s) (e.g., btmesh_soc_sensor_server). @@ -3443,11 +3443,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Client Model. It collects and displays sensor measurement data from remote device(s) (e.g., btmesh_soc_sensor_server). @@ -3455,11 +3455,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Client Model. It collects and displays sensor measurement data from remote device(s) (e.g., btmesh_soc_sensor_server). @@ -3467,11 +3467,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Client Model. It collects and displays sensor measurement data from remote device(s) (e.g., btmesh_soc_sensor_server). @@ -3479,11 +3479,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Client Model. It collects and displays sensor measurement data from remote device(s) (e.g., btmesh_soc_sensor_server). @@ -3491,11 +3491,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Client Model. It collects and displays sensor measurement data from remote device(s) (e.g., btmesh_soc_sensor_server). @@ -3503,11 +3503,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Client Model. It collects and displays sensor measurement data from remote device(s) (e.g., btmesh_soc_sensor_server). @@ -3515,11 +3515,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Client Model. It collects and displays sensor measurement data from remote device(s) (e.g., btmesh_soc_sensor_server). @@ -3527,11 +3527,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Client Model. It collects and displays sensor measurement data from remote device(s) (e.g., btmesh_soc_sensor_server). @@ -3539,11 +3539,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Client Model. It collects and displays sensor measurement data from remote device(s) (e.g., btmesh_soc_sensor_server). @@ -3551,11 +3551,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Client Model. It collects and displays sensor measurement data from remote device(s) (e.g., btmesh_soc_sensor_server). @@ -3563,11 +3563,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Client Model. It collects and displays sensor measurement data from remote device(s) (e.g., btmesh_soc_sensor_server). @@ -3575,11 +3575,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Client Model. It collects and displays sensor measurement data from remote device(s) (e.g., btmesh_soc_sensor_server). @@ -3587,11 +3587,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Client Model. It collects and displays sensor measurement data from remote device(s) (e.g., btmesh_soc_sensor_server). @@ -3599,11 +3599,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Client Model. It collects and displays sensor measurement data from remote device(s) (e.g., btmesh_soc_sensor_server). @@ -3611,11 +3611,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Client Model. It collects and displays sensor measurement data from remote device(s) (e.g., btmesh_soc_sensor_server). @@ -3623,11 +3623,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Server Model and Sensor Setup Server Model. It measures temperature and sends the measurement data to a remote device (e.g., btmesh_soc_sensor_client). @@ -3635,11 +3635,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Server Model and Sensor Setup Server Model. It measures temperature and sends the measurement data to a remote device (e.g., btmesh_soc_sensor_client). @@ -3647,11 +3647,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Server Model and Sensor Setup Server Model. If available, it measures CPU temperature and uses that data as temperature reading, otherwise it sends mocked temperature data to a remote device (e.g., btmesh_soc_sensor_client). @@ -3659,11 +3659,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Server Model and Sensor Setup Server Model. If available, it measures CPU temperature and uses that data as temperature reading, otherwise it sends mocked temperature data to a remote device (e.g., btmesh_soc_sensor_client). @@ -3671,11 +3671,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Server Model and Sensor Setup Server Model. If available, it measures CPU temperature and uses that data as temperature reading, otherwise it sends mocked temperature data to a remote device (e.g., btmesh_soc_sensor_client). @@ -3683,11 +3683,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Server Model and Sensor Setup Server Model. If available, it measures CPU temperature and uses that data as temperature reading, otherwise it sends mocked temperature data to a remote device (e.g., btmesh_soc_sensor_client). @@ -3695,11 +3695,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Server Model and Sensor Setup Server Model. If available, it measures CPU temperature and uses that data as temperature reading, otherwise it sends mocked temperature data to a remote device (e.g., btmesh_soc_sensor_client). @@ -3707,11 +3707,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Server Model and Sensor Setup Server Model. If available, it measures CPU temperature and uses that data as temperature reading, otherwise it sends mocked temperature data to a remote device (e.g., btmesh_soc_sensor_client). @@ -3719,11 +3719,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Server Model and Sensor Setup Server Model. It measures temperature and sends the measurement data to a remote device (e.g., btmesh_soc_sensor_client). @@ -3731,11 +3731,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Server Model and Sensor Setup Server Model. If available, it measures CPU temperature and uses that data as temperature reading, otherwise it sends mocked temperature data to a remote device (e.g., btmesh_soc_sensor_client). @@ -3743,11 +3743,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Server Model and Sensor Setup Server Model. If available, it measures CPU temperature and uses that data as temperature reading, otherwise it sends mocked temperature data to a remote device (e.g., btmesh_soc_sensor_client). @@ -3755,11 +3755,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Server Model and Sensor Setup Server Model. It measures temperature and sends the measurement data to a remote device (e.g., btmesh_soc_sensor_client). @@ -3767,11 +3767,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Server Model and Sensor Setup Server Model. It measures temperature and sends the measurement data to a remote device (e.g., btmesh_soc_sensor_client). @@ -3779,11 +3779,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Server Model and Sensor Setup Server Model. It measures temperature and sends the measurement data to a remote device (e.g., btmesh_soc_sensor_client). @@ -3791,11 +3791,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Server Model and Sensor Setup Server Model. It measures temperature and sends the measurement data to a remote device (e.g., btmesh_soc_sensor_client). @@ -3803,11 +3803,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Server Model and Sensor Setup Server Model. It measures temperature and sends the measurement data to a remote device (e.g., btmesh_soc_sensor_client). @@ -3815,11 +3815,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Server Model and Sensor Setup Server Model. If available, it measures CPU temperature and uses that data as temperature reading, otherwise it sends mocked temperature data to a remote device (e.g., btmesh_soc_sensor_client). @@ -3827,11 +3827,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Server Model and Sensor Setup Server Model. If available, it measures CPU temperature and uses that data as temperature reading, otherwise it sends mocked temperature data to a remote device (e.g., btmesh_soc_sensor_client). @@ -3839,11 +3839,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Server Model and Sensor Setup Server Model. If available, it measures CPU temperature and uses that data as temperature reading, otherwise it sends mocked temperature data to a remote device (e.g., btmesh_soc_sensor_client). @@ -3851,11 +3851,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Server Model and Sensor Setup Server Model. If available, it measures CPU temperature and uses that data as temperature reading, otherwise it sends mocked temperature data to a remote device (e.g., btmesh_soc_sensor_client). @@ -3863,11 +3863,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Server Model and Sensor Setup Server Model. If available, it measures CPU temperature and uses that data as temperature reading, otherwise it sends mocked temperature data to a remote device (e.g., btmesh_soc_sensor_client). @@ -3875,11 +3875,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Server Model and Sensor Setup Server Model. If available, it measures CPU temperature and uses that data as temperature reading, otherwise it sends mocked temperature data to a remote device (e.g., btmesh_soc_sensor_client). @@ -3887,11 +3887,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Server Model and Sensor Setup Server Model. If available, it measures CPU temperature and uses that data as temperature reading, otherwise it sends mocked temperature data to a remote device (e.g., btmesh_soc_sensor_client). @@ -3899,11 +3899,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Server Model and Sensor Setup Server Model. If available, it measures CPU temperature and uses that data as temperature reading, otherwise it sends mocked temperature data to a remote device (e.g., btmesh_soc_sensor_client). @@ -3911,11 +3911,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Server Model and Sensor Setup Server Model. It measures temperature and sends the measurement data to a remote device (e.g., btmesh_soc_sensor_client). @@ -3923,11 +3923,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Server Model and Sensor Setup Server Model. It measures temperature and sends the measurement data to a remote device (e.g., btmesh_soc_sensor_client). @@ -3935,11 +3935,11 @@ This project uses the LEDs and display on the WSTK. - + - + This example demonstrates the Bluetooth Mesh Sensor Server Model and Sensor Setup Server Model. If available, it measures CPU temperature and uses that data as temperature reading, otherwise it sends mocked temperature data to a remote device (e.g., btmesh_soc_sensor_client). @@ -3947,11 +3947,11 @@ This project uses the LEDs and display on the WSTK. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -3960,11 +3960,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -3973,11 +3973,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -3986,11 +3986,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -3999,11 +3999,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4012,11 +4012,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4025,11 +4025,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4038,11 +4038,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4051,11 +4051,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4064,11 +4064,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4077,11 +4077,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4090,11 +4090,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4103,11 +4103,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4116,11 +4116,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4129,11 +4129,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4142,11 +4142,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4155,11 +4155,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4168,11 +4168,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4181,11 +4181,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4194,11 +4194,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4207,11 +4207,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4220,11 +4220,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4233,11 +4233,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4246,11 +4246,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4259,11 +4259,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4272,11 +4272,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4285,11 +4285,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. It is optimized for low current consumption with disabled CLI, logging, and LCD. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4298,11 +4298,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4311,11 +4311,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4324,11 +4324,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4337,11 +4337,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4350,11 +4350,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4363,11 +4363,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4376,11 +4376,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4389,11 +4389,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4402,11 +4402,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4415,11 +4415,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4428,11 +4428,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4441,11 +4441,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4454,11 +4454,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4467,11 +4467,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4480,11 +4480,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4493,11 +4493,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4506,11 +4506,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4519,11 +4519,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4532,11 +4532,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4545,11 +4545,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4558,11 +4558,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4571,11 +4571,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4584,11 +4584,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4597,11 +4597,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4610,11 +4610,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4623,11 +4623,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4636,11 +4636,11 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + An out-of-the-box Software Demo where the device acts as a switch using the Light CTL Client Model. Push Button presses or CLI commands can control the lightness and color temperature of the LEDs on a remote device. @@ -4649,10 +4649,10 @@ Note - this example is not compatible with the Dimming Control NLC Profile. - + - + diff --git a/app/btmesh/common/btmesh_lighting_server/sl_btmesh_lighting_level_transition_handler.c b/app/btmesh/common/btmesh_lighting_server/sl_btmesh_lighting_level_transition_handler.c index ceaa029d4e..1397d80274 100644 --- a/app/btmesh/common/btmesh_lighting_server/sl_btmesh_lighting_level_transition_handler.c +++ b/app/btmesh/common/btmesh_lighting_server/sl_btmesh_lighting_level_transition_handler.c @@ -128,7 +128,7 @@ static void transition_timer_cb(app_timer_t *handle, // Trigger a UI update in order to provide the target values at the end // of the current transition sl_btmesh_lighting_server_on_ui_update(current_level); - sl_btmesh_update_lightness(current_level, level_transtime_ms - level_transtime_elapsed); + sl_btmesh_update_lightness(current_level, IMMEDIATE); } else { // calculate current PWM duty cycle based on elapsed transition time if (target_level >= start_level) { diff --git a/app/btmesh/common/btmesh_lighting_server/sl_btmesh_lighting_server.c b/app/btmesh/common/btmesh_lighting_server/sl_btmesh_lighting_server.c index 7e2b5f4dad..0a3b8ce4bb 100644 --- a/app/btmesh/common/btmesh_lighting_server/sl_btmesh_lighting_server.c +++ b/app/btmesh/common/btmesh_lighting_server/sl_btmesh_lighting_server.c @@ -319,7 +319,7 @@ static void server_state_changed(sl_btmesh_evt_generic_server_state_changed_t *e void sl_btmesh_update_lightness(uint16_t lightness, uint32_t remaining_ms) { lightbulb_state.lightness_current = lightness; - lightness_update(BTMESH_LIGHTING_SERVER_MAIN, remaining_ms, lightness_kind); + lightness_update(BTMESH_LIGHTING_SERVER_MAIN, remaining_ms, mesh_lighting_state_lightness_actual); } /******************************************************************************* diff --git a/app/btmesh/documentation/btmesh-release-highlights.txt b/app/btmesh/documentation/btmesh-release-highlights.txt index abfc0990a3..071cb63c27 100644 --- a/app/btmesh/documentation/btmesh-release-highlights.txt +++ b/app/btmesh/documentation/btmesh-release-highlights.txt @@ -1,2 +1,2 @@ -Bluetooth Mesh SDK 7.0.1.0 -- Support for delta-compressed firmware updates. +Bluetooth Mesh SDK 7.0.2.0 +- Targeted quality improvements and bug fixes. \ No newline at end of file diff --git a/app/btmesh/documentation/slBtMesh_docContent.xml b/app/btmesh/documentation/slBtMesh_docContent.xml index f7e35621d3..9e170d690c 100644 --- a/app/btmesh/documentation/slBtMesh_docContent.xml +++ b/app/btmesh/documentation/slBtMesh_docContent.xml @@ -1,6 +1,6 @@ - + Includes detailed information on using the Gecko Bootloader with Silicon Labs Bluetooth applications. It supplements the general Gecko Bootloader implementation information provided in UG489: Silicon Labs Gecko Bootloader User's Guide. @@ -8,7 +8,7 @@ - + Describes the Wi-Fi impact on Bluetooth and methods to improve Bluetooth coexistence with Wi-Fi. Explains design considerations to improve coexistence without direct interaction between Bluetooth and Wi-Fi radios. These techniques are applicable to the EFR32MGx and EFR32BGx series. Discusses the Silicon Labs Packet Traffic Arbitration (PTA) support to coordinate 2.4GHz RF traffic for co-located Bluetooth and Wi-Fi radios. @@ -16,7 +16,7 @@ - + Explains how NVM3 can be used as non-volatile data storage in various protocol implementations. @@ -24,14 +24,14 @@ - + Details methods for testing Bluetooth mesh network performance; results are intended to provide guidance on design practices and principles as well as expected field performance results. - + Reviews the Zigbee, Thread, and Bluetooth mesh networks to evaluate their differences in performance and behavior. @@ -39,7 +39,7 @@ - + Describes how to lock and unlock the debug access of EFR32 Gecko Series 2 devices. Many aspects of the debug access, including the secure debug unlock are described. The Debug Challenge Interface (DCI) and Secure Engine (SE) Mailbox Interface for locking and unlocking debug access are also included. @@ -47,7 +47,7 @@ - + Contains detailed information on configuring and using the Secure Boot with hardware Root of Trust and Secure Loader on Series 2 devices, including how to provision the signing key. This is a companion document to UG489: Silicon Labs Gecko Bootloader User's Guide. @@ -55,7 +55,7 @@ - + Details on programming, provisioning, and configuring Series 2 devices in production environments. Covers Secure Engine Subsystem of Series 2 devices, which runs easily upgradeable Secure Engine (SE) or Virtual Secure Engine (VSE) firmware. @@ -63,7 +63,7 @@ - + How to program, provision, and configure the anti-tamper module on EFR32 Series 2 devices with Secure Vault. @@ -71,7 +71,7 @@ - + Describes how to configure the NCP target and how to program the NCP host when using the Bluetooth Stack in Network Co-Processor mode @@ -79,7 +79,7 @@ - + Reviews performing radio frequency physical layer evaluation with EFR32BG SoCs and BGM modules using the Direct Test Mode protocol in Bluetooth SDK v3.x. @@ -87,7 +87,7 @@ - + How to authenticate an EFR32 Series 2 device with Secure Vault, using secure device certificates and signatures. @@ -95,7 +95,7 @@ - + How to securely "wrap" keys in EFR32 Series 2 devices with Secure Vault, so they can be stored in non-volatile storage. @@ -103,28 +103,28 @@ - + Describes the differences between using Bluetooth mesh SDK v1.x in Simplicity Studio 4 and using Bluetooth mesh SDK v2.x in Simplicity Studio 5. Outlines the steps needed to migrate a v1.x project to v2.x. - + Discusses the basics of Bluetooth mesh required to understand the Bluetooth mesh lighting example, and walks through key aspects of the application source code. - + Discusses the basics of sensor models and describe the related sample applications in the SDK that create a wireless network of sensors and sensor clients using Bluetooth mesh technology. - + Describes how to provision and configure Series 2 devices through the DCI and SWD. @@ -132,14 +132,14 @@ - + Includes the results of the interoperability testing of Silicon Labs' ICs and Bluetooth Mesh stack with Android and iOS smart phones. - + Describes how to integrate crypto functionality into applications using PSA Crypto compared to Mbed TLS. @@ -147,21 +147,21 @@ - + Describes Low Power Node (LPN) and Friend operation and the parameters related to power consumption. It also describes how to measure the power consumption of EFR32BG devices acting as Bluetooth mesh LPNs using the setup and procedures recommended in AN969: Measuring Power Consumption in Wireless Gecko Devices. - + Describes in detail how the Bluetooth mesh toplogy can influence network operation. Provides tips on how to tune your network and its nodes to achieve best performance. - + Describes using Simplicity Studio 5's Network Analyzer to debug Bluetooth Mesh and Low Energy applications. It can be read jointly with AN958: Debugging and Programming Interfaces for Customer Designs for more information on using Packet Trace Interface with custom hardware. @@ -169,21 +169,21 @@ - + Provides background information on the sequence number and IV index in a Bluetooth mesh network and the IV Update and IV Index Recovery procedures. It also discusses how to implement IV Update functionality in a Bluetooth mesh application. - + Provides background information on the Bluetooth Mesh Device Firmware Update (DFU) feature, including the BLOB transfer, the DFU roles in a Bluetooth mesh network, the models required for these roles, and the firmware update process. - + Gecko Bootloader v2.x, introduced in GSDK 4.0, contains a number of changes compared to Gecko Bootloader v1.x. This document describes the differences between the versions, including how to configure the new Gecko Bootloader in Simplicity Studio 5. @@ -191,91 +191,91 @@ - + Describes the Bluetooth Mesh Remote Provisioning feature and provides an example walkthrough. With the feature, a device can be provisioned without a direct radio connection between the provisioner and the unprovisioned node. - + Describes the bootloader configurations and the device firmware update (DFU) models in the SDK's example projects, and walks through a firmware update demonstration. - + The NCP Host Provisioner example demonstrates how to run a provisioner on a computer with a NCP node connected. The user can provision, configure, and reset other nodes through the NCP node. - + Describes how certificates are used to establish the authenticity of devices wishing to join a mesh network. - + Describes the Bluetooth Mesh Advertising Extensions feature. The non-standard Bluetooth Mesh modification achieves better performance through utilizing the Bluetooth 5 Advertising Extensions feature, which allows sending much larger advertisement packets. - + Walks through a device firmware update demonstration using the DFU Python script. The script is an NCP host application that requires an NCP node connected. - + Describes the following Networked Lighting Control (NLC) profiles: ambient light sensor, basic scene selector, dimming control, basic lightness controller, and occupancy sensor. - + Provides an overview and hyperlinks to all packaged documentation. - + Describes how to get started with Bluetooth mesh development using the Bluetooth Mesh Software Development Kit (SDK) version 4.x and higher, and Simplicity Studio 5 with a compatible wireless starter kit. Contains information about features specific to Bluetooth mesh specification version 1.1. - + Contains a comprehensive list of APIs used to interface to the Silicon Labs Bluetooth Mesh stack. - + A reference for those developing C-based applications for the Silicon Labs EFR32 products using the Silicon Labs Bluetooth mesh stack. A companion to UG434: Silicon Labs Bluetooth C Application Developers Guide for SDK v3.x containing content specific to Bluetooth mesh application development. Covers Bluetooth mesh stack architecture, application development flow, use and limitations of the MCU core and peripherals, stack configuration options, and stack resource usage. - + Lists compatibility requirements and sources for all software components in the development environment. Discusses the latest changes to the Silicon Labs Bluetooth mesh SDK and associated utilities, including added/deleted/deprecated features/API, and lists fixed and known issues. - + A detailed overview of the changes, additions, and fixes in the Gecko Platform components. The Gecko Platform includes EMLIB, EMDRV, RAIL Library, NVM3, and the component-based infrastructure. @@ -283,7 +283,7 @@ - + Introduces the security concepts that must be considered when implementing an Internet of Things (IoT) system. Using the ioXt Alliance's eight security principles as a structure, it clearly delineates the solutions Silicon Labs provides to support endpoint security and what you must do outside of the Silicon Labs framework. @@ -291,7 +291,7 @@ - + Introduces bootloading for Silicon Labs networking devices. Discusses the Gecko Bootloader as well as legacy Ember and Bluetooth bootloaders, and describes the file formats used by each. @@ -299,7 +299,7 @@ - + Introduces non-volatile data storage using flash and the three different storage implementations offered for Silicon Labs microcontrollers and SoCs: PS Store and NVM3. @@ -307,7 +307,7 @@ - + Describes methods to improve the coexistence of 2.4 GHz IEEE 802.11b/g/n Wi-Fi and other 2.4 GHz radios such as Bluetooth, Bluetooth Mesh, Bluetooth Low Energy, and IEEE 802.15.4-based radios such as Zigbee and OpenThread. @@ -315,7 +315,7 @@ - + Reviews using this XML-based mark-up language to describe the Bluetooth GATT database, configure access and security properties, and include the GATT database as part of the firmware. @@ -323,7 +323,7 @@ - + Describes how and when to use Simplicity Commander's Command-Line Interface. @@ -331,7 +331,7 @@ - + Provides the information needed to effectively use the Bluetooth GATT Configurator provided as a part of Simplicity Studio 5 with Bluetooth SDK 3.x and higher and Bluetooth Mesh SDK 2.x and higher. @@ -339,14 +339,14 @@ - + Describes the components, stack, and DCD (Device Composition Data) configuration options for the Bluetooth Mesh v2.x SDK. - + Describes the high-level implementation of the Silicon Labs Gecko Bootloader for EFR32 SoCs and NCPs, and provides information on how to get started using the Gecko Bootloader with Silicon Labs wireless protocol stacks in GSDK 4.0 and higher. @@ -354,7 +354,7 @@ - + Introduces Simplicity Studio 5 Bluetooth Mesh SDK components. Describes how to modify the Device Composition Data (DCD), including device information, elements, and models. Describes the stack configuration options to optimize RAM and persistent storage usage. diff --git a/app/common/app_common.properties b/app/common/app_common.properties index 498881eddc..fdc3e810c2 100644 --- a/app/common/app_common.properties +++ b/app/common/app_common.properties @@ -2,8 +2,8 @@ id=com.silabs.sdk.platform label=Platform description=Platform -version=5.0.1.0 -prop.subLabel=Platform\\ 5.0.1.0 +version=5.0.2.0 +prop.subLabel=Platform\\ 5.0.2.0 # General properties are prepended with "prop." prop.file.templatesFile=platform_test_templates.xml platform_unknown_templates.xml platform_evaluation_templates.xml platform_experimental_templates.xml builtin_templates.xml platform_production_templates.xml platform_internal_templates.xml diff --git a/app/common/example/ml_magic_wand/accelerometer.cc b/app/common/example/ml_magic_wand/accelerometer.cc index 16916541cf..910bc32b9b 100644 --- a/app/common/example/ml_magic_wand/accelerometer.cc +++ b/app/common/example/ml_magic_wand/accelerometer.cc @@ -35,6 +35,10 @@ #include "sl_icm20648_config.h" #define SL_IMU_INT_PORT SL_ICM20648_INT_PORT #define SL_IMU_INT_PIN SL_ICM20648_INT_PIN +#elif defined (SL_CATALOG_ICM40627_DRIVER_PRESENT) +#include "sl_icm40627_config.h" +#define SL_IMU_INT_PORT SL_ICM40627_INT_PORT +#define SL_IMU_INT_PIN SL_ICM40627_INT_PIN #else #error "No IMU driver defined" #endif diff --git a/app/common/platform_production_demos.xml b/app/common/platform_production_demos.xml index df1be552ed..d40e837a04 100644 --- a/app/common/platform_production_demos.xml +++ b/app/common/platform_production_demos.xml @@ -6,7 +6,7 @@ - + @@ -17,7 +17,7 @@ - + @@ -28,7 +28,7 @@ - + @@ -39,7 +39,7 @@ - + @@ -50,7 +50,7 @@ - + @@ -61,7 +61,7 @@ - + @@ -72,7 +72,7 @@ - + @@ -83,7 +83,7 @@ - + @@ -94,7 +94,7 @@ - + @@ -105,7 +105,7 @@ - + @@ -116,7 +116,7 @@ - + @@ -127,7 +127,7 @@ - + @@ -138,7 +138,7 @@ - + @@ -149,7 +149,7 @@ - + @@ -160,7 +160,7 @@ - + @@ -171,7 +171,7 @@ - + @@ -182,7 +182,7 @@ - + @@ -193,7 +193,7 @@ - + @@ -204,7 +204,7 @@ - + @@ -215,7 +215,7 @@ - + @@ -226,7 +226,7 @@ - + @@ -237,7 +237,7 @@ - + @@ -248,7 +248,7 @@ - + @@ -259,7 +259,7 @@ - + @@ -270,7 +270,7 @@ - + @@ -281,7 +281,7 @@ - + @@ -292,7 +292,7 @@ - + @@ -303,7 +303,7 @@ - + @@ -314,7 +314,7 @@ - + @@ -325,7 +325,7 @@ - + @@ -336,7 +336,7 @@ - + @@ -347,7 +347,7 @@ - + @@ -358,7 +358,7 @@ - + @@ -369,7 +369,7 @@ - + @@ -380,7 +380,7 @@ - + @@ -391,7 +391,7 @@ - + @@ -402,7 +402,7 @@ - + @@ -413,7 +413,7 @@ - + @@ -424,7 +424,7 @@ - + @@ -435,7 +435,7 @@ - + @@ -446,7 +446,7 @@ - + @@ -457,7 +457,7 @@ - + @@ -468,7 +468,7 @@ - + @@ -479,7 +479,7 @@ - + @@ -490,7 +490,7 @@ - + @@ -501,7 +501,7 @@ - + @@ -512,7 +512,7 @@ - + @@ -523,7 +523,7 @@ - + @@ -534,7 +534,7 @@ - + @@ -545,7 +545,7 @@ - + @@ -556,7 +556,7 @@ - + @@ -567,7 +567,7 @@ - + @@ -578,7 +578,7 @@ - + @@ -589,7 +589,7 @@ - + @@ -600,7 +600,7 @@ - + @@ -611,7 +611,7 @@ - + @@ -622,7 +622,7 @@ - + @@ -633,7 +633,7 @@ - + @@ -644,7 +644,7 @@ - + @@ -655,7 +655,7 @@ - + @@ -666,7 +666,7 @@ - + @@ -677,7 +677,7 @@ - + @@ -688,7 +688,7 @@ - + @@ -699,7 +699,7 @@ - + @@ -710,7 +710,7 @@ - + @@ -721,7 +721,7 @@ - + @@ -732,7 +732,7 @@ - + @@ -743,7 +743,7 @@ - + @@ -754,7 +754,7 @@ - + @@ -765,7 +765,7 @@ - + @@ -776,7 +776,7 @@ - + @@ -787,7 +787,7 @@ - + diff --git a/app/common/platform_production_templates.xml b/app/common/platform_production_templates.xml index 0e560a8f7b..15de45efa3 100644 --- a/app/common/platform_production_templates.xml +++ b/app/common/platform_production_templates.xml @@ -6,7 +6,7 @@ - + @@ -22,7 +22,7 @@ - + @@ -38,7 +38,7 @@ - + @@ -53,7 +53,7 @@ - + @@ -68,7 +68,7 @@ - + @@ -83,7 +83,7 @@ - + @@ -98,7 +98,7 @@ - + @@ -113,7 +113,7 @@ - + @@ -128,7 +128,7 @@ - + @@ -188,7 +188,7 @@ - + @@ -203,7 +203,7 @@ - + @@ -218,7 +218,7 @@ - + @@ -323,7 +323,7 @@ - + @@ -338,7 +338,7 @@ - + @@ -443,7 +443,7 @@ - + @@ -458,7 +458,7 @@ - + @@ -473,7 +473,7 @@ - + @@ -488,7 +488,7 @@ - + @@ -503,7 +503,7 @@ - + @@ -533,7 +533,7 @@ - + @@ -563,7 +563,7 @@ - + @@ -593,7 +593,7 @@ - + @@ -608,7 +608,7 @@ - + @@ -623,7 +623,7 @@ - + @@ -638,7 +638,7 @@ - + @@ -653,7 +653,7 @@ - + @@ -668,7 +668,7 @@ - + @@ -683,7 +683,7 @@ - + @@ -698,7 +698,7 @@ - + @@ -713,7 +713,7 @@ - + @@ -728,7 +728,7 @@ - + @@ -743,7 +743,7 @@ - + @@ -758,7 +758,7 @@ - + @@ -773,7 +773,7 @@ - + @@ -788,7 +788,7 @@ - + @@ -803,7 +803,7 @@ - + @@ -818,7 +818,7 @@ - + @@ -833,7 +833,7 @@ - + @@ -848,7 +848,7 @@ - + @@ -863,7 +863,7 @@ - + @@ -878,7 +878,7 @@ - + @@ -908,7 +908,7 @@ - + @@ -923,7 +923,7 @@ - + @@ -938,7 +938,7 @@ - + @@ -953,7 +953,7 @@ - + @@ -968,7 +968,7 @@ - + @@ -983,7 +983,7 @@ - + @@ -998,7 +998,7 @@ - + @@ -1013,7 +1013,7 @@ - + @@ -1028,7 +1028,7 @@ - + @@ -1058,7 +1058,7 @@ - + @@ -1073,7 +1073,7 @@ - + @@ -1088,7 +1088,7 @@ - + @@ -1103,7 +1103,7 @@ - + @@ -1118,7 +1118,7 @@ - + @@ -1133,7 +1133,7 @@ - + @@ -1148,7 +1148,7 @@ - + @@ -1163,7 +1163,7 @@ - + @@ -1238,7 +1238,7 @@ - + diff --git a/app/flex/component/rail/sl_flex_rail_channel_selector/sl_flex_rail_channel_selector.c b/app/flex/component/rail/sl_flex_rail_channel_selector/sl_flex_rail_channel_selector.c index 4296b8082d..b30c66fb78 100644 --- a/app/flex/component/rail/sl_flex_rail_channel_selector/sl_flex_rail_channel_selector.c +++ b/app/flex/component/rail/sl_flex_rail_channel_selector/sl_flex_rail_channel_selector.c @@ -87,12 +87,12 @@ uint16_t get_selected_channel(void) void set_configured_channel(void) { uint8_t success = set_selected_channel(DEFAULT_CHANNEL); -#if defined(SL_CATALOG_APP_ASSERT_PRESENT) - app_assert(success == 1, - "Default channel is not in range\n"); -#else - while (!success); -#endif + if (!success) { + success = set_selected_channel(channelConfigs[0]->configs[0U].channelNumberStart); + #if defined(SL_CATALOG_APP_LOG_PRESENT) + app_log_warning("Default channel is out of range! Update the config file, using rail_config first channel as default.\n"); + #endif + } } /****************************************************************************** diff --git a/app/flex/component/rail/sl_flex_rail_sleep.slcc b/app/flex/component/rail/sl_flex_rail_sleep.slcc new file mode 100644 index 0000000000..acb6429eef --- /dev/null +++ b/app/flex/component/rail/sl_flex_rail_sleep.slcc @@ -0,0 +1,37 @@ +id: "sl_flex_rail_sleep" +label: "Flex - RAIL Power Manager Sleep" +package: "Flex" +description: "Component that provides sleep init for RAIL when used with Power Manager." +category: "Flex|RAIL|Utility" +quality: "production" +metadata: + sbom: + license: Zlib +root_path: "app/flex/component/rail/sl_flex_rail_sleep" + +requires: + - name: power_manager + - name: device_has_radio + +include: + - path: "" + file_list: + - path: "sl_flex_rail_sleep.h" + +source: + - path: "sl_flex_rail_sleep.c" + +provides: + - name: "sl_flex_rail_sleep" + +#-------------- Template Contribution ---------------- +template_contribution: + - name: component_catalog + value: flex_rail_sleep +#--------------------- BUTTON ------------------------ + - name: event_handler + value: + event: internal_app_init + include: "sl_flex_rail_sleep.h" + handler: "sl_flex_rail_sleep_init" + priority: 2000 diff --git a/app/flex/component/rail/sl_flex_rail_sleep/sl_flex_rail_sleep.c b/app/flex/component/rail/sl_flex_rail_sleep/sl_flex_rail_sleep.c new file mode 100644 index 0000000000..b1576e4e3d --- /dev/null +++ b/app/flex/component/rail/sl_flex_rail_sleep/sl_flex_rail_sleep.c @@ -0,0 +1,79 @@ +/***************************************************************************//** + * @file + * @brief sl_flex_rail_sleep.c + ******************************************************************************* + * # License + * Copyright 2018 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +// ----------------------------------------------------------------------------- +// Includes +// ----------------------------------------------------------------------------- +#include "sl_flex_rail_sleep.h" +#include "em_cmu.h" +#include "sl_rail_util_init.h" +// ----------------------------------------------------------------------------- +// Macros and Typedefs +// ----------------------------------------------------------------------------- + +// ----------------------------------------------------------------------------- +// Static Function Declarations +// ----------------------------------------------------------------------------- + +// ----------------------------------------------------------------------------- +// Global Variables +// ----------------------------------------------------------------------------- + +// ----------------------------------------------------------------------------- +// Public Function Definitions +// ----------------------------------------------------------------------------- +/******************************************************************************* + * API prepares the RAIL and Power Manager to work together in a SYNC mode. + ******************************************************************************/ +RAIL_Status_t sl_flex_rail_sleep_init(void) +{ + RAIL_Status_t status = RAIL_STATUS_NO_ERROR; + RAIL_Handle_t rail_handle = NULL; + + CMU_ClockEnable(cmuClock_PRS, true); + status = RAIL_InitPowerManager(); + + if (RAIL_STATUS_NO_ERROR == status) { + rail_handle = sl_rail_util_get_handle(SL_RAIL_UTIL_HANDLE_INST0); + if (NULL == rail_handle) { + status = RAIL_STATUS_INVALID_PARAMETER; + } + } + + if (RAIL_STATUS_NO_ERROR == status) { + status = RAIL_ConfigSleep(rail_handle, RAIL_SLEEP_CONFIG_TIMERSYNC_ENABLED); + } + + return status; +} + +// ----------------------------------------------------------------------------- +// Static Function Definitions +// ----------------------------------------------------------------------------- diff --git a/app/flex/component/rail/sl_flex_rail_sleep/sl_flex_rail_sleep.h b/app/flex/component/rail/sl_flex_rail_sleep/sl_flex_rail_sleep.h new file mode 100644 index 0000000000..2acadf790e --- /dev/null +++ b/app/flex/component/rail/sl_flex_rail_sleep/sl_flex_rail_sleep.h @@ -0,0 +1,53 @@ +/***************************************************************************//** + * @file + * @brief sl_flex_rail_sleep.h + ******************************************************************************* + * # License + * Copyright 2018 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ +#ifndef SL_FLEX_RAIL_SLEEP_H +#define SL_FLEX_RAIL_SLEEP_H + +// ----------------------------------------------------------------------------- +// Includes +// ----------------------------------------------------------------------------- +#include "rail_types.h" +// ----------------------------------------------------------------------------- +// Macros and Typedefs +// ----------------------------------------------------------------------------- + +// ----------------------------------------------------------------------------- +// Global Variables +// ----------------------------------------------------------------------------- + +// ----------------------------------------------------------------------------- +// Public Function Declarations +// ----------------------------------------------------------------------------- +/******************************************************************************* + * API prepares the RAIL and Power Manager to work together in a SYNC mode. + ******************************************************************************/ +RAIL_Status_t sl_flex_rail_sleep_init(void); + +#endif // SL_FLEX_RAIL_SLEEP_H diff --git a/app/flex/component/rail/sl_radioprs.slcc b/app/flex/component/rail/sl_radioprs.slcc index 40687eea47..f9d7c1b1c7 100644 --- a/app/flex/component/rail/sl_radioprs.slcc +++ b/app/flex/component/rail/sl_radioprs.slcc @@ -11,14 +11,19 @@ instantiable: prefix: inst root_path: app/flex/component/rail/sl_radioprs config_file: - - path: "config/s2/xg21/sl_radioprs_{{instance}}_config.h" + - path: "config/s2/xg21/sl_radioprs_config_{{instance}}.h" condition: [ 'device_sdid_200' ] - - path: "config/s2/sl_radioprs_{{instance}}_config.h" + file_id: sl_radioprs_config + - path: "config/s2/sl_radioprs_config_{{instance}}.h" condition: [ 'device_series_2' ] unless: [ 'device_sdid_200' ] + file_id: sl_radioprs_config template_file: - path: template/s2/sl_radioprs_init_instances.c.jinja condition: [ 'device_series_2' ] + unless: ['clock_manager_device_init'] + - path: template/s2_clock_manager/sl_radioprs_init_instances.c.jinja + condition: [ 'device_series_2', 'clock_manager_device_init' ] - path: template/sl_radioprs_init_instances.h.jinja template_contribution: - name: radioprs_instances @@ -35,4 +40,3 @@ provides: requires: - name: "emlib_prs" - name: "emlib_gpio" - - name: "clock_manager_device_init" diff --git a/app/flex/component/rail/sl_radioprs/config/s2/sl_radioprs_inst_config.h b/app/flex/component/rail/sl_radioprs/config/s2/sl_radioprs_config_inst.h similarity index 96% rename from app/flex/component/rail/sl_radioprs/config/s2/sl_radioprs_inst_config.h rename to app/flex/component/rail/sl_radioprs/config/s2/sl_radioprs_config_inst.h index db69778483..6bed5ce4d6 100644 --- a/app/flex/component/rail/sl_radioprs/config/s2/sl_radioprs_inst_config.h +++ b/app/flex/component/rail/sl_radioprs/config/s2/sl_radioprs_config_inst.h @@ -28,8 +28,8 @@ * ******************************************************************************/ -#ifndef SL_RADIOPRS_INST_CONFIG_H -#define SL_RADIOPRS_INST_CONFIG_H +#ifndef SL_RADIOPRS_CONFIG_INSTANCE_H +#define SL_RADIOPRS_CONFIG_INSTANCE_H // <<< Use Configuration Wizard in Context Menu >>> // Radio PRS Configuration @@ -75,4 +75,4 @@ #define RADIOPRS_INSTANCE_PIN 5 // [PRS_RADIOPRS_INSTANCE]$ // <<< sl:end pin_tool >>> -#endif // SL_RADIOPRS_INST_CONFIG_H +#endif // SL_RADIOPRS_CONFIG_INSTANCE_H diff --git a/app/flex/component/rail/sl_radioprs/config/s2/xg21/sl_radioprs_inst_config.h b/app/flex/component/rail/sl_radioprs/config/s2/xg21/sl_radioprs_config_inst.h similarity index 95% rename from app/flex/component/rail/sl_radioprs/config/s2/xg21/sl_radioprs_inst_config.h rename to app/flex/component/rail/sl_radioprs/config/s2/xg21/sl_radioprs_config_inst.h index 130f887f89..b64444d2d0 100644 --- a/app/flex/component/rail/sl_radioprs/config/s2/xg21/sl_radioprs_inst_config.h +++ b/app/flex/component/rail/sl_radioprs/config/s2/xg21/sl_radioprs_config_inst.h @@ -28,8 +28,8 @@ * ******************************************************************************/ -#ifndef SL_RADIOPRS_INST_CONFIG_H -#define SL_RADIOPRS_INST_CONFIG_H +#ifndef SL_RADIOPRS_CONFIG_INSTANCE_H +#define SL_RADIOPRS_CONFIG_INSTANCE_H // <<< Use Configuration Wizard in Context Menu >>> // Radio PRS Configuration @@ -72,4 +72,4 @@ #define RADIOPRS_INSTANCE_PIN 3 // [PRS_RADIOPRS_INSTANCE]$ // <<< sl:end pin_tool >>> -#endif // SL_RADIOPRS_INST_CONFIG_H +#endif // SL_RADIOPRS_CONFIG_INSTANCE_H diff --git a/app/flex/component/rail/sl_radioprs/template/s2/sl_radioprs_init_instances.c.jinja b/app/flex/component/rail/sl_radioprs/template/s2/sl_radioprs_init_instances.c.jinja index 1a099e39c9..416da968ac 100644 --- a/app/flex/component/rail/sl_radioprs/template/s2/sl_radioprs_init_instances.c.jinja +++ b/app/flex/component/rail/sl_radioprs/template/s2/sl_radioprs_init_instances.c.jinja @@ -1,19 +1,17 @@ #include "em_device.h" -#include "sl_clock_manager.h" +#include "em_cmu.h" #include "em_gpio.h" #include "em_prs.h" // Include instance(s) config(s) {# Include instance config #} -{% for instance in radioprs_instances %} #include "sl_radioprs_{{ instance }}_config.h" +{% for instance in radioprs_instances %} #include "sl_radioprs_config_{{ instance }}.h" {% endfor %} {# Init function #} void sl_radioprs_init_instances(void) { - sl_status_t clock_status = SL_STATUS_OK; - - clock_status = sl_clock_manager_enable_bus_clock(SL_BUS_CLOCK_PRS); - clock_status = sl_clock_manager_enable_bus_clock(SL_BUS_CLOCK_GPIO); + CMU_ClockEnable(cmuClock_PRS, true); + CMU_ClockEnable(cmuClock_GPIO, true); // radioprs instance(s) init(s) {# Initialize radioprs instance(s) #} {% for instance in radioprs_instances %} diff --git a/app/flex/component/rail/sl_radioprs/template/s2_clock_manager/sl_radioprs_init_instances.c.jinja b/app/flex/component/rail/sl_radioprs/template/s2_clock_manager/sl_radioprs_init_instances.c.jinja new file mode 100644 index 0000000000..0e1cc8f140 --- /dev/null +++ b/app/flex/component/rail/sl_radioprs/template/s2_clock_manager/sl_radioprs_init_instances.c.jinja @@ -0,0 +1,26 @@ +#include "em_device.h" +#include "sl_clock_manager.h" +#include "em_gpio.h" +#include "em_prs.h" + +// Include instance(s) config(s) {# Include instance config #} +{% for instance in radioprs_instances %} #include "sl_radioprs_config_{{ instance }}.h" +{% endfor %} + +{# Init function #} +void sl_radioprs_init_instances(void) +{ + sl_status_t clock_status = SL_STATUS_OK; + + clock_status = sl_clock_manager_enable_bus_clock(SL_BUS_CLOCK_PRS); + clock_status = sl_clock_manager_enable_bus_clock(SL_BUS_CLOCK_GPIO); + + // radioprs instance(s) init(s) {# Initialize radioprs instance(s) #} + {% for instance in radioprs_instances %} + //begin radioprs_init_{{ instance }}(); + PRS_ConnectSignal(RADIOPRS_{{ instance | upper }}_CHANNEL, prsTypeAsync, RADIOPRS_{{ instance | upper }}_SOURCESEL); + PRS_PinOutput(RADIOPRS_{{ instance | upper }}_CHANNEL, prsTypeAsync, RADIOPRS_{{ instance | upper }}_PORT, RADIOPRS_{{ instance | upper }}_PIN); + GPIO_PinModeSet(RADIOPRS_{{ instance | upper }}_PORT, RADIOPRS_{{ instance | upper }}_PIN, gpioModePushPullAlternate, 0); + //end radioprs_init_{{ instance }}(); + {% endfor %} +} diff --git a/app/flex/component/rail/sl_range_test_std_component/app_measurement_standard.c b/app/flex/component/rail/sl_range_test_std_component/app_measurement_standard.c index c22117ac60..acfdf7317a 100644 --- a/app/flex/component/rail/sl_range_test_std_component/app_measurement_standard.c +++ b/app/flex/component/rail/sl_range_test_std_component/app_measurement_standard.c @@ -576,7 +576,7 @@ void print_standard_name(char *print_buffer) void set_standard_phy_channel(void) { if (current_phy_standard_value() == IEEE802154_250KBPS || current_phy_standard_value() == IEEE802154_250KBPS_ANTDIV) { - if (range_test_settings.channel > IEEE802154_END_CHANNEL) { + if (range_test_settings.channel > IEEE802154_END_CHANNEL || range_test_settings.channel < IEEE802154_START_CHANNEL) { range_test_settings.channel = IEEE802154_START_CHANNEL; } } else { diff --git a/app/flex/documentation/release-highlights.txt b/app/flex/documentation/release-highlights.txt index b5d4955971..93eba4cf5d 100755 --- a/app/flex/documentation/release-highlights.txt +++ b/app/flex/documentation/release-highlights.txt @@ -1,4 +1,4 @@ -Flex SDK 3.8.1.0 +Flex SDK 3.8.2.0 - RAIL Apps and Library - Targeted quality improvements and bug fixes. - Connect Apps and Stack diff --git a/app/flex/documentation/slFlex_docContent.xml b/app/flex/documentation/slFlex_docContent.xml index 136c81024f..8cc3feee0f 100644 --- a/app/flex/documentation/slFlex_docContent.xml +++ b/app/flex/documentation/slFlex_docContent.xml @@ -1,20 +1,20 @@ - + Includes detailed information on using the Silicon Labs Gecko Bootloader with Connect. It supplements the general Gecko Bootloader implementation information provided in UG489: Silicon Labs Gecko Bootloader User's Guide. - + Describes using the Flex SDK for Wireless M-Bus development on EFR32 Wireless Geckos. Includes features and limitations as well as examples. - + Explains how NVM3 can be used as non-volatile data storage in various protocol implementations. @@ -22,7 +22,7 @@ - + Describes tokens and shows how to use them for non-volatile data storage in EmberZNet PRO and Silicon Labs Flex applications. @@ -30,7 +30,7 @@ - + Describes how to lock and unlock the debug access of EFR32 Gecko Series 2 devices. Many aspects of the debug access, including the secure debug unlock are described. The Debug Challenge Interface (DCI) and Secure Engine (SE) Mailbox Interface for locking and unlocking debug access are also included. @@ -38,7 +38,7 @@ - + Contains detailed information on configuring and using the Secure Boot with hardware Root of Trust and Secure Loader on Series 2 devices, including how to provision the signing key. This is a companion document to UG489: Silicon Labs Gecko Bootloader User's Guide. @@ -46,7 +46,7 @@ - + Details on programming, provisioning, and configuring Series 2 devices in production environments. Covers Secure Engine Subsystem of Series 2 devices, which runs easily upgradeable Secure Engine (SE) or Virtual Secure Engine (VSE) firmware. @@ -54,14 +54,14 @@ - + Describes the distinguishing features of different EFR32 families that are most relevant to porting proprietary wireless applications between them. Provides insight that is also helpful when selecting an initial target platform for proprietary wireless solutions. - + How to program, provision, and configure the anti-tamper module on EFR32 Series 2 devices with Secure Vault. @@ -69,21 +69,21 @@ - + Illustrates reducing power consumption in a Connect v3.x application using the sensor example. - + Describes the radio configurator GUI for RAIL framework applications in Simplicity Studio 5. With it, you can create standard or custom radio configurations on which to run your RAIL-based applications. The role of each GUI item is explained. - + How to authenticate an EFR32 Series 2 device with Secure Vault, using secure device certificates and signatures. @@ -91,7 +91,7 @@ - + How to securely "wrap" keys in EFR32 Series 2 devices with Secure Vault, so they can be stored in non-volatile storage. @@ -99,7 +99,7 @@ - + Describes how to provision and configure Series 2 devices through the DCI and SWD. @@ -107,7 +107,7 @@ - + Describes how to integrate crypto functionality into applications using PSA Crypto compared to Mbed TLS. @@ -115,7 +115,7 @@ - + Gecko Bootloader v2.x, introduced in GSDK 4.0, contains a number of changes compared to Gecko Bootloader v1.x. This document describes the differences between the versions, including how to configure the new Gecko Bootloader in Simplicity Studio 5. @@ -123,14 +123,14 @@ - + Describes using the Flex SDK for 802.15.4 development on EFR32 wireless parts. - + Describes how to initialize a piece of custom hardware (a 'device') based on the EFR32MG and EFR32FG families so that it interfaces correctly with a network stack. The same procedures can be used to restore devices whose settings have been corrupted or erased. @@ -138,49 +138,49 @@ - + Describes using RAILTest to evaluate radio functionality, as well as peripherals, deep sleep states, etc. With it you can fully evaluate the receiving and transmitting performance and test RF functionality of development kit hardware or custom hardware. - + Provides an overview and hyperlinks to all packaged documentation. - + Provides basic information on configuring, building, and installing applications using Silicon Labs Connect and RAIL, the two development paths in the Silicon Labs Proprietary Flex SDK v3.x. - + Contains a comprehensive list of APIs used to interface to the Silicon Labs Connect stack. - + Contains a comprehensive list of APIs used to interface to the Silicon Labs RAIL library. - + Lists compatibility requirements and sources for all software components in the development environment. Discusses the latest changes to the SiliconLabs Flex SDK, including added/deleted/deprecated features/API. Reviews fixed and known issues. - + A detailed overview of the changes, additions, and fixes in the Gecko Platform components. The Gecko Platform includes EMLIB, EMDRV, RAIL Library, NVM3, and the component-based infrastructure. @@ -188,7 +188,7 @@ - + Introduces some fundamental concepts of wireless networking. These concepts are referred to in other Fundamentals documents. If you are new to wireless networking, you should read this document first. @@ -196,7 +196,7 @@ - + Introduces the security concepts that must be considered when implementing an Internet of Things (IoT) system. Using the ioXt Alliance's eight security principles as a structure, it clearly delineates the solutions Silicon Labs provides to support endpoint security and what you must do outside of the Silicon Labs framework. @@ -204,7 +204,7 @@ - + Introduces bootloading for Silicon Labs networking devices. Discusses the Gecko Bootloader as well as legacy Ember and Bluetooth bootloaders, and describes the file formats used by each. @@ -212,7 +212,7 @@ - + Introduces non-volatile data storage using flash and the three different storage implementations offered for Silicon Labs microcontrollers and SoCs: PS Store and NVM3. @@ -220,21 +220,21 @@ - + Describes the features and functions of the Silicon Labs Connect stack, including its device types, network topologies, and its 'building block' development methodology using plugins. - + Describes the features and functions of Silicon Labs RAIL (Radio Abstraction Interface Layer). RAIL provides an intuitive, easily-customizable radio interface layer that is designed to support proprietary or standards-based wireless protocols. - + Describes the four multiprotocol modes, discusses considerations when selecting protocols for multiprotocol implementations, and reviews the Radio Scheduler, a required component of a dynamic multiprotocol solution. @@ -242,7 +242,7 @@ - + Describes how and when to use Simplicity Commander's Command-Line Interface. @@ -250,7 +250,7 @@ - + Describes how to implement a dynamic multiprotocol solution. @@ -258,84 +258,84 @@ - + Describes the functionality available in the RAILtest application. - + Introduces the Connect User's Guide for the Flex SDK v3.x. - + Introduces the IEEE 802.15.4 standard on which Connect v3.x is based. - + Describes the architecture of the Silicon Labs Connect stack v3.x an how it implements IEEE 802.15.4. - + Describes how to use components, callbacks, and events on top of the Gecko Platform application framework to configure features and application behavior. - + Describes the process to implement a Connect-based application on top of one of the supported Real Time Operating Systems (RTOS). - + Explains standalone (serial) and application (OTA) bootloader options available for use within Connect v3.x -based applications - + Describes the features available in Connect v3.x to reduce power consumption. Using those features is described in AN1252: Building Low Power Networks with the Silicon Labs Connect Stack v3.x. - + Describes how to run the Silicon Labs Connect stack in Network Co-Processor (NCP) mode, where the NCP runs on the EFR32 while the Host application and the Co-processor Communication daemon (CPCd) run on the Host device. - + Describes how to test long range performance on EFR32 Series 2 devices using Simplicity Studio 5 and Silicon Labs development hardware. Instructions for using example applications are included. - + Provides an easy way to evaluate the link budget of the Wireless Gecko EFR32 devices using Silicon Labs RAIL (RAIL) by performing a range test between two nodes using Range Test, a standalone test application. The range test demo implements Packet Error Rate (PER) measurement. - + Describes the high-level implementation of the Silicon Labs Gecko Bootloader for EFR32 SoCs and NCPs, and provides information on how to get started using the Gecko Bootloader with Silicon Labs wireless protocol stacks in GSDK 4.0 and higher. diff --git a/app/flex/esf.properties b/app/flex/esf.properties index 0a6b13e997..ae0fed92ae 100644 --- a/app/flex/esf.properties +++ b/app/flex/esf.properties @@ -3,8 +3,8 @@ id=com.silabs.stack.flex label=Flex SDK description=Flex Software Development Kit -version=3.8.1.0 -prop.subLabel=Flex\\ 3.8.1.0 +version=3.8.2.0 +prop.subLabel=Flex\\ 3.8.2.0 # General properties are prepended with "prop." prop.file.templatesFile=flex_production_templates.xml flex_demos_only_templates.xml flex_internal_templates.xml flex_evaluation_templates.xml diff --git a/app/flex/example/example_host/rail_host_simple_rail_cpc_to_serial/CMakeLists.txt b/app/flex/example/example_host/rail_host_simple_rail_cpc_to_serial/CMakeLists.txt new file mode 100644 index 0000000000..eb46791c9a --- /dev/null +++ b/app/flex/example/example_host/rail_host_simple_rail_cpc_to_serial/CMakeLists.txt @@ -0,0 +1,27 @@ +cmake_minimum_required(VERSION 3.13.0) + +project(${PROJ_NAME} LANGUAGES C) + +set(PROJ_NAME rail_host_cpc_to_serial) +set(CMAKE_THREAD_PREFER_PTHREAD TRUE) +set(THREADS_PREFER_PTHREAD_FLAG TRUE) +find_package(Threads REQUIRED) + +set(GSDK_PATH ../../../../..) +set(CPC_DIR ${GSDK_PATH}/platform/service/cpc) + +add_executable( + ${PROJ_NAME} + cpc_to_serial.c +) +include_directories( + ${CPC_DIR}/daemon/lib +) + +target_link_libraries( + ${PROJ_NAME} + PUBLIC + cpc + Threads::Threads + util +) diff --git a/app/flex/example/example_host/rail_host_simple_rail_cpc_to_serial/cpc_to_serial.c b/app/flex/example/example_host/rail_host_simple_rail_cpc_to_serial/cpc_to_serial.c new file mode 100644 index 0000000000..69f2b4b382 --- /dev/null +++ b/app/flex/example/example_host/rail_host_simple_rail_cpc_to_serial/cpc_to_serial.c @@ -0,0 +1,313 @@ +/***************************************************************************//** + * @file + * @brief CPC to serial application. + * + * This application serves as a bridge between CPCd and serial. As CPC + * communication is available through libcpc.so API calls, so we created an app + * to forward it to a serial port for easier handling for other apps or users. + ******************************************************************************* + * # License + * Copyright 2021 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ +#include "sl_cpc.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// set this to 1 for more runtime log messages +#define DEBUG 0 + +#define TO_CPC_BUF_SIZE 256 +#define FROM_CPC_BUF_SIZE SL_CPC_READ_MINIMUM_SIZE +#define INST_NAME_LEN 100 +#define RETRY_COUNT 10 +#define CPC_RETRY_SLEEP_NS 100000000L +#define CPC_RESET_SLEEP_NS 10000L +#define THREAD_SLEEP_NS 1L +#define CPC_TRANSMIT_WINDOW 1 +#define SYMLINK_PATH "pts_hci" +#define CPC_SELECTED_CHANNEL SL_CPC_SLI_CPC_ENDPOINT_RAIL_DOWNSTREAM + +// cpc related structures +static cpc_handle_t lib_handle; +static cpc_endpoint_t endpoint; +// tx/rx buffers +static uint8_t data_to_cpc[TO_CPC_BUF_SIZE]; +static uint8_t data_from_cpc[FROM_CPC_BUF_SIZE]; +// cpc instance name +static char cpc_instance[INST_NAME_LEN]; + +static sl_cpc_service_endpoint_id_t channel = CPC_SELECTED_CHANNEL; + +static int pty_m; +static int pty_s; + +// end the receiving loop if signal is received +static volatile bool run = true; +// signal if the controller was reset +static volatile bool has_reset = false; + +static void reset_callback(void); + +// two worker threads +static pthread_t thread_rx; +static pthread_t thread_tx; + +// Static receive function +static void *cpc_to_pty_func(void *ptr); +static void *pty_to_cpc_func(void *ptr); + +// Custom signal handler +static void signal_handler(int sig) +{ + (void)sig; + run = false; +} + +/**************************************************************************//** + * Starts CPC and pty + *****************************************************************************/ +uint32_t startup(void) +{ + int ret; + uint8_t retry = 0; + + // Initialize CPC communication + do { + ret = cpc_init(&lib_handle, cpc_instance, false, reset_callback); + if (ret == 0) { + // speed up boot process if everything seems ok + break; + } + nanosleep((const struct timespec[]){{ 0, CPC_RETRY_SLEEP_NS } }, NULL); + retry++; + } while ((ret != 0) && (retry < RETRY_COUNT)); + + if (ret < 0) { + perror("cpc_init: "); + return ret; + } + + // Start RAIL NCP endpoint + ret = cpc_open_endpoint(lib_handle, + &endpoint, + channel, + CPC_TRANSMIT_WINDOW); + if (ret < 0) { + perror("cpc_open_endpoint "); + return ret; + } + + // Open virtual UART device + ret = openpty(&pty_m, &pty_s, NULL, NULL, NULL); + if (ret >= 0) { + char *pName = ttyname(pty_s); + printf("Name of secondary pty side is <%s>\n", pName); + remove(SYMLINK_PATH); + if (symlink(pName, SYMLINK_PATH) != 0) { + fprintf(stderr, + "Error creating symlink (%s): %s\n", + SYMLINK_PATH, + strerror(errno)); + } + } + return ret; +} + +/**************************************************************************//** + * Callback to register reset from other end + *****************************************************************************/ +static void reset_callback(void) +{ + has_reset = true; +} + +/**************************************************************************//** + * Reset CPC communication after other end restarted + *****************************************************************************/ +int reset_cpc(void) +{ + int ret; + uint8_t retry = 0; + + if (DEBUG) { + printf("\n\nRESET\n\n"); + } + + // Restart cpp communication + do { + ret = cpc_restart(&lib_handle); + if (ret == 0) { + // speed up boot process if everything seems ok + break; + } + nanosleep((const struct timespec[]){{ 0, CPC_RETRY_SLEEP_NS } }, NULL); + retry++; + } while ((ret != 0) && (retry < RETRY_COUNT)); + has_reset = false; + if (ret < 0) { + perror("cpc restart "); + return ret; + } + + // Open RAIL NCP endpoint + ret = cpc_open_endpoint(lib_handle, + &endpoint, + channel, + CPC_TRANSMIT_WINDOW); + if (ret < 0) { + perror(" open endpoint "); + return ret; + } + return ret; +} + +/**************************************************************************//** + * Main + *****************************************************************************/ +int main(int argc, char *argv[]) +{ + int ret; + + // Set up custom signal handler for user interrupt and termination request + signal(SIGINT, signal_handler); + signal(SIGTERM, signal_handler); + + // Set device unique name if different from default + if (argc > 1) { + strcpy(cpc_instance, argv[1]); + } else { + strcpy(cpc_instance, "cpcd_0"); + } + + if (argc > 2) { + char *channel_number = argv[2]; + channel = atoi(channel_number); + } + + // Start CPC and PTY communication + if (startup() < 0) { + exit(EXIT_FAILURE); + } + // Creating receiving working threads + ret = pthread_create(&thread_rx, NULL, cpc_to_pty_func, NULL); + if (ret) { + printf("Error - pthread_create(thread_rx) return code: %d\n", ret); + exit(EXIT_FAILURE); + } + ret = pthread_create(&thread_tx, NULL, pty_to_cpc_func, NULL); + if (ret) { + printf("Error - pthread_create(thread_tx) return code: %d\n", ret); + exit(EXIT_FAILURE); + } + + if (DEBUG) { + printf("\nCPC - Serial bridge working, main thread is going to sleep\n\n"); + } + + // Reset cpc communication if daemon signals + while (run) { + if (has_reset) { + ret = reset_cpc(); + if (ret < 0) { + perror("reset "); + exit(EXIT_FAILURE); + } + } + nanosleep((const struct timespec[]){{ 0, CPC_RESET_SLEEP_NS } }, NULL); + } +} + +/**************************************************************************//** + * Working thread from CPCd + *****************************************************************************/ +void *cpc_to_pty_func(void *ptr) +{ + ssize_t size = 0; + + // unused variable + (void)ptr; + + while (run) { + // Read data from cpc + size = cpc_read_endpoint(endpoint, + &data_from_cpc[0], + FROM_CPC_BUF_SIZE, + CPC_ENDPOINT_READ_FLAG_NON_BLOCKING); + if (size > 0) { + if (DEBUG) { + printf("Len from cpc %zd\n", size); + printf("Data from cpc: "); + for (int i = 0; i < size; i++) { + printf("%x ", data_from_cpc[i]); + } + printf("\n"); + } + // Write data to pty + write(pty_m, &data_from_cpc[0], size); + memset(&data_from_cpc[0], 0, FROM_CPC_BUF_SIZE); + } else if (has_reset) { + // intentionally left blank + } else if (errno != EAGAIN && errno != ECONNRESET) { + perror("cpc_to_pty_func error "); + exit(-1); + } + nanosleep((const struct timespec[]){{ 0, THREAD_SLEEP_NS } }, NULL); + } + return NULL; +} + +/**************************************************************************//** + * Working thread to CPCd + *****************************************************************************/ +void *pty_to_cpc_func(void *ptr) +{ + ssize_t size = 0; + + // unused variable + (void)ptr; + + while (run) { + // Read data from pty + size = read(pty_m, data_to_cpc, TO_CPC_BUF_SIZE); + if (size > 0) { + cpc_write_endpoint(endpoint, &data_to_cpc[0], size, CPC_ENDPOINT_WRITE_FLAG_NONE); + memset(&data_to_cpc[0], 0, TO_CPC_BUF_SIZE); + } else if (has_reset) { + // intentionally left blank + } else if (errno != EAGAIN && errno != ECONNRESET) { + perror("pty_to_cpc_func error"); + exit(-1); + } + nanosleep((const struct timespec[]){{ 0, THREAD_SLEEP_NS } }, NULL); + } + return NULL; +} diff --git a/app/flex/example/example_host/rail_host_simple_rail_cpc_to_serial/makefile b/app/flex/example/example_host/rail_host_simple_rail_cpc_to_serial/makefile new file mode 100644 index 0000000000..bae8614f57 --- /dev/null +++ b/app/flex/example/example_host/rail_host_simple_rail_cpc_to_serial/makefile @@ -0,0 +1,142 @@ +################################################################################ +# Makefile +# +# CPC_DIR must be set to the location wrom where cpc daemon is compiled. +# +################################################################################ + +.SUFFIXES: # ignore builtin rules +.PHONY: all debug release clean + +################################################################################ +# General project settings # +################################################################################ + +################################################################################ +# Set this variable to the location of your CPC directory cloned from Github. # +# Follow the instructions at https://github.com/SiliconLabs/cpc-daemon. # +################################################################################ +CPC_DIR ?= cpc + +# uniq is a function which removes duplicate elements from a list +uniq = $(strip $(if $1,$(firstword $1) \ + $(call uniq,$(filter-out $(firstword $1),$1)))) + + +PROJECTNAME = rail_cpc_to_serial + +OBJ_DIR = obj +EXE_DIR = exe +LST_DIR = lst + +################################################################################ +# Definitions of toolchain. # +# You might need to do changes to match your system setup # +################################################################################ + +RMDIRS := rm -rf +RMFILES := rm -rf +ALLFILES := /*.* +NULLDEVICE := /dev/null + +# Create directories and do a clean which is compatible with parallell make +$(shell mkdir $(OBJ_DIR)>$(NULLDEVICE) 2>&1) +$(shell mkdir $(EXE_DIR)>$(NULLDEVICE) 2>&1) +$(shell mkdir $(LST_DIR)>$(NULLDEVICE) 2>&1) +ifeq (clean,$(findstring clean, $(MAKECMDGOALS))) + ifneq ($(filter $(MAKECMDGOALS),all debug release),) + $(shell $(RMFILES) $(OBJ_DIR)$(ALLFILES)>$(NULLDEVICE) 2>&1) + $(shell $(RMFILES) $(EXE_DIR)$(ALLFILES)>$(NULLDEVICE) 2>&1) + $(shell $(RMFILES) $(LST_DIR)$(ALLFILES)>$(NULLDEVICE) 2>&1) + endif +endif + +CC = gcc +LD = ld +AR = ar + +################################################################################ +# Include paths # +################################################################################ + +INCLUDEPATHS ?= -I${CPC_DIR}/daemon/lib + +# -MMD : Don't generate dependencies on system header files. +# -MP : Add phony targets, useful when a h-file is removed from a project. +# -MF : Specify a file to write the dependencies to. +DEPFLAGS = \ +-MMD \ +-MP \ +-MF $(@:.o=.d) + +# Add -Wa,-ahld=$(LST_DIR)/$(@F:.o=.lst) to CFLAGS to produce assembly list files +override CFLAGS += \ +-fno-short-enums \ +-Wall \ +-c \ +-fmessage-length=0 \ +-std=c99 \ +$(DEPFLAGS) + + +override CFLAGS += \ +-D_DEFAULT_SOURCE \ +-D_BSD_SOURCE + +# NOTE: The -Wl,--gc-sections flag may interfere with debugging using gdb. +override LDFLAGS += + +################################################################################ +# Input files # +################################################################################ + +override C_SRC += \ +cpc_to_serial.c + +LIBS = $(CPC_DIR)/daemon/build/libcpc.so + +override LDFLAGS += -lpthread -lutil + +################################################################################ +# Rules # +################################################################################ + +C_FILES = $(notdir $(C_SRC) ) +#make list of source paths, uniq removes duplicate paths +C_PATHS = $(call uniq, $(dir $(C_SRC) ) ) + +C_OBJS = $(addprefix $(OBJ_DIR)/, $(C_FILES:.c=.o)) +C_DEPS = $(addprefix $(OBJ_DIR)/, $(C_FILES:.c=.d)) +OBJS = $(C_OBJS) + +vpath %.c $(C_PATHS) + +# Default build is debug build +all: debug + +debug: CFLAGS += -O0 -g3 +debug: $(EXE_DIR)/$(PROJECTNAME) + +release: $(EXE_DIR)/$(PROJECTNAME) + + +# Create objects from C SRC files +$(OBJ_DIR)/%.o: %.c + @echo "Building file: $<" + $(CC) $(CFLAGS) $(INCLUDEPATHS) -c -o $@ $< + +# Link +$(EXE_DIR)/$(PROJECTNAME): $(OBJS) $(LIBS) + @echo "Linking target: $@" + $(CC) $^ $(LDFLAGS) -o $@ + + +clean: +ifeq ($(filter $(MAKECMDGOALS),all debug release),) + $(RMDIRS) $(OBJ_DIR) $(LST_DIR) $(EXE_DIR) +endif + +# include auto-generated dependency files (explicit rules) +ifneq (clean,$(findstring clean, $(MAKECMDGOALS))) +-include $(C_DEPS) +endif diff --git a/app/flex/example/rail/rail_soc_burst_duty_cycle/rail_soc_burst_duty_cycle.slcp b/app/flex/example/rail/rail_soc_burst_duty_cycle/rail_soc_burst_duty_cycle.slcp index e7f875ca30..63ca8b9c5b 100644 --- a/app/flex/example/rail/rail_soc_burst_duty_cycle/rail_soc_burst_duty_cycle.slcp +++ b/app/flex/example/rail/rail_soc_burst_duty_cycle/rail_soc_burst_duty_cycle.slcp @@ -38,6 +38,7 @@ component: - id: iostream_recommended_stream - id: iostream_retarget_stdio #---------------- Power - Sleep --------------------- + - id: sl_flex_rail_sleep - id: power_manager #---------------------- LCD ------------------------- - id: glib diff --git a/app/flex/example/rail/rail_soc_emode/rail_soc_emode.slcp b/app/flex/example/rail/rail_soc_emode/rail_soc_emode.slcp index 0199f15c74..ef37723e69 100644 --- a/app/flex/example/rail/rail_soc_emode/rail_soc_emode.slcp +++ b/app/flex/example/rail/rail_soc_emode/rail_soc_emode.slcp @@ -29,6 +29,7 @@ component: - id: radio_config_simple_rail_singlephy - id: app_log - id: app_assert + - id: sl_flex_rail_sleep - id: power_manager - id: sl_flex_rail_package_assistant - id: simple_rail_assistance diff --git a/app/flex/example/rail/rail_soc_long_preamble_duty_cycle/rail_soc_long_preamble_duty_cycle.slcp b/app/flex/example/rail/rail_soc_long_preamble_duty_cycle/rail_soc_long_preamble_duty_cycle.slcp index 1a2224f388..3ceadff88a 100644 --- a/app/flex/example/rail/rail_soc_long_preamble_duty_cycle/rail_soc_long_preamble_duty_cycle.slcp +++ b/app/flex/example/rail/rail_soc_long_preamble_duty_cycle/rail_soc_long_preamble_duty_cycle.slcp @@ -42,6 +42,7 @@ component: - id: iostream_recommended_stream - id: iostream_retarget_stdio #---------------- Power - Sleep --------------------- + - id: sl_flex_rail_sleep - id: power_manager #---------------------- LCD ------------------------- - id: glib diff --git a/app/flex/example/rail/rail_soc_mode_switch/rail_soc_mode_switch.slcp b/app/flex/example/rail/rail_soc_mode_switch/rail_soc_mode_switch.slcp index 6812efacb4..c02110a8ca 100644 --- a/app/flex/example/rail/rail_soc_mode_switch/rail_soc_mode_switch.slcp +++ b/app/flex/example/rail/rail_soc_mode_switch/rail_soc_mode_switch.slcp @@ -22,6 +22,7 @@ component: - inst0 - id: rail_util_recommended - id: radio_config_simple_rail_singlephy + - id: sl_flex_rail_sleep - id: power_manager - id: app_log - id: app_assert diff --git a/app/flex/example/rail/rail_soc_wmbus_meter/rail_soc_wmbus_meter.slcp b/app/flex/example/rail/rail_soc_wmbus_meter/rail_soc_wmbus_meter.slcp index ddd003c2ce..e2cf88ca2d 100644 --- a/app/flex/example/rail/rail_soc_wmbus_meter/rail_soc_wmbus_meter.slcp +++ b/app/flex/example/rail/rail_soc_wmbus_meter/rail_soc_wmbus_meter.slcp @@ -21,6 +21,7 @@ component: - id: board_control condition: [hardware_board] - id: sl_simple_rail_stub + - id: sl_flex_rail_sleep - id: power_manager - id: rail_util_init instance: diff --git a/app/flex/flex_demos_only_demos.xml b/app/flex/flex_demos_only_demos.xml index f69270daa4..07473443bc 100644 --- a/app/flex/flex_demos_only_demos.xml +++ b/app/flex/flex_demos_only_demos.xml @@ -5,7 +5,7 @@ - + @@ -15,7 +15,7 @@ - + diff --git a/app/flex/flex_production_demos.xml b/app/flex/flex_production_demos.xml index 0ca961ed48..f0e2b80acf 100644 --- a/app/flex/flex_production_demos.xml +++ b/app/flex/flex_production_demos.xml @@ -6,7 +6,7 @@ - + @@ -17,7 +17,7 @@ - + @@ -28,7 +28,7 @@ - + @@ -39,7 +39,7 @@ - + @@ -50,7 +50,7 @@ - + @@ -61,7 +61,7 @@ - + @@ -72,7 +72,7 @@ - + @@ -83,7 +83,7 @@ - + @@ -94,7 +94,7 @@ - + @@ -105,7 +105,7 @@ - + @@ -116,7 +116,7 @@ - + @@ -127,7 +127,7 @@ - + @@ -138,7 +138,7 @@ - + @@ -149,7 +149,7 @@ - + @@ -160,7 +160,7 @@ - + @@ -171,7 +171,7 @@ - + @@ -182,7 +182,7 @@ - + @@ -193,7 +193,7 @@ - + @@ -204,7 +204,7 @@ - + @@ -215,7 +215,7 @@ - + @@ -226,7 +226,7 @@ - + @@ -237,7 +237,7 @@ - + @@ -248,7 +248,7 @@ - + @@ -259,7 +259,7 @@ - + @@ -270,7 +270,7 @@ - + @@ -281,7 +281,7 @@ - + @@ -292,7 +292,7 @@ - + @@ -303,7 +303,7 @@ - + @@ -314,7 +314,7 @@ - + @@ -325,7 +325,7 @@ - + @@ -336,7 +336,7 @@ - + @@ -347,7 +347,7 @@ - + @@ -358,7 +358,7 @@ - + @@ -369,7 +369,7 @@ - + @@ -380,7 +380,7 @@ - + @@ -391,7 +391,7 @@ - + @@ -402,7 +402,7 @@ - + @@ -413,7 +413,7 @@ - + @@ -424,7 +424,7 @@ - + @@ -435,7 +435,7 @@ - + @@ -446,7 +446,7 @@ - + @@ -457,7 +457,7 @@ - + @@ -468,7 +468,7 @@ - + @@ -479,7 +479,7 @@ - + @@ -490,7 +490,7 @@ - + @@ -501,7 +501,7 @@ - + @@ -512,7 +512,7 @@ - + @@ -523,7 +523,7 @@ - + @@ -534,7 +534,7 @@ - + @@ -545,7 +545,7 @@ - + @@ -556,7 +556,7 @@ - + @@ -567,7 +567,7 @@ - + @@ -578,7 +578,7 @@ - + @@ -589,7 +589,7 @@ - + @@ -600,7 +600,7 @@ - + @@ -611,7 +611,7 @@ - + @@ -622,7 +622,7 @@ - + @@ -633,7 +633,7 @@ - + @@ -644,7 +644,7 @@ - + @@ -655,7 +655,7 @@ - + @@ -666,7 +666,7 @@ - + @@ -677,7 +677,7 @@ - + @@ -688,7 +688,7 @@ - + @@ -699,7 +699,7 @@ - + @@ -710,7 +710,7 @@ - + @@ -721,7 +721,7 @@ - + @@ -732,7 +732,18 @@ - + + + + + + + The purpose of the application is to demonstrate simple wireless communication between two or more boards. In combination with the Light sample application, it creates basic switch functionality, where the light can be toggled in the Light node. After power-up, the node is in SCAN state. It means the broadcast messages of the light modules can be captured. After pushing PB1 button, the closest Light module will be connected. This is called the LINK state. If the Light module has done the same procedure, light can be toggled from all the boards by pushing BP0 button. + + + + + @@ -743,7 +754,7 @@ - + @@ -754,7 +765,7 @@ - + @@ -765,7 +776,7 @@ - + @@ -776,7 +787,7 @@ - + @@ -787,7 +798,7 @@ - + @@ -798,7 +809,7 @@ - + @@ -809,7 +820,7 @@ - + @@ -820,7 +831,7 @@ - + @@ -831,7 +842,7 @@ - + @@ -842,7 +853,7 @@ - + @@ -853,7 +864,7 @@ - + @@ -864,7 +875,7 @@ - + @@ -875,7 +886,7 @@ - + @@ -886,7 +897,7 @@ - + @@ -897,7 +908,7 @@ - + @@ -908,7 +919,7 @@ - + @@ -919,7 +930,7 @@ - + @@ -930,7 +941,7 @@ - + @@ -941,7 +952,7 @@ - + @@ -952,7 +963,7 @@ - + @@ -963,7 +974,7 @@ - + @@ -974,7 +985,7 @@ - + @@ -985,7 +996,7 @@ - + @@ -996,7 +1007,7 @@ - + @@ -1007,7 +1018,7 @@ - + @@ -1018,7 +1029,7 @@ - + @@ -1029,7 +1040,7 @@ - + @@ -1040,7 +1051,7 @@ - + @@ -1051,7 +1062,7 @@ - + @@ -1062,7 +1073,7 @@ - + @@ -1073,7 +1084,7 @@ - + @@ -1084,7 +1095,7 @@ - + @@ -1095,7 +1106,7 @@ - + @@ -1106,7 +1117,7 @@ - + @@ -1117,7 +1128,7 @@ - + @@ -1128,7 +1139,7 @@ - + @@ -1139,7 +1150,7 @@ - + @@ -1150,7 +1161,7 @@ - + @@ -1161,7 +1172,7 @@ - + @@ -1172,7 +1183,7 @@ - + @@ -1183,7 +1194,7 @@ - + @@ -1194,7 +1205,7 @@ - + @@ -1205,7 +1216,7 @@ - + @@ -1216,7 +1227,7 @@ - + @@ -1227,7 +1238,7 @@ - + @@ -1238,7 +1249,7 @@ - + @@ -1249,7 +1260,7 @@ - + @@ -1260,7 +1271,7 @@ - + @@ -1271,7 +1282,7 @@ - + @@ -1282,7 +1293,7 @@ - + @@ -1293,7 +1304,7 @@ - + @@ -1304,7 +1315,7 @@ - + @@ -1315,7 +1326,7 @@ - + @@ -1326,7 +1337,7 @@ - + @@ -1337,7 +1348,7 @@ - + @@ -1348,7 +1359,7 @@ - + @@ -1359,7 +1370,7 @@ - + @@ -1370,7 +1381,7 @@ - + @@ -1381,7 +1392,7 @@ - + @@ -1392,7 +1403,7 @@ - + @@ -1403,7 +1414,7 @@ - + @@ -1414,7 +1425,7 @@ - + @@ -1425,7 +1436,7 @@ - + @@ -1436,7 +1447,7 @@ - + @@ -1447,7 +1458,7 @@ - + @@ -1458,7 +1469,7 @@ - + @@ -1469,7 +1480,7 @@ - + @@ -1480,7 +1491,7 @@ - + @@ -1491,7 +1502,7 @@ - + @@ -1502,7 +1513,7 @@ - + @@ -1513,7 +1524,7 @@ - + @@ -1524,7 +1535,7 @@ - + @@ -1535,7 +1546,7 @@ - + @@ -1546,7 +1557,7 @@ - + @@ -1557,7 +1568,7 @@ - + @@ -1568,7 +1579,7 @@ - + diff --git a/app/flex/flex_production_templates.xml b/app/flex/flex_production_templates.xml index 0c7e124566..fc3f1362d2 100755 --- a/app/flex/flex_production_templates.xml +++ b/app/flex/flex_production_templates.xml @@ -21,7 +21,7 @@ - + @@ -36,7 +36,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -66,7 +66,7 @@ - + @@ -126,7 +126,7 @@ - + @@ -201,7 +201,7 @@ - + @@ -216,7 +216,7 @@ - + @@ -231,7 +231,7 @@ - + @@ -246,7 +246,7 @@ - + @@ -261,7 +261,7 @@ - + @@ -276,7 +276,7 @@ - + @@ -291,7 +291,7 @@ - + @@ -306,7 +306,7 @@ - + @@ -366,7 +366,7 @@ - + @@ -381,7 +381,7 @@ - + @@ -411,7 +411,7 @@ - + @@ -426,7 +426,7 @@ - + @@ -441,7 +441,7 @@ - + @@ -456,7 +456,7 @@ - + @@ -501,7 +501,7 @@ - + diff --git a/app/multiprotocol/containers/multiprotocol-container/_artifacts/etc/zigbeed.conf b/app/multiprotocol/apps/zigbeed/usr/local/etc/zigbeed.conf similarity index 99% rename from app/multiprotocol/containers/multiprotocol-container/_artifacts/etc/zigbeed.conf rename to app/multiprotocol/apps/zigbeed/usr/local/etc/zigbeed.conf index b27bd2e9e2..e4e121da40 100644 --- a/app/multiprotocol/containers/multiprotocol-container/_artifacts/etc/zigbeed.conf +++ b/app/multiprotocol/apps/zigbeed/usr/local/etc/zigbeed.conf @@ -34,7 +34,7 @@ ezsp-interface=/tmp/ttyZigbeeNCP # For example, setting debug-level=5 logs all messages. # 0=NONE, 1=CRIT, 2=WARN, 3=NOTE, 4=INFO, 5=DEBG # Uncomment to enable. -# debug-level=5 +debug-level=0 # Verbose # Optional diff --git a/app/multiprotocol/containers/multiprotocol-container/_artifacts/systemd/cpc-hci-bridge.service b/app/multiprotocol/containers/host-container/artifacts/systemd/cpc-hci-bridge.service similarity index 100% rename from app/multiprotocol/containers/multiprotocol-container/_artifacts/systemd/cpc-hci-bridge.service rename to app/multiprotocol/containers/host-container/artifacts/systemd/cpc-hci-bridge.service diff --git a/app/multiprotocol/containers/multiprotocol-container/_artifacts/systemd/cpcd.service b/app/multiprotocol/containers/host-container/artifacts/systemd/cpcd.service similarity index 84% rename from app/multiprotocol/containers/multiprotocol-container/_artifacts/systemd/cpcd.service rename to app/multiprotocol/containers/host-container/artifacts/systemd/cpcd.service index 76adb094e6..428927eccd 100644 --- a/app/multiprotocol/containers/multiprotocol-container/_artifacts/systemd/cpcd.service +++ b/app/multiprotocol/containers/host-container/artifacts/systemd/cpcd.service @@ -7,7 +7,7 @@ Type=simple Restart=always RestartSec=1 User=root -ExecStart=/usr/bin/stdbuf -o0 /usr/local/bin/cpcd +ExecStart=/usr/bin/stdbuf -o0 /usr/bin/cpcd ExecStop=/bin/kill -WINCH ${MAINPID} PIDFile=/run/cpcd.pid StandardOutput=syslog diff --git a/app/multiprotocol/containers/multiprotocol-container/_artifacts/systemd/hciattach.service b/app/multiprotocol/containers/host-container/artifacts/systemd/hciattach.service similarity index 100% rename from app/multiprotocol/containers/multiprotocol-container/_artifacts/systemd/hciattach.service rename to app/multiprotocol/containers/host-container/artifacts/systemd/hciattach.service diff --git a/app/multiprotocol/containers/multiprotocol-container/_artifacts/systemd/master.service b/app/multiprotocol/containers/host-container/artifacts/systemd/master.service similarity index 100% rename from app/multiprotocol/containers/multiprotocol-container/_artifacts/systemd/master.service rename to app/multiprotocol/containers/host-container/artifacts/systemd/master.service diff --git a/app/multiprotocol/containers/multiprotocol-container/_artifacts/systemd/otbr@.service b/app/multiprotocol/containers/host-container/artifacts/systemd/otbr@.service similarity index 100% rename from app/multiprotocol/containers/multiprotocol-container/_artifacts/systemd/otbr@.service rename to app/multiprotocol/containers/host-container/artifacts/systemd/otbr@.service diff --git a/app/multiprotocol/containers/multiprotocol-container/_artifacts/systemd/zigbeed-socat.service b/app/multiprotocol/containers/host-container/artifacts/systemd/zigbeed-socat.service similarity index 100% rename from app/multiprotocol/containers/multiprotocol-container/_artifacts/systemd/zigbeed-socat.service rename to app/multiprotocol/containers/host-container/artifacts/systemd/zigbeed-socat.service diff --git a/app/multiprotocol/containers/multiprotocol-container/_artifacts/systemd/zigbeed.service b/app/multiprotocol/containers/host-container/artifacts/systemd/zigbeed.service similarity index 100% rename from app/multiprotocol/containers/multiprotocol-container/_artifacts/systemd/zigbeed.service rename to app/multiprotocol/containers/host-container/artifacts/systemd/zigbeed.service diff --git a/app/multiprotocol/containers/multiprotocol-container/run.sh b/app/multiprotocol/containers/host-container/run.sh similarity index 99% rename from app/multiprotocol/containers/multiprotocol-container/run.sh rename to app/multiprotocol/containers/host-container/run.sh index 2f57dd2ddc..bb9946c038 100755 --- a/app/multiprotocol/containers/multiprotocol-container/run.sh +++ b/app/multiprotocol/containers/host-container/run.sh @@ -167,7 +167,7 @@ docker stop -t 0 multiprotocol # stop container if it is running RUN_ARGS="--rm --name multiprotocol" # Clean up after run if [ -e "$CPCD_CONFIG_FILE" ]; then echo "Using host's cpcd config file: $CPCD_CONFIG_FILE" - RUN_ARGS+=" -v $CPCD_CONFIG_FILE:/usr/local/etc/cpcd.conf:ro" + RUN_ARGS+=" -v $CPCD_CONFIG_FILE:/etc/cpcd.conf:ro" fi RUN_ARGS+=" -v /tmp/multiprotocol-container/log:/var/log/" # Add in logging folder RUN_ARGS+=" -v /accept_silabs_msla" # Accept the MSLA for Zigbeed diff --git a/app/wisun/component/app_core/sl_wisun_app_core.c b/app/wisun/component/app_core/sl_wisun_app_core.c index fad599f463..4e10fd675e 100644 --- a/app/wisun/component/app_core/sl_wisun_app_core.c +++ b/app/wisun/component/app_core/sl_wisun_app_core.c @@ -84,7 +84,7 @@ typedef struct app_setting_wisun{ char network_name[SL_WISUN_NETWORK_NAME_SIZE + 1]; uint8_t network_size; - int8_t tx_power; + int16_t tx_power; uint8_t device_type; uint8_t lfn_profile; bool is_default_phy; @@ -691,7 +691,7 @@ static sl_status_t _app_wisun_application_setting(const app_setting_wisun_t * co #endif // sets the TX power - ret = sl_wisun_set_tx_power(setting->tx_power); + ret = sl_wisun_set_tx_power_ddbm(setting->tx_power); if (ret != SL_STATUS_OK) { printf("[Failed: unable to set TX power: %lu]\n", ret); _app_wisun_core_set_state(SL_WISUN_APP_CORE_STATE_SET_TX_POWER_ERROR); diff --git a/app/wisun/component/app_os_stat/config/app_os_stat_config.h b/app/wisun/component/app_os_stat/config/app_os_stat_config.h index a86a6758f1..f6e983fc98 100644 --- a/app/wisun/component/app_os_stat/config/app_os_stat_config.h +++ b/app/wisun/component/app_os_stat/config/app_os_stat_config.h @@ -37,8 +37,8 @@ // // App OS Statistic configuration // App OS statistic thread priority -// Default: osPriorityLow3 -#define APP_OS_STAT_THREAD_PRIO osPriorityLow3 +// Default: osPriorityHigh +#define APP_OS_STAT_THREAD_PRIO osPriorityHigh // App OS statistic thread stack size in word // Default: 256 diff --git a/app/wisun/component/app_setting/sl_wisun_app_setting.h b/app/wisun/component/app_setting/sl_wisun_app_setting.h index 6007af3f1f..129b6690c6 100644 --- a/app/wisun/component/app_setting/sl_wisun_app_setting.h +++ b/app/wisun/component/app_setting/sl_wisun_app_setting.h @@ -78,7 +78,7 @@ typedef struct { /// Network size uint8_t network_size; /// TX Power - int8_t tx_power; + int16_t tx_power; /// Device type uint8_t device_type; /// LFN profile diff --git a/app/wisun/component/coap/sli_wisun_coap_rd.c b/app/wisun/component/coap/sli_wisun_coap_rd.c index c35ccf8973..a374d1d988 100644 --- a/app/wisun/component/coap/sli_wisun_coap_rd.c +++ b/app/wisun/component/coap/sli_wisun_coap_rd.c @@ -468,6 +468,9 @@ char * sli_wisun_coap_rd_parser(const sl_wisun_coap_rhnd_resource_t * const reso // Get '\0' terminated uri querry str from packet uri_querry_str = _get_uri_querry_string(packet); if (uri_querry_str == NULL) { + _destroy_dir_list(&parsed); + _destroy_resources(&parsed); + sl_wisun_coap_destroy_uri_path_str(uri_path_str); return NULL; } // Parse and get matched list of resources diff --git a/app/wisun/component/ftp/sl_tftp_clnt.c b/app/wisun/component/ftp/sl_tftp_clnt.c index be19340a56..a190ba952d 100644 --- a/app/wisun/component/ftp/sl_tftp_clnt.c +++ b/app/wisun/component/ftp/sl_tftp_clnt.c @@ -95,6 +95,9 @@ " \"size\": \"%u\"\n" \ "}\n" +/// TFTP client termination requested message +#define SL_TFTP_CLNT_TERMINATION_MSG "Termination requested" + /// TFTP Event all mask #define SL_TFTP_EVT_ALL_MSK (0x00FFFFFFUL) @@ -110,6 +113,9 @@ /// Operation finished mask #define SL_TFTP_EVT_OP_FINISHED_MSK (0x00000001UL << 2UL) +/// RRQ/WRQ operation error +#define SL_TFTP_EVT_RRQ_WRQ_ERROR_MSK (0x00000001UL << 3UL) + /// Swap bytes in uint16 #define __swap_bytes_16bit(__val) \ (((__val) >> 8U) | ((__val) << 8U)) @@ -202,6 +208,23 @@ static void _prepare_and_send_data(sl_tftp_clnt_t * const clnt, uint8_t *buff, void *host_addr); +/***************************************************************************//** + * @brief Prepare and send error packet + * @details Helper function + * @param[in,out] clnt Client + * @param[in] error_code Error code + * @param[in] error_msg Error message + * @param[in] sock_id Socket ID + * @param[in,out] buff Buffer + * @param[in] host_addr Host address bytes + ******************************************************************************/ +static void _prepare_and_send_error_pkt(sl_tftp_clnt_t * const clnt, + const uint16_t error_code, + const char* error_msg, + int32_t sock_id, + uint8_t *buff, + void *host_addr); + /***************************************************************************//** * @brief Calculate packet size * @details Helper function @@ -402,9 +425,11 @@ uint16_t _build_packet(const sl_tftp_pkt_t * const pkt, } else if (pkt->opcode == SL_TFTP_OPCODE_ERROR) { *((uint16_t *)ptr) = __swap_bytes_16bit(pkt->content.error.errcode); ptr += sizeof(uint16_t); - res = snprintf((char *)ptr, req_buff_size - sizeof(uint16_t) * 2U, - "%s", pkt->content.error.errmsg); - return res < 0L ? 0UL : req_buff_size; + if (pkt->content.error.errmsg != NULL) { + res = snprintf((char *)ptr, req_buff_size - sizeof(uint16_t) * 2U, + "%s", pkt->content.error.errmsg); + req_buff_size = res < 0L ? 0UL : req_buff_size; + } } return req_buff_size; @@ -522,7 +547,7 @@ sl_status_t sl_tftp_clnt_request(sl_tftp_clnt_t * const clnt, || file == NULL || mode == NULL || !(opcode == SL_TFTP_OPCODE_RRQ || opcode == SL_TFTP_OPCODE_WRQ)) { - printf("[TFTP get error]\n"); + printf("[TFTP request error]\n"); return SL_STATUS_FAIL; } @@ -535,6 +560,27 @@ sl_status_t sl_tftp_clnt_request(sl_tftp_clnt_t * const clnt, return status != osOK ? SL_STATUS_FAIL : SL_STATUS_OK; } +sl_status_t sl_tftp_clnt_terminate_session(sl_tftp_clnt_t * const clnt) +{ + uint32_t flags = 0UL; + if (clnt == NULL) { + printf("[TFTP terminate error]\n"); + return SL_STATUS_FAIL; + } + + flags = osEventFlagsClear(clnt->evt_flags, SL_TFTP_EVT_ALL_MSK); + if (flags &= SL_TFTP_EVT_ERROR_MSK){ + return SL_STATUS_FAIL; + } + + flags = osEventFlagsSet(clnt->evt_flags, SL_TFTP_EVT_OP_FINISHED_MSK); + if (flags &= SL_TFTP_EVT_ERROR_MSK){ + return SL_STATUS_FAIL; + } + + return SL_STATUS_OK; +} + bool sl_tftp_clnt_is_op_finished(const sl_tftp_clnt_t * const clnt) { return _is_flags_set(clnt, SL_TFTP_EVT_OP_FINISHED_MSK); @@ -550,6 +596,11 @@ bool sl_tftp_clnt_is_op_put(const sl_tftp_clnt_t * const clnt) return _is_flags_set(clnt, SL_TFTP_EVT_GET_REQUEST_MSK); } +bool sl_tftp_clnt_is_op_rrq_wrq_failed(const sl_tftp_clnt_t * const clnt) +{ + return _is_flags_set(clnt, SL_TFTP_EVT_RRQ_WRQ_ERROR_MSK); +} + // ----------------------------------------------------------------------------- // Static Function Definitions // ----------------------------------------------------------------------------- @@ -597,6 +648,23 @@ static void _prepare_and_send_ack(sl_tftp_clnt_t * const clnt, (void) sl_tftp_udp_sendto(sock_id, buff, pkt_payload_size, host_addr); } + +static void _prepare_and_send_error_pkt(sl_tftp_clnt_t * const clnt, + const uint16_t error_code, + const char* error_msg, + int32_t sock_id, + uint8_t *buff, + void *host_addr) +{ + uint16_t pkt_payload_size = 0U; + + clnt->packet.opcode = SL_TFTP_OPCODE_ERROR; + clnt->packet.content.error.errcode = error_code; + clnt->packet.content.error.errmsg = error_msg; + pkt_payload_size = _build_packet(&clnt->packet, buff, SL_TFTP_DEFAULT_BUFF_SIZE); + (void) sl_tftp_udp_sendto(sock_id, buff, pkt_payload_size, host_addr); +} + static void _prepare_and_send_data(sl_tftp_clnt_t * const clnt, const uint16_t block_num, const uint8_t *data_ptr, @@ -645,6 +713,13 @@ static void _rrq_hnd(sl_tftp_clnt_t * const clnt, while (timeout < SL_TFTP_CLNT_RECV_TIMEOUT_MS) { sl_tftp_delay_ms(100UL); + if (_is_flags_set(clnt, SL_TFTP_EVT_OP_FINISHED_MSK)) { + _prepare_and_send_error_pkt(clnt, SL_TFTP_ERROCODE_NOTDEF, + SL_TFTP_CLNT_TERMINATION_MSG, + sock_id, buff, host_addr); + break; + } + res = sl_tftp_udp_recvfrom(sock_id, buff, SL_TFTP_DEFAULT_BUFF_SIZE, host_addr); if (res <= 0L) { timeout += 100UL; @@ -690,6 +765,11 @@ static void _rrq_hnd(sl_tftp_clnt_t * const clnt, timeout = 0UL; } + + if (timeout >= SL_TFTP_CLNT_RECV_TIMEOUT_MS) { + osEventFlagsSet(clnt->evt_flags, SL_TFTP_EVT_RRQ_WRQ_ERROR_MSK); + } + sl_tftp_udp_free_addr(host_addr); sl_tftp_socket_close(sock_id); } @@ -732,6 +812,13 @@ static void _wrq_hnd(sl_tftp_clnt_t * const clnt, while (timeout < SL_TFTP_CLNT_RECV_TIMEOUT_MS) { sl_tftp_delay_ms(100UL); + if (_is_flags_set(clnt, SL_TFTP_EVT_OP_FINISHED_MSK)) { + _prepare_and_send_error_pkt(clnt, SL_TFTP_ERROCODE_NOTDEF, + SL_TFTP_CLNT_TERMINATION_MSG, + sock_id, buff, host_addr); + break; + } + res = sl_tftp_udp_recvfrom(sock_id, buff, SL_TFTP_DEFAULT_BUFF_SIZE, host_addr); if (res <= 0L) { timeout += 100UL; @@ -782,6 +869,11 @@ static void _wrq_hnd(sl_tftp_clnt_t * const clnt, sl_tftp_dump_buff(ptr, data_size); #endif } + + if (timeout >= SL_TFTP_CLNT_RECV_TIMEOUT_MS) { + osEventFlagsSet(clnt->evt_flags, SL_TFTP_EVT_RRQ_WRQ_ERROR_MSK); + } + sl_tftp_udp_free_addr(host_addr); sl_tftp_socket_close(sock_id); } @@ -800,8 +892,6 @@ static void _clnt_thr_fnc(void * args) sl_tftp_delay_ms(1000UL); } - (void) osEventFlagsClear(clnt.evt_flags, SL_TFTP_EVT_ALL_MSK); - SL_TFTP_SERVICE_LOOP() { // Pop Test from the queue status = osMessageQueueGet(_clnt_msg_queue_in, &clnt, &msg_prio, osWaitForever); @@ -809,6 +899,9 @@ static void _clnt_thr_fnc(void * args) sl_tftp_delay_ms(100UL); continue; } + + (void) osEventFlagsClear(clnt.evt_flags, SL_TFTP_EVT_ALL_MSK); + #if defined(SL_TFTP_DEBUG) sl_tftp_debug("TFTP Client started\n"); sl_tftp_clnt_print_pkt(&clnt.packet); @@ -822,7 +915,6 @@ static void _clnt_thr_fnc(void * args) _wrq_hnd(&clnt, buff, SL_TFTP_DEFAULT_BUFF_SIZE); } - (void) osEventFlagsClear(clnt.evt_flags, SL_TFTP_EVT_ALL_MSK); (void) osEventFlagsSet(clnt.evt_flags, SL_TFTP_EVT_OP_FINISHED_MSK); #if defined(SL_TFTP_DEBUG) diff --git a/app/wisun/component/ftp/sl_tftp_clnt.h b/app/wisun/component/ftp/sl_tftp_clnt.h index 9a9d8f3588..95351750db 100644 --- a/app/wisun/component/ftp/sl_tftp_clnt.h +++ b/app/wisun/component/ftp/sl_tftp_clnt.h @@ -285,6 +285,13 @@ __STATIC_INLINE sl_status_t sl_tftp_clnt_get(sl_tftp_clnt_t * const clnt, const return sl_tftp_clnt_request(clnt, SL_TFTP_OPCODE_RRQ, file, SL_TFTP_MODE_NETASCII_STR); } +/***************************************************************************//** + * @brief TFTP Client terminate session + * @details Terminate TFTP session + * @param[in,out] clnt Client + ******************************************************************************/ +sl_status_t sl_tftp_clnt_terminate_session(sl_tftp_clnt_t * const clnt); + /***************************************************************************//** * @brief TFT Client Put * @details Send buffer content to file on remote server @@ -322,6 +329,14 @@ bool sl_tftp_clnt_is_op_get(const sl_tftp_clnt_t * const clnt); ******************************************************************************/ bool sl_tftp_clnt_is_op_put(const sl_tftp_clnt_t * const clnt); +/***************************************************************************//** + * @brief TFTP Client is RRQ or WRQ failed + * @details Check Read or Write Request operation is failed + * @param[in] clnt Client + * @return true Is failed otherwise false + ******************************************************************************/ +bool sl_tftp_clnt_is_op_rrq_wrq_failed(const sl_tftp_clnt_t * const clnt); + #endif #ifdef __cplusplus diff --git a/app/wisun/component/ftp_posix_port/sl_wisun_ftp_posix_port.c b/app/wisun/component/ftp_posix_port/sl_wisun_ftp_posix_port.c index 8853a6a5c3..b32116db92 100644 --- a/app/wisun/component/ftp_posix_port/sl_wisun_ftp_posix_port.c +++ b/app/wisun/component/ftp_posix_port/sl_wisun_ftp_posix_port.c @@ -194,7 +194,7 @@ int32_t sl_ftp_tcp_socket_recv(int32_t sockid, void *buff, uint32_t len) ******************************************************************************/ int32_t sl_tftp_udp_socket_create(void) { - return socket(AF_INET6, SOCK_DGRAM, IPPROTO_UDP); + return socket(AF_INET6, SOCK_DGRAM | SOCK_NONBLOCK, IPPROTO_UDP); } /**************************************************************************//** diff --git a/app/wisun/component/meter_collector_common/sl_wisun_coap_meter.c b/app/wisun/component/meter_collector_common/sl_wisun_coap_meter.c index b42ccd0feb..15c86ef082 100644 --- a/app/wisun/component/meter_collector_common/sl_wisun_coap_meter.c +++ b/app/wisun/component/meter_collector_common/sl_wisun_coap_meter.c @@ -109,6 +109,12 @@ typedef enum measurement_type { #define JSON_REQUIRED_PAYALOAD_SIZE \ (SL_WISUN_METER_MEASUREMENT_BUFFER_SIZE * 36 + 64) +/// CoAP RD well-known core URI path for dummy RD request +#define COAP_RD_WELL_KNOWN_CORE_URI_PATH ".well-known/core" + +/// CoAP RD well-known core URI path length for dummy RD request +#define COAP_RD_WELL_KNOWN_CORE_URI_PATH_LEN (sizeof(COAP_RD_WELL_KNOWN_CORE_URI_PATH) - 1) + // ----------------------------------------------------------------------------- // Static Function Declarations // ----------------------------------------------------------------------------- @@ -196,8 +202,8 @@ static sl_wisun_coap_packet_t dummy_req_pkt = { .msg_id = SL_WISUN_COAP_METER_COLLECTOR_DEFAULT_MESSAGE_ID, .payload_len = 0, .payload_ptr = NULL, - .uri_path_ptr = (uint8_t *)SLI_WISUN_COAP_RD_CORE_STR, - .uri_path_len = 0, + .uri_path_ptr = (uint8_t *)COAP_RD_WELL_KNOWN_CORE_URI_PATH, + .uri_path_len = COAP_RD_WELL_KNOWN_CORE_URI_PATH_LEN, .options_list_ptr = NULL }; @@ -225,7 +231,6 @@ void sl_wisun_coap_meter_init(void) #endif sl_wisun_meter_init_hnd(&_coap_meter_hnd); - dummy_req_pkt.uri_path_len = strlen((char *)dummy_req_pkt.uri_path_ptr); } #if !SL_WISUN_COAP_MC_OPTIMIZED_MODE_ENABLE @@ -288,7 +293,7 @@ static sl_status_t _coap_meter_parse_request(const void * const raw, int32_t packet_data_len, sl_wisun_request_type_t * const req) { - const sl_wisun_coap_packet_t *parsed = NULL; + sl_wisun_coap_packet_t *parsed = NULL; char *raw_ptr = NULL; if ((raw == NULL) || (packet_data_len == 0) || (req == NULL)) { @@ -305,6 +310,7 @@ static sl_status_t _coap_meter_parse_request(const void * const raw, // Handling response and empty packets if (!sl_wisun_coap_rhnd_is_request_packet(parsed)) { *req = SL_WISUN_MC_REQ_UNKNOWN; + sl_wisun_coap_destroy_packet(parsed); return SL_STATUS_FAIL; } @@ -313,6 +319,7 @@ static sl_status_t _coap_meter_parse_request(const void * const raw, parsed->uri_path_len) == 0) && parsed->msg_code == COAP_MSG_CODE_REQUEST_GET) { *req = SL_WISUN_MC_REQ_RD; + sl_wisun_coap_destroy_packet(parsed); return SL_STATUS_OK; } @@ -320,6 +327,7 @@ static sl_status_t _coap_meter_parse_request(const void * const raw, (char *)&SL_WISUN_COAP_METER_COLLECTOR_MEASUREMENT_URI_PATH[1], parsed->uri_path_len) != 0) { *req = SL_WISUN_MC_REQ_UNKNOWN; + sl_wisun_coap_destroy_packet(parsed); return SL_STATUS_FAIL; } @@ -343,7 +351,7 @@ static sl_status_t _coap_meter_parse_request(const void * const raw, } else { *req = SL_WISUN_MC_REQ_UNKNOWN; } - + sl_wisun_coap_destroy_packet(parsed); return SL_STATUS_OK; } diff --git a/app/wisun/component/ota_dfu/sl_wisun_ota_dfu.c b/app/wisun/component/ota_dfu/sl_wisun_ota_dfu.c index e5d3d08037..803e13b06d 100644 --- a/app/wisun/component/ota_dfu/sl_wisun_ota_dfu.c +++ b/app/wisun/component/ota_dfu/sl_wisun_ota_dfu.c @@ -559,7 +559,7 @@ sl_status_t sl_wisun_ota_dfu_stop_fw_update(void) flags = osEventFlagsGet(_ota_dfu_evt); - // error or already started + // error or already stopped if ((flags & SL_WISUN_OTA_DFU_EVT_FLAG_ERROR_MSK) || (flags & SL_WISUN_OTA_DFU_EVT_FLAG_STOP_FW_UPDATE_MSK)) { return SL_STATUS_FAIL; @@ -1223,6 +1223,12 @@ static void _tftp_data_hnd(sl_tftp_clnt_t * const clnt, static uint32_t prev_offset = 0xFFFFFFFFUL; static sl_wisun_ota_dfu_error_ctx_t error_ctx = { 0U }; static uint16_t chunk_cnt = 1U; + + // check stop request and terminate the session if stopped + if (sl_wisun_ota_dfu_get_fw_update_status_flag(SL_WISUN_OTA_DFU_STATUS_FW_UPDATE_STOPPED)) { + (void) sl_tftp_clnt_terminate_session(clnt); + return; + } // Calculate offset offset = (clnt->packet.content.data.block_num - 1UL) * SL_TFTP_DATA_BLOCK_SIZE; @@ -1315,7 +1321,7 @@ static void _ota_dfu_thr_fnc(void * args) assert(info.numStorageSlots >= 1); SL_WISUN_OTA_DFU_SERVICE_LOOP() { - osEventFlagsClear(_ota_dfu_evt, SL_WISUN_OTA_DFU_EVT_FLAG_ALL_MSK); + osEventFlagsClear(_ota_dfu_evt, SL_WISUN_OTA_DFU_EVT_FLAG_START_FW_UPDATE_MSK); flags = osEventFlagsWait(_ota_dfu_evt, SL_WISUN_OTA_DFU_EVT_FLAG_START_FW_UPDATE_MSK, osFlagsWaitAny | osFlagsNoClear, @@ -1326,6 +1332,11 @@ static void _ota_dfu_thr_fnc(void * args) continue; } + // Clear all mask except started flag + osEventFlagsClear(_ota_dfu_evt, + SL_WISUN_OTA_DFU_EVT_FLAG_ALL_MSK + ^ SL_WISUN_OTA_DFU_EVT_FLAG_START_FW_UPDATE_MSK); + // Start tick count _start_tick_cnt = sl_sleeptimer_get_tick_count(); @@ -1383,7 +1394,10 @@ static void _ota_dfu_thr_fnc(void * args) } // check download error - if (sl_wisun_ota_dfu_get_fw_update_status_flag(SL_WISUN_OTA_DFU_STATUS_FW_DOWNLOAD_ERROR)) { + if (sl_tftp_clnt_is_op_rrq_wrq_failed(&tftp_clnt) + || sl_wisun_ota_dfu_get_fw_update_status_flag(SL_WISUN_OTA_DFU_STATUS_FW_DOWNLOAD_ERROR)) { + _change_status(SL_WISUN_OTA_DFU_EVT_FLAG_FW_DOWNLOAD_ERROR_MSK); + sl_wisun_ota_dfu_log("TFTP download failed\n"); osDelay(SL_WISUN_OTA_DFU_DELAY_MS); continue; } @@ -1403,22 +1417,24 @@ static void _ota_dfu_thr_fnc(void * args) error_ctx.verify.ret_val = bootloader_verifyImage(0U, NULL); if (error_ctx.verify.ret_val != BOOTLOADER_OK) { _change_status(SL_WISUN_OTA_DFU_EVT_FLAG_FW_VERIFY_ERROR_MSK); + sl_wisun_ota_dfu_log("Verify image failed\n"); sl_wisun_ota_dfu_error_hnd(SL_WISUN_OTA_DFU_ERROR_FW_VERIFY, &error_ctx); continue; } _change_status(SL_WISUN_OTA_DFU_EVT_FLAG_FW_VERIFIED_MSK); - sl_wisun_ota_dfu_log("Verify img finished\n"); + sl_wisun_ota_dfu_log("Verify image finished\n"); osDelay(SL_WISUN_OTA_DFU_DELAY_MS); // Set image error_ctx.set.ret_val = bootloader_setImageToBootload(0U); if (error_ctx.set.ret_val != BOOTLOADER_OK) { _change_status(SL_WISUN_OTA_DFU_EVT_FLAG_FW_SET_ERROR_MSK); + sl_wisun_ota_dfu_log("Set image failed"); sl_wisun_ota_dfu_error_hnd(SL_WISUN_OTA_DFU_ERROR_FW_SET, &error_ctx); continue; } _change_status(SL_WISUN_OTA_DFU_EVT_FLAG_FW_SET_MSK); - sl_wisun_ota_dfu_log("Set img finished\n"); + sl_wisun_ota_dfu_log("Set image finished\n"); osDelay(SL_WISUN_OTA_DFU_SHUTDOWN_DELAY_MS); @@ -1430,6 +1446,8 @@ static void _ota_dfu_thr_fnc(void * args) } #if SL_WISUN_OTA_DFU_AUTO_INSTALL_ENABLED + sl_wisun_ota_dfu_log("Starting reboot and install...\n"); + osDelay(SL_WISUN_OTA_DFU_DELAY_MS); bootloader_rebootAndInstall(); #endif } diff --git a/app/wisun/component/sl_wisun_ota_dfu.slcc b/app/wisun/component/sl_wisun_ota_dfu.slcc index 38b0035110..3d43535e25 100644 --- a/app/wisun/component/sl_wisun_ota_dfu.slcc +++ b/app/wisun/component/sl_wisun_ota_dfu.slcc @@ -19,7 +19,7 @@ description: > the appropriate bootloader, consider factors such as flash location (internal or external) and size. If necessary, apply compression. category: "Wi-SUN|Wi-SUN Services" -quality: "production" +quality: "evaluation" metadata: sbom: license: Zlib diff --git a/app/wisun/component/wisun_config.slcc b/app/wisun/component/wisun_config.slcc index e6bb67ae23..00b68493e4 100644 --- a/app/wisun/component/wisun_config.slcc +++ b/app/wisun/component/wisun_config.slcc @@ -46,6 +46,10 @@ config_file: directory: wisun condition: - brd4270b +- path: config/NA_1_1b/wisun_settings.wisunconf + directory: wisun + condition: + - brd4276a - path: config/NA_1_1b/wisun_settings.wisunconf directory: wisun condition: diff --git a/app/wisun/documentation/slWi-SUN_docContent.xml b/app/wisun/documentation/slWi-SUN_docContent.xml index e9dfaa3a1e..b95510b7cf 100644 --- a/app/wisun/documentation/slWi-SUN_docContent.xml +++ b/app/wisun/documentation/slWi-SUN_docContent.xml @@ -1,6 +1,6 @@ - + Explains how NVM3 can be used as non-volatile data storage in various protocol implementations. @@ -8,7 +8,7 @@ - + Describes how to integrate crypto functionality into applications using PSA Crypto compared to Mbed TLS. @@ -16,7 +16,7 @@ - + Gecko Bootloader v2.x, introduced in GSDK 4.0, contains a number of changes compared to Gecko Bootloader v1.x. This document describes the differences between the versions, including how to configure the new Gecko Bootloader in Simplicity Studio 5. @@ -24,70 +24,70 @@ - + Describes the test environment and methods for testing Wi-SUN network performance. The results are intended to provide guidance on design practices and principles as well as expected field performance results. - + Describes how to use the Silicon Labs Wi-SUN Linux border router or the EFR32 standalone border router demonstration. Covers the associated configuration and debugging tools. - + Describes how to use the Wi-SUN Network Performance Measurement Application from either the LCD output or the CLI, and includes suggestions for improving ping latency in a Wi-SUN network. - + Provides an introduction to the Wi-SUN PHY Mode Switch feature using the RAILtest example application. - + Explains how to program EFR32FG25 devices to enable the Wi-SUN concurrent detection feature. - + Provides an overview and hyperlinks to all packaged documentation. - + Contains a comprehensive list of APIs used to interface to the Silicon Labs Wi-SUN stack. - + Reference for those developing applications using the Silicon Labs Wi-SUN SDK. The guide covers guidelines to develop an application on top of Silicon Labs Wi-SUN stack . The purpose of this document is to fill in the gaps between the Silicon Labs Wi-SUN Field Area Network (FAN) API reference, Gecko Platform references, and documentation for the target EFR32xG part. - + Lists compatibility requirements and sources for all software components in the development environment. Discusses the latest changes to the SiliconLabs Wi-SUN SDK, including added/deleted/deprecated features/API. Reviews fixed and known issues. - + A detailed overview of the changes, additions, and fixes in the Gecko Platform components. The Gecko Platform includes EMLIB, EMDRV, RAIL Library, NVM3, and the component-based infrastructure. @@ -95,7 +95,7 @@ - + Introduces the security concepts that must be considered when implementing an Internet of Things (IoT) system. Using the ioXt Alliance's eight security principles as a structure, it clearly delineates the solutions Silicon Labs provides to support endpoint security and what you must do outside of the Silicon Labs framework. @@ -103,7 +103,7 @@ - + Introduces bootloading for Silicon Labs networking devices. Discusses the Gecko Bootloader as well as legacy Ember and Bluetooth bootloaders, and describes the file formats used by each. @@ -111,7 +111,7 @@ - + Introduces non-volatile data storage using flash and the three different storage implementations offered for Silicon Labs microcontrollers and SoCs: PS Store and NVM3. @@ -119,7 +119,7 @@ - + Describes how and when to use Simplicity Commander's Command-Line Interface. @@ -127,7 +127,7 @@ - + Describes the high-level implementation of the Silicon Labs Gecko Bootloader for EFR32 SoCs and NCPs, and provides information on how to get started using the Gecko Bootloader with Silicon Labs wireless protocol stacks in GSDK 4.0 and higher. diff --git a/app/wisun/esf.properties b/app/wisun/esf.properties index fb5c1f39b2..02ed63a588 100644 --- a/app/wisun/esf.properties +++ b/app/wisun/esf.properties @@ -3,8 +3,8 @@ id=com.silabs.stack.wisun label=Wi-SUN description=Silicon Labs Wi-SUN SDK -version=2.1.0.0 -prop.subLabel=Wi-SUN\\ 2.1.0.0 +version=2.2.0.0 +prop.subLabel=Wi-SUN\\ 2.2.0.0 # General properties are prepended with "prop." prop.file.templatesFile=wisun_production_templates.xml wisun_br_demos_templates.xml wisun_evaluation_templates.xml wisun_deprecated_templates.xml diff --git a/app/wisun/example/wisun_soc_empty/app_init.c b/app/wisun/example/wisun_soc_empty/app_init.c index c14708589f..62199b0d68 100644 --- a/app/wisun/example/wisun_soc_empty/app_init.c +++ b/app/wisun/example/wisun_soc_empty/app_init.c @@ -37,12 +37,10 @@ #include "cmsis_os2.h" #include "sl_cmsis_os2_common.h" #include "app.h" - // ----------------------------------------------------------------------------- // Macros and Typedefs // ----------------------------------------------------------------------------- -#define APP_STACK_SIZE_BYTES 512UL - +#define APP_STACK_SIZE_BYTES (2048UL) // ----------------------------------------------------------------------------- // Static Function Declarations // ----------------------------------------------------------------------------- @@ -71,12 +69,12 @@ void app_init(void) .priority = osPriorityNormal, .tz_module = 0 }; + osThreadId_t app_thr_id = osThreadNew(app_task, NULL, &app_task_attr); assert(app_thr_id != NULL); } - // ----------------------------------------------------------------------------- // Static Function Definitions // ----------------------------------------------------------------------------- diff --git a/app/wisun/wisun_br_demos_demos.xml b/app/wisun/wisun_br_demos_demos.xml index b8d1c5ce94..60c095a219 100644 --- a/app/wisun/wisun_br_demos_demos.xml +++ b/app/wisun/wisun_br_demos_demos.xml @@ -5,7 +5,7 @@ - + @@ -15,7 +15,7 @@ - + @@ -25,7 +25,7 @@ - + @@ -35,7 +35,7 @@ - + @@ -45,7 +45,7 @@ - + @@ -55,7 +55,7 @@ - + @@ -65,7 +65,7 @@ - + @@ -75,7 +75,7 @@ - + @@ -85,7 +85,7 @@ - + @@ -95,7 +95,7 @@ - + @@ -105,7 +105,7 @@ - + diff --git a/app/wisun/wisun_evaluation_demos.xml b/app/wisun/wisun_evaluation_demos.xml index d6daa273fb..0702c3a186 100644 --- a/app/wisun/wisun_evaluation_demos.xml +++ b/app/wisun/wisun_evaluation_demos.xml @@ -5,7 +5,7 @@ - + @@ -15,7 +15,7 @@ - + @@ -25,7 +25,7 @@ - + @@ -35,7 +35,7 @@ - + @@ -45,7 +45,7 @@ - + @@ -55,7 +55,7 @@ - + @@ -65,7 +65,7 @@ - + @@ -75,7 +75,7 @@ - + @@ -85,7 +85,7 @@ - + @@ -95,7 +95,7 @@ - + @@ -105,7 +105,7 @@ - + diff --git a/app/wisun/wisun_production_demos.xml b/app/wisun/wisun_production_demos.xml index 3cf9b7a490..db2ce7f9b9 100644 --- a/app/wisun/wisun_production_demos.xml +++ b/app/wisun/wisun_production_demos.xml @@ -5,7 +5,7 @@ - + @@ -15,7 +15,7 @@ - + @@ -25,7 +25,7 @@ - + @@ -35,7 +35,7 @@ - + @@ -45,7 +45,17 @@ - + + + + + + + The Wi-SUN CLI (Command-Line Interface) sample application allows developers to easily evaluate the Wi-SUN stack APIs. The Wi-SUN command line interface provides a serial interface to a number of the Wi-SUN stack functions. For example, it can be used to connect the Wi-SUN device to a Wi-SUN border router and exchange IP packets. + + + + @@ -55,7 +65,7 @@ - + @@ -65,7 +75,7 @@ - + @@ -75,7 +85,7 @@ - + @@ -85,7 +95,7 @@ - + @@ -95,7 +105,7 @@ - + @@ -105,7 +115,7 @@ - + @@ -115,7 +125,7 @@ - + @@ -125,7 +135,7 @@ - + @@ -135,7 +145,7 @@ - + @@ -145,7 +155,7 @@ - + @@ -155,7 +165,7 @@ - + @@ -165,7 +175,7 @@ - + @@ -175,7 +185,7 @@ - + @@ -185,7 +195,7 @@ - + @@ -195,7 +205,7 @@ - + @@ -205,7 +215,7 @@ - + @@ -215,7 +225,7 @@ - + @@ -225,7 +235,7 @@ - + @@ -235,7 +245,7 @@ - + @@ -245,7 +255,7 @@ - + @@ -255,7 +265,7 @@ - + @@ -265,7 +275,17 @@ - + + + + + + + The Wi-SUN Network Measurement application provides a performance measurement solution based on the ping mechanism. + + + + @@ -275,7 +295,7 @@ - + @@ -285,7 +305,7 @@ - + @@ -295,7 +315,7 @@ - + @@ -305,7 +325,7 @@ - + @@ -315,7 +335,7 @@ - + @@ -325,7 +345,7 @@ - + diff --git a/app/wisun/wisun_production_templates.xml b/app/wisun/wisun_production_templates.xml index 458131c8fc..dd0ce5d48e 100644 --- a/app/wisun/wisun_production_templates.xml +++ b/app/wisun/wisun_production_templates.xml @@ -6,7 +6,7 @@ - + @@ -21,7 +21,7 @@ - + @@ -36,7 +36,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -66,7 +66,7 @@ - + @@ -81,7 +81,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -111,7 +111,7 @@ - + @@ -126,7 +126,7 @@ - + diff --git a/hardware/board/component/brd2606a.slcc b/hardware/board/component/brd2606a.slcc index 7e376c6551..a593d04230 100644 --- a/hardware/board/component/brd2606a.slcc +++ b/hardware/board/component/brd2606a.slcc @@ -23,6 +23,10 @@ - name: hardware_board_has_hfxo - name: hardware_board_has_lfxo - name: hardware_board_supports_cs + - name: hardware_board_supports_rf_band_2400 + - name: hardware_board_supports_1_rf_band + - name: hardware_board_default_rf_band + - name: hardware_board_default_rf_band_2400 - recommends: - id: iostream_eusart instance: @@ -38,18 +42,22 @@ - btn1 - id: mx25_flash_shutdown_usart - id: bootloader_spi_controller_usart_driver + - id: imu_driver_icm40627 - template_contribution: [] - define: - name: SL_BOARD_NAME value: '"BRD2606A"' - name: SL_BOARD_REV - value: '"A01"' + value: '"A04"' - name: HFXO_FREQ value: 40000000 + - name: HARDWARE_BOARD_SUPPORTS_RF_BAND_2400 + - name: HARDWARE_BOARD_SUPPORTS_1_RF_BAND + - name: HARDWARE_BOARD_DEFAULT_RF_BAND_2400 - tag: - board:pn:BRD2606 - board:variant:A - - board:revision:A01 + - board:revision:A04 - board:device:efr32mg24b210f1536im48 - hardware:has:vcom - hardware:has:pti diff --git a/hardware/board/component/brd2608a.slcc b/hardware/board/component/brd2608a.slcc index 9f8fc9ecaf..cd09678039 100644 --- a/hardware/board/component/brd2608a.slcc +++ b/hardware/board/component/brd2608a.slcc @@ -46,6 +46,7 @@ - btn1 - id: mx25_flash_shutdown_usart - id: bootloader_spi_controller_usart_driver + - id: imu_driver_icm40627 - template_contribution: [] - define: - name: SL_BOARD_NAME diff --git a/hardware/board/component/brd4276a.slcc b/hardware/board/component/brd4276a.slcc new file mode 100644 index 0000000000..c5a5623b33 --- /dev/null +++ b/hardware/board/component/brd4276a.slcc @@ -0,0 +1,80 @@ +!!omap +- id: brd4276a +- label: BRD4276A +- package: platform +- description: Board support for BRD4276A. +- category: Platform|Board|Radio Board +- quality: production +- metadata: + sbom: + license: Zlib +- requires: + - name: efr32fg25b222f1920im56 + - name: brd4276a_config + - name: hardware_board_mainboard +- provides: + - name: brd4276a + - name: hardware_board + - name: hardware_board_rb + - name: hardware_board_from_stk + - name: hardware_board_supports_wstk_lcd + - name: hardware_board_has_fem + - name: hardware_board_has_vcom + - name: hardware_board_has_spiflash + - name: hardware_board_has_thermistor + - name: hardware_board_has_hfxo_freq_39mhz + - name: hardware_board_has_hfxo + - name: hardware_board_has_lfxo + - name: hardware_board_supports_rf_band_915 + - name: hardware_board_supports_1_rf_band + - name: hardware_board_default_rf_band + - name: hardware_board_default_rf_band_915 +- recommends: + - id: brd4002a + - id: iostream_eusart + instance: + - vcom + - id: bootloader_euart_driver + - id: ls013b7dh03 + - id: memlcd_eusart + - id: simple_led + instance: + - led0 + - led1 + - id: simple_button + instance: + - btn0 + - btn1 + - id: usb_device_driver_dwc_otg_fs + - id: mx25_flash_shutdown_eusart + - id: bootloader_spi_controller_eusart_driver + - id: bootloader_spi_peripheral_eusart_driver +- template_contribution: + - name: board_default_init + value: sl_board_disable_vcom() +- define: + - name: SL_BOARD_NAME + value: '"BRD4276A"' + - name: SL_BOARD_REV + value: '"A00"' + - name: HFXO_FREQ + value: 39000000 + - name: HARDWARE_BOARD_SUPPORTS_RF_BAND_915 + - name: HARDWARE_BOARD_SUPPORTS_1_RF_BAND + - name: HARDWARE_BOARD_DEFAULT_RF_BAND_915 +- tag: + - board:pn:BRD4276 + - board:variant:A + - board:revision:A00 + - board:device:efr32fg25b222f1920im56 + - hardware:has:vcom + - hardware:has:pti + - hardware:has:display:ls013b7dh03 + - hardware:has:led:2 + - hardware:has:button:2 + - hardware:has:usb + - hardware:has:memory:spi:mx25r8035f + - hardware:has:exp_header:spi + - hardware:has:exp_header:uart + - hardware:has:exp_header:i2c + - hardware:has:thermistor diff --git a/hardware/board/config/brd2606a/iot_pwm_cfg_led1.h b/hardware/board/config/brd2606a/iot_pwm_cfg_led1.h index 09f14ec521..bfb8b18e93 100644 --- a/hardware/board/config/brd2606a/iot_pwm_cfg_led1.h +++ b/hardware/board/config/brd2606a/iot_pwm_cfg_led1.h @@ -62,9 +62,9 @@ #define IOT_PWM_CFG_LED1_PERIPHERAL TIMER1 #define IOT_PWM_CFG_LED1_PERIPHERAL_NO 1 -// TIMER1 CC0 on PD05 -#define IOT_PWM_CFG_LED1_CC0_PORT gpioPortD -#define IOT_PWM_CFG_LED1_CC0_PIN 5 +// TIMER1 CC0 on PC08 +#define IOT_PWM_CFG_LED1_CC0_PORT gpioPortC +#define IOT_PWM_CFG_LED1_CC0_PIN 8 diff --git a/hardware/board/config/brd2606a/sl_icm40627_config.h b/hardware/board/config/brd2606a/sl_icm40627_config.h new file mode 100644 index 0000000000..06fe7b8b41 --- /dev/null +++ b/hardware/board/config/brd2606a/sl_icm40627_config.h @@ -0,0 +1,66 @@ +/*****************************CS**********************************************//** + * @file + * @brief ICM40627 Config + ******************************************************************************* + * # License + * Copyright 2024 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_ICM40627_CONFIG_H +#define SL_ICM40627_CONFIG_H + +// <<< sl:start pin_tool >>> +// SL_ICM40627_SPI_EUSART +// $[EUSART_SL_ICM40627_SPI_EUSART] +#define SL_ICM40627_SPI_EUSART_PERIPHERAL EUSART1 +#define SL_ICM40627_SPI_EUSART_PERIPHERAL_NO 1 + +// EUSART1 TX on PB03 +#define SL_ICM40627_SPI_EUSART_TX_PORT gpioPortB +#define SL_ICM40627_SPI_EUSART_TX_PIN 3 + +// EUSART1 RX on PB02 +#define SL_ICM40627_SPI_EUSART_RX_PORT gpioPortB +#define SL_ICM40627_SPI_EUSART_RX_PIN 2 + +// EUSART1 SCLK on PB01 +#define SL_ICM40627_SPI_EUSART_SCLK_PORT gpioPortB +#define SL_ICM40627_SPI_EUSART_SCLK_PIN 1 + +// EUSART1 CS on PB00 +#define SL_ICM40627_SPI_EUSART_CS_PORT gpioPortB +#define SL_ICM40627_SPI_EUSART_CS_PIN 0 + +// [EUSART_SL_ICM40627_SPI_EUSART]$ + +// SL_ICM40627_INT +// $[GPIO_SL_ICM40627_INT] +#define SL_ICM40627_INT_PORT gpioPortD +#define SL_ICM40627_INT_PIN 5 + +// [GPIO_SL_ICM40627_INT]$ +// <<< sl:end pin_tool >>> + +#endif // SL_ICM40627_CONFIG_H diff --git a/hardware/board/config/brd2606a/sl_pwm_init_led0_config.h b/hardware/board/config/brd2606a/sl_pwm_init_led0_config.h index 20001b09be..48781a3b63 100644 --- a/hardware/board/config/brd2606a/sl_pwm_init_led0_config.h +++ b/hardware/board/config/brd2606a/sl_pwm_init_led0_config.h @@ -28,8 +28,8 @@ * ******************************************************************************/ -#ifndef SL_PWM_INIT_LED0_CONFIG_H -#define SL_PWM_INIT_LED0_CONFIG_H +#ifndef SL_PWM_INIT_PWM_CONFIG_H +#define SL_PWM_INIT_PWM_CONFIG_H #ifdef __cplusplus extern "C" { @@ -72,4 +72,4 @@ extern "C" { } #endif -#endif // SL_PWM_INIT_LED0_CONFIG_H +#endif // SL_PWM_INIT_PWM_CONFIG_H diff --git a/hardware/board/config/brd2606a/sl_pwm_init_led1_config.h b/hardware/board/config/brd2606a/sl_pwm_init_led1_config.h index 4ebdb04a3c..2305c6aaae 100644 --- a/hardware/board/config/brd2606a/sl_pwm_init_led1_config.h +++ b/hardware/board/config/brd2606a/sl_pwm_init_led1_config.h @@ -28,8 +28,8 @@ * ******************************************************************************/ -#ifndef SL_PWM_INIT_LED1_CONFIG_H -#define SL_PWM_INIT_LED1_CONFIG_H +#ifndef SL_PWM_INIT_PWM_CONFIG_H +#define SL_PWM_INIT_PWM_CONFIG_H #ifdef __cplusplus extern "C" { @@ -60,9 +60,9 @@ extern "C" { #define SL_PWM_LED1_PERIPHERAL_NO 1 #define SL_PWM_LED1_OUTPUT_CHANNEL 0 -// TIMER1 CC0 on PD05 -#define SL_PWM_LED1_OUTPUT_PORT gpioPortD -#define SL_PWM_LED1_OUTPUT_PIN 5 +// TIMER1 CC0 on PC08 +#define SL_PWM_LED1_OUTPUT_PORT gpioPortC +#define SL_PWM_LED1_OUTPUT_PIN 8 // [TIMER_SL_PWM_LED1]$ @@ -72,4 +72,4 @@ extern "C" { } #endif -#endif // SL_PWM_INIT_LED1_CONFIG_H +#endif // SL_PWM_INIT_PWM_CONFIG_H diff --git a/hardware/board/config/brd2606a/sl_rail_util_ant_div_config.h b/hardware/board/config/brd2606a/sl_rail_util_ant_div_config.h new file mode 100644 index 0000000000..c1ce43b66e --- /dev/null +++ b/hardware/board/config/brd2606a/sl_rail_util_ant_div_config.h @@ -0,0 +1,84 @@ +/***************************************************************************//** + * @file + * @brief + ******************************************************************************* + * # License + * Copyright 2020 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_RAIL_UTIL_ANT_DIV_CONFIG_H +#define SL_RAIL_UTIL_ANT_DIV_CONFIG_H + +#include "rail_types.h" + +#define SL_RAIL_UTIL_ANT_DIV_DISABLED (0U) +#define SL_RAIL_UTIL_ANT_DIV_ANTENNA0 (1U) // antenna0 +#define SL_RAIL_UTIL_ANT_DIV_ANTENNA1 (2U) // antenna1 +#define SL_RAIL_UTIL_ANT_DIV_DIVERSITY (3U) // antenna0 | antenna1 + +// <<< Use Configuration Wizard in Context Menu >>> + +// Chip-external Antenna Diversity Configuration +// RX Antenna Diversity Mode +// Disable Antenna Diversity (Don't alter antenna selection) +// Enable Antenna Diversity (Switch between antennas dynamically) +// Use Antenna 0 Only +// Use Antenna 1 Only +// Default: SL_RAIL_UTIL_ANT_DIV_DISABLED +#define SL_RAIL_UTIL_ANT_DIV_RX_MODE SL_RAIL_UTIL_ANT_DIV_DISABLED +// TX Antenna Diversity Mode +// Disable Antenna Diversity (Don't alter antenna selection) +// Enable Antenna Diversity (Switch between antennas dynamically) +// Use Antenna 0 Only +// Use Antenna 1 Only +// Default: SL_RAIL_UTIL_ANT_DIV_DISABLED +#define SL_RAIL_UTIL_ANT_DIV_TX_MODE SL_RAIL_UTIL_ANT_DIV_DISABLED +// Enable/Disable Runtime PHY Select +// Default: 0 +#define SL_RAIL_UTIL_ANT_DIV_RX_RUNTIME_PHY_SELECT 0 +// +// + +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> + +// SL_RAIL_UTIL_ANT_DIV +// $[MODEM_SL_RAIL_UTIL_ANT_DIV] +#define SL_RAIL_UTIL_ANT_DIV_PERIPHERAL MODEM + +// MODEM ANT0 on PA00 +#define SL_RAIL_UTIL_ANT_DIV_ANT0_PORT gpioPortA +#define SL_RAIL_UTIL_ANT_DIV_ANT0_PIN 0 + +// MODEM ANT1 on PA00 +#define SL_RAIL_UTIL_ANT_DIV_ANT1_PORT gpioPortA +#define SL_RAIL_UTIL_ANT_DIV_ANT1_PIN 0 + +// [MODEM_SL_RAIL_UTIL_ANT_DIV]$ + +// <<< sl:end pin_tool >>> + +#endif // SL_RAIL_UTIL_ANT_DIV_CONFIG_H diff --git a/hardware/board/config/brd2606a/sl_rail_util_pa_config.h b/hardware/board/config/brd2606a/sl_rail_util_pa_config.h new file mode 100644 index 0000000000..f4247e4cdc --- /dev/null +++ b/hardware/board/config/brd2606a/sl_rail_util_pa_config.h @@ -0,0 +1,81 @@ +/***************************************************************************//** + * @file + * @brief Power Amplifier configuration file. + ******************************************************************************* + * # License + * Copyright 2020 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_RAIL_UTIL_PA_CONFIG_H +#define SL_RAIL_UTIL_PA_CONFIG_H + +#include "rail_types.h" + +// <<< Use Configuration Wizard in Context Menu >>> +// PA configuration + +// Initial PA Power (deci-dBm, 100 = 10.0 dBm) +// Default: 100 +#define SL_RAIL_UTIL_PA_POWER_DECI_DBM 100 + +// PA Ramp Time (microseconds) +// <0-65535:1> +// Default: 10 +#define SL_RAIL_UTIL_PA_RAMP_TIME_US 10 + +// Milli-volts on PA supply pin (PA_VDD) +// <0-65535:1> +// Default: 3300 +#define SL_RAIL_UTIL_PA_VOLTAGE_MV 3300 + +// 2.4 GHz PA Selection +// Highest Possible +// High Power (chip-specific) +// Low Power +// Disable +// Default: RAIL_TX_POWER_MODE_2P4GIG_HIGHEST +#define SL_RAIL_UTIL_PA_SELECTION_2P4GHZ RAIL_TX_POWER_MODE_2P4GIG_HIGHEST + +// Sub-1 GHz PA Selection +// Disable +// Default: RAIL_TX_POWER_MODE_NONE +#define SL_RAIL_UTIL_PA_SELECTION_SUBGHZ RAIL_TX_POWER_MODE_NONE + +// Header file containing custom PA curves +// Default: "pa_curves_efr32.h" +#define SL_RAIL_UTIL_PA_CURVE_HEADER "pa_curves_efr32.h" + +// Header file containing PA curve types +// Default: "pa_curve_types_efr32.h" +#define SL_RAIL_UTIL_PA_CURVE_TYPES "pa_curve_types_efr32.h" + +// Enable PA Calibration +// Default: 1 +#define SL_RAIL_UTIL_PA_CALIBRATION_ENABLE 1 + +// +// <<< end of configuration section >>> + +#endif // SL_RAIL_UTIL_PA_CONFIG_H diff --git a/hardware/board/config/brd2606a/sl_simple_led_led1_config.h b/hardware/board/config/brd2606a/sl_simple_led_led1_config.h index 6f5909c98a..387f1f8fb1 100644 --- a/hardware/board/config/brd2606a/sl_simple_led_led1_config.h +++ b/hardware/board/config/brd2606a/sl_simple_led_led1_config.h @@ -47,8 +47,8 @@ // SL_SIMPLE_LED_LED1 // $[GPIO_SL_SIMPLE_LED_LED1] -#define SL_SIMPLE_LED_LED1_PORT gpioPortD -#define SL_SIMPLE_LED_LED1_PIN 5 +#define SL_SIMPLE_LED_LED1_PORT gpioPortC +#define SL_SIMPLE_LED_LED1_PIN 8 // [GPIO_SL_SIMPLE_LED_LED1]$ diff --git a/hardware/board/config/brd2608a/sl_icm40627_config.h b/hardware/board/config/brd2608a/sl_icm40627_config.h new file mode 100644 index 0000000000..58ddb191b5 --- /dev/null +++ b/hardware/board/config/brd2608a/sl_icm40627_config.h @@ -0,0 +1,66 @@ +/*****************************CS**********************************************//** + * @file + * @brief ICM40627 Config + ******************************************************************************* + * # License + * Copyright 2024 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_ICM40627_CONFIG_H +#define SL_ICM40627_CONFIG_H + +// <<< sl:start pin_tool >>> +// SL_ICM40627_SPI_EUSART +// $[EUSART_SL_ICM40627_SPI_EUSART] +#define SL_ICM40627_SPI_EUSART_PERIPHERAL EUSART1 +#define SL_ICM40627_SPI_EUSART_PERIPHERAL_NO 1 + +// EUSART1 TX on PC03 +#define SL_ICM40627_SPI_EUSART_TX_PORT gpioPortC +#define SL_ICM40627_SPI_EUSART_TX_PIN 3 + +// EUSART1 RX on PC02 +#define SL_ICM40627_SPI_EUSART_RX_PORT gpioPortC +#define SL_ICM40627_SPI_EUSART_RX_PIN 2 + +// EUSART1 SCLK on PC01 +#define SL_ICM40627_SPI_EUSART_SCLK_PORT gpioPortC +#define SL_ICM40627_SPI_EUSART_SCLK_PIN 1 + +// EUSART1 CS on PC00 +#define SL_ICM40627_SPI_EUSART_CS_PORT gpioPortC +#define SL_ICM40627_SPI_EUSART_CS_PIN 0 + +// [EUSART_SL_ICM40627_SPI_EUSART]$ + +// SL_ICM40627_INT +// $[GPIO_SL_ICM40627_INT] +#define SL_ICM40627_INT_PORT gpioPortB +#define SL_ICM40627_INT_PIN 1 + +// [GPIO_SL_ICM40627_INT]$ +// <<< sl:end pin_tool >>> + +#endif // SL_ICM40627_CONFIG_H diff --git a/hardware/board/config/brd2608a/sl_pwm_init_led0_config.h b/hardware/board/config/brd2608a/sl_pwm_init_led0_config.h index 7ae7536e28..1ad41ea64b 100644 --- a/hardware/board/config/brd2608a/sl_pwm_init_led0_config.h +++ b/hardware/board/config/brd2608a/sl_pwm_init_led0_config.h @@ -28,8 +28,8 @@ * ******************************************************************************/ -#ifndef SL_PWM_INIT_LED0_CONFIG_H -#define SL_PWM_INIT_LED0_CONFIG_H +#ifndef SL_PWM_INIT_PWM_CONFIG_H +#define SL_PWM_INIT_PWM_CONFIG_H #ifdef __cplusplus extern "C" { @@ -72,4 +72,4 @@ extern "C" { } #endif -#endif // SL_PWM_INIT_LED0_CONFIG_H +#endif // SL_PWM_INIT_PWM_CONFIG_H diff --git a/hardware/board/config/brd4276a_brd4001a/btl_euart_driver_cfg.h b/hardware/board/config/brd4276a_brd4001a/btl_euart_driver_cfg.h new file mode 100644 index 0000000000..0c53ebb117 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4001a/btl_euart_driver_cfg.h @@ -0,0 +1,86 @@ +/***************************************************************************//** + * @file + * @brief Configuration header for bootloader euart Driver + ******************************************************************************* + * # License + * Copyright 2021 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * The licensor of this software is Silicon Laboratories Inc. Your use of this + * software is governed by the terms of Silicon Labs Master Software License + * Agreement (MSLA) available at + * www.silabs.com/about-us/legal/master-software-license-agreement. This + * software is distributed to you in Source Code format and is governed by the + * sections of the MSLA applicable to Source Code. + * + ******************************************************************************/ +#ifndef BTL_EUART_DRIVER_CONFIG_H +#define BTL_EUART_DRIVER_CONFIG_H + +// <<< Use Configuration Wizard in Context Menu >>> + +// EUART settings + +// Baud rate +// Default: 115200 +#define SL_SERIAL_EUART_BAUD_RATE 115200 + +// Hardware flow control +// Default: 0 +#define SL_SERIAL_EUART_FLOW_CONTROL 0 +// + +// Receive buffer size +// <0-2048:1> +// Default: 512 [0-2048] +#define SL_DRIVER_EUART_RX_BUFFER_SIZE 512 + +// Transmit buffer size +// <0-2048:1> +// Default: 128 [0-2048] +#define SL_DRIVER_EUART_TX_BUFFER_SIZE 128 + +// Virtual COM Port +// Default: 0 +#define SL_VCOM_ENABLE 0 +// + +// + +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> +// SL_SERIAL_EUART +// $[EUSART_SL_SERIAL_EUART] +#define SL_SERIAL_EUART_PERIPHERAL EUSART0 +#define SL_SERIAL_EUART_PERIPHERAL_NO 0 + +// EUSART0 TX on PA08 +#define SL_SERIAL_EUART_TX_PORT gpioPortA +#define SL_SERIAL_EUART_TX_PIN 8 + +// EUSART0 RX on PA09 +#define SL_SERIAL_EUART_RX_PORT gpioPortA +#define SL_SERIAL_EUART_RX_PIN 9 + +// EUSART0 CTS on PA10 +#define SL_SERIAL_EUART_CTS_PORT gpioPortA +#define SL_SERIAL_EUART_CTS_PIN 10 + +// EUSART0 RTS on PA00 +#define SL_SERIAL_EUART_RTS_PORT gpioPortA +#define SL_SERIAL_EUART_RTS_PIN 0 + +// [EUSART_SL_SERIAL_EUART]$ + +// SL_VCOM_ENABLE + +// $[GPIO_SL_VCOM_ENABLE] +#define SL_VCOM_ENABLE_PORT gpioPortA +#define SL_VCOM_ENABLE_PIN 11 + +// [GPIO_SL_VCOM_ENABLE]$ + +// <<< sl:end pin_tool >>> + +#endif // BTL_EUART_DRIVER_CONFIG_H diff --git a/hardware/board/config/brd4276a_brd4001a/btl_gpio_activation_cfg.h b/hardware/board/config/brd4276a_brd4001a/btl_gpio_activation_cfg.h new file mode 100644 index 0000000000..5a28e55052 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4001a/btl_gpio_activation_cfg.h @@ -0,0 +1,47 @@ +/***************************************************************************//** + * @file + * @brief Configuration header for bootloader GPIO Activation + ******************************************************************************* + * # License + * Copyright 2021 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * The licensor of this software is Silicon Laboratories Inc. Your use of this + * software is governed by the terms of Silicon Labs Master Software License + * Agreement (MSLA) available at + * www.silabs.com/about-us/legal/master-software-license-agreement. This + * software is distributed to you in Source Code format and is governed by the + * sections of the MSLA applicable to Source Code. + * + ******************************************************************************/ +#ifndef BTL_GPIO_ACTIVATION_CONFIG_H +#define BTL_GPIO_ACTIVATION_CONFIG_H + +// <<< Use Configuration Wizard in Context Menu >>> + +// Properties of Bootloader Entry + +// Active state +// Low +// High +// Default: LOW +// Enter firmware upgrade mode if GPIO pin has this state +#define SL_GPIO_ACTIVATION_POLARITY LOW + +// + +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> + +// SL_BTL_BUTTON + +// $[GPIO_SL_BTL_BUTTON] +#define SL_BTL_BUTTON_PORT gpioPortB +#define SL_BTL_BUTTON_PIN 0 + +// [GPIO_SL_BTL_BUTTON]$ + +// <<< sl:end pin_tool >>> + +#endif // BTL_GPIO_ACTIVATION_CONFIG_H diff --git a/hardware/board/config/brd4276a_brd4001a/btl_spi_controller_eusart_driver_cfg.h b/hardware/board/config/brd4276a_brd4001a/btl_spi_controller_eusart_driver_cfg.h new file mode 100644 index 0000000000..e20e00a304 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4001a/btl_spi_controller_eusart_driver_cfg.h @@ -0,0 +1,68 @@ +/***************************************************************************//** + * @file + * @brief Configuration header for bootloader Spi Controller Eusart Driver + ******************************************************************************* + * # License + * Copyright 2021 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * The licensor of this software is Silicon Laboratories Inc. Your use of this + * software is governed by the terms of Silicon Labs Master Software License + * Agreement (MSLA) available at + * www.silabs.com/about-us/legal/master-software-license-agreement. This + * software is distributed to you in Source Code format and is governed by the + * sections of the MSLA applicable to Source Code. + * + ******************************************************************************/ +#ifndef BTL_SPI_CONTROLLER_EUSART_DRIVER_CONFIG_H +#define BTL_SPI_CONTROLLER_EUSART_DRIVER_CONFIG_H + +// <<< Use Configuration Wizard in Context Menu >>> + +// SPI Controller EUSART Driver + +// Frequency +// Default: 6400000 +#define SL_EUSART_EXTFLASH_FREQUENCY 6400000 + +// + +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> +// SL_EUSART_EXTFLASH +// $[EUSART_SL_EUSART_EXTFLASH] +#define SL_EUSART_EXTFLASH_PERIPHERAL EUSART1 +#define SL_EUSART_EXTFLASH_PERIPHERAL_NO 1 + +// EUSART1 TX on PC00 +#define SL_EUSART_EXTFLASH_TX_PORT gpioPortC +#define SL_EUSART_EXTFLASH_TX_PIN 0 + +// EUSART1 RX on PC01 +#define SL_EUSART_EXTFLASH_RX_PORT gpioPortC +#define SL_EUSART_EXTFLASH_RX_PIN 1 + +// EUSART1 SCLK on PC02 +#define SL_EUSART_EXTFLASH_SCLK_PORT gpioPortC +#define SL_EUSART_EXTFLASH_SCLK_PIN 2 + +// EUSART1 CS on PA04 +#define SL_EUSART_EXTFLASH_CS_PORT gpioPortA +#define SL_EUSART_EXTFLASH_CS_PIN 4 + +// [EUSART_SL_EUSART_EXTFLASH]$ + +// SL_EXTFLASH_WP +// $[GPIO_SL_EXTFLASH_WP] + +// [GPIO_SL_EXTFLASH_WP]$ + +// SL_EXTFLASH_HOLD +// $[GPIO_SL_EXTFLASH_HOLD] + +// [GPIO_SL_EXTFLASH_HOLD]$ + +// <<< sl:end pin_tool >>> + +#endif // BTL_SPI_CONTROLLER_EUSART_DRIVER_CONFIG_H diff --git a/hardware/board/config/brd4276a_brd4001a/btl_spi_peripheral_eusart_driver_cfg.h b/hardware/board/config/brd4276a_brd4001a/btl_spi_peripheral_eusart_driver_cfg.h new file mode 100644 index 0000000000..6499f8230a --- /dev/null +++ b/hardware/board/config/brd4276a_brd4001a/btl_spi_peripheral_eusart_driver_cfg.h @@ -0,0 +1,71 @@ +/***************************************************************************//** + * @file + * @brief Configuration header for bootloader Spi Peripheral Eusart Driver + ******************************************************************************* + * # License + * Copyright 2021 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * The licensor of this software is Silicon Laboratories Inc. Your use of this + * software is governed by the terms of Silicon Labs Master Software License + * Agreement (MSLA) available at + * www.silabs.com/about-us/legal/master-software-license-agreement. This + * software is distributed to you in Source Code format and is governed by the + * sections of the MSLA applicable to Source Code. + * + ******************************************************************************/ +#ifndef BTL_SPI_PERIPHERAL_EUSART_DRIVER_CONFIG_H +#define BTL_SPI_PERIPHERAL_EUSART_DRIVER_CONFIG_H + +// <<< Use Configuration Wizard in Context Menu >>> + +// SPI Peripheral Eusart Driver + +// Receive buffer size:[0-2048] <0-2048> +// Default: 300 +#define SL_SPI_PERIPHERAL_EUSART_RX_BUFFER_SIZE 300 + +// Transmit buffer size:[0-2048] <0-2048> +// Default: 50 +#define SL_SPI_PERIPHERAL_EUSART_TX_BUFFER_SIZE 50 + +// LDMA channel for SPI RX:[0-1] <0-1> +// Default: 0 +#define SL_SPI_PERIPHERAL_EUSART_LDMA_RX_CHANNEL 0 + +// LDMA channel for SPI TX:[0-1] <0-1> +// Default: 1 +#define SL_SPI_PERIPHERAL_EUSART_LDMA_TX_CHANNEL 1 + +// + +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> +// SL_EUSART_SPINCP + +// $[EUSART_SL_EUSART_SPINCP] +#define SL_EUSART_SPINCP_PERIPHERAL EUSART1 +#define SL_EUSART_SPINCP_PERIPHERAL_NO 1 + +// EUSART1 TX on PC00 +#define SL_EUSART_SPINCP_TX_PORT gpioPortC +#define SL_EUSART_SPINCP_TX_PIN 0 + +// EUSART1 RX on PC01 +#define SL_EUSART_SPINCP_RX_PORT gpioPortC +#define SL_EUSART_SPINCP_RX_PIN 1 + +// EUSART1 CS on PB04 +#define SL_EUSART_SPINCP_CS_PORT gpioPortB +#define SL_EUSART_SPINCP_CS_PIN 4 + +// EUSART1 SCLK on PC02 +#define SL_EUSART_SPINCP_SCLK_PORT gpioPortC +#define SL_EUSART_SPINCP_SCLK_PIN 2 + +// [EUSART_SL_EUSART_SPINCP]$ + +// <<< sl:end pin_tool >>> + +#endif // BTL_SPI_PERIPHERAL_EUSART_DRIVER_CONFIG_H diff --git a/hardware/board/config/brd4276a_brd4001a/iot_flash_cfg_msc.h b/hardware/board/config/brd4276a_brd4001a/iot_flash_cfg_msc.h new file mode 100644 index 0000000000..c2af14bc7d --- /dev/null +++ b/hardware/board/config/brd4276a_brd4001a/iot_flash_cfg_msc.h @@ -0,0 +1,123 @@ +/***************************************************************************//** + * @file iot_flash_cfg_inst.h + * @brief Common I/O flash instance configurations. + ******************************************************************************* + * # License + * Copyright 2020 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +/******************************************************************************* + * SAFE GUARD + ******************************************************************************/ + +#ifndef _IOT_FLASH_CFG_MSC_H_ +#define _IOT_FLASH_CFG_MSC_H_ + +/******************************************************************************* + * Flash Default Configs + ******************************************************************************/ + +// <<< Use Configuration Wizard in Context Menu >>> + +// Flash General Options + +// Instance number +// Instance number used when iot_flash_open() is called. +// Default: 0 +#define IOT_FLASH_CFG_MSC_INST_NUM 0 + +// External Flash Base Address +// Hex value of the base address of the external flash used. +// Default: 0x0 +#define IOT_FLASH_CFG_MSC_EXTERNAL_FLASH_BASE 0x0 + +// Instance type +// <0=> Internal Flash (MSC) +// <1=> External Flash (SPI) +// Specify whether this instance is for internal flash (MSC) +// or an external SPI flash. If external, then you need to setup +// SPI configs below. +// Default: 0 +#define IOT_FLASH_CFG_MSC_INST_TYPE 0 + +// + +// SPI Configuration + +// Default SPI bitrate +// Default: 1000000 +#define IOT_FLASH_CFG_MSC_SPI_BITRATE 1000000 + +// Default SPI frame length <4-16> +// Default: 8 +#define IOT_FLASH_CFG_MSC_SPI_FRAME_LENGTH 8 + +// Default SPI master/slave mode +// Master +// Slave +#define IOT_FLASH_CFG_MSC_SPI_TYPE spidrvMaster + +// Default SPI bit order +// LSB transmitted first +// MSB transmitted first +#define IOT_FLASH_CFG_MSC_SPI_BIT_ORDER spidrvBitOrderMsbFirst + +// Default SPI clock mode +// SPI mode 0: CLKPOL=0, CLKPHA=0 +// SPI mode 1: CLKPOL=0, CLKPHA=1 +// SPI mode 2: CLKPOL=1, CLKPHA=0 +// SPI mode 3: CLKPOL=1, CLKPHA=1 +#define IOT_FLASH_CFG_MSC_SPI_CLOCK_MODE spidrvClockMode0 + +// Default SPI CS control scheme +// CS controlled by the SPI driver +// CS controlled by the application +#define IOT_FLASH_CFG_MSC_SPI_CS_CONTROL spidrvCsControlApplication + +// Default SPI transfer scheme +// Transfer starts immediately +// Transfer starts when the bus is idle +#define IOT_FLASH_CFG_MSC_SPI_SLAVE_START_MODE spidrvSlaveStartImmediate + +// + +// <<< end of configuration section >>> + +/******************************************************************************* + * EXTERNAL FLASH: H/W PERIPHERAL CONFIG + ******************************************************************************/ + +// <<< sl:start pin_tool >>> +// IOT_FLASH_CFG_MSC_SPI +// $[USART_IOT_FLASH_CFG_MSC_SPI] + +// [USART_IOT_FLASH_CFG_MSC_SPI]$ +// <<< sl:end pin_tool >>> + +/******************************************************************************* + * SAFE GUARD + ******************************************************************************/ + +#endif /* _IOT_FLASH_CFG_MSC_H_ */ diff --git a/hardware/board/config/brd4276a_brd4001a/iot_i2c_cfg_exp.h b/hardware/board/config/brd4276a_brd4001a/iot_i2c_cfg_exp.h new file mode 100644 index 0000000000..95a5cec31d --- /dev/null +++ b/hardware/board/config/brd4276a_brd4001a/iot_i2c_cfg_exp.h @@ -0,0 +1,106 @@ +/***************************************************************************//** + * @file IOT_I2C_CFG_EXP_inst.h + * @brief Common I/O I2C instance configuration. + ******************************************************************************* + * # License + * Copyright 2020 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +/******************************************************************************* + * SAFE GUARD + ******************************************************************************/ + +#ifndef _IOT_I2C_CFG_EXP_H_ +#define _IOT_I2C_CFG_EXP_H_ + +/******************************************************************************* + * I2C Default Configs + ******************************************************************************/ + +// <<< Use Configuration Wizard in Context Menu >>> + +// I2C General Options + +// Instance number +// Instance number used when iot_i2c_open() is called. +// Default: 0 +#define IOT_I2C_CFG_EXP_INST_NUM 0 + +// Default timeout (in msec) +// Default: 500 +#define IOT_I2C_CFG_EXP_DEFAULT_TIMEOUT 500 + +// Default bus speed +// <100000=> Standard mode +// <400000=> Fast mode +// <1000000=> Fast plus mode +// <3400000=> High speed mode +// Default: 400000 +#define IOT_I2C_CFG_EXP_DEFAULT_FREQ 400000 + +// Accept NACK +// If the driver receives NACK during a transfer, the transfer is halted +// immediately but it is not considered as an error. Instead, the driver +// returns success status (useful for test purposes). +// Default: 0 +#define IOT_I2C_CFG_EXP_ACCEPT_NACK 0 + +// + +// <<< end of configuration section >>> + +/******************************************************************************* + * H/W PERIPHERAL CONFIG + ******************************************************************************/ + +// <<< sl:start pin_tool >>> + +// IOT_I2C_CFG_EXP_ENABLE +// $[GPIO_IOT_I2C_CFG_EXP_ENABLE] + +// [GPIO_IOT_I2C_CFG_EXP_ENABLE]$ + +// IOT_I2C_CFG_EXP +// $[I2C_IOT_I2C_CFG_EXP] +#define IOT_I2C_CFG_EXP_PERIPHERAL I2C0 +#define IOT_I2C_CFG_EXP_PERIPHERAL_NO 0 + +// I2C0 SCL on PB02 +#define IOT_I2C_CFG_EXP_SCL_PORT gpioPortB +#define IOT_I2C_CFG_EXP_SCL_PIN 2 + +// I2C0 SDA on PB03 +#define IOT_I2C_CFG_EXP_SDA_PORT gpioPortB +#define IOT_I2C_CFG_EXP_SDA_PIN 3 + +// [I2C_IOT_I2C_CFG_EXP]$ + +// <<< sl:end pin_tool >>> + +/******************************************************************************* + * SAFE GUARD + ******************************************************************************/ + +#endif /* _IOT_I2C_CFG_EXP_H_ */ diff --git a/hardware/board/config/brd4276a_brd4001a/iot_i2c_cfg_sensor.h b/hardware/board/config/brd4276a_brd4001a/iot_i2c_cfg_sensor.h new file mode 100644 index 0000000000..4c33ccd7b9 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4001a/iot_i2c_cfg_sensor.h @@ -0,0 +1,106 @@ +/***************************************************************************//** + * @file IOT_I2C_CFG_SENSOR_inst.h + * @brief Common I/O I2C instance configuration. + ******************************************************************************* + * # License + * Copyright 2020 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +/******************************************************************************* + * SAFE GUARD + ******************************************************************************/ + +#ifndef _IOT_I2C_CFG_SENSOR_H_ +#define _IOT_I2C_CFG_SENSOR_H_ + +/******************************************************************************* + * I2C Default Configs + ******************************************************************************/ + +// <<< Use Configuration Wizard in Context Menu >>> + +// I2C General Options + +// Instance number +// Instance number used when iot_i2c_open() is called. +// Default: 0 +#define IOT_I2C_CFG_SENSOR_INST_NUM 0 + +// Default timeout (in msec) +// Default: 500 +#define IOT_I2C_CFG_SENSOR_DEFAULT_TIMEOUT 500 + +// Default bus speed +// <100000=> Standard mode +// <400000=> Fast mode +// <1000000=> Fast plus mode +// <3400000=> High speed mode +// Default: 400000 +#define IOT_I2C_CFG_SENSOR_DEFAULT_FREQ 400000 + +// Accept NACK +// If the driver receives NACK during a transfer, the transfer is halted +// immediately but it is not considered as an error. Instead, the driver +// returns success status (useful for test purposes). +// Default: 0 +#define IOT_I2C_CFG_SENSOR_ACCEPT_NACK 0 + +// + +// <<< end of configuration section >>> + +/******************************************************************************* + * H/W PERIPHERAL CONFIG + ******************************************************************************/ + +// <<< sl:start pin_tool >>> + +// IOT_I2C_CFG_SENSOR_ENABLE +// $[GPIO_IOT_I2C_CFG_SENSOR_ENABLE] + +// [GPIO_IOT_I2C_CFG_SENSOR_ENABLE]$ + +// IOT_I2C_CFG_SENSOR +// $[I2C_IOT_I2C_CFG_SENSOR] +#define IOT_I2C_CFG_SENSOR_PERIPHERAL I2C0 +#define IOT_I2C_CFG_SENSOR_PERIPHERAL_NO 0 + +// I2C0 SCL on PB02 +#define IOT_I2C_CFG_SENSOR_SCL_PORT gpioPortB +#define IOT_I2C_CFG_SENSOR_SCL_PIN 2 + +// I2C0 SDA on PB03 +#define IOT_I2C_CFG_SENSOR_SDA_PORT gpioPortB +#define IOT_I2C_CFG_SENSOR_SDA_PIN 3 + +// [I2C_IOT_I2C_CFG_SENSOR]$ + +// <<< sl:end pin_tool >>> + +/******************************************************************************* + * SAFE GUARD + ******************************************************************************/ + +#endif /* _IOT_I2C_CFG_SENSOR_H_ */ diff --git a/hardware/board/config/brd4276a_brd4001a/iot_i2c_cfg_test.h b/hardware/board/config/brd4276a_brd4001a/iot_i2c_cfg_test.h new file mode 100644 index 0000000000..e4669959e0 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4001a/iot_i2c_cfg_test.h @@ -0,0 +1,106 @@ +/***************************************************************************//** + * @file IOT_I2C_CFG_TEST_inst.h + * @brief Common I/O I2C instance configuration. + ******************************************************************************* + * # License + * Copyright 2020 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +/******************************************************************************* + * SAFE GUARD + ******************************************************************************/ + +#ifndef _IOT_I2C_CFG_TEST_H_ +#define _IOT_I2C_CFG_TEST_H_ + +/******************************************************************************* + * I2C Default Configs + ******************************************************************************/ + +// <<< Use Configuration Wizard in Context Menu >>> + +// I2C General Options + +// Instance number +// Instance number used when iot_i2c_open() is called. +// Default: 0 +#define IOT_I2C_CFG_TEST_INST_NUM 0 + +// Default timeout (in msec) +// Default: 500 +#define IOT_I2C_CFG_TEST_DEFAULT_TIMEOUT 500 + +// Default bus speed +// <100000=> Standard mode +// <400000=> Fast mode +// <1000000=> Fast plus mode +// <3400000=> High speed mode +// Default: 400000 +#define IOT_I2C_CFG_TEST_DEFAULT_FREQ 400000 + +// Accept NACK +// If the driver receives NACK during a transfer, the transfer is halted +// immediately but it is not considered as an error. Instead, the driver +// returns success status (useful for test purposes). +// Default: 0 +#define IOT_I2C_CFG_TEST_ACCEPT_NACK 1 + +// + +// <<< end of configuration section >>> + +/******************************************************************************* + * H/W PERIPHERAL CONFIG + ******************************************************************************/ + +// <<< sl:start pin_tool >>> + +// IOT_I2C_CFG_TEST_ENABLE +// $[GPIO_IOT_I2C_CFG_TEST_ENABLE] + +// [GPIO_IOT_I2C_CFG_TEST_ENABLE]$ + +// IOT_I2C_CFG_TEST +// $[I2C_IOT_I2C_CFG_TEST] +#define IOT_I2C_CFG_TEST_PERIPHERAL I2C0 +#define IOT_I2C_CFG_TEST_PERIPHERAL_NO 0 + +// I2C0 SCL on PB02 +#define IOT_I2C_CFG_TEST_SCL_PORT gpioPortB +#define IOT_I2C_CFG_TEST_SCL_PIN 2 + +// I2C0 SDA on PB03 +#define IOT_I2C_CFG_TEST_SDA_PORT gpioPortB +#define IOT_I2C_CFG_TEST_SDA_PIN 3 + +// [I2C_IOT_I2C_CFG_TEST]$ + +// <<< sl:end pin_tool >>> + +/******************************************************************************* + * SAFE GUARD + ******************************************************************************/ + +#endif /* _IOT_I2C_CFG_TEST_H_ */ diff --git a/hardware/board/config/brd4276a_brd4001a/iot_pwm_cfg_led0.h b/hardware/board/config/brd4276a_brd4001a/iot_pwm_cfg_led0.h new file mode 100644 index 0000000000..af22fd6100 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4001a/iot_pwm_cfg_led0.h @@ -0,0 +1,78 @@ +/***************************************************************************//** + * @file iot_pwm_cfg_inst.h + * @brief Common I/O PWM instance configuration. + ******************************************************************************* + * # License + * Copyright 2020 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +/******************************************************************************* + * SAFE GUARD + ******************************************************************************/ + +#ifndef _IOT_PWM_CFG_LED0_H_ +#define _IOT_PWM_CFG_LED0_H_ + +/******************************************************************************* + * PWM Default Configs + ******************************************************************************/ + +// <<< Use Configuration Wizard in Context Menu >>> + +// PWM General Options + +// Instance number +// Instance number used when iot_pwm_open() is called. +// Default: 0 +#define IOT_PWM_CFG_LED0_INST_NUM 0 + +// + +// <<< end of configuration section >>> + +/******************************************************************************* + * H/W PERIPHERAL CONFIG + ******************************************************************************/ + +// <<< sl:start pin_tool >>> +// IOT_PWM_CFG_LED0 +// $[TIMER_IOT_PWM_CFG_LED0] +#define IOT_PWM_CFG_LED0_PERIPHERAL TIMER0 +#define IOT_PWM_CFG_LED0_PERIPHERAL_NO 0 + +// TIMER0 CC0 on PA05 +#define IOT_PWM_CFG_LED0_CC0_PORT gpioPortA +#define IOT_PWM_CFG_LED0_CC0_PIN 5 + + + +// [TIMER_IOT_PWM_CFG_LED0]$ +// <<< sl:end pin_tool >>> + +/******************************************************************************* + * SAFE GUARD + ******************************************************************************/ + +#endif /* _IOT_PWM_CFG_LED0_H_ */ diff --git a/hardware/board/config/brd4276a_brd4001a/iot_pwm_cfg_led1.h b/hardware/board/config/brd4276a_brd4001a/iot_pwm_cfg_led1.h new file mode 100644 index 0000000000..b0766a1044 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4001a/iot_pwm_cfg_led1.h @@ -0,0 +1,78 @@ +/***************************************************************************//** + * @file iot_pwm_cfg_inst.h + * @brief Common I/O PWM instance configuration. + ******************************************************************************* + * # License + * Copyright 2020 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +/******************************************************************************* + * SAFE GUARD + ******************************************************************************/ + +#ifndef _IOT_PWM_CFG_LED1_H_ +#define _IOT_PWM_CFG_LED1_H_ + +/******************************************************************************* + * PWM Default Configs + ******************************************************************************/ + +// <<< Use Configuration Wizard in Context Menu >>> + +// PWM General Options + +// Instance number +// Instance number used when iot_pwm_open() is called. +// Default: 0 +#define IOT_PWM_CFG_LED1_INST_NUM 0 + +// + +// <<< end of configuration section >>> + +/******************************************************************************* + * H/W PERIPHERAL CONFIG + ******************************************************************************/ + +// <<< sl:start pin_tool >>> +// IOT_PWM_CFG_LED1 +// $[TIMER_IOT_PWM_CFG_LED1] +#define IOT_PWM_CFG_LED1_PERIPHERAL TIMER1 +#define IOT_PWM_CFG_LED1_PERIPHERAL_NO 1 + +// TIMER1 CC0 on PA06 +#define IOT_PWM_CFG_LED1_CC0_PORT gpioPortA +#define IOT_PWM_CFG_LED1_CC0_PIN 6 + + + +// [TIMER_IOT_PWM_CFG_LED1]$ +// <<< sl:end pin_tool >>> + +/******************************************************************************* + * SAFE GUARD + ******************************************************************************/ + +#endif /* _IOT_PWM_CFG_LED1_H_ */ diff --git a/hardware/board/config/brd4276a_brd4001a/sl_board_control_config.h b/hardware/board/config/brd4276a_brd4001a/sl_board_control_config.h new file mode 100644 index 0000000000..e6c097ee72 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4001a/sl_board_control_config.h @@ -0,0 +1,66 @@ +/***************************************************************************//** + * @file + * @brief Board Control + ******************************************************************************* + * # License + * Copyright 2022 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_BOARD_CONTROL_CONFIG_H +#define SL_BOARD_CONTROL_CONFIG_H + +// <<< Use Configuration Wizard in Context Menu >>> + +// Enable Virtual COM UART +// Default: 0 +#define SL_BOARD_ENABLE_VCOM 0 + +// Enable Display +// Default: 0 +#define SL_BOARD_ENABLE_DISPLAY 0 + +// Disable SPI Flash +// Default: 1 +#define SL_BOARD_DISABLE_MEMORY_SPI 1 + +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> + +// SL_BOARD_ENABLE_VCOM +// $[GPIO_SL_BOARD_ENABLE_VCOM] +#define SL_BOARD_ENABLE_VCOM_PORT gpioPortA +#define SL_BOARD_ENABLE_VCOM_PIN 11 +// [GPIO_SL_BOARD_ENABLE_VCOM]$ + +// SL_BOARD_ENABLE_DISPLAY +// $[GPIO_SL_BOARD_ENABLE_DISPLAY] +#define SL_BOARD_ENABLE_DISPLAY_PORT gpioPortB +#define SL_BOARD_ENABLE_DISPLAY_PIN 5 +// [GPIO_SL_BOARD_ENABLE_DISPLAY]$ + +// <<< sl:end pin_tool >>> + +#endif // SL_BOARD_CONTROL_CONFIG_H diff --git a/hardware/board/config/brd4276a_brd4001a/sl_clock_manager_oscillator_config.h b/hardware/board/config/brd4276a_brd4001a/sl_clock_manager_oscillator_config.h new file mode 100644 index 0000000000..e8177c7cb4 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4001a/sl_clock_manager_oscillator_config.h @@ -0,0 +1,364 @@ +/***************************************************************************//** + * @file + * @brief Clock Manager - Oscillators configuration file. + ******************************************************************************* + * # License + * Copyright 2024 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +// <<< Use Configuration Wizard in Context Menu >>> + +#ifndef SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H +#define SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H + +// Oscillators Settings + +// HFXO Settings (if High Frequency crystal is used) +// Enable to configure HFXO +#ifndef SL_CLOCK_MANAGER_HFXO_EN +#define SL_CLOCK_MANAGER_HFXO_EN 1 +#endif + +// Mode +// +// XTAL +// EXTCLK +// EXTCLKPKDET +// HFXO_CFG_MODE_XTAL +#ifndef SL_CLOCK_MANAGER_HFXO_MODE +#define SL_CLOCK_MANAGER_HFXO_MODE HFXO_CFG_MODE_XTAL +#endif + +// Frequency <38000000-40000000> +// 39000000 +#ifndef SL_CLOCK_MANAGER_HFXO_FREQ +#define SL_CLOCK_MANAGER_HFXO_FREQ 39000000 +#endif + +// CTUNE <0-255> +// 140 +#ifndef SL_CLOCK_MANAGER_HFXO_CTUNE +#define SL_CLOCK_MANAGER_HFXO_CTUNE 103 +#endif + +// Precision <0-65535> +// 50 +#ifndef SL_CLOCK_MANAGER_HFXO_PRECISION +#define SL_CLOCK_MANAGER_HFXO_PRECISION 50 +#endif + +// HFXO crystal sharing feature +// Enable to configure HFXO crystal sharing leader or follower +#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_EN +#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_EN 0 +#endif + +// Crystal sharing leader +// Enable to configure HFXO crystal sharing leader +#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN +#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN 0 +#endif + +// Crystal sharing leader minimum startup delay +// If enabled, BUFOUT does not start until timeout set in +// SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_TIMEOUT_STARTUP expires. +// This prevents waste of power if BUFOUT is ready too early. +// 1 +#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_MIN_STARTUP_DELAY_EN +#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_MIN_STARTUP_DELAY_EN 1 +#endif + +// Wait duration of oscillator startup sequence +// +// T42US +// T83US +// T108US +// T133US +// T158US +// T183US +// T208US +// T233US +// T258US +// T283US +// T333US +// T375US +// T417US +// T458US +// T500US +// T667US +// HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T208US +#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_TIMEOUT_STARTUP +#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_TIMEOUT_STARTUP HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T208US +#endif +// +// + +// Crystal sharing follower +// Enable to configure HFXO crystal sharing follower +#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN +#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN 0 +#endif +// + +// GPIO Port +// Bufout request GPIO port. If SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN +// is enabled, this port will be used to receive the BUFOUT request. If +// SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN is enabled this port +// will be used to request BUFOUT from the crystal sharing leader. +#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PORT +#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PORT 0 +#endif + +// GPIO Pin +// Bufout request GPIO pin. If SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN +// is enabled, this pin will be used to receive the BUFOUT request. If +// SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN is enabled this pin +// will be used to request BUFOUT from the crystal sharing leader. +#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PIN +#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PIN 10 +#endif +// +// + +// LFXO Settings (if Low Frequency crystal is used) +// Enable to configure LFXO +#ifndef SL_CLOCK_MANAGER_LFXO_EN +#define SL_CLOCK_MANAGER_LFXO_EN 1 +#endif + +// Mode +// +// XTAL +// BUFEXTCLK +// DIGEXTCLK +// LFXO_CFG_MODE_XTAL +#ifndef SL_CLOCK_MANAGER_LFXO_MODE +#define SL_CLOCK_MANAGER_LFXO_MODE LFXO_CFG_MODE_XTAL +#endif + +// CTUNE <0-127> +// 63 +#ifndef SL_CLOCK_MANAGER_LFXO_CTUNE +#define SL_CLOCK_MANAGER_LFXO_CTUNE 38 +#endif + +// LFXO precision in PPM <0-65535> +// 50 +#ifndef SL_CLOCK_MANAGER_LFXO_PRECISION +#define SL_CLOCK_MANAGER_LFXO_PRECISION 50 +#endif + +// Startup Timeout Delay +// +// CYCLES2 +// CYCLES256 +// CYCLES1K +// CYCLES2K +// CYCLES4K +// CYCLES8K +// CYCLES16K +// CYCLES32K +// LFXO_CFG_TIMEOUT_CYCLES4K +#ifndef SL_CLOCK_MANAGER_LFXO_TIMEOUT +#define SL_CLOCK_MANAGER_LFXO_TIMEOUT LFXO_CFG_TIMEOUT_CYCLES4K +#endif +// + +// HFRCO and DPLL Settings +// Frequency Band +// RC Oscillator Frequency Band +// 1 MHz +// 2 MHz +// 4 MHz +// 7 MHz +// 13 MHz +// 16 MHz +// 19 MHz +// 26 MHz +// 32 MHz +// 38 MHz +// 48 MHz +// 56 MHz +// 64 MHz +// 80 MHz +// 100 MHz +// cmuHFRCODPLLFreq_80M0Hz +#ifndef SL_CLOCK_MANAGER_HFRCO_BAND +#define SL_CLOCK_MANAGER_HFRCO_BAND cmuHFRCODPLLFreq_80M0Hz +#endif + +// Use DPLL +// Enable to use the DPLL with HFRCO +#ifndef SL_CLOCK_MANAGER_HFRCO_DPLL_EN +#define SL_CLOCK_MANAGER_HFRCO_DPLL_EN 0 +#endif + +// Target Frequency <1000000-80000000> +// DPLL target frequency +// 78000000 +#ifndef SL_CLOCK_MANAGER_DPLL_FREQ +#define SL_CLOCK_MANAGER_DPLL_FREQ 78000000 +#endif + +// Numerator (N) <300-4095> +// Value of N for output frequency calculation fout = fref * (N+1) / (M+1) +// 3839 +#ifndef SL_CLOCK_MANAGER_DPLL_N +#define SL_CLOCK_MANAGER_DPLL_N 3839 +#endif + +// Denominator (M) <0-4095> +// Value of M for output frequency calculation fout = fref * (N+1) / (M+1) +// 1919 +#ifndef SL_CLOCK_MANAGER_DPLL_M +#define SL_CLOCK_MANAGER_DPLL_M 1919 +#endif + +// Reference Clock +// Reference clock source for DPLL +// DISABLED +// HFXO +// LFXO +// CMU_DPLLREFCLKCTRL_CLKSEL_HFXO +#ifndef SL_CLOCK_MANAGER_DPLL_REFCLK +#define SL_CLOCK_MANAGER_DPLL_REFCLK CMU_DPLLREFCLKCTRL_CLKSEL_HFXO +#endif + +// Reference Clock Edge Detect +// Edge detection for reference clock +// Falling Edge +// Rising Edge +// cmuDPLLEdgeSel_Fall +#ifndef SL_CLOCK_MANAGER_DPLL_EDGE +#define SL_CLOCK_MANAGER_DPLL_EDGE cmuDPLLEdgeSel_Fall +#endif + +// DPLL Lock Mode +// Lock mode +// Frequency-Lock Loop +// Phase-Lock Loop +// cmuDPLLLockMode_Freq +#ifndef SL_CLOCK_MANAGER_DPLL_LOCKMODE +#define SL_CLOCK_MANAGER_DPLL_LOCKMODE cmuDPLLLockMode_Phase +#endif + +// Automatic Lock Recovery +// 1 +#ifndef SL_CLOCK_MANAGER_DPLL_AUTORECOVER +#define SL_CLOCK_MANAGER_DPLL_AUTORECOVER 1 +#endif + +// Enable Dither +// 0 +#ifndef SL_CLOCK_MANAGER_DPLL_DITHER +#define SL_CLOCK_MANAGER_DPLL_DITHER 0 +#endif +// +// + +// HFRCOEM23 Settings +// Frequency Band +// RC Oscillator Frequency Band +// 1 MHz +// 2 MHz +// 4 MHz +// 13 MHz +// 16 MHz +// 19 MHz +// 26 MHz +// 32 MHz +// 40 MHz +// cmuHFRCOEM23Freq_19M0Hz +#ifndef SL_CLOCK_MANAGER_HFRCOEM23_BAND +#define SL_CLOCK_MANAGER_HFRCOEM23_BAND cmuHFRCOEM23Freq_19M0Hz +#endif +// + +// RFFPLL configuration +// Target RF band (with 39MHz crystal) +// Radio frequency bands. +// Band 9xx MHz covers from 901 to 928 MHz. +// <0=> Band 450 MHz +// <1=> Band 470 MHz +// <2=> Band 780 MHz +// <3=> Band 863 MHz +// <4=> Band 896 MHz +// <5=> Band 928 MHz +// <6=> Band 9xx MHz +// <7=> AUTO BAND +// 7 +#ifndef SL_CLOCK_MANAGER_RFFPLL_BAND +#define SL_CLOCK_MANAGER_RFFPLL_BAND 7 +#endif + +// Use custom band (overrides Target RF band) +// 0 +#ifndef SL_CLOCK_MANAGER_RFFPLL_CUSTOM_BAND +#define SL_CLOCK_MANAGER_RFFPLL_CUSTOM_BAND 0 +#endif + +// Digital host target frequency in Hz +// <95000000-100000000:100000> +// The host target frequency should range between 95 and 100 MHz. +// This frequency does not relate to the radio part. +// 100000000 +#ifndef SL_CLOCK_MANAGER_RFFPLL_FREQ +#define SL_CLOCK_MANAGER_RFFPLL_FREQ 100000000 +#endif + +// Digital host clock output divider ratio (DIVY) +// <8-31:1> +// Divider Y is used for the host target frequency using this formula: frequency = (freq HFXO * DIV_N / 2) / DIV_Y +// 17 +#ifndef SL_CLOCK_MANAGER_RFFPLL_DIV_Y +#define SL_CLOCK_MANAGER_RFFPLL_DIV_Y 17 +#endif + +// Radio output divider ratio (DIVX) +// <4-15:1> +// Divider X is used for the radio frequency using this formula: frequency = (freq HFXO * DIV_N / 2) / (DIV_X / 2) +// 6 +#ifndef SL_CLOCK_MANAGER_RFFPLL_DIV_X +#define SL_CLOCK_MANAGER_RFFPLL_DIV_X 6 +#endif + +// PLL feedback divider ratio (DIVN) +// <32-127:1> +// Divider N is used for the host and radio frequencies using these formulas: +// - Host: frequency = (freq HFXO * DIV_N / 2) / DIV_Y +// - Radio: frequency = (freq HFXO * DIV_N / 2) / DIV_X +// 87 +#ifndef SL_CLOCK_MANAGER_RFFPLL_DIV_N +#define SL_CLOCK_MANAGER_RFFPLL_DIV_N 87 +#endif + +// +// + +// + +#endif /* SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H */ + +// <<< end of configuration section >>> diff --git a/hardware/board/config/brd4276a_brd4001a/sl_clock_manager_tree_config.h b/hardware/board/config/brd4276a_brd4001a/sl_clock_manager_tree_config.h new file mode 100644 index 0000000000..e674ab2c71 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4001a/sl_clock_manager_tree_config.h @@ -0,0 +1,292 @@ +/***************************************************************************//** + * @file + * @brief Clock Manager - Clock Tree configuration file. + ******************************************************************************* + * # License + * Copyright 2024 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +// <<< Use Configuration Wizard in Context Menu >>> + +#ifndef SL_CLOCK_MANAGER_TREE_CONFIG_H +#define SL_CLOCK_MANAGER_TREE_CONFIG_H + +// Internal Defines: DO NOT MODIFY +// Those defines are used internally to help converting the DEFAULT_HF_CLOCK_SOURCE and DEFAULT_LF_CLOCK_SOURCE +// selection of each clock branch to the right HW register value. +#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL 0xFF +#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFXO 0xFE +#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_FSRCO 0xFD +#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO 0xFC +#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFXO 0xFB +#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_ULFRCO 0xFA + +// Clock Tree Settings + +// Default Clock Source Selection for HF clock branches +// HFRCODPLL +// HFXO +// FSRCO +// Selection of the high frequency clock source. HF clock branches can select this value by chosing the DEFAULT_HF value. +// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL +#ifndef SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE +#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFXO +#endif + +// Default Clock Source Selection for LF clock branches +// LFRCO +// LFXO +// ULFRCO +// Selection of the low frequency clock source. LF clock branches can select this value by chosing the DEFAULT_HF value. +// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO +#ifndef SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE +#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFXO +#endif + +// System Clock Branch Settings + +// Clock Source Selection for SYSCLK branch +// DEFAULT_HF +// FSRCO +// HFRCODPLL +// HFXO +// RFFPLL0SYS +// Selection of the Clock source for SYSCLK +// CMU_SYSCLKCTRL_CLKSEL_RFFPLL0SYS +#ifndef SL_CLOCK_MANAGER_SYSCLK_SOURCE +#define SL_CLOCK_MANAGER_SYSCLK_SOURCE CMU_SYSCLKCTRL_CLKSEL_RFFPLL0SYS +#endif + +// HCLK branch divider +// DIV1 +// DIV2 +// DIV4 +// DIV8 +// DIV16 +// HCLK branch is derived from SYSCLK. This clock drives the AHB bus interface. +// CMU_SYSCLKCTRL_HCLKPRESC_DIV1 +#ifndef SL_CLOCK_MANAGER_HCLK_DIVIDER +#define SL_CLOCK_MANAGER_HCLK_DIVIDER CMU_SYSCLKCTRL_HCLKPRESC_DIV1 +#endif + +// PCLK branch divider +// DIV1 +// DIV2 +// PCLK branch is derived from HCLK. This clock drives the APB bus interface. +// CMU_SYSCLKCTRL_PCLKPRESC_DIV2 +#ifndef SL_CLOCK_MANAGER_PCLK_DIVIDER +#define SL_CLOCK_MANAGER_PCLK_DIVIDER CMU_SYSCLKCTRL_PCLKPRESC_DIV2 +#endif + +// + +// Trace Clock Branches Settings +// Clock Source Selection for TRACECLK branch +// DISABLE +// SYSCLK +// HFRCOEM23 +// HFRCODPLLRT +// Selection of the Clock source for TRACECLK +// CMU_TRACECLKCTRL_CLKSEL_SYSCLK +#ifndef SL_CLOCK_MANAGER_TRACECLK_SOURCE +#define SL_CLOCK_MANAGER_TRACECLK_SOURCE CMU_TRACECLKCTRL_CLKSEL_SYSCLK +#endif + +// TRACECLK branch Divider +// DIV1 +// DIV2 +// DIV3 +// DIV4 +// Selection of the divider value for TRACECLK branch +// CMU_TRACECLKCTRL_PRESC_DIV1 +#ifndef SL_CLOCK_MANAGER_TRACECLK_DIVIDER +#define SL_CLOCK_MANAGER_TRACECLK_DIVIDER CMU_TRACECLKCTRL_PRESC_DIV1 +#endif + +// + +// High Frequency Clock Branches Settings +// Each HF Clock Tree branch can be customized, else the same clock source as for SYSCLK will be used when possible +// EM01GRPACLK clock the Timer peripherals +// Clock Source Selection for EM01GRPACLK branch +// DEFAULT_HF +// HFRCODPLL +// HFXO +// FSRCO +// HFRCOEM23 +// HFRCODPLLRT +// HFXORT +// Selection of the Clock source for EM01GRPACLK +// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE +#ifndef SL_CLOCK_MANAGER_EM01GRPACLK_SOURCE +#define SL_CLOCK_MANAGER_EM01GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE +#endif + +// Clock Source Selection for EM01GRPCCLK branch +// DEFAULT_HF +// HFRCODPLL +// HFXO +// FSRCO +// HFRCOEM23 +// HFRCODPLLRT +// HFXORT +// Selection of the Clock source for EM01GRPCCLK +// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE +#ifndef SL_CLOCK_MANAGER_EM01GRPCCLK_SOURCE +#define SL_CLOCK_MANAGER_EM01GRPCCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE +#endif + +// Clock Source Selection for IADCCLK branch +// EM01GRPACLK +// FSRCO +// HFRCOEM23 +// Selection of the Clock source for IADCCLK +// CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK +#ifndef SL_CLOCK_MANAGER_IADCCLK_SOURCE +#define SL_CLOCK_MANAGER_IADCCLK_SOURCE CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK +#endif + +// Clock Source Selection for LESENSEHFCLK branch +// FSRCO +// HFRCOEM23 +// Selection of the Clock source for LESENSEHFCLK +// CMU_LESENSEHFCLKCTRL_CLKSEL_FSRCO +#ifndef SL_CLOCK_MANAGER_LESENSEHFCLK_SOURCE +#define SL_CLOCK_MANAGER_LESENSEHFCLK_SOURCE CMU_LESENSEHFCLKCTRL_CLKSEL_FSRCO +#endif + +// + +// Low Frequency Clock Branches Settings + +// Clock Source Selection for EM23GRPACLK branch +// DEFAULT_LF +// LFRCO +// LFXO +// ULFRCO +// Selection of the Clock source for EM23GRPACLK +// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE +#ifndef SL_CLOCK_MANAGER_EM23GRPACLK_SOURCE +#define SL_CLOCK_MANAGER_EM23GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE +#endif + +// Clock Source Selection for EM4GRPACLK branch +// DEFAULT_LF +// LFRCO +// LFXO +// ULFRCO +// Selection of the Clock source for EM4GRPACLK +// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE +#ifndef SL_CLOCK_MANAGER_EM4GRPACLK_SOURCE +#define SL_CLOCK_MANAGER_EM4GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE +#endif + +// Clock Source Selection for SYSRTCCLK branch +// DEFAULT_LF +// LFRCO +// LFXO +// ULFRCO +// Selection of the Clock source for SYSRTCCLK +// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE +#ifndef SL_CLOCK_MANAGER_SYSRTCCLK_SOURCE +#define SL_CLOCK_MANAGER_SYSRTCCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE +#endif + +// Clock Source Selection for WDOG0CLK branch +// DEFAULT_LF +// LFRCO +// LFXO +// ULFRCO +// HCLKDIV1024 +// Selection of the Clock source for WDOG0CLK +// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE +#ifndef SL_CLOCK_MANAGER_WDOG0CLK_SOURCE +#define SL_CLOCK_MANAGER_WDOG0CLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE +#endif + +// Clock Source Selection for WDOG1CLK branch +// DEFAULT_LF +// LFRCO +// LFXO +// ULFRCO +// HCLKDIV1024 +// Selection of the Clock source for WDOG1CLK +// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE +#ifndef SL_CLOCK_MANAGER_WDOG1CLK_SOURCE +#define SL_CLOCK_MANAGER_WDOG1CLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE +#endif + +// Clock Source Selection for PCNT0CLK branch +// DISABLED +// EM23GRPACLK +// PCNTS0 +// Selection of the Clock source for PCNT0CLK +// CMU_PCNT0CLKCTRL_CLKSEL_EM23GRPACLK +#ifndef SL_CLOCK_MANAGER_PCNT0CLK_SOURCE +#define SL_CLOCK_MANAGER_PCNT0CLK_SOURCE CMU_PCNT0CLKCTRL_CLKSEL_EM23GRPACLK +#endif + +// + +// Mixed Frequency Clock Branch Settings +// Clock Source Selection for EUSART0CLK branch +// DISABLED +// EM01GRPCCLK +// HFRCOEM23 +// LFRCO +// LFXO +// Selection of the Clock source for EUSART0CLK +// CMU_EUSART0CLKCTRL_CLKSEL_EM01GRPCCLK +#ifndef SL_CLOCK_MANAGER_EUSART0CLK_SOURCE +#define SL_CLOCK_MANAGER_EUSART0CLK_SOURCE CMU_EUSART0CLKCTRL_CLKSEL_EM01GRPCCLK +#endif + +// Clock Source Selection for SYSTICKCLK branch +// <0=> HCLK +// <1=> EM23GRPACLK +// Selection of the Clock source for SYSTICKCLK +// 0 +#ifndef SL_CLOCK_MANAGER_SYSTICKCLK_SOURCE +#define SL_CLOCK_MANAGER_SYSTICKCLK_SOURCE 0 +#endif + +// Clock Source Selection for VDAC0CLK branch +// DISABLED +// EM01GRPACLK +// EM23GRPACLK +// FSRCO +// HFRCOEM23 +// Selection of the Clock source for VDAC0CLK +// CMU_VDAC0CLKCTRL_CLKSEL_EM01GRPACLK +#ifndef SL_CLOCK_MANAGER_VDAC0CLK_SOURCE +#define SL_CLOCK_MANAGER_VDAC0CLK_SOURCE CMU_VDAC0CLKCTRL_CLKSEL_EM01GRPACLK +#endif + +// +// + +#endif /* SL_CLOCK_MANAGER_TREE_CONFIG_H */ + +// <<< end of configuration section >>> diff --git a/hardware/board/config/brd4276a_brd4001a/sl_cpc_drv_secondary_spi_eusart_exp_config.h b/hardware/board/config/brd4276a_brd4001a/sl_cpc_drv_secondary_spi_eusart_exp_config.h new file mode 100644 index 0000000000..a3281981e5 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4001a/sl_cpc_drv_secondary_spi_eusart_exp_config.h @@ -0,0 +1,120 @@ +/***************************************************************************//** + * @file + * @brief CPC SPI SECONDARY driver configuration file. + ******************************************************************************* + * # License + * Copyright 2020 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_CPC_DRV_SPI_EUSART_EXP_SECONDARY_CONFIG_H +#define SL_CPC_DRV_SPI_EUSART_EXP_SECONDARY_CONFIG_H + +// <<< Use Configuration Wizard in Context Menu >>> + +// CPC-Secondary SPI Driver Configuration + +// Queues size configuration + +// Number of frame that can be queued in the driver receive queue +// A greater number decreases the chances of retransmission due to dropped frames at the cost of memory footprint +// Default : 10 +// 10 +#define SL_CPC_DRV_SPI_EXP_RX_QUEUE_SIZE 10 + +// Number of frame that can be queued in the driver transmit queue +// A greater number increases the transmission responsiveness at the cost of memory footprint +// Default : 10 +// 10 +#define SL_CPC_DRV_SPI_EXP_TX_QUEUE_SIZE 10 +// + +// LDMA SYNCTRIG bit configuration +// The LDMA SYNCTRIG bit number for the TX availability [bit] <0-7> +// Specify which SYNCTRIG bit is used. Modify this value to avoid collisions if specific LDMA SYNCTRIG bits need to be used elsewhere in the project. +// Default : 7 +// 7 +#define SL_CPC_DRV_SPI_EXP_TX_AVAILABILITY_SYNCTRIG_CH 6 + +// The LDMA SYNCTRIG bit number for the CS PRS channel [bit] <0-7> +// Specify which SYNCTRIG bit is used. Modify this value to avoid collisions if specific LDMA SYNCTRIG bits need to be used elsewhere in the project. +// This bit number is tied to the equivalent PRS channel number. Keep that in mind if using PRS channels elsewhere in the project. +// Default : 5 +// 5 +#define SL_CPC_DRV_SPI_EXP_CS_SYNCTRIG_PRS_CH 5 + +// The LDMA SYNCTRIG bit number for the TXC PRS channel [bit] <0-7> +// Specify which SYNCTRIG bit is used. Modify this value to avoid collisions if specific LDMA SYNCTRIG bits need to be used elsewhere in the project. +// This bit number is tied to the equivalent PRS channel number. Keep that in mind if using PRS channels elsewhere in the project. +// Default : 6 +// 6 +#define SL_CPC_DRV_SPI_EXP_TXC_SYNCTRIG_PRS_CH 4 +// + +// Chip Select PRS Routing +// The Chip Select input to EXTernal Interrupt number <0-7> +// The CS input needs to be routed to a PRS channel in order to manipulate its LDMA SYNCTRIG bit. +// Modify this value to avoid collisions if any specific EXTI number needs to be used elsewhere in the project. +// Note that only EXTI0..7 can be used as input for a PRS channel, and only pins Px0..7 can be routed to those. +// Default : 0 (pin0..4 of any port) +// 0 +#define SL_CPC_DRV_SPI_EXP_CS_EXTI_NUMBER 4 +// + +// +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> +// SL_CPC_DRV_SPI_EXP_IRQ +// $[GPIO_SL_CPC_DRV_SPI_EXP_IRQ] +#define SL_CPC_DRV_SPI_EXP_IRQ_PORT gpioPortB +#define SL_CPC_DRV_SPI_EXP_IRQ_PIN 2 + +// [GPIO_SL_CPC_DRV_SPI_EXP_IRQ]$ + +// SL_CPC_DRV_SPI_EXP +// $[EUSART_SL_CPC_DRV_SPI_EXP] +#define SL_CPC_DRV_SPI_EXP_PERIPHERAL EUSART1 +#define SL_CPC_DRV_SPI_EXP_PERIPHERAL_NO 1 + +// EUSART1 TX on PC00 +#define SL_CPC_DRV_SPI_EXP_COPI_PORT gpioPortC +#define SL_CPC_DRV_SPI_EXP_COPI_PIN 0 + +// EUSART1 RX on PC01 +#define SL_CPC_DRV_SPI_EXP_CIPO_PORT gpioPortC +#define SL_CPC_DRV_SPI_EXP_CIPO_PIN 1 + +// EUSART1 SCLK on PC02 +#define SL_CPC_DRV_SPI_EXP_SCLK_PORT gpioPortC +#define SL_CPC_DRV_SPI_EXP_SCLK_PIN 2 + +// EUSART1 CS on PB04 +#define SL_CPC_DRV_SPI_EXP_CS_PORT gpioPortB +#define SL_CPC_DRV_SPI_EXP_CS_PIN 4 + +// [EUSART_SL_CPC_DRV_SPI_EXP]$ +// <<< sl:end pin_tool >>> + +#endif /* SL_CPC_DRV_SPI_EXP_SECONDARY_CONFIG_H */ diff --git a/hardware/board/config/brd4276a_brd4001a/sl_cpc_drv_uart_eusart_exp_config.h b/hardware/board/config/brd4276a_brd4001a/sl_cpc_drv_uart_eusart_exp_config.h new file mode 100644 index 0000000000..129e0d4433 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4001a/sl_cpc_drv_uart_eusart_exp_config.h @@ -0,0 +1,84 @@ +/***************************************************************************//** + * @file + * @brief CPC EUSART driver configuration file. + ******************************************************************************* + * # License + * Copyright 2023 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +// <<< Use Configuration Wizard in Context Menu >>> + +#ifndef SL_CPC_DRV_UART_EUSART_EXP_CONFIG_H +#define SL_CPC_DRV_UART_EUSART_EXP_CONFIG_H + +// CPC - EUSART Driver Configuration + +// Number of frame that can be queued in the driver receive queue +// Default: 10 +#define SL_CPC_DRV_UART_EXP_RX_QUEUE_SIZE 10 + +// Number of frame that can be queued in the driver transmit queue +// Default: 10 +#define SL_CPC_DRV_UART_EXP_TX_QUEUE_SIZE 10 + +// EUSART Baudrate +// Default: 115200 +#define SL_CPC_DRV_UART_EXP_BAUDRATE 115200 + +// Flow control +// None +// CTS/RTS +// Default: eusartHwFlowControlCtsAndRts +#define SL_CPC_DRV_UART_EXP_FLOW_CONTROL_TYPE eusartHwFlowControlCtsAndRts +// + +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> +// SL_CPC_DRV_UART_EXP +// $[EUSART_SL_CPC_DRV_UART_EXP] +#define SL_CPC_DRV_UART_EXP_PERIPHERAL EUSART1 +#define SL_CPC_DRV_UART_EXP_PERIPHERAL_NO 1 + +// EUSART1 TX on PC00 +#define SL_CPC_DRV_UART_EXP_TX_PORT gpioPortC +#define SL_CPC_DRV_UART_EXP_TX_PIN 0 + +// EUSART1 RX on PC01 +#define SL_CPC_DRV_UART_EXP_RX_PORT gpioPortC +#define SL_CPC_DRV_UART_EXP_RX_PIN 1 + +// EUSART1 CTS on PC02 +#define SL_CPC_DRV_UART_EXP_CTS_PORT gpioPortC +#define SL_CPC_DRV_UART_EXP_CTS_PIN 2 + +// EUSART1 RTS on PB04 +#define SL_CPC_DRV_UART_EXP_RTS_PORT gpioPortB +#define SL_CPC_DRV_UART_EXP_RTS_PIN 4 + +// [EUSART_SL_CPC_DRV_UART_EXP]$ +// <<< sl:end pin_tool >>> + +#endif /* SL_CPC_DRV_UART_EXP_CONFIG_H */ diff --git a/hardware/board/config/brd4276a_brd4001a/sl_cpc_drv_uart_eusart_vcom_config.h b/hardware/board/config/brd4276a_brd4001a/sl_cpc_drv_uart_eusart_vcom_config.h new file mode 100644 index 0000000000..615ff7c823 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4001a/sl_cpc_drv_uart_eusart_vcom_config.h @@ -0,0 +1,84 @@ +/***************************************************************************//** + * @file + * @brief CPC EUSART driver configuration file. + ******************************************************************************* + * # License + * Copyright 2023 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +// <<< Use Configuration Wizard in Context Menu >>> + +#ifndef SL_CPC_DRV_UART_EUSART_VCOM_CONFIG_H +#define SL_CPC_DRV_UART_EUSART_VCOM_CONFIG_H + +// CPC - EUSART Driver Configuration + +// Number of frame that can be queued in the driver receive queue +// Default: 10 +#define SL_CPC_DRV_UART_VCOM_RX_QUEUE_SIZE 10 + +// Number of frame that can be queued in the driver transmit queue +// Default: 10 +#define SL_CPC_DRV_UART_VCOM_TX_QUEUE_SIZE 10 + +// EUSART Baudrate +// Default: 115200 +#define SL_CPC_DRV_UART_VCOM_BAUDRATE 115200 + +// Flow control +// None +// CTS/RTS +// Default: eusartHwFlowControlCtsAndRts +#define SL_CPC_DRV_UART_VCOM_FLOW_CONTROL_TYPE eusartHwFlowControlCtsAndRts +// + +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> +// SL_CPC_DRV_UART_VCOM +// $[EUSART_SL_CPC_DRV_UART_VCOM] +#define SL_CPC_DRV_UART_VCOM_PERIPHERAL EUSART0 +#define SL_CPC_DRV_UART_VCOM_PERIPHERAL_NO 0 + +// EUSART0 TX on PA08 +#define SL_CPC_DRV_UART_VCOM_TX_PORT gpioPortA +#define SL_CPC_DRV_UART_VCOM_TX_PIN 8 + +// EUSART0 RX on PA09 +#define SL_CPC_DRV_UART_VCOM_RX_PORT gpioPortA +#define SL_CPC_DRV_UART_VCOM_RX_PIN 9 + +// EUSART0 CTS on PA10 +#define SL_CPC_DRV_UART_VCOM_CTS_PORT gpioPortA +#define SL_CPC_DRV_UART_VCOM_CTS_PIN 10 + +// EUSART0 RTS on PA00 +#define SL_CPC_DRV_UART_VCOM_RTS_PORT gpioPortA +#define SL_CPC_DRV_UART_VCOM_RTS_PIN 0 + +// [EUSART_SL_CPC_DRV_UART_VCOM]$ +// <<< sl:end pin_tool >>> + +#endif /* SL_CPC_DRV_UART_VCOM_CONFIG_H */ diff --git a/hardware/board/config/brd4276a_brd4001a/sl_cpc_gpio_expander_gpio_btn0_config.h b/hardware/board/config/brd4276a_brd4001a/sl_cpc_gpio_expander_gpio_btn0_config.h new file mode 100644 index 0000000000..3d58eda53a --- /dev/null +++ b/hardware/board/config/brd4276a_brd4001a/sl_cpc_gpio_expander_gpio_btn0_config.h @@ -0,0 +1,53 @@ +/***************************************************************************//** + * @file + * @brief CPC GPIO Expander instance configuration file. + ******************************************************************************* + * # License + * Copyright 2023 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +// <<< Use Configuration Wizard in Context Menu >>> + +#ifndef SL_CPC_GPIO_EXPANDER_GPIO_BTN0_CONFIG_H +#define SL_CPC_GPIO_EXPANDER_GPIO_BTN0_CONFIG_H + +// GPIO Pin Name +// Specify the name of the GPIO pin instance which is reported to the Host/Primary device +// Default: "UNDEFINED" +#define SL_CPC_GPIO_EXPANDER_GPIO_BTN0_NAME "BTN0" + +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> +// SL_CPC_GPIO_EXPANDER_GPIO_BTN0 +// $[GPIO_SL_CPC_GPIO_EXPANDER_GPIO_BTN0] +#define SL_CPC_GPIO_EXPANDER_GPIO_BTN0_PORT gpioPortB +#define SL_CPC_GPIO_EXPANDER_GPIO_BTN0_PIN 0 + +// [GPIO_SL_CPC_GPIO_EXPANDER_GPIO_BTN0]$ + +// <<< sl:end pin_tool >>> + +#endif /* SL_CPC_GPIO_EXPANDER_GPIO_BTN0_CONFIG_H */ diff --git a/hardware/board/config/brd4276a_brd4001a/sl_cpc_gpio_expander_gpio_btn1_config.h b/hardware/board/config/brd4276a_brd4001a/sl_cpc_gpio_expander_gpio_btn1_config.h new file mode 100644 index 0000000000..42dca6aad3 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4001a/sl_cpc_gpio_expander_gpio_btn1_config.h @@ -0,0 +1,53 @@ +/***************************************************************************//** + * @file + * @brief CPC GPIO Expander instance configuration file. + ******************************************************************************* + * # License + * Copyright 2023 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +// <<< Use Configuration Wizard in Context Menu >>> + +#ifndef SL_CPC_GPIO_EXPANDER_GPIO_BTN1_CONFIG_H +#define SL_CPC_GPIO_EXPANDER_GPIO_BTN1_CONFIG_H + +// GPIO Pin Name +// Specify the name of the GPIO pin instance which is reported to the Host/Primary device +// Default: "UNDEFINED" +#define SL_CPC_GPIO_EXPANDER_GPIO_BTN1_NAME "BTN1" + +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> +// SL_CPC_GPIO_EXPANDER_GPIO_BTN1 +// $[GPIO_SL_CPC_GPIO_EXPANDER_GPIO_BTN1] +#define SL_CPC_GPIO_EXPANDER_GPIO_BTN1_PORT gpioPortB +#define SL_CPC_GPIO_EXPANDER_GPIO_BTN1_PIN 1 + +// [GPIO_SL_CPC_GPIO_EXPANDER_GPIO_BTN1]$ + +// <<< sl:end pin_tool >>> + +#endif /* SL_CPC_GPIO_EXPANDER_GPIO_BTN1_CONFIG_H */ diff --git a/hardware/board/config/brd4276a_brd4001a/sl_device_init_hfxo_config.h b/hardware/board/config/brd4276a_brd4001a/sl_device_init_hfxo_config.h new file mode 100644 index 0000000000..a8106e4d02 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4001a/sl_device_init_hfxo_config.h @@ -0,0 +1,57 @@ +/***************************************************************************//** + * @file + * @brief DEVICE_INIT_HFXO Config + ******************************************************************************* + * # License + * Copyright 2022 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_DEVICE_INIT_HFXO_CONFIG_H +#define SL_DEVICE_INIT_HFXO_CONFIG_H + +// <<< Use Configuration Wizard in Context Menu >>> + +// Mode +// +// Crystal oscillator +// External sine wave +// Default: cmuHfxoOscMode_Crystal +#define SL_DEVICE_INIT_HFXO_MODE cmuHfxoOscMode_Crystal + +// Frequency <38000000-40000000> +// Default: 39000000 +#define SL_DEVICE_INIT_HFXO_FREQ 39000000 + +// HFXO precision in PPM <0-65535> +// Default: 50 +#define SL_DEVICE_INIT_HFXO_PRECISION 50 + +// CTUNE <0-255> +// Default: 140 +#define SL_DEVICE_INIT_HFXO_CTUNE 103 + +// <<< end of configuration section >>> + +#endif // SL_DEVICE_INIT_HFXO_CONFIG_H diff --git a/hardware/board/config/brd4276a_brd4001a/sl_device_init_lfxo_config.h b/hardware/board/config/brd4276a_brd4001a/sl_device_init_lfxo_config.h new file mode 100644 index 0000000000..bc4ed1f9dc --- /dev/null +++ b/hardware/board/config/brd4276a_brd4001a/sl_device_init_lfxo_config.h @@ -0,0 +1,66 @@ +/***************************************************************************//** + * @file + * @brief DEVICE_INIT_LFXO Config + ******************************************************************************* + * # License + * Copyright 2022 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_DEVICE_INIT_LFXO_CONFIG_H +#define SL_DEVICE_INIT_LFXO_CONFIG_H + +// <<< Use Configuration Wizard in Context Menu >>> + +// Mode +// +// Crystal oscillator +// AC-coupled buffer +// External digital clock +// Default: cmuLfxoOscMode_Crystal +#define SL_DEVICE_INIT_LFXO_MODE cmuLfxoOscMode_Crystal + +// CTUNE <0-127> +// Default: 63 +#define SL_DEVICE_INIT_LFXO_CTUNE 38 + +// LFXO precision in PPM <0-65535> +// Default: 50 +#define SL_DEVICE_INIT_LFXO_PRECISION 50 + +// Startup Timeout Delay +// +// 2 cycles +// 256 cycles +// 1K cycles +// 2K cycles +// 4K cycles +// 8K cycles +// 16K cycles +// 32K cycles +// Default: cmuLfxoStartupDelay_4KCycles +#define SL_DEVICE_INIT_LFXO_TIMEOUT cmuLfxoStartupDelay_4KCycles +// <<< end of configuration section >>> + +#endif // SL_DEVICE_INIT_LFXO_CONFIG_H diff --git a/hardware/board/config/brd4276a_brd4001a/sl_fem_util_config.h b/hardware/board/config/brd4276a_brd4001a/sl_fem_util_config.h new file mode 100644 index 0000000000..5e79f00d4c --- /dev/null +++ b/hardware/board/config/brd4276a_brd4001a/sl_fem_util_config.h @@ -0,0 +1,124 @@ +/***************************************************************************//** + * @file + * @brief Front End Module configuration file. + ******************************************************************************* + * # License + * Copyright 2020 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_FEM_UTIL_CONFIG_H +#define SL_FEM_UTIL_CONFIG_H + +#include "em_gpio.h" + +// <<< Use Configuration Wizard in Context Menu >>> +// FEM Configuration +// Enable RX Mode +// Default: 0 +#define SL_FEM_UTIL_RX_ENABLE 1 +// Enable TX Mode +// Default: 0 +#define SL_FEM_UTIL_TX_ENABLE 0 +// Enable Bypass Mode +// Default: 0 +#define SL_FEM_UTIL_BYPASS_ENABLE 0 +// Enable TX High Power Mode +// Default: 0 +#define SL_FEM_UTIL_TX_HIGH_POWER_ENABLE 0 +// + +// Automatic external FEM LNA bypass Configuration +// Enable automatic LNA bypass +// Default: 0 +#define SL_FEM_UTIL_AUTO_LNA_BYPASS_ENABLE 0 +// LNA bypass threshold +// <1-31:1> +// Default: 12 +#define SL_FEM_UTIL_AUTO_LNA_BYPASS_THRESHOLD 12 +// LNA bypass delta RSSI (dBm) +// <1-255:1> +// Default: 15 +#define SL_FEM_UTIL_AUTO_LNA_BYPASS_DELTA_RSSI_DBM 15 +// LNA bypass GPIO polarity +// <0-1:1> +// Default: 1 +#define SL_FEM_UTIL_AUTO_LNA_BYPASS_POLARITY 1 +// LNA bypass timeout (Us) +// <1-65535:1> +// Default: 4000 +#define SL_FEM_UTIL_AUTO_LNA_BYPASS_TIMEOUT_US 4000 +// +// +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> +// SL_FEM_UTIL_RX +// $[PRS_SL_FEM_UTIL_RX] +#define SL_FEM_UTIL_RX_CHANNEL 6 + +// PRS ASYNCH6 on PC08 +#define SL_FEM_UTIL_RX_PORT gpioPortC +#define SL_FEM_UTIL_RX_PIN 8 + +// [PRS_SL_FEM_UTIL_RX]$ + +// SL_FEM_UTIL_TX +// $[PRS_SL_FEM_UTIL_TX] + +#define SL_FEM_UTIL_TX_CHANNEL 8 + +// PRS ASYNCH8 on PC05 +#define SL_FEM_UTIL_TX_PORT gpioPortC +#define SL_FEM_UTIL_TX_PIN 5 + +// [PRS_SL_FEM_UTIL_TX]$ + +// SL_FEM_UTIL_SLEEP +// $[PRS_SL_FEM_UTIL_SLEEP] +#define SL_FEM_UTIL_SLEEP_CHANNEL 7 + +// PRS ASYNCH7 on PC04 +#define SL_FEM_UTIL_SLEEP_PORT gpioPortC +#define SL_FEM_UTIL_SLEEP_PIN 4 + +// [PRS_SL_FEM_UTIL_SLEEP]$ + +// SL_FEM_UTIL_BYPASS +// $[GPIO_SL_FEM_UTIL_BYPASS] + + +// [GPIO_SL_FEM_UTIL_BYPASS]$ + +// SL_FEM_UTIL_TX_HIGH_POWER +// $[GPIO_SL_FEM_UTIL_TX_HIGH_POWER] + + +// [GPIO_SL_FEM_UTIL_TX_HIGH_POWER]$ +// <<< sl:end pin_tool >>> + +#define SL_FEM_UTIL_OPTIMIZED_PHY_ENABLE 0 +#define SL_FEM_UTIL_RUNTIME_PHY_SELECT 0 + +#endif // SL_FEM_UTIL_CONFIG_H diff --git a/hardware/board/config/brd4276a_brd4001a/sl_iostream_eusart_exp_config.h b/hardware/board/config/brd4276a_brd4001a/sl_iostream_eusart_exp_config.h new file mode 100644 index 0000000000..aa27f1e8fa --- /dev/null +++ b/hardware/board/config/brd4276a_brd4001a/sl_iostream_eusart_exp_config.h @@ -0,0 +1,107 @@ +/***************************************************************************//** + * @file + * @brief IOSTREAM_EUSART Config. + ******************************************************************************* + * # License + * Copyright 2020 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_IOSTREAM_EUSART_EXP_CONFIG_H +#define SL_IOSTREAM_EUSART_EXP_CONFIG_H + +// <<< Use Configuration Wizard in Context Menu >>> + +// EUART settings + +// Enable High frequency mode +// Default: 1 +#define SL_IOSTREAM_EUSART_EXP_ENABLE_HIGH_FREQUENCY 1 + +// Baud rate +// Default: 115200 +#define SL_IOSTREAM_EUSART_EXP_BAUDRATE 115200 + +// Parity mode to use +// No Parity +// Even parity +// Odd parity +// Default: SL_IOSTREAM_EUSART_UART_NO_PARITY +#define SL_IOSTREAM_EUSART_EXP_PARITY SL_IOSTREAM_EUSART_UART_NO_PARITY + +// Number of stop bits to use. +// 0.5 stop bits +// 1 stop bits +// 1.5 stop bits +// 2 stop bits +// Default: SL_IOSTREAM_EUSART_UART_STOP_BITS_1 +#define SL_IOSTREAM_EUSART_EXP_STOP_BITS SL_IOSTREAM_EUSART_UART_STOP_BITS_1 + +// Flow control +// None +// CTS +// RTS +// CTS/RTS +// Software Flow control (XON/XOFF) +// Default: SL_IOSTREAM_EUSART_UART_FLOW_CTRL_NONE +#define SL_IOSTREAM_EUSART_EXP_FLOW_CONTROL_TYPE SL_IOSTREAM_EUSART_UART_FLOW_CTRL_NONE + +// Receive buffer size +// Default: 32 +#define SL_IOSTREAM_EUSART_EXP_RX_BUFFER_SIZE 32 + +// Convert \n to \r\n +// It can be changed at runtime using the C API. +// Default: 0 +#define SL_IOSTREAM_EUSART_EXP_CONVERT_BY_DEFAULT_LF_TO_CRLF 0 + +// Restrict the energy mode to allow the reception. +// Default: 1 +// Limits the lowest energy mode the system can sleep to in order to keep the reception on. May cause higher power consumption. +#define SL_IOSTREAM_EUSART_EXP_RESTRICT_ENERGY_MODE_TO_ALLOW_RECEPTION 1 + +// + +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> +// SL_IOSTREAM_EUSART_EXP +// $[EUSART_SL_IOSTREAM_EUSART_EXP] +#define SL_IOSTREAM_EUSART_EXP_PERIPHERAL EUSART0 +#define SL_IOSTREAM_EUSART_EXP_PERIPHERAL_NO 0 + +// EUSART0 TX on PA08 +#define SL_IOSTREAM_EUSART_EXP_TX_PORT gpioPortA +#define SL_IOSTREAM_EUSART_EXP_TX_PIN 8 + +// EUSART0 RX on PA09 +#define SL_IOSTREAM_EUSART_EXP_RX_PORT gpioPortA +#define SL_IOSTREAM_EUSART_EXP_RX_PIN 9 + + + +// [EUSART_SL_IOSTREAM_EUSART_EXP]$ +// <<< sl:end pin_tool >>> + +#endif diff --git a/hardware/board/config/brd4276a_brd4001a/sl_iostream_eusart_vcom_config.h b/hardware/board/config/brd4276a_brd4001a/sl_iostream_eusart_vcom_config.h new file mode 100644 index 0000000000..49c4d10f2d --- /dev/null +++ b/hardware/board/config/brd4276a_brd4001a/sl_iostream_eusart_vcom_config.h @@ -0,0 +1,113 @@ +/***************************************************************************//** + * @file + * @brief IOSTREAM_EUSART Config. + ******************************************************************************* + * # License + * Copyright 2020 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_IOSTREAM_EUSART_VCOM_CONFIG_H +#define SL_IOSTREAM_EUSART_VCOM_CONFIG_H + +// <<< Use Configuration Wizard in Context Menu >>> + +// EUART settings + +// Enable High frequency mode +// Default: 1 +#define SL_IOSTREAM_EUSART_VCOM_ENABLE_HIGH_FREQUENCY 1 + +// Baud rate +// Default: 115200 +#define SL_IOSTREAM_EUSART_VCOM_BAUDRATE 115200 + +// Parity mode to use +// No Parity +// Even parity +// Odd parity +// Default: SL_IOSTREAM_EUSART_UART_NO_PARITY +#define SL_IOSTREAM_EUSART_VCOM_PARITY SL_IOSTREAM_EUSART_UART_NO_PARITY + +// Number of stop bits to use. +// 0.5 stop bits +// 1 stop bits +// 1.5 stop bits +// 2 stop bits +// Default: SL_IOSTREAM_EUSART_UART_STOP_BITS_1 +#define SL_IOSTREAM_EUSART_VCOM_STOP_BITS SL_IOSTREAM_EUSART_UART_STOP_BITS_1 + +// Flow control +// None +// CTS +// RTS +// CTS/RTS +// Software Flow control (XON/XOFF) +// Default: SL_IOSTREAM_EUSART_UART_FLOW_CTRL_NONE +#define SL_IOSTREAM_EUSART_VCOM_FLOW_CONTROL_TYPE SL_IOSTREAM_EUSART_UART_FLOW_CTRL_CTS_RTS + +// Receive buffer size +// Default: 32 +#define SL_IOSTREAM_EUSART_VCOM_RX_BUFFER_SIZE 32 + +// Convert \n to \r\n +// It can be changed at runtime using the C API. +// Default: 0 +#define SL_IOSTREAM_EUSART_VCOM_CONVERT_BY_DEFAULT_LF_TO_CRLF 0 + +// Restrict the energy mode to allow the reception. +// Default: 1 +// Limits the lowest energy mode the system can sleep to in order to keep the reception on. May cause higher power consumption. +#define SL_IOSTREAM_EUSART_VCOM_RESTRICT_ENERGY_MODE_TO_ALLOW_RECEPTION 1 + +// + +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> +// SL_IOSTREAM_EUSART_VCOM +// $[EUSART_SL_IOSTREAM_EUSART_VCOM] +#define SL_IOSTREAM_EUSART_VCOM_PERIPHERAL EUSART0 +#define SL_IOSTREAM_EUSART_VCOM_PERIPHERAL_NO 0 + +// EUSART0 TX on PA08 +#define SL_IOSTREAM_EUSART_VCOM_TX_PORT gpioPortA +#define SL_IOSTREAM_EUSART_VCOM_TX_PIN 8 + +// EUSART0 RX on PA09 +#define SL_IOSTREAM_EUSART_VCOM_RX_PORT gpioPortA +#define SL_IOSTREAM_EUSART_VCOM_RX_PIN 9 + +// EUSART0 CTS on PA10 +#define SL_IOSTREAM_EUSART_VCOM_CTS_PORT gpioPortA +#define SL_IOSTREAM_EUSART_VCOM_CTS_PIN 10 + +// EUSART0 RTS on PA00 +#define SL_IOSTREAM_EUSART_VCOM_RTS_PORT gpioPortA +#define SL_IOSTREAM_EUSART_VCOM_RTS_PIN 0 + +// [EUSART_SL_IOSTREAM_EUSART_VCOM]$ +// <<< sl:end pin_tool >>> + +#endif diff --git a/hardware/board/config/brd4276a_brd4001a/sl_memlcd_eusart_config.h b/hardware/board/config/brd4276a_brd4001a/sl_memlcd_eusart_config.h new file mode 100644 index 0000000000..8ddcc39db5 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4001a/sl_memlcd_eusart_config.h @@ -0,0 +1,66 @@ +/***************************************************************************//** + * @file + * @brief SPI abstraction used by memory lcd display + ******************************************************************************* + * # License + * Copyright 2022 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_MEMLCD_CONFIG_H +#define SL_MEMLCD_CONFIG_H + +// <<< sl:start pin_tool >>> +// SL_MEMLCD_SPI +// $[EUSART_SL_MEMLCD_SPI] +#define SL_MEMLCD_SPI_PERIPHERAL EUSART1 +#define SL_MEMLCD_SPI_PERIPHERAL_NO 1 + +// EUSART1 TX on PC00 +#define SL_MEMLCD_SPI_TX_PORT gpioPortC +#define SL_MEMLCD_SPI_TX_PIN 0 + +// EUSART1 SCLK on PC02 +#define SL_MEMLCD_SPI_SCLK_PORT gpioPortC +#define SL_MEMLCD_SPI_SCLK_PIN 2 + +// [EUSART_SL_MEMLCD_SPI]$ + +// SL_MEMLCD_SPI_CS +// $[GPIO_SL_MEMLCD_SPI_CS] +#define SL_MEMLCD_SPI_CS_PORT gpioPortD +#define SL_MEMLCD_SPI_CS_PIN 5 + +// [GPIO_SL_MEMLCD_SPI_CS]$ + +// SL_MEMLCD_EXTCOMIN +// $[GPIO_SL_MEMLCD_EXTCOMIN] +#define SL_MEMLCD_EXTCOMIN_PORT gpioPortA +#define SL_MEMLCD_EXTCOMIN_PIN 7 + +// [GPIO_SL_MEMLCD_EXTCOMIN]$ + +// <<< sl:end pin_tool >>> + +#endif diff --git a/hardware/board/config/brd4276a_brd4001a/sl_mx25_flash_shutdown_eusart_config.h b/hardware/board/config/brd4276a_brd4001a/sl_mx25_flash_shutdown_eusart_config.h new file mode 100644 index 0000000000..df3e82ad8a --- /dev/null +++ b/hardware/board/config/brd4276a_brd4001a/sl_mx25_flash_shutdown_eusart_config.h @@ -0,0 +1,64 @@ +/***************************************************************************//** + * @file + * @brief SL_MX25_FLASH_SHUTDOWN_USART Config + ******************************************************************************* + * # License + * Copyright 2020 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_MX25_FLASH_SHUTDOWN_CONFIG_H +#define SL_MX25_FLASH_SHUTDOWN_CONFIG_H + +// <<< sl:start pin_tool >>> +// {eusart signal=TX,RX,SCLK} SL_MX25_FLASH_SHUTDOWN +// [EUSART_SL_MX25_FLASH_SHUTDOWN] +#define SL_MX25_FLASH_SHUTDOWN_PERIPHERAL EUSART1 +#define SL_MX25_FLASH_SHUTDOWN_PERIPHERAL_NO 1 + +// EUSART1 TX on PC00 +#define SL_MX25_FLASH_SHUTDOWN_TX_PORT gpioPortC +#define SL_MX25_FLASH_SHUTDOWN_TX_PIN 0 + +// EUSART1 RX on PC01 +#define SL_MX25_FLASH_SHUTDOWN_RX_PORT gpioPortC +#define SL_MX25_FLASH_SHUTDOWN_RX_PIN 1 + +// EUSART1 SCLK on PC02 +#define SL_MX25_FLASH_SHUTDOWN_SCLK_PORT gpioPortC +#define SL_MX25_FLASH_SHUTDOWN_SCLK_PIN 2 + +// [EUSART_SL_MX25_FLASH_SHUTDOWN] + +// SL_MX25_FLASH_SHUTDOWN_CS + +// $[GPIO_SL_MX25_FLASH_SHUTDOWN_CS] +#define SL_MX25_FLASH_SHUTDOWN_CS_PORT gpioPortA +#define SL_MX25_FLASH_SHUTDOWN_CS_PIN 4 + +// [GPIO_SL_MX25_FLASH_SHUTDOWN_CS]$ + +// <<< sl:end pin_tool >>> + +#endif // SL_MX25_FLASH_SHUTDOWN_CONFIG_H diff --git a/hardware/board/config/brd4276a_brd4001a/sl_pwm_init_led0_config.h b/hardware/board/config/brd4276a_brd4001a/sl_pwm_init_led0_config.h new file mode 100644 index 0000000000..321effc04d --- /dev/null +++ b/hardware/board/config/brd4276a_brd4001a/sl_pwm_init_led0_config.h @@ -0,0 +1,75 @@ +/***************************************************************************//** + * @file + * @brief PWM Driver + ******************************************************************************* + * # License + * Copyright 2022 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_PWM_INIT_PWM_CONFIG_H +#define SL_PWM_INIT_PWM_CONFIG_H + +#ifdef __cplusplus +extern "C" { +#endif + +// <<< Use Configuration Wizard in Context Menu >>> + +// PWM configuration + +// PWM frequency [Hz] +// Default: 10000 +#define SL_PWM_LED0_FREQUENCY 10000 + +// Polarity +// Active high +// Active low +// Default: PWM_ACTIVE_HIGH +#define SL_PWM_LED0_POLARITY PWM_ACTIVE_HIGH +// end pwm configuration + +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> + +// SL_PWM_LED0 +// $[TIMER_SL_PWM_LED0] +#define SL_PWM_LED0_PERIPHERAL TIMER0 +#define SL_PWM_LED0_PERIPHERAL_NO 0 + +#define SL_PWM_LED0_OUTPUT_CHANNEL 0 +// TIMER0 CC0 on PA05 +#define SL_PWM_LED0_OUTPUT_PORT gpioPortA +#define SL_PWM_LED0_OUTPUT_PIN 5 + +// [TIMER_SL_PWM_LED0]$ + +// <<< sl:end pin_tool >>> + +#ifdef __cplusplus +} +#endif + +#endif // SL_PWM_INIT_PWM_CONFIG_H diff --git a/hardware/board/config/brd4276a_brd4001a/sl_pwm_init_led1_config.h b/hardware/board/config/brd4276a_brd4001a/sl_pwm_init_led1_config.h new file mode 100644 index 0000000000..c51f3b1f72 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4001a/sl_pwm_init_led1_config.h @@ -0,0 +1,75 @@ +/***************************************************************************//** + * @file + * @brief PWM Driver + ******************************************************************************* + * # License + * Copyright 2022 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_PWM_INIT_PWM_CONFIG_H +#define SL_PWM_INIT_PWM_CONFIG_H + +#ifdef __cplusplus +extern "C" { +#endif + +// <<< Use Configuration Wizard in Context Menu >>> + +// PWM configuration + +// PWM frequency [Hz] +// Default: 10000 +#define SL_PWM_LED1_FREQUENCY 10000 + +// Polarity +// Active high +// Active low +// Default: PWM_ACTIVE_HIGH +#define SL_PWM_LED1_POLARITY PWM_ACTIVE_HIGH +// end pwm configuration + +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> + +// SL_PWM_LED1 +// $[TIMER_SL_PWM_LED1] +#define SL_PWM_LED1_PERIPHERAL TIMER1 +#define SL_PWM_LED1_PERIPHERAL_NO 1 + +#define SL_PWM_LED1_OUTPUT_CHANNEL 0 +// TIMER1 CC0 on PA06 +#define SL_PWM_LED1_OUTPUT_PORT gpioPortA +#define SL_PWM_LED1_OUTPUT_PIN 6 + +// [TIMER_SL_PWM_LED1]$ + +// <<< sl:end pin_tool >>> + +#ifdef __cplusplus +} +#endif + +#endif // SL_PWM_INIT_PWM_CONFIG_H diff --git a/hardware/board/config/brd4276a_brd4001a/sl_rail_util_pa_config.h b/hardware/board/config/brd4276a_brd4001a/sl_rail_util_pa_config.h new file mode 100644 index 0000000000..a98f953491 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4001a/sl_rail_util_pa_config.h @@ -0,0 +1,88 @@ +/***************************************************************************//** + * @file + * @brief Power Amplifier configuration file. + ******************************************************************************* + * # License + * Copyright 2020 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_RAIL_UTIL_PA_CONFIG_H +#define SL_RAIL_UTIL_PA_CONFIG_H + +#include "rail_chip_specific.h" + +// <<< Use Configuration Wizard in Context Menu >>> +// PA configuration + +// Initial PA Power (deci-dBm, 100 = 10.0 dBm) +// Default: 100 +#define SL_RAIL_UTIL_PA_POWER_DECI_DBM 250 + +// PA Ramp Time (microseconds) +// <0-65535:1> +// Default: 10 +#define SL_RAIL_UTIL_PA_RAMP_TIME_US 44 + +// Milli-volts on PA supply pin (PA_VDD) +// <3300=> 3.3V +// <3600=> 3.6V +// Default: 3600 +#define SL_RAIL_UTIL_PA_VOLTAGE_MV 3300 + +// 2.4 GHz PA Selection +// Highest Possible +// High Power (chip-specific) +// Medium Power (chip-specific) +// Low Power +// Disable +// Default: RAIL_TX_POWER_MODE_2P4GIG_HIGHEST +#define SL_RAIL_UTIL_PA_SELECTION_2P4GHZ RAIL_TX_POWER_MODE_NONE + +// Sub-1 GHz PA Selection +// Disable +// Default: RAIL_TX_POWER_MODE_NONE +#define SL_RAIL_UTIL_PA_SELECTION_SUBGHZ RAIL_TX_POWER_MODE_SUBGIG_HIGHEST + +// OFDM PA Selection +// OFDM mode +// Default: RAIL_TX_POWER_MODE_OFDM_PA_POWERSETTING_TABLE +#define SL_RAIL_UTIL_PA_SELECTION_OFDM RAIL_TX_POWER_MODE_OFDM_PA_POWERSETTING_TABLE + +// Header file containing custom PA curves +// Default: "pa_curves_efr32.h" +#define SL_RAIL_UTIL_PA_CURVE_HEADER "efr32xg25/pa_curves_brd4276a.h" + +// Header file containing PA curve types +// Default: "pa_curve_types_efr32.h" +#define SL_RAIL_UTIL_PA_CURVE_TYPES "pa_curve_types_efr32.h" + +// Enable PA Calibration +// Default: 1 +#define SL_RAIL_UTIL_PA_CALIBRATION_ENABLE 1 + +// +// <<< end of configuration section >>> + +#endif // SL_RAIL_UTIL_PA_CONFIG_H diff --git a/hardware/board/config/brd4276a_brd4001a/sl_rail_util_pti_config.h b/hardware/board/config/brd4276a_brd4001a/sl_rail_util_pti_config.h new file mode 100644 index 0000000000..df328986d9 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4001a/sl_rail_util_pti_config.h @@ -0,0 +1,73 @@ +/***************************************************************************//** + * @file + * @brief Packet Trace Information configuration file. + ******************************************************************************* + * # License + * Copyright 2020 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_RAIL_UTIL_PTI_CONFIG_H +#define SL_RAIL_UTIL_PTI_CONFIG_H + +#include "rail_types.h" + +// <<< Use Configuration Wizard in Context Menu >>> +// PTI Configuration + +// PTI mode +// UART +// UART onewire +// SPI +// Disabled +// Default: RAIL_PTI_MODE_UART +#define SL_RAIL_UTIL_PTI_MODE RAIL_PTI_MODE_UART + +// PTI Baud Rate (Hertz) +// <147800-20000000:1> +// Default: 3200000 +#define SL_RAIL_UTIL_PTI_BAUD_RATE_HZ 3200000 + +// +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> +// SL_RAIL_UTIL_PTI +// $[PTI_SL_RAIL_UTIL_PTI] +#define SL_RAIL_UTIL_PTI_PERIPHERAL PTI + +// PTI DOUT on PD03 +#define SL_RAIL_UTIL_PTI_DOUT_PORT gpioPortD +#define SL_RAIL_UTIL_PTI_DOUT_PIN 3 + +// PTI DFRAME on PD04 +#define SL_RAIL_UTIL_PTI_DFRAME_PORT gpioPortD +#define SL_RAIL_UTIL_PTI_DFRAME_PIN 4 + + +// [PTI_SL_RAIL_UTIL_PTI]$ + +// <<< sl:end pin_tool >>> + +#endif // SL_RAIL_UTIL_PTI_CONFIG_H diff --git a/hardware/board/config/brd4276a_brd4001a/sl_rail_util_rssi_config.h b/hardware/board/config/brd4276a_brd4001a/sl_rail_util_rssi_config.h new file mode 100644 index 0000000000..94f5f847b9 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4001a/sl_rail_util_rssi_config.h @@ -0,0 +1,44 @@ +/***************************************************************************//** + * @file + * @brief RSSI configuration header file. + ******************************************************************************* + * # License + * Copyright 2020 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_RAIL_UTIL_RSSI_CONFIG_H +#define SL_RAIL_UTIL_RSSI_CONFIG_H + +// <<< Use Configuration Wizard in Context Menu >>> + +// RSSI Offset Configuration + +// Software RSSI offset value +// Default: 0 +#define SL_RAIL_UTIL_RSSI_OFFSET -13 + +// +// <<< end of configuration section >>> +#endif // SL_RAIL_UTIL_RSSI_CONFIG_H diff --git a/hardware/board/config/brd4276a_brd4001a/sl_simple_button_btn0_config.h b/hardware/board/config/brd4276a_brd4001a/sl_simple_button_btn0_config.h new file mode 100644 index 0000000000..ab0634f889 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4001a/sl_simple_button_btn0_config.h @@ -0,0 +1,58 @@ +/***************************************************************************//** + * @file + * @brief Simple Button Driver User Config + ******************************************************************************* + * # License + * Copyright 2019 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_SIMPLE_BUTTON_BTN0_CONFIG_H +#define SL_SIMPLE_BUTTON_BTN0_CONFIG_H + +#include "em_gpio.h" +#include "sl_simple_button.h" + +// <<< Use Configuration Wizard in Context Menu >>> + +// +// Interrupt +// Poll and Debounce +// Poll +// Default: SL_SIMPLE_BUTTON_MODE_INTERRUPT +#define SL_SIMPLE_BUTTON_BTN0_MODE SL_SIMPLE_BUTTON_MODE_INTERRUPT +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> + +// SL_SIMPLE_BUTTON_BTN0 +// $[GPIO_SL_SIMPLE_BUTTON_BTN0] +#define SL_SIMPLE_BUTTON_BTN0_PORT gpioPortB +#define SL_SIMPLE_BUTTON_BTN0_PIN 0 + +// [GPIO_SL_SIMPLE_BUTTON_BTN0]$ + +// <<< sl:end pin_tool >>> + +#endif // SL_SIMPLE_BUTTON_BTN0_CONFIG_H diff --git a/hardware/board/config/brd4276a_brd4001a/sl_simple_button_btn1_config.h b/hardware/board/config/brd4276a_brd4001a/sl_simple_button_btn1_config.h new file mode 100644 index 0000000000..ed9afe4790 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4001a/sl_simple_button_btn1_config.h @@ -0,0 +1,58 @@ +/***************************************************************************//** + * @file + * @brief Simple Button Driver User Config + ******************************************************************************* + * # License + * Copyright 2019 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_SIMPLE_BUTTON_BTN1_CONFIG_H +#define SL_SIMPLE_BUTTON_BTN1_CONFIG_H + +#include "em_gpio.h" +#include "sl_simple_button.h" + +// <<< Use Configuration Wizard in Context Menu >>> + +// +// Interrupt +// Poll and Debounce +// Poll +// Default: SL_SIMPLE_BUTTON_MODE_INTERRUPT +#define SL_SIMPLE_BUTTON_BTN1_MODE SL_SIMPLE_BUTTON_MODE_INTERRUPT +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> + +// SL_SIMPLE_BUTTON_BTN1 +// $[GPIO_SL_SIMPLE_BUTTON_BTN1] +#define SL_SIMPLE_BUTTON_BTN1_PORT gpioPortB +#define SL_SIMPLE_BUTTON_BTN1_PIN 1 + +// [GPIO_SL_SIMPLE_BUTTON_BTN1]$ + +// <<< sl:end pin_tool >>> + +#endif // SL_SIMPLE_BUTTON_BTN1_CONFIG_H diff --git a/hardware/board/config/brd4276a_brd4001a/sl_simple_led_led0_config.h b/hardware/board/config/brd4276a_brd4001a/sl_simple_led_led0_config.h new file mode 100644 index 0000000000..3891ad0377 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4001a/sl_simple_led_led0_config.h @@ -0,0 +1,57 @@ +/***************************************************************************//** + * @file + * @brief Simple Led Driver Configuration + ******************************************************************************* + * # License + * Copyright 2019 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_SIMPLE_LED_LED0_CONFIG_H +#define SL_SIMPLE_LED_LED0_CONFIG_H + +// <<< Use Configuration Wizard in Context Menu >>> + +// Simple LED configuration +// +// Active low +// Active high +// Default: SL_SIMPLE_LED_POLARITY_ACTIVE_HIGH +#define SL_SIMPLE_LED_LED0_POLARITY SL_SIMPLE_LED_POLARITY_ACTIVE_HIGH +// end led configuration + +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> + +// SL_SIMPLE_LED_LED0 +// $[GPIO_SL_SIMPLE_LED_LED0] +#define SL_SIMPLE_LED_LED0_PORT gpioPortA +#define SL_SIMPLE_LED_LED0_PIN 5 + +// [GPIO_SL_SIMPLE_LED_LED0]$ + +// <<< sl:end pin_tool >>> + +#endif // SL_SIMPLE_LED_LED0_CONFIG_H diff --git a/hardware/board/config/brd4276a_brd4001a/sl_simple_led_led1_config.h b/hardware/board/config/brd4276a_brd4001a/sl_simple_led_led1_config.h new file mode 100644 index 0000000000..f8759c4c1a --- /dev/null +++ b/hardware/board/config/brd4276a_brd4001a/sl_simple_led_led1_config.h @@ -0,0 +1,57 @@ +/***************************************************************************//** + * @file + * @brief Simple Led Driver Configuration + ******************************************************************************* + * # License + * Copyright 2019 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_SIMPLE_LED_LED1_CONFIG_H +#define SL_SIMPLE_LED_LED1_CONFIG_H + +// <<< Use Configuration Wizard in Context Menu >>> + +// Simple LED configuration +// +// Active low +// Active high +// Default: SL_SIMPLE_LED_POLARITY_ACTIVE_HIGH +#define SL_SIMPLE_LED_LED1_POLARITY SL_SIMPLE_LED_POLARITY_ACTIVE_HIGH +// end led configuration + +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> + +// SL_SIMPLE_LED_LED1 +// $[GPIO_SL_SIMPLE_LED_LED1] +#define SL_SIMPLE_LED_LED1_PORT gpioPortA +#define SL_SIMPLE_LED_LED1_PIN 6 + +// [GPIO_SL_SIMPLE_LED_LED1]$ + +// <<< sl:end pin_tool >>> + +#endif // SL_SIMPLE_LED_LED1_CONFIG_H diff --git a/hardware/board/config/brd4276a_brd4001a/sl_spidrv_eusart_exp_config.h b/hardware/board/config/brd4276a_brd4001a/sl_spidrv_eusart_exp_config.h new file mode 100644 index 0000000000..701d4b163a --- /dev/null +++ b/hardware/board/config/brd4276a_brd4001a/sl_spidrv_eusart_exp_config.h @@ -0,0 +1,102 @@ +/***************************************************************************//** + * @file + * @brief SPIDRV_EUSART Config + ******************************************************************************* + * # License + * Copyright 2019 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_SPIDRV_EUSART_EXP_CONFIG_H +#define SL_SPIDRV_EUSART_EXP_CONFIG_H + +#include "spidrv.h" + +// <<< Use Configuration Wizard in Context Menu >>> +// SPIDRV settings + +// SPI bitrate +// Default: 1000000 +#define SL_SPIDRV_EUSART_EXP_BITRATE 1000000 + +// SPI frame length <7-16> +// Default: 8 +#define SL_SPIDRV_EUSART_EXP_FRAME_LENGTH 8 + +// SPI mode +// Master +// Slave +#define SL_SPIDRV_EUSART_EXP_TYPE spidrvMaster + +// Bit order on the SPI bus +// LSB transmitted first +// MSB transmitted first +#define SL_SPIDRV_EUSART_EXP_BIT_ORDER spidrvBitOrderMsbFirst + +// SPI clock mode +// SPI mode 0: CLKPOL=0, CLKPHA=0 +// SPI mode 1: CLKPOL=0, CLKPHA=1 +// SPI mode 2: CLKPOL=1, CLKPHA=0 +// SPI mode 3: CLKPOL=1, CLKPHA=1 +#define SL_SPIDRV_EUSART_EXP_CLOCK_MODE spidrvClockMode0 + +// SPI master chip select (CS) control scheme. +// CS controlled by the SPI driver +// CS controlled by the application +#define SL_SPIDRV_EUSART_EXP_CS_CONTROL spidrvCsControlAuto + +// SPI slave transfer start scheme +// Transfer starts immediately +// Transfer starts when the bus is idle (CS deasserted) +// Only applies if instance type is spidrvSlave +#define SL_SPIDRV_EUSART_EXP_SLAVE_START_MODE spidrvSlaveStartImmediate +// +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> +// SL_SPIDRV_EUSART_EXP +// $[EUSART_SL_SPIDRV_EUSART_EXP] +#define SL_SPIDRV_EUSART_EXP_PERIPHERAL EUSART1 +#define SL_SPIDRV_EUSART_EXP_PERIPHERAL_NO 1 + +// EUSART1 TX on PC00 +#define SL_SPIDRV_EUSART_EXP_TX_PORT gpioPortC +#define SL_SPIDRV_EUSART_EXP_TX_PIN 0 + +// EUSART1 RX on PC01 +#define SL_SPIDRV_EUSART_EXP_RX_PORT gpioPortC +#define SL_SPIDRV_EUSART_EXP_RX_PIN 1 + +// EUSART1 SCLK on PC02 +#define SL_SPIDRV_EUSART_EXP_SCLK_PORT gpioPortC +#define SL_SPIDRV_EUSART_EXP_SCLK_PIN 2 + +// EUSART1 CS on PB04 +#define SL_SPIDRV_EUSART_EXP_CS_PORT gpioPortB +#define SL_SPIDRV_EUSART_EXP_CS_PIN 4 + +// [EUSART_SL_SPIDRV_EUSART_EXP]$ +// <<< sl:end pin_tool >>> + +#endif // SL_SPIDRV_EUSART_EXP_CONFIG_HEUSART_ diff --git a/hardware/board/config/brd4276a_brd4001a/sl_uartdrv_eusart_exp_config.h b/hardware/board/config/brd4276a_brd4001a/sl_uartdrv_eusart_exp_config.h new file mode 100644 index 0000000000..3554ed257e --- /dev/null +++ b/hardware/board/config/brd4276a_brd4001a/sl_uartdrv_eusart_exp_config.h @@ -0,0 +1,113 @@ +/***************************************************************************//** + * @file + * @brief UARTDRV_EUSART Config + ******************************************************************************* + * # License + * Copyright 2019 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_UARTDRV_EUSART_EXP_CONFIG_H +#define SL_UARTDRV_EUSART_EXP_CONFIG_H + +#include "em_eusart.h" +// <<< Use Configuration Wizard in Context Menu >>> + +// EUSART settings +// Baud rate +// Default: 115200 +#define SL_UARTDRV_EUSART_EXP_BAUDRATE 115200 + +// Low frequency mode +// True +// False +#define SL_UARTDRV_EUSART_EXP_LF_MODE false + +// Parity mode to use +// No Parity +// Even parity +// Odd parity +// Default: eusartNoParity +#define SL_UARTDRV_EUSART_EXP_PARITY eusartNoParity + +// Number of stop bits to use. +// 0.5 stop bits +// 1 stop bits +// 1.5 stop bits +// 2 stop bits +// Default: eusartStopbits1 +#define SL_UARTDRV_EUSART_EXP_STOP_BITS eusartStopbits1 + +// Flow control method +// None +// Software XON/XOFF +// nRTS/nCTS hardware handshake +// UART peripheral controls nRTS/nCTS +// Default: uartdrvFlowControlHwUart +#define SL_UARTDRV_EUSART_EXP_FLOW_CONTROL_TYPE uartdrvFlowControlNone + +// Oversampling selection +// 16x oversampling +// 8x oversampling +// 6x oversampling +// 4x oversampling +// Oversampling disabled +// Default: eusartOVS16 +#define SL_UARTDRV_EUSART_EXP_OVERSAMPLING eusartOVS16 + +// Majority vote disable for 16x, 8x and 6x oversampling modes +// False +// True +// Default: eusartMajorityVoteEnable +#define SL_UARTDRV_EUSART_EXP_MVDIS eusartMajorityVoteEnable + +// Size of the receive operation queue +// Default: 6 +#define SL_UARTDRV_EUSART_EXP_RX_BUFFER_SIZE 6 + +// Size of the transmit operation queue +// Default: 6 +#define SL_UARTDRV_EUSART_EXP_TX_BUFFER_SIZE 6 +// +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> +// SL_UARTDRV_EUSART_EXP +// $[EUSART_SL_UARTDRV_EUSART_EXP] +#define SL_UARTDRV_EUSART_EXP_PERIPHERAL EUSART0 +#define SL_UARTDRV_EUSART_EXP_PERIPHERAL_NO 0 + +// EUSART0 TX on PA08 +#define SL_UARTDRV_EUSART_EXP_TX_PORT gpioPortA +#define SL_UARTDRV_EUSART_EXP_TX_PIN 8 + +// EUSART0 RX on PA09 +#define SL_UARTDRV_EUSART_EXP_RX_PORT gpioPortA +#define SL_UARTDRV_EUSART_EXP_RX_PIN 9 + + + +// [EUSART_SL_UARTDRV_EUSART_EXP]$ +// <<< sl:end pin_tool >>> +#endif // SL_UARTDRV_EUSART_EXP_CONFIG_H diff --git a/hardware/board/config/brd4276a_brd4001a/sl_uartdrv_eusart_vcom_config.h b/hardware/board/config/brd4276a_brd4001a/sl_uartdrv_eusart_vcom_config.h new file mode 100644 index 0000000000..c4dc8e9cf0 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4001a/sl_uartdrv_eusart_vcom_config.h @@ -0,0 +1,119 @@ +/***************************************************************************//** + * @file + * @brief UARTDRV_EUSART Config + ******************************************************************************* + * # License + * Copyright 2019 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_UARTDRV_EUSART_VCOM_CONFIG_H +#define SL_UARTDRV_EUSART_VCOM_CONFIG_H + +#include "em_eusart.h" +// <<< Use Configuration Wizard in Context Menu >>> + +// EUSART settings +// Baud rate +// Default: 115200 +#define SL_UARTDRV_EUSART_VCOM_BAUDRATE 115200 + +// Low frequency mode +// True +// False +#define SL_UARTDRV_EUSART_VCOM_LF_MODE false + +// Parity mode to use +// No Parity +// Even parity +// Odd parity +// Default: eusartNoParity +#define SL_UARTDRV_EUSART_VCOM_PARITY eusartNoParity + +// Number of stop bits to use. +// 0.5 stop bits +// 1 stop bits +// 1.5 stop bits +// 2 stop bits +// Default: eusartStopbits1 +#define SL_UARTDRV_EUSART_VCOM_STOP_BITS eusartStopbits1 + +// Flow control method +// None +// Software XON/XOFF +// nRTS/nCTS hardware handshake +// UART peripheral controls nRTS/nCTS +// Default: uartdrvFlowControlHwUart +#define SL_UARTDRV_EUSART_VCOM_FLOW_CONTROL_TYPE uartdrvFlowControlHwUart + +// Oversampling selection +// 16x oversampling +// 8x oversampling +// 6x oversampling +// 4x oversampling +// Oversampling disabled +// Default: eusartOVS16 +#define SL_UARTDRV_EUSART_VCOM_OVERSAMPLING eusartOVS16 + +// Majority vote disable for 16x, 8x and 6x oversampling modes +// False +// True +// Default: eusartMajorityVoteEnable +#define SL_UARTDRV_EUSART_VCOM_MVDIS eusartMajorityVoteEnable + +// Size of the receive operation queue +// Default: 6 +#define SL_UARTDRV_EUSART_VCOM_RX_BUFFER_SIZE 6 + +// Size of the transmit operation queue +// Default: 6 +#define SL_UARTDRV_EUSART_VCOM_TX_BUFFER_SIZE 6 +// +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> +// SL_UARTDRV_EUSART_VCOM +// $[EUSART_SL_UARTDRV_EUSART_VCOM] +#define SL_UARTDRV_EUSART_VCOM_PERIPHERAL EUSART0 +#define SL_UARTDRV_EUSART_VCOM_PERIPHERAL_NO 0 + +// EUSART0 TX on PA08 +#define SL_UARTDRV_EUSART_VCOM_TX_PORT gpioPortA +#define SL_UARTDRV_EUSART_VCOM_TX_PIN 8 + +// EUSART0 RX on PA09 +#define SL_UARTDRV_EUSART_VCOM_RX_PORT gpioPortA +#define SL_UARTDRV_EUSART_VCOM_RX_PIN 9 + +// EUSART0 CTS on PA10 +#define SL_UARTDRV_EUSART_VCOM_CTS_PORT gpioPortA +#define SL_UARTDRV_EUSART_VCOM_CTS_PIN 10 + +// EUSART0 RTS on PA00 +#define SL_UARTDRV_EUSART_VCOM_RTS_PORT gpioPortA +#define SL_UARTDRV_EUSART_VCOM_RTS_PIN 0 + +// [EUSART_SL_UARTDRV_EUSART_VCOM]$ +// <<< sl:end pin_tool >>> +#endif // SL_UARTDRV_EUSART_VCOM_CONFIG_H diff --git a/hardware/board/config/brd4276a_brd4001a/sl_usbd_driver_config.h b/hardware/board/config/brd4276a_brd4001a/sl_usbd_driver_config.h new file mode 100644 index 0000000000..005a845bd2 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4001a/sl_usbd_driver_config.h @@ -0,0 +1,30 @@ +/***************************************************************************//** + * @file + * @brief USBD Hardware Configuration + ******************************************************************************* + * # License + * Copyright 2021 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * The licensor of this software is Silicon Laboratories Inc. Your use of this + * software is governed by the terms of Silicon Labs Master Software License + * Agreement (MSLA) available at + * www.silabs.com/about-us/legal/master-software-license-agreement. This + * software is distributed to you in Source Code format and is governed by the + * sections of the MSLA applicable to Source Code. + * + ******************************************************************************/ + +#ifndef SL_USBD_DRIVER_CONFIG_H +#define SL_USBD_DRIVER_CONFIG_H + +// <<< sl:start pin_tool >>> +// SL_USBD_DRIVER_VBUS_SENSE +// $[GPIO_SL_USBD_DRIVER_VBUS_SENSE] +#define SL_USBD_DRIVER_VBUS_SENSE_PORT gpioPortD +#define SL_USBD_DRIVER_VBUS_SENSE_PIN 2 + +// [GPIO_SL_USBD_DRIVER_VBUS_SENSE]$ +// <<< sl:end pin_tool >>> + +#endif // SL_USBD_DRIVER_CONFIG_H diff --git a/hardware/board/config/brd4276a_brd4002a/btl_euart_driver_cfg.h b/hardware/board/config/brd4276a_brd4002a/btl_euart_driver_cfg.h new file mode 100644 index 0000000000..0c53ebb117 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4002a/btl_euart_driver_cfg.h @@ -0,0 +1,86 @@ +/***************************************************************************//** + * @file + * @brief Configuration header for bootloader euart Driver + ******************************************************************************* + * # License + * Copyright 2021 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * The licensor of this software is Silicon Laboratories Inc. Your use of this + * software is governed by the terms of Silicon Labs Master Software License + * Agreement (MSLA) available at + * www.silabs.com/about-us/legal/master-software-license-agreement. This + * software is distributed to you in Source Code format and is governed by the + * sections of the MSLA applicable to Source Code. + * + ******************************************************************************/ +#ifndef BTL_EUART_DRIVER_CONFIG_H +#define BTL_EUART_DRIVER_CONFIG_H + +// <<< Use Configuration Wizard in Context Menu >>> + +// EUART settings + +// Baud rate +// Default: 115200 +#define SL_SERIAL_EUART_BAUD_RATE 115200 + +// Hardware flow control +// Default: 0 +#define SL_SERIAL_EUART_FLOW_CONTROL 0 +// + +// Receive buffer size +// <0-2048:1> +// Default: 512 [0-2048] +#define SL_DRIVER_EUART_RX_BUFFER_SIZE 512 + +// Transmit buffer size +// <0-2048:1> +// Default: 128 [0-2048] +#define SL_DRIVER_EUART_TX_BUFFER_SIZE 128 + +// Virtual COM Port +// Default: 0 +#define SL_VCOM_ENABLE 0 +// + +// + +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> +// SL_SERIAL_EUART +// $[EUSART_SL_SERIAL_EUART] +#define SL_SERIAL_EUART_PERIPHERAL EUSART0 +#define SL_SERIAL_EUART_PERIPHERAL_NO 0 + +// EUSART0 TX on PA08 +#define SL_SERIAL_EUART_TX_PORT gpioPortA +#define SL_SERIAL_EUART_TX_PIN 8 + +// EUSART0 RX on PA09 +#define SL_SERIAL_EUART_RX_PORT gpioPortA +#define SL_SERIAL_EUART_RX_PIN 9 + +// EUSART0 CTS on PA10 +#define SL_SERIAL_EUART_CTS_PORT gpioPortA +#define SL_SERIAL_EUART_CTS_PIN 10 + +// EUSART0 RTS on PA00 +#define SL_SERIAL_EUART_RTS_PORT gpioPortA +#define SL_SERIAL_EUART_RTS_PIN 0 + +// [EUSART_SL_SERIAL_EUART]$ + +// SL_VCOM_ENABLE + +// $[GPIO_SL_VCOM_ENABLE] +#define SL_VCOM_ENABLE_PORT gpioPortA +#define SL_VCOM_ENABLE_PIN 11 + +// [GPIO_SL_VCOM_ENABLE]$ + +// <<< sl:end pin_tool >>> + +#endif // BTL_EUART_DRIVER_CONFIG_H diff --git a/hardware/board/config/brd4276a_brd4002a/btl_gpio_activation_cfg.h b/hardware/board/config/brd4276a_brd4002a/btl_gpio_activation_cfg.h new file mode 100644 index 0000000000..5a28e55052 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4002a/btl_gpio_activation_cfg.h @@ -0,0 +1,47 @@ +/***************************************************************************//** + * @file + * @brief Configuration header for bootloader GPIO Activation + ******************************************************************************* + * # License + * Copyright 2021 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * The licensor of this software is Silicon Laboratories Inc. Your use of this + * software is governed by the terms of Silicon Labs Master Software License + * Agreement (MSLA) available at + * www.silabs.com/about-us/legal/master-software-license-agreement. This + * software is distributed to you in Source Code format and is governed by the + * sections of the MSLA applicable to Source Code. + * + ******************************************************************************/ +#ifndef BTL_GPIO_ACTIVATION_CONFIG_H +#define BTL_GPIO_ACTIVATION_CONFIG_H + +// <<< Use Configuration Wizard in Context Menu >>> + +// Properties of Bootloader Entry + +// Active state +// Low +// High +// Default: LOW +// Enter firmware upgrade mode if GPIO pin has this state +#define SL_GPIO_ACTIVATION_POLARITY LOW + +// + +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> + +// SL_BTL_BUTTON + +// $[GPIO_SL_BTL_BUTTON] +#define SL_BTL_BUTTON_PORT gpioPortB +#define SL_BTL_BUTTON_PIN 0 + +// [GPIO_SL_BTL_BUTTON]$ + +// <<< sl:end pin_tool >>> + +#endif // BTL_GPIO_ACTIVATION_CONFIG_H diff --git a/hardware/board/config/brd4276a_brd4002a/btl_spi_controller_eusart_driver_cfg.h b/hardware/board/config/brd4276a_brd4002a/btl_spi_controller_eusart_driver_cfg.h new file mode 100644 index 0000000000..e20e00a304 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4002a/btl_spi_controller_eusart_driver_cfg.h @@ -0,0 +1,68 @@ +/***************************************************************************//** + * @file + * @brief Configuration header for bootloader Spi Controller Eusart Driver + ******************************************************************************* + * # License + * Copyright 2021 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * The licensor of this software is Silicon Laboratories Inc. Your use of this + * software is governed by the terms of Silicon Labs Master Software License + * Agreement (MSLA) available at + * www.silabs.com/about-us/legal/master-software-license-agreement. This + * software is distributed to you in Source Code format and is governed by the + * sections of the MSLA applicable to Source Code. + * + ******************************************************************************/ +#ifndef BTL_SPI_CONTROLLER_EUSART_DRIVER_CONFIG_H +#define BTL_SPI_CONTROLLER_EUSART_DRIVER_CONFIG_H + +// <<< Use Configuration Wizard in Context Menu >>> + +// SPI Controller EUSART Driver + +// Frequency +// Default: 6400000 +#define SL_EUSART_EXTFLASH_FREQUENCY 6400000 + +// + +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> +// SL_EUSART_EXTFLASH +// $[EUSART_SL_EUSART_EXTFLASH] +#define SL_EUSART_EXTFLASH_PERIPHERAL EUSART1 +#define SL_EUSART_EXTFLASH_PERIPHERAL_NO 1 + +// EUSART1 TX on PC00 +#define SL_EUSART_EXTFLASH_TX_PORT gpioPortC +#define SL_EUSART_EXTFLASH_TX_PIN 0 + +// EUSART1 RX on PC01 +#define SL_EUSART_EXTFLASH_RX_PORT gpioPortC +#define SL_EUSART_EXTFLASH_RX_PIN 1 + +// EUSART1 SCLK on PC02 +#define SL_EUSART_EXTFLASH_SCLK_PORT gpioPortC +#define SL_EUSART_EXTFLASH_SCLK_PIN 2 + +// EUSART1 CS on PA04 +#define SL_EUSART_EXTFLASH_CS_PORT gpioPortA +#define SL_EUSART_EXTFLASH_CS_PIN 4 + +// [EUSART_SL_EUSART_EXTFLASH]$ + +// SL_EXTFLASH_WP +// $[GPIO_SL_EXTFLASH_WP] + +// [GPIO_SL_EXTFLASH_WP]$ + +// SL_EXTFLASH_HOLD +// $[GPIO_SL_EXTFLASH_HOLD] + +// [GPIO_SL_EXTFLASH_HOLD]$ + +// <<< sl:end pin_tool >>> + +#endif // BTL_SPI_CONTROLLER_EUSART_DRIVER_CONFIG_H diff --git a/hardware/board/config/brd4276a_brd4002a/btl_spi_peripheral_eusart_driver_cfg.h b/hardware/board/config/brd4276a_brd4002a/btl_spi_peripheral_eusart_driver_cfg.h new file mode 100644 index 0000000000..6499f8230a --- /dev/null +++ b/hardware/board/config/brd4276a_brd4002a/btl_spi_peripheral_eusart_driver_cfg.h @@ -0,0 +1,71 @@ +/***************************************************************************//** + * @file + * @brief Configuration header for bootloader Spi Peripheral Eusart Driver + ******************************************************************************* + * # License + * Copyright 2021 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * The licensor of this software is Silicon Laboratories Inc. Your use of this + * software is governed by the terms of Silicon Labs Master Software License + * Agreement (MSLA) available at + * www.silabs.com/about-us/legal/master-software-license-agreement. This + * software is distributed to you in Source Code format and is governed by the + * sections of the MSLA applicable to Source Code. + * + ******************************************************************************/ +#ifndef BTL_SPI_PERIPHERAL_EUSART_DRIVER_CONFIG_H +#define BTL_SPI_PERIPHERAL_EUSART_DRIVER_CONFIG_H + +// <<< Use Configuration Wizard in Context Menu >>> + +// SPI Peripheral Eusart Driver + +// Receive buffer size:[0-2048] <0-2048> +// Default: 300 +#define SL_SPI_PERIPHERAL_EUSART_RX_BUFFER_SIZE 300 + +// Transmit buffer size:[0-2048] <0-2048> +// Default: 50 +#define SL_SPI_PERIPHERAL_EUSART_TX_BUFFER_SIZE 50 + +// LDMA channel for SPI RX:[0-1] <0-1> +// Default: 0 +#define SL_SPI_PERIPHERAL_EUSART_LDMA_RX_CHANNEL 0 + +// LDMA channel for SPI TX:[0-1] <0-1> +// Default: 1 +#define SL_SPI_PERIPHERAL_EUSART_LDMA_TX_CHANNEL 1 + +// + +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> +// SL_EUSART_SPINCP + +// $[EUSART_SL_EUSART_SPINCP] +#define SL_EUSART_SPINCP_PERIPHERAL EUSART1 +#define SL_EUSART_SPINCP_PERIPHERAL_NO 1 + +// EUSART1 TX on PC00 +#define SL_EUSART_SPINCP_TX_PORT gpioPortC +#define SL_EUSART_SPINCP_TX_PIN 0 + +// EUSART1 RX on PC01 +#define SL_EUSART_SPINCP_RX_PORT gpioPortC +#define SL_EUSART_SPINCP_RX_PIN 1 + +// EUSART1 CS on PB04 +#define SL_EUSART_SPINCP_CS_PORT gpioPortB +#define SL_EUSART_SPINCP_CS_PIN 4 + +// EUSART1 SCLK on PC02 +#define SL_EUSART_SPINCP_SCLK_PORT gpioPortC +#define SL_EUSART_SPINCP_SCLK_PIN 2 + +// [EUSART_SL_EUSART_SPINCP]$ + +// <<< sl:end pin_tool >>> + +#endif // BTL_SPI_PERIPHERAL_EUSART_DRIVER_CONFIG_H diff --git a/hardware/board/config/brd4276a_brd4002a/iot_flash_cfg_msc.h b/hardware/board/config/brd4276a_brd4002a/iot_flash_cfg_msc.h new file mode 100644 index 0000000000..c2af14bc7d --- /dev/null +++ b/hardware/board/config/brd4276a_brd4002a/iot_flash_cfg_msc.h @@ -0,0 +1,123 @@ +/***************************************************************************//** + * @file iot_flash_cfg_inst.h + * @brief Common I/O flash instance configurations. + ******************************************************************************* + * # License + * Copyright 2020 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +/******************************************************************************* + * SAFE GUARD + ******************************************************************************/ + +#ifndef _IOT_FLASH_CFG_MSC_H_ +#define _IOT_FLASH_CFG_MSC_H_ + +/******************************************************************************* + * Flash Default Configs + ******************************************************************************/ + +// <<< Use Configuration Wizard in Context Menu >>> + +// Flash General Options + +// Instance number +// Instance number used when iot_flash_open() is called. +// Default: 0 +#define IOT_FLASH_CFG_MSC_INST_NUM 0 + +// External Flash Base Address +// Hex value of the base address of the external flash used. +// Default: 0x0 +#define IOT_FLASH_CFG_MSC_EXTERNAL_FLASH_BASE 0x0 + +// Instance type +// <0=> Internal Flash (MSC) +// <1=> External Flash (SPI) +// Specify whether this instance is for internal flash (MSC) +// or an external SPI flash. If external, then you need to setup +// SPI configs below. +// Default: 0 +#define IOT_FLASH_CFG_MSC_INST_TYPE 0 + +// + +// SPI Configuration + +// Default SPI bitrate +// Default: 1000000 +#define IOT_FLASH_CFG_MSC_SPI_BITRATE 1000000 + +// Default SPI frame length <4-16> +// Default: 8 +#define IOT_FLASH_CFG_MSC_SPI_FRAME_LENGTH 8 + +// Default SPI master/slave mode +// Master +// Slave +#define IOT_FLASH_CFG_MSC_SPI_TYPE spidrvMaster + +// Default SPI bit order +// LSB transmitted first +// MSB transmitted first +#define IOT_FLASH_CFG_MSC_SPI_BIT_ORDER spidrvBitOrderMsbFirst + +// Default SPI clock mode +// SPI mode 0: CLKPOL=0, CLKPHA=0 +// SPI mode 1: CLKPOL=0, CLKPHA=1 +// SPI mode 2: CLKPOL=1, CLKPHA=0 +// SPI mode 3: CLKPOL=1, CLKPHA=1 +#define IOT_FLASH_CFG_MSC_SPI_CLOCK_MODE spidrvClockMode0 + +// Default SPI CS control scheme +// CS controlled by the SPI driver +// CS controlled by the application +#define IOT_FLASH_CFG_MSC_SPI_CS_CONTROL spidrvCsControlApplication + +// Default SPI transfer scheme +// Transfer starts immediately +// Transfer starts when the bus is idle +#define IOT_FLASH_CFG_MSC_SPI_SLAVE_START_MODE spidrvSlaveStartImmediate + +// + +// <<< end of configuration section >>> + +/******************************************************************************* + * EXTERNAL FLASH: H/W PERIPHERAL CONFIG + ******************************************************************************/ + +// <<< sl:start pin_tool >>> +// IOT_FLASH_CFG_MSC_SPI +// $[USART_IOT_FLASH_CFG_MSC_SPI] + +// [USART_IOT_FLASH_CFG_MSC_SPI]$ +// <<< sl:end pin_tool >>> + +/******************************************************************************* + * SAFE GUARD + ******************************************************************************/ + +#endif /* _IOT_FLASH_CFG_MSC_H_ */ diff --git a/hardware/board/config/brd4276a_brd4002a/iot_i2c_cfg_exp.h b/hardware/board/config/brd4276a_brd4002a/iot_i2c_cfg_exp.h new file mode 100644 index 0000000000..95a5cec31d --- /dev/null +++ b/hardware/board/config/brd4276a_brd4002a/iot_i2c_cfg_exp.h @@ -0,0 +1,106 @@ +/***************************************************************************//** + * @file IOT_I2C_CFG_EXP_inst.h + * @brief Common I/O I2C instance configuration. + ******************************************************************************* + * # License + * Copyright 2020 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +/******************************************************************************* + * SAFE GUARD + ******************************************************************************/ + +#ifndef _IOT_I2C_CFG_EXP_H_ +#define _IOT_I2C_CFG_EXP_H_ + +/******************************************************************************* + * I2C Default Configs + ******************************************************************************/ + +// <<< Use Configuration Wizard in Context Menu >>> + +// I2C General Options + +// Instance number +// Instance number used when iot_i2c_open() is called. +// Default: 0 +#define IOT_I2C_CFG_EXP_INST_NUM 0 + +// Default timeout (in msec) +// Default: 500 +#define IOT_I2C_CFG_EXP_DEFAULT_TIMEOUT 500 + +// Default bus speed +// <100000=> Standard mode +// <400000=> Fast mode +// <1000000=> Fast plus mode +// <3400000=> High speed mode +// Default: 400000 +#define IOT_I2C_CFG_EXP_DEFAULT_FREQ 400000 + +// Accept NACK +// If the driver receives NACK during a transfer, the transfer is halted +// immediately but it is not considered as an error. Instead, the driver +// returns success status (useful for test purposes). +// Default: 0 +#define IOT_I2C_CFG_EXP_ACCEPT_NACK 0 + +// + +// <<< end of configuration section >>> + +/******************************************************************************* + * H/W PERIPHERAL CONFIG + ******************************************************************************/ + +// <<< sl:start pin_tool >>> + +// IOT_I2C_CFG_EXP_ENABLE +// $[GPIO_IOT_I2C_CFG_EXP_ENABLE] + +// [GPIO_IOT_I2C_CFG_EXP_ENABLE]$ + +// IOT_I2C_CFG_EXP +// $[I2C_IOT_I2C_CFG_EXP] +#define IOT_I2C_CFG_EXP_PERIPHERAL I2C0 +#define IOT_I2C_CFG_EXP_PERIPHERAL_NO 0 + +// I2C0 SCL on PB02 +#define IOT_I2C_CFG_EXP_SCL_PORT gpioPortB +#define IOT_I2C_CFG_EXP_SCL_PIN 2 + +// I2C0 SDA on PB03 +#define IOT_I2C_CFG_EXP_SDA_PORT gpioPortB +#define IOT_I2C_CFG_EXP_SDA_PIN 3 + +// [I2C_IOT_I2C_CFG_EXP]$ + +// <<< sl:end pin_tool >>> + +/******************************************************************************* + * SAFE GUARD + ******************************************************************************/ + +#endif /* _IOT_I2C_CFG_EXP_H_ */ diff --git a/hardware/board/config/brd4276a_brd4002a/iot_i2c_cfg_sensor.h b/hardware/board/config/brd4276a_brd4002a/iot_i2c_cfg_sensor.h new file mode 100644 index 0000000000..4c33ccd7b9 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4002a/iot_i2c_cfg_sensor.h @@ -0,0 +1,106 @@ +/***************************************************************************//** + * @file IOT_I2C_CFG_SENSOR_inst.h + * @brief Common I/O I2C instance configuration. + ******************************************************************************* + * # License + * Copyright 2020 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +/******************************************************************************* + * SAFE GUARD + ******************************************************************************/ + +#ifndef _IOT_I2C_CFG_SENSOR_H_ +#define _IOT_I2C_CFG_SENSOR_H_ + +/******************************************************************************* + * I2C Default Configs + ******************************************************************************/ + +// <<< Use Configuration Wizard in Context Menu >>> + +// I2C General Options + +// Instance number +// Instance number used when iot_i2c_open() is called. +// Default: 0 +#define IOT_I2C_CFG_SENSOR_INST_NUM 0 + +// Default timeout (in msec) +// Default: 500 +#define IOT_I2C_CFG_SENSOR_DEFAULT_TIMEOUT 500 + +// Default bus speed +// <100000=> Standard mode +// <400000=> Fast mode +// <1000000=> Fast plus mode +// <3400000=> High speed mode +// Default: 400000 +#define IOT_I2C_CFG_SENSOR_DEFAULT_FREQ 400000 + +// Accept NACK +// If the driver receives NACK during a transfer, the transfer is halted +// immediately but it is not considered as an error. Instead, the driver +// returns success status (useful for test purposes). +// Default: 0 +#define IOT_I2C_CFG_SENSOR_ACCEPT_NACK 0 + +// + +// <<< end of configuration section >>> + +/******************************************************************************* + * H/W PERIPHERAL CONFIG + ******************************************************************************/ + +// <<< sl:start pin_tool >>> + +// IOT_I2C_CFG_SENSOR_ENABLE +// $[GPIO_IOT_I2C_CFG_SENSOR_ENABLE] + +// [GPIO_IOT_I2C_CFG_SENSOR_ENABLE]$ + +// IOT_I2C_CFG_SENSOR +// $[I2C_IOT_I2C_CFG_SENSOR] +#define IOT_I2C_CFG_SENSOR_PERIPHERAL I2C0 +#define IOT_I2C_CFG_SENSOR_PERIPHERAL_NO 0 + +// I2C0 SCL on PB02 +#define IOT_I2C_CFG_SENSOR_SCL_PORT gpioPortB +#define IOT_I2C_CFG_SENSOR_SCL_PIN 2 + +// I2C0 SDA on PB03 +#define IOT_I2C_CFG_SENSOR_SDA_PORT gpioPortB +#define IOT_I2C_CFG_SENSOR_SDA_PIN 3 + +// [I2C_IOT_I2C_CFG_SENSOR]$ + +// <<< sl:end pin_tool >>> + +/******************************************************************************* + * SAFE GUARD + ******************************************************************************/ + +#endif /* _IOT_I2C_CFG_SENSOR_H_ */ diff --git a/hardware/board/config/brd4276a_brd4002a/iot_i2c_cfg_test.h b/hardware/board/config/brd4276a_brd4002a/iot_i2c_cfg_test.h new file mode 100644 index 0000000000..e4669959e0 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4002a/iot_i2c_cfg_test.h @@ -0,0 +1,106 @@ +/***************************************************************************//** + * @file IOT_I2C_CFG_TEST_inst.h + * @brief Common I/O I2C instance configuration. + ******************************************************************************* + * # License + * Copyright 2020 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +/******************************************************************************* + * SAFE GUARD + ******************************************************************************/ + +#ifndef _IOT_I2C_CFG_TEST_H_ +#define _IOT_I2C_CFG_TEST_H_ + +/******************************************************************************* + * I2C Default Configs + ******************************************************************************/ + +// <<< Use Configuration Wizard in Context Menu >>> + +// I2C General Options + +// Instance number +// Instance number used when iot_i2c_open() is called. +// Default: 0 +#define IOT_I2C_CFG_TEST_INST_NUM 0 + +// Default timeout (in msec) +// Default: 500 +#define IOT_I2C_CFG_TEST_DEFAULT_TIMEOUT 500 + +// Default bus speed +// <100000=> Standard mode +// <400000=> Fast mode +// <1000000=> Fast plus mode +// <3400000=> High speed mode +// Default: 400000 +#define IOT_I2C_CFG_TEST_DEFAULT_FREQ 400000 + +// Accept NACK +// If the driver receives NACK during a transfer, the transfer is halted +// immediately but it is not considered as an error. Instead, the driver +// returns success status (useful for test purposes). +// Default: 0 +#define IOT_I2C_CFG_TEST_ACCEPT_NACK 1 + +// + +// <<< end of configuration section >>> + +/******************************************************************************* + * H/W PERIPHERAL CONFIG + ******************************************************************************/ + +// <<< sl:start pin_tool >>> + +// IOT_I2C_CFG_TEST_ENABLE +// $[GPIO_IOT_I2C_CFG_TEST_ENABLE] + +// [GPIO_IOT_I2C_CFG_TEST_ENABLE]$ + +// IOT_I2C_CFG_TEST +// $[I2C_IOT_I2C_CFG_TEST] +#define IOT_I2C_CFG_TEST_PERIPHERAL I2C0 +#define IOT_I2C_CFG_TEST_PERIPHERAL_NO 0 + +// I2C0 SCL on PB02 +#define IOT_I2C_CFG_TEST_SCL_PORT gpioPortB +#define IOT_I2C_CFG_TEST_SCL_PIN 2 + +// I2C0 SDA on PB03 +#define IOT_I2C_CFG_TEST_SDA_PORT gpioPortB +#define IOT_I2C_CFG_TEST_SDA_PIN 3 + +// [I2C_IOT_I2C_CFG_TEST]$ + +// <<< sl:end pin_tool >>> + +/******************************************************************************* + * SAFE GUARD + ******************************************************************************/ + +#endif /* _IOT_I2C_CFG_TEST_H_ */ diff --git a/hardware/board/config/brd4276a_brd4002a/iot_pwm_cfg_led0.h b/hardware/board/config/brd4276a_brd4002a/iot_pwm_cfg_led0.h new file mode 100644 index 0000000000..af22fd6100 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4002a/iot_pwm_cfg_led0.h @@ -0,0 +1,78 @@ +/***************************************************************************//** + * @file iot_pwm_cfg_inst.h + * @brief Common I/O PWM instance configuration. + ******************************************************************************* + * # License + * Copyright 2020 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +/******************************************************************************* + * SAFE GUARD + ******************************************************************************/ + +#ifndef _IOT_PWM_CFG_LED0_H_ +#define _IOT_PWM_CFG_LED0_H_ + +/******************************************************************************* + * PWM Default Configs + ******************************************************************************/ + +// <<< Use Configuration Wizard in Context Menu >>> + +// PWM General Options + +// Instance number +// Instance number used when iot_pwm_open() is called. +// Default: 0 +#define IOT_PWM_CFG_LED0_INST_NUM 0 + +// + +// <<< end of configuration section >>> + +/******************************************************************************* + * H/W PERIPHERAL CONFIG + ******************************************************************************/ + +// <<< sl:start pin_tool >>> +// IOT_PWM_CFG_LED0 +// $[TIMER_IOT_PWM_CFG_LED0] +#define IOT_PWM_CFG_LED0_PERIPHERAL TIMER0 +#define IOT_PWM_CFG_LED0_PERIPHERAL_NO 0 + +// TIMER0 CC0 on PA05 +#define IOT_PWM_CFG_LED0_CC0_PORT gpioPortA +#define IOT_PWM_CFG_LED0_CC0_PIN 5 + + + +// [TIMER_IOT_PWM_CFG_LED0]$ +// <<< sl:end pin_tool >>> + +/******************************************************************************* + * SAFE GUARD + ******************************************************************************/ + +#endif /* _IOT_PWM_CFG_LED0_H_ */ diff --git a/hardware/board/config/brd4276a_brd4002a/iot_pwm_cfg_led1.h b/hardware/board/config/brd4276a_brd4002a/iot_pwm_cfg_led1.h new file mode 100644 index 0000000000..b0766a1044 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4002a/iot_pwm_cfg_led1.h @@ -0,0 +1,78 @@ +/***************************************************************************//** + * @file iot_pwm_cfg_inst.h + * @brief Common I/O PWM instance configuration. + ******************************************************************************* + * # License + * Copyright 2020 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +/******************************************************************************* + * SAFE GUARD + ******************************************************************************/ + +#ifndef _IOT_PWM_CFG_LED1_H_ +#define _IOT_PWM_CFG_LED1_H_ + +/******************************************************************************* + * PWM Default Configs + ******************************************************************************/ + +// <<< Use Configuration Wizard in Context Menu >>> + +// PWM General Options + +// Instance number +// Instance number used when iot_pwm_open() is called. +// Default: 0 +#define IOT_PWM_CFG_LED1_INST_NUM 0 + +// + +// <<< end of configuration section >>> + +/******************************************************************************* + * H/W PERIPHERAL CONFIG + ******************************************************************************/ + +// <<< sl:start pin_tool >>> +// IOT_PWM_CFG_LED1 +// $[TIMER_IOT_PWM_CFG_LED1] +#define IOT_PWM_CFG_LED1_PERIPHERAL TIMER1 +#define IOT_PWM_CFG_LED1_PERIPHERAL_NO 1 + +// TIMER1 CC0 on PA06 +#define IOT_PWM_CFG_LED1_CC0_PORT gpioPortA +#define IOT_PWM_CFG_LED1_CC0_PIN 6 + + + +// [TIMER_IOT_PWM_CFG_LED1]$ +// <<< sl:end pin_tool >>> + +/******************************************************************************* + * SAFE GUARD + ******************************************************************************/ + +#endif /* _IOT_PWM_CFG_LED1_H_ */ diff --git a/hardware/board/config/brd4276a_brd4002a/sl_board_control_config.h b/hardware/board/config/brd4276a_brd4002a/sl_board_control_config.h new file mode 100644 index 0000000000..e6c097ee72 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4002a/sl_board_control_config.h @@ -0,0 +1,66 @@ +/***************************************************************************//** + * @file + * @brief Board Control + ******************************************************************************* + * # License + * Copyright 2022 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_BOARD_CONTROL_CONFIG_H +#define SL_BOARD_CONTROL_CONFIG_H + +// <<< Use Configuration Wizard in Context Menu >>> + +// Enable Virtual COM UART +// Default: 0 +#define SL_BOARD_ENABLE_VCOM 0 + +// Enable Display +// Default: 0 +#define SL_BOARD_ENABLE_DISPLAY 0 + +// Disable SPI Flash +// Default: 1 +#define SL_BOARD_DISABLE_MEMORY_SPI 1 + +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> + +// SL_BOARD_ENABLE_VCOM +// $[GPIO_SL_BOARD_ENABLE_VCOM] +#define SL_BOARD_ENABLE_VCOM_PORT gpioPortA +#define SL_BOARD_ENABLE_VCOM_PIN 11 +// [GPIO_SL_BOARD_ENABLE_VCOM]$ + +// SL_BOARD_ENABLE_DISPLAY +// $[GPIO_SL_BOARD_ENABLE_DISPLAY] +#define SL_BOARD_ENABLE_DISPLAY_PORT gpioPortB +#define SL_BOARD_ENABLE_DISPLAY_PIN 5 +// [GPIO_SL_BOARD_ENABLE_DISPLAY]$ + +// <<< sl:end pin_tool >>> + +#endif // SL_BOARD_CONTROL_CONFIG_H diff --git a/hardware/board/config/brd4276a_brd4002a/sl_clock_manager_oscillator_config.h b/hardware/board/config/brd4276a_brd4002a/sl_clock_manager_oscillator_config.h new file mode 100644 index 0000000000..e8177c7cb4 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4002a/sl_clock_manager_oscillator_config.h @@ -0,0 +1,364 @@ +/***************************************************************************//** + * @file + * @brief Clock Manager - Oscillators configuration file. + ******************************************************************************* + * # License + * Copyright 2024 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +// <<< Use Configuration Wizard in Context Menu >>> + +#ifndef SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H +#define SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H + +// Oscillators Settings + +// HFXO Settings (if High Frequency crystal is used) +// Enable to configure HFXO +#ifndef SL_CLOCK_MANAGER_HFXO_EN +#define SL_CLOCK_MANAGER_HFXO_EN 1 +#endif + +// Mode +// +// XTAL +// EXTCLK +// EXTCLKPKDET +// HFXO_CFG_MODE_XTAL +#ifndef SL_CLOCK_MANAGER_HFXO_MODE +#define SL_CLOCK_MANAGER_HFXO_MODE HFXO_CFG_MODE_XTAL +#endif + +// Frequency <38000000-40000000> +// 39000000 +#ifndef SL_CLOCK_MANAGER_HFXO_FREQ +#define SL_CLOCK_MANAGER_HFXO_FREQ 39000000 +#endif + +// CTUNE <0-255> +// 140 +#ifndef SL_CLOCK_MANAGER_HFXO_CTUNE +#define SL_CLOCK_MANAGER_HFXO_CTUNE 103 +#endif + +// Precision <0-65535> +// 50 +#ifndef SL_CLOCK_MANAGER_HFXO_PRECISION +#define SL_CLOCK_MANAGER_HFXO_PRECISION 50 +#endif + +// HFXO crystal sharing feature +// Enable to configure HFXO crystal sharing leader or follower +#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_EN +#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_EN 0 +#endif + +// Crystal sharing leader +// Enable to configure HFXO crystal sharing leader +#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN +#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN 0 +#endif + +// Crystal sharing leader minimum startup delay +// If enabled, BUFOUT does not start until timeout set in +// SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_TIMEOUT_STARTUP expires. +// This prevents waste of power if BUFOUT is ready too early. +// 1 +#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_MIN_STARTUP_DELAY_EN +#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_MIN_STARTUP_DELAY_EN 1 +#endif + +// Wait duration of oscillator startup sequence +// +// T42US +// T83US +// T108US +// T133US +// T158US +// T183US +// T208US +// T233US +// T258US +// T283US +// T333US +// T375US +// T417US +// T458US +// T500US +// T667US +// HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T208US +#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_TIMEOUT_STARTUP +#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_TIMEOUT_STARTUP HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T208US +#endif +// +// + +// Crystal sharing follower +// Enable to configure HFXO crystal sharing follower +#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN +#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN 0 +#endif +// + +// GPIO Port +// Bufout request GPIO port. If SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN +// is enabled, this port will be used to receive the BUFOUT request. If +// SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN is enabled this port +// will be used to request BUFOUT from the crystal sharing leader. +#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PORT +#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PORT 0 +#endif + +// GPIO Pin +// Bufout request GPIO pin. If SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN +// is enabled, this pin will be used to receive the BUFOUT request. If +// SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN is enabled this pin +// will be used to request BUFOUT from the crystal sharing leader. +#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PIN +#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PIN 10 +#endif +// +// + +// LFXO Settings (if Low Frequency crystal is used) +// Enable to configure LFXO +#ifndef SL_CLOCK_MANAGER_LFXO_EN +#define SL_CLOCK_MANAGER_LFXO_EN 1 +#endif + +// Mode +// +// XTAL +// BUFEXTCLK +// DIGEXTCLK +// LFXO_CFG_MODE_XTAL +#ifndef SL_CLOCK_MANAGER_LFXO_MODE +#define SL_CLOCK_MANAGER_LFXO_MODE LFXO_CFG_MODE_XTAL +#endif + +// CTUNE <0-127> +// 63 +#ifndef SL_CLOCK_MANAGER_LFXO_CTUNE +#define SL_CLOCK_MANAGER_LFXO_CTUNE 38 +#endif + +// LFXO precision in PPM <0-65535> +// 50 +#ifndef SL_CLOCK_MANAGER_LFXO_PRECISION +#define SL_CLOCK_MANAGER_LFXO_PRECISION 50 +#endif + +// Startup Timeout Delay +// +// CYCLES2 +// CYCLES256 +// CYCLES1K +// CYCLES2K +// CYCLES4K +// CYCLES8K +// CYCLES16K +// CYCLES32K +// LFXO_CFG_TIMEOUT_CYCLES4K +#ifndef SL_CLOCK_MANAGER_LFXO_TIMEOUT +#define SL_CLOCK_MANAGER_LFXO_TIMEOUT LFXO_CFG_TIMEOUT_CYCLES4K +#endif +// + +// HFRCO and DPLL Settings +// Frequency Band +// RC Oscillator Frequency Band +// 1 MHz +// 2 MHz +// 4 MHz +// 7 MHz +// 13 MHz +// 16 MHz +// 19 MHz +// 26 MHz +// 32 MHz +// 38 MHz +// 48 MHz +// 56 MHz +// 64 MHz +// 80 MHz +// 100 MHz +// cmuHFRCODPLLFreq_80M0Hz +#ifndef SL_CLOCK_MANAGER_HFRCO_BAND +#define SL_CLOCK_MANAGER_HFRCO_BAND cmuHFRCODPLLFreq_80M0Hz +#endif + +// Use DPLL +// Enable to use the DPLL with HFRCO +#ifndef SL_CLOCK_MANAGER_HFRCO_DPLL_EN +#define SL_CLOCK_MANAGER_HFRCO_DPLL_EN 0 +#endif + +// Target Frequency <1000000-80000000> +// DPLL target frequency +// 78000000 +#ifndef SL_CLOCK_MANAGER_DPLL_FREQ +#define SL_CLOCK_MANAGER_DPLL_FREQ 78000000 +#endif + +// Numerator (N) <300-4095> +// Value of N for output frequency calculation fout = fref * (N+1) / (M+1) +// 3839 +#ifndef SL_CLOCK_MANAGER_DPLL_N +#define SL_CLOCK_MANAGER_DPLL_N 3839 +#endif + +// Denominator (M) <0-4095> +// Value of M for output frequency calculation fout = fref * (N+1) / (M+1) +// 1919 +#ifndef SL_CLOCK_MANAGER_DPLL_M +#define SL_CLOCK_MANAGER_DPLL_M 1919 +#endif + +// Reference Clock +// Reference clock source for DPLL +// DISABLED +// HFXO +// LFXO +// CMU_DPLLREFCLKCTRL_CLKSEL_HFXO +#ifndef SL_CLOCK_MANAGER_DPLL_REFCLK +#define SL_CLOCK_MANAGER_DPLL_REFCLK CMU_DPLLREFCLKCTRL_CLKSEL_HFXO +#endif + +// Reference Clock Edge Detect +// Edge detection for reference clock +// Falling Edge +// Rising Edge +// cmuDPLLEdgeSel_Fall +#ifndef SL_CLOCK_MANAGER_DPLL_EDGE +#define SL_CLOCK_MANAGER_DPLL_EDGE cmuDPLLEdgeSel_Fall +#endif + +// DPLL Lock Mode +// Lock mode +// Frequency-Lock Loop +// Phase-Lock Loop +// cmuDPLLLockMode_Freq +#ifndef SL_CLOCK_MANAGER_DPLL_LOCKMODE +#define SL_CLOCK_MANAGER_DPLL_LOCKMODE cmuDPLLLockMode_Phase +#endif + +// Automatic Lock Recovery +// 1 +#ifndef SL_CLOCK_MANAGER_DPLL_AUTORECOVER +#define SL_CLOCK_MANAGER_DPLL_AUTORECOVER 1 +#endif + +// Enable Dither +// 0 +#ifndef SL_CLOCK_MANAGER_DPLL_DITHER +#define SL_CLOCK_MANAGER_DPLL_DITHER 0 +#endif +// +// + +// HFRCOEM23 Settings +// Frequency Band +// RC Oscillator Frequency Band +// 1 MHz +// 2 MHz +// 4 MHz +// 13 MHz +// 16 MHz +// 19 MHz +// 26 MHz +// 32 MHz +// 40 MHz +// cmuHFRCOEM23Freq_19M0Hz +#ifndef SL_CLOCK_MANAGER_HFRCOEM23_BAND +#define SL_CLOCK_MANAGER_HFRCOEM23_BAND cmuHFRCOEM23Freq_19M0Hz +#endif +// + +// RFFPLL configuration +// Target RF band (with 39MHz crystal) +// Radio frequency bands. +// Band 9xx MHz covers from 901 to 928 MHz. +// <0=> Band 450 MHz +// <1=> Band 470 MHz +// <2=> Band 780 MHz +// <3=> Band 863 MHz +// <4=> Band 896 MHz +// <5=> Band 928 MHz +// <6=> Band 9xx MHz +// <7=> AUTO BAND +// 7 +#ifndef SL_CLOCK_MANAGER_RFFPLL_BAND +#define SL_CLOCK_MANAGER_RFFPLL_BAND 7 +#endif + +// Use custom band (overrides Target RF band) +// 0 +#ifndef SL_CLOCK_MANAGER_RFFPLL_CUSTOM_BAND +#define SL_CLOCK_MANAGER_RFFPLL_CUSTOM_BAND 0 +#endif + +// Digital host target frequency in Hz +// <95000000-100000000:100000> +// The host target frequency should range between 95 and 100 MHz. +// This frequency does not relate to the radio part. +// 100000000 +#ifndef SL_CLOCK_MANAGER_RFFPLL_FREQ +#define SL_CLOCK_MANAGER_RFFPLL_FREQ 100000000 +#endif + +// Digital host clock output divider ratio (DIVY) +// <8-31:1> +// Divider Y is used for the host target frequency using this formula: frequency = (freq HFXO * DIV_N / 2) / DIV_Y +// 17 +#ifndef SL_CLOCK_MANAGER_RFFPLL_DIV_Y +#define SL_CLOCK_MANAGER_RFFPLL_DIV_Y 17 +#endif + +// Radio output divider ratio (DIVX) +// <4-15:1> +// Divider X is used for the radio frequency using this formula: frequency = (freq HFXO * DIV_N / 2) / (DIV_X / 2) +// 6 +#ifndef SL_CLOCK_MANAGER_RFFPLL_DIV_X +#define SL_CLOCK_MANAGER_RFFPLL_DIV_X 6 +#endif + +// PLL feedback divider ratio (DIVN) +// <32-127:1> +// Divider N is used for the host and radio frequencies using these formulas: +// - Host: frequency = (freq HFXO * DIV_N / 2) / DIV_Y +// - Radio: frequency = (freq HFXO * DIV_N / 2) / DIV_X +// 87 +#ifndef SL_CLOCK_MANAGER_RFFPLL_DIV_N +#define SL_CLOCK_MANAGER_RFFPLL_DIV_N 87 +#endif + +// +// + +// + +#endif /* SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H */ + +// <<< end of configuration section >>> diff --git a/hardware/board/config/brd4276a_brd4002a/sl_clock_manager_tree_config.h b/hardware/board/config/brd4276a_brd4002a/sl_clock_manager_tree_config.h new file mode 100644 index 0000000000..e674ab2c71 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4002a/sl_clock_manager_tree_config.h @@ -0,0 +1,292 @@ +/***************************************************************************//** + * @file + * @brief Clock Manager - Clock Tree configuration file. + ******************************************************************************* + * # License + * Copyright 2024 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +// <<< Use Configuration Wizard in Context Menu >>> + +#ifndef SL_CLOCK_MANAGER_TREE_CONFIG_H +#define SL_CLOCK_MANAGER_TREE_CONFIG_H + +// Internal Defines: DO NOT MODIFY +// Those defines are used internally to help converting the DEFAULT_HF_CLOCK_SOURCE and DEFAULT_LF_CLOCK_SOURCE +// selection of each clock branch to the right HW register value. +#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL 0xFF +#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFXO 0xFE +#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_FSRCO 0xFD +#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO 0xFC +#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFXO 0xFB +#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_ULFRCO 0xFA + +// Clock Tree Settings + +// Default Clock Source Selection for HF clock branches +// HFRCODPLL +// HFXO +// FSRCO +// Selection of the high frequency clock source. HF clock branches can select this value by chosing the DEFAULT_HF value. +// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL +#ifndef SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE +#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFXO +#endif + +// Default Clock Source Selection for LF clock branches +// LFRCO +// LFXO +// ULFRCO +// Selection of the low frequency clock source. LF clock branches can select this value by chosing the DEFAULT_HF value. +// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO +#ifndef SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE +#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFXO +#endif + +// System Clock Branch Settings + +// Clock Source Selection for SYSCLK branch +// DEFAULT_HF +// FSRCO +// HFRCODPLL +// HFXO +// RFFPLL0SYS +// Selection of the Clock source for SYSCLK +// CMU_SYSCLKCTRL_CLKSEL_RFFPLL0SYS +#ifndef SL_CLOCK_MANAGER_SYSCLK_SOURCE +#define SL_CLOCK_MANAGER_SYSCLK_SOURCE CMU_SYSCLKCTRL_CLKSEL_RFFPLL0SYS +#endif + +// HCLK branch divider +// DIV1 +// DIV2 +// DIV4 +// DIV8 +// DIV16 +// HCLK branch is derived from SYSCLK. This clock drives the AHB bus interface. +// CMU_SYSCLKCTRL_HCLKPRESC_DIV1 +#ifndef SL_CLOCK_MANAGER_HCLK_DIVIDER +#define SL_CLOCK_MANAGER_HCLK_DIVIDER CMU_SYSCLKCTRL_HCLKPRESC_DIV1 +#endif + +// PCLK branch divider +// DIV1 +// DIV2 +// PCLK branch is derived from HCLK. This clock drives the APB bus interface. +// CMU_SYSCLKCTRL_PCLKPRESC_DIV2 +#ifndef SL_CLOCK_MANAGER_PCLK_DIVIDER +#define SL_CLOCK_MANAGER_PCLK_DIVIDER CMU_SYSCLKCTRL_PCLKPRESC_DIV2 +#endif + +// + +// Trace Clock Branches Settings +// Clock Source Selection for TRACECLK branch +// DISABLE +// SYSCLK +// HFRCOEM23 +// HFRCODPLLRT +// Selection of the Clock source for TRACECLK +// CMU_TRACECLKCTRL_CLKSEL_SYSCLK +#ifndef SL_CLOCK_MANAGER_TRACECLK_SOURCE +#define SL_CLOCK_MANAGER_TRACECLK_SOURCE CMU_TRACECLKCTRL_CLKSEL_SYSCLK +#endif + +// TRACECLK branch Divider +// DIV1 +// DIV2 +// DIV3 +// DIV4 +// Selection of the divider value for TRACECLK branch +// CMU_TRACECLKCTRL_PRESC_DIV1 +#ifndef SL_CLOCK_MANAGER_TRACECLK_DIVIDER +#define SL_CLOCK_MANAGER_TRACECLK_DIVIDER CMU_TRACECLKCTRL_PRESC_DIV1 +#endif + +// + +// High Frequency Clock Branches Settings +// Each HF Clock Tree branch can be customized, else the same clock source as for SYSCLK will be used when possible +// EM01GRPACLK clock the Timer peripherals +// Clock Source Selection for EM01GRPACLK branch +// DEFAULT_HF +// HFRCODPLL +// HFXO +// FSRCO +// HFRCOEM23 +// HFRCODPLLRT +// HFXORT +// Selection of the Clock source for EM01GRPACLK +// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE +#ifndef SL_CLOCK_MANAGER_EM01GRPACLK_SOURCE +#define SL_CLOCK_MANAGER_EM01GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE +#endif + +// Clock Source Selection for EM01GRPCCLK branch +// DEFAULT_HF +// HFRCODPLL +// HFXO +// FSRCO +// HFRCOEM23 +// HFRCODPLLRT +// HFXORT +// Selection of the Clock source for EM01GRPCCLK +// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE +#ifndef SL_CLOCK_MANAGER_EM01GRPCCLK_SOURCE +#define SL_CLOCK_MANAGER_EM01GRPCCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE +#endif + +// Clock Source Selection for IADCCLK branch +// EM01GRPACLK +// FSRCO +// HFRCOEM23 +// Selection of the Clock source for IADCCLK +// CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK +#ifndef SL_CLOCK_MANAGER_IADCCLK_SOURCE +#define SL_CLOCK_MANAGER_IADCCLK_SOURCE CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK +#endif + +// Clock Source Selection for LESENSEHFCLK branch +// FSRCO +// HFRCOEM23 +// Selection of the Clock source for LESENSEHFCLK +// CMU_LESENSEHFCLKCTRL_CLKSEL_FSRCO +#ifndef SL_CLOCK_MANAGER_LESENSEHFCLK_SOURCE +#define SL_CLOCK_MANAGER_LESENSEHFCLK_SOURCE CMU_LESENSEHFCLKCTRL_CLKSEL_FSRCO +#endif + +// + +// Low Frequency Clock Branches Settings + +// Clock Source Selection for EM23GRPACLK branch +// DEFAULT_LF +// LFRCO +// LFXO +// ULFRCO +// Selection of the Clock source for EM23GRPACLK +// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE +#ifndef SL_CLOCK_MANAGER_EM23GRPACLK_SOURCE +#define SL_CLOCK_MANAGER_EM23GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE +#endif + +// Clock Source Selection for EM4GRPACLK branch +// DEFAULT_LF +// LFRCO +// LFXO +// ULFRCO +// Selection of the Clock source for EM4GRPACLK +// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE +#ifndef SL_CLOCK_MANAGER_EM4GRPACLK_SOURCE +#define SL_CLOCK_MANAGER_EM4GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE +#endif + +// Clock Source Selection for SYSRTCCLK branch +// DEFAULT_LF +// LFRCO +// LFXO +// ULFRCO +// Selection of the Clock source for SYSRTCCLK +// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE +#ifndef SL_CLOCK_MANAGER_SYSRTCCLK_SOURCE +#define SL_CLOCK_MANAGER_SYSRTCCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE +#endif + +// Clock Source Selection for WDOG0CLK branch +// DEFAULT_LF +// LFRCO +// LFXO +// ULFRCO +// HCLKDIV1024 +// Selection of the Clock source for WDOG0CLK +// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE +#ifndef SL_CLOCK_MANAGER_WDOG0CLK_SOURCE +#define SL_CLOCK_MANAGER_WDOG0CLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE +#endif + +// Clock Source Selection for WDOG1CLK branch +// DEFAULT_LF +// LFRCO +// LFXO +// ULFRCO +// HCLKDIV1024 +// Selection of the Clock source for WDOG1CLK +// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE +#ifndef SL_CLOCK_MANAGER_WDOG1CLK_SOURCE +#define SL_CLOCK_MANAGER_WDOG1CLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE +#endif + +// Clock Source Selection for PCNT0CLK branch +// DISABLED +// EM23GRPACLK +// PCNTS0 +// Selection of the Clock source for PCNT0CLK +// CMU_PCNT0CLKCTRL_CLKSEL_EM23GRPACLK +#ifndef SL_CLOCK_MANAGER_PCNT0CLK_SOURCE +#define SL_CLOCK_MANAGER_PCNT0CLK_SOURCE CMU_PCNT0CLKCTRL_CLKSEL_EM23GRPACLK +#endif + +// + +// Mixed Frequency Clock Branch Settings +// Clock Source Selection for EUSART0CLK branch +// DISABLED +// EM01GRPCCLK +// HFRCOEM23 +// LFRCO +// LFXO +// Selection of the Clock source for EUSART0CLK +// CMU_EUSART0CLKCTRL_CLKSEL_EM01GRPCCLK +#ifndef SL_CLOCK_MANAGER_EUSART0CLK_SOURCE +#define SL_CLOCK_MANAGER_EUSART0CLK_SOURCE CMU_EUSART0CLKCTRL_CLKSEL_EM01GRPCCLK +#endif + +// Clock Source Selection for SYSTICKCLK branch +// <0=> HCLK +// <1=> EM23GRPACLK +// Selection of the Clock source for SYSTICKCLK +// 0 +#ifndef SL_CLOCK_MANAGER_SYSTICKCLK_SOURCE +#define SL_CLOCK_MANAGER_SYSTICKCLK_SOURCE 0 +#endif + +// Clock Source Selection for VDAC0CLK branch +// DISABLED +// EM01GRPACLK +// EM23GRPACLK +// FSRCO +// HFRCOEM23 +// Selection of the Clock source for VDAC0CLK +// CMU_VDAC0CLKCTRL_CLKSEL_EM01GRPACLK +#ifndef SL_CLOCK_MANAGER_VDAC0CLK_SOURCE +#define SL_CLOCK_MANAGER_VDAC0CLK_SOURCE CMU_VDAC0CLKCTRL_CLKSEL_EM01GRPACLK +#endif + +// +// + +#endif /* SL_CLOCK_MANAGER_TREE_CONFIG_H */ + +// <<< end of configuration section >>> diff --git a/hardware/board/config/brd4276a_brd4002a/sl_cpc_drv_secondary_spi_eusart_exp_config.h b/hardware/board/config/brd4276a_brd4002a/sl_cpc_drv_secondary_spi_eusart_exp_config.h new file mode 100644 index 0000000000..a3281981e5 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4002a/sl_cpc_drv_secondary_spi_eusart_exp_config.h @@ -0,0 +1,120 @@ +/***************************************************************************//** + * @file + * @brief CPC SPI SECONDARY driver configuration file. + ******************************************************************************* + * # License + * Copyright 2020 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_CPC_DRV_SPI_EUSART_EXP_SECONDARY_CONFIG_H +#define SL_CPC_DRV_SPI_EUSART_EXP_SECONDARY_CONFIG_H + +// <<< Use Configuration Wizard in Context Menu >>> + +// CPC-Secondary SPI Driver Configuration + +// Queues size configuration + +// Number of frame that can be queued in the driver receive queue +// A greater number decreases the chances of retransmission due to dropped frames at the cost of memory footprint +// Default : 10 +// 10 +#define SL_CPC_DRV_SPI_EXP_RX_QUEUE_SIZE 10 + +// Number of frame that can be queued in the driver transmit queue +// A greater number increases the transmission responsiveness at the cost of memory footprint +// Default : 10 +// 10 +#define SL_CPC_DRV_SPI_EXP_TX_QUEUE_SIZE 10 +// + +// LDMA SYNCTRIG bit configuration +// The LDMA SYNCTRIG bit number for the TX availability [bit] <0-7> +// Specify which SYNCTRIG bit is used. Modify this value to avoid collisions if specific LDMA SYNCTRIG bits need to be used elsewhere in the project. +// Default : 7 +// 7 +#define SL_CPC_DRV_SPI_EXP_TX_AVAILABILITY_SYNCTRIG_CH 6 + +// The LDMA SYNCTRIG bit number for the CS PRS channel [bit] <0-7> +// Specify which SYNCTRIG bit is used. Modify this value to avoid collisions if specific LDMA SYNCTRIG bits need to be used elsewhere in the project. +// This bit number is tied to the equivalent PRS channel number. Keep that in mind if using PRS channels elsewhere in the project. +// Default : 5 +// 5 +#define SL_CPC_DRV_SPI_EXP_CS_SYNCTRIG_PRS_CH 5 + +// The LDMA SYNCTRIG bit number for the TXC PRS channel [bit] <0-7> +// Specify which SYNCTRIG bit is used. Modify this value to avoid collisions if specific LDMA SYNCTRIG bits need to be used elsewhere in the project. +// This bit number is tied to the equivalent PRS channel number. Keep that in mind if using PRS channels elsewhere in the project. +// Default : 6 +// 6 +#define SL_CPC_DRV_SPI_EXP_TXC_SYNCTRIG_PRS_CH 4 +// + +// Chip Select PRS Routing +// The Chip Select input to EXTernal Interrupt number <0-7> +// The CS input needs to be routed to a PRS channel in order to manipulate its LDMA SYNCTRIG bit. +// Modify this value to avoid collisions if any specific EXTI number needs to be used elsewhere in the project. +// Note that only EXTI0..7 can be used as input for a PRS channel, and only pins Px0..7 can be routed to those. +// Default : 0 (pin0..4 of any port) +// 0 +#define SL_CPC_DRV_SPI_EXP_CS_EXTI_NUMBER 4 +// + +// +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> +// SL_CPC_DRV_SPI_EXP_IRQ +// $[GPIO_SL_CPC_DRV_SPI_EXP_IRQ] +#define SL_CPC_DRV_SPI_EXP_IRQ_PORT gpioPortB +#define SL_CPC_DRV_SPI_EXP_IRQ_PIN 2 + +// [GPIO_SL_CPC_DRV_SPI_EXP_IRQ]$ + +// SL_CPC_DRV_SPI_EXP +// $[EUSART_SL_CPC_DRV_SPI_EXP] +#define SL_CPC_DRV_SPI_EXP_PERIPHERAL EUSART1 +#define SL_CPC_DRV_SPI_EXP_PERIPHERAL_NO 1 + +// EUSART1 TX on PC00 +#define SL_CPC_DRV_SPI_EXP_COPI_PORT gpioPortC +#define SL_CPC_DRV_SPI_EXP_COPI_PIN 0 + +// EUSART1 RX on PC01 +#define SL_CPC_DRV_SPI_EXP_CIPO_PORT gpioPortC +#define SL_CPC_DRV_SPI_EXP_CIPO_PIN 1 + +// EUSART1 SCLK on PC02 +#define SL_CPC_DRV_SPI_EXP_SCLK_PORT gpioPortC +#define SL_CPC_DRV_SPI_EXP_SCLK_PIN 2 + +// EUSART1 CS on PB04 +#define SL_CPC_DRV_SPI_EXP_CS_PORT gpioPortB +#define SL_CPC_DRV_SPI_EXP_CS_PIN 4 + +// [EUSART_SL_CPC_DRV_SPI_EXP]$ +// <<< sl:end pin_tool >>> + +#endif /* SL_CPC_DRV_SPI_EXP_SECONDARY_CONFIG_H */ diff --git a/hardware/board/config/brd4276a_brd4002a/sl_cpc_drv_uart_eusart_exp_config.h b/hardware/board/config/brd4276a_brd4002a/sl_cpc_drv_uart_eusart_exp_config.h new file mode 100644 index 0000000000..129e0d4433 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4002a/sl_cpc_drv_uart_eusart_exp_config.h @@ -0,0 +1,84 @@ +/***************************************************************************//** + * @file + * @brief CPC EUSART driver configuration file. + ******************************************************************************* + * # License + * Copyright 2023 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +// <<< Use Configuration Wizard in Context Menu >>> + +#ifndef SL_CPC_DRV_UART_EUSART_EXP_CONFIG_H +#define SL_CPC_DRV_UART_EUSART_EXP_CONFIG_H + +// CPC - EUSART Driver Configuration + +// Number of frame that can be queued in the driver receive queue +// Default: 10 +#define SL_CPC_DRV_UART_EXP_RX_QUEUE_SIZE 10 + +// Number of frame that can be queued in the driver transmit queue +// Default: 10 +#define SL_CPC_DRV_UART_EXP_TX_QUEUE_SIZE 10 + +// EUSART Baudrate +// Default: 115200 +#define SL_CPC_DRV_UART_EXP_BAUDRATE 115200 + +// Flow control +// None +// CTS/RTS +// Default: eusartHwFlowControlCtsAndRts +#define SL_CPC_DRV_UART_EXP_FLOW_CONTROL_TYPE eusartHwFlowControlCtsAndRts +// + +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> +// SL_CPC_DRV_UART_EXP +// $[EUSART_SL_CPC_DRV_UART_EXP] +#define SL_CPC_DRV_UART_EXP_PERIPHERAL EUSART1 +#define SL_CPC_DRV_UART_EXP_PERIPHERAL_NO 1 + +// EUSART1 TX on PC00 +#define SL_CPC_DRV_UART_EXP_TX_PORT gpioPortC +#define SL_CPC_DRV_UART_EXP_TX_PIN 0 + +// EUSART1 RX on PC01 +#define SL_CPC_DRV_UART_EXP_RX_PORT gpioPortC +#define SL_CPC_DRV_UART_EXP_RX_PIN 1 + +// EUSART1 CTS on PC02 +#define SL_CPC_DRV_UART_EXP_CTS_PORT gpioPortC +#define SL_CPC_DRV_UART_EXP_CTS_PIN 2 + +// EUSART1 RTS on PB04 +#define SL_CPC_DRV_UART_EXP_RTS_PORT gpioPortB +#define SL_CPC_DRV_UART_EXP_RTS_PIN 4 + +// [EUSART_SL_CPC_DRV_UART_EXP]$ +// <<< sl:end pin_tool >>> + +#endif /* SL_CPC_DRV_UART_EXP_CONFIG_H */ diff --git a/hardware/board/config/brd4276a_brd4002a/sl_cpc_drv_uart_eusart_vcom_config.h b/hardware/board/config/brd4276a_brd4002a/sl_cpc_drv_uart_eusart_vcom_config.h new file mode 100644 index 0000000000..615ff7c823 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4002a/sl_cpc_drv_uart_eusart_vcom_config.h @@ -0,0 +1,84 @@ +/***************************************************************************//** + * @file + * @brief CPC EUSART driver configuration file. + ******************************************************************************* + * # License + * Copyright 2023 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +// <<< Use Configuration Wizard in Context Menu >>> + +#ifndef SL_CPC_DRV_UART_EUSART_VCOM_CONFIG_H +#define SL_CPC_DRV_UART_EUSART_VCOM_CONFIG_H + +// CPC - EUSART Driver Configuration + +// Number of frame that can be queued in the driver receive queue +// Default: 10 +#define SL_CPC_DRV_UART_VCOM_RX_QUEUE_SIZE 10 + +// Number of frame that can be queued in the driver transmit queue +// Default: 10 +#define SL_CPC_DRV_UART_VCOM_TX_QUEUE_SIZE 10 + +// EUSART Baudrate +// Default: 115200 +#define SL_CPC_DRV_UART_VCOM_BAUDRATE 115200 + +// Flow control +// None +// CTS/RTS +// Default: eusartHwFlowControlCtsAndRts +#define SL_CPC_DRV_UART_VCOM_FLOW_CONTROL_TYPE eusartHwFlowControlCtsAndRts +// + +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> +// SL_CPC_DRV_UART_VCOM +// $[EUSART_SL_CPC_DRV_UART_VCOM] +#define SL_CPC_DRV_UART_VCOM_PERIPHERAL EUSART0 +#define SL_CPC_DRV_UART_VCOM_PERIPHERAL_NO 0 + +// EUSART0 TX on PA08 +#define SL_CPC_DRV_UART_VCOM_TX_PORT gpioPortA +#define SL_CPC_DRV_UART_VCOM_TX_PIN 8 + +// EUSART0 RX on PA09 +#define SL_CPC_DRV_UART_VCOM_RX_PORT gpioPortA +#define SL_CPC_DRV_UART_VCOM_RX_PIN 9 + +// EUSART0 CTS on PA10 +#define SL_CPC_DRV_UART_VCOM_CTS_PORT gpioPortA +#define SL_CPC_DRV_UART_VCOM_CTS_PIN 10 + +// EUSART0 RTS on PA00 +#define SL_CPC_DRV_UART_VCOM_RTS_PORT gpioPortA +#define SL_CPC_DRV_UART_VCOM_RTS_PIN 0 + +// [EUSART_SL_CPC_DRV_UART_VCOM]$ +// <<< sl:end pin_tool >>> + +#endif /* SL_CPC_DRV_UART_VCOM_CONFIG_H */ diff --git a/hardware/board/config/brd4276a_brd4002a/sl_cpc_gpio_expander_gpio_btn0_config.h b/hardware/board/config/brd4276a_brd4002a/sl_cpc_gpio_expander_gpio_btn0_config.h new file mode 100644 index 0000000000..3d58eda53a --- /dev/null +++ b/hardware/board/config/brd4276a_brd4002a/sl_cpc_gpio_expander_gpio_btn0_config.h @@ -0,0 +1,53 @@ +/***************************************************************************//** + * @file + * @brief CPC GPIO Expander instance configuration file. + ******************************************************************************* + * # License + * Copyright 2023 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +// <<< Use Configuration Wizard in Context Menu >>> + +#ifndef SL_CPC_GPIO_EXPANDER_GPIO_BTN0_CONFIG_H +#define SL_CPC_GPIO_EXPANDER_GPIO_BTN0_CONFIG_H + +// GPIO Pin Name +// Specify the name of the GPIO pin instance which is reported to the Host/Primary device +// Default: "UNDEFINED" +#define SL_CPC_GPIO_EXPANDER_GPIO_BTN0_NAME "BTN0" + +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> +// SL_CPC_GPIO_EXPANDER_GPIO_BTN0 +// $[GPIO_SL_CPC_GPIO_EXPANDER_GPIO_BTN0] +#define SL_CPC_GPIO_EXPANDER_GPIO_BTN0_PORT gpioPortB +#define SL_CPC_GPIO_EXPANDER_GPIO_BTN0_PIN 0 + +// [GPIO_SL_CPC_GPIO_EXPANDER_GPIO_BTN0]$ + +// <<< sl:end pin_tool >>> + +#endif /* SL_CPC_GPIO_EXPANDER_GPIO_BTN0_CONFIG_H */ diff --git a/hardware/board/config/brd4276a_brd4002a/sl_cpc_gpio_expander_gpio_btn1_config.h b/hardware/board/config/brd4276a_brd4002a/sl_cpc_gpio_expander_gpio_btn1_config.h new file mode 100644 index 0000000000..42dca6aad3 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4002a/sl_cpc_gpio_expander_gpio_btn1_config.h @@ -0,0 +1,53 @@ +/***************************************************************************//** + * @file + * @brief CPC GPIO Expander instance configuration file. + ******************************************************************************* + * # License + * Copyright 2023 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +// <<< Use Configuration Wizard in Context Menu >>> + +#ifndef SL_CPC_GPIO_EXPANDER_GPIO_BTN1_CONFIG_H +#define SL_CPC_GPIO_EXPANDER_GPIO_BTN1_CONFIG_H + +// GPIO Pin Name +// Specify the name of the GPIO pin instance which is reported to the Host/Primary device +// Default: "UNDEFINED" +#define SL_CPC_GPIO_EXPANDER_GPIO_BTN1_NAME "BTN1" + +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> +// SL_CPC_GPIO_EXPANDER_GPIO_BTN1 +// $[GPIO_SL_CPC_GPIO_EXPANDER_GPIO_BTN1] +#define SL_CPC_GPIO_EXPANDER_GPIO_BTN1_PORT gpioPortB +#define SL_CPC_GPIO_EXPANDER_GPIO_BTN1_PIN 1 + +// [GPIO_SL_CPC_GPIO_EXPANDER_GPIO_BTN1]$ + +// <<< sl:end pin_tool >>> + +#endif /* SL_CPC_GPIO_EXPANDER_GPIO_BTN1_CONFIG_H */ diff --git a/hardware/board/config/brd4276a_brd4002a/sl_device_init_hfxo_config.h b/hardware/board/config/brd4276a_brd4002a/sl_device_init_hfxo_config.h new file mode 100644 index 0000000000..a8106e4d02 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4002a/sl_device_init_hfxo_config.h @@ -0,0 +1,57 @@ +/***************************************************************************//** + * @file + * @brief DEVICE_INIT_HFXO Config + ******************************************************************************* + * # License + * Copyright 2022 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_DEVICE_INIT_HFXO_CONFIG_H +#define SL_DEVICE_INIT_HFXO_CONFIG_H + +// <<< Use Configuration Wizard in Context Menu >>> + +// Mode +// +// Crystal oscillator +// External sine wave +// Default: cmuHfxoOscMode_Crystal +#define SL_DEVICE_INIT_HFXO_MODE cmuHfxoOscMode_Crystal + +// Frequency <38000000-40000000> +// Default: 39000000 +#define SL_DEVICE_INIT_HFXO_FREQ 39000000 + +// HFXO precision in PPM <0-65535> +// Default: 50 +#define SL_DEVICE_INIT_HFXO_PRECISION 50 + +// CTUNE <0-255> +// Default: 140 +#define SL_DEVICE_INIT_HFXO_CTUNE 103 + +// <<< end of configuration section >>> + +#endif // SL_DEVICE_INIT_HFXO_CONFIG_H diff --git a/hardware/board/config/brd4276a_brd4002a/sl_device_init_lfxo_config.h b/hardware/board/config/brd4276a_brd4002a/sl_device_init_lfxo_config.h new file mode 100644 index 0000000000..bc4ed1f9dc --- /dev/null +++ b/hardware/board/config/brd4276a_brd4002a/sl_device_init_lfxo_config.h @@ -0,0 +1,66 @@ +/***************************************************************************//** + * @file + * @brief DEVICE_INIT_LFXO Config + ******************************************************************************* + * # License + * Copyright 2022 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_DEVICE_INIT_LFXO_CONFIG_H +#define SL_DEVICE_INIT_LFXO_CONFIG_H + +// <<< Use Configuration Wizard in Context Menu >>> + +// Mode +// +// Crystal oscillator +// AC-coupled buffer +// External digital clock +// Default: cmuLfxoOscMode_Crystal +#define SL_DEVICE_INIT_LFXO_MODE cmuLfxoOscMode_Crystal + +// CTUNE <0-127> +// Default: 63 +#define SL_DEVICE_INIT_LFXO_CTUNE 38 + +// LFXO precision in PPM <0-65535> +// Default: 50 +#define SL_DEVICE_INIT_LFXO_PRECISION 50 + +// Startup Timeout Delay +// +// 2 cycles +// 256 cycles +// 1K cycles +// 2K cycles +// 4K cycles +// 8K cycles +// 16K cycles +// 32K cycles +// Default: cmuLfxoStartupDelay_4KCycles +#define SL_DEVICE_INIT_LFXO_TIMEOUT cmuLfxoStartupDelay_4KCycles +// <<< end of configuration section >>> + +#endif // SL_DEVICE_INIT_LFXO_CONFIG_H diff --git a/hardware/board/config/brd4276a_brd4002a/sl_fem_util_config.h b/hardware/board/config/brd4276a_brd4002a/sl_fem_util_config.h new file mode 100644 index 0000000000..5e79f00d4c --- /dev/null +++ b/hardware/board/config/brd4276a_brd4002a/sl_fem_util_config.h @@ -0,0 +1,124 @@ +/***************************************************************************//** + * @file + * @brief Front End Module configuration file. + ******************************************************************************* + * # License + * Copyright 2020 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_FEM_UTIL_CONFIG_H +#define SL_FEM_UTIL_CONFIG_H + +#include "em_gpio.h" + +// <<< Use Configuration Wizard in Context Menu >>> +// FEM Configuration +// Enable RX Mode +// Default: 0 +#define SL_FEM_UTIL_RX_ENABLE 1 +// Enable TX Mode +// Default: 0 +#define SL_FEM_UTIL_TX_ENABLE 0 +// Enable Bypass Mode +// Default: 0 +#define SL_FEM_UTIL_BYPASS_ENABLE 0 +// Enable TX High Power Mode +// Default: 0 +#define SL_FEM_UTIL_TX_HIGH_POWER_ENABLE 0 +// + +// Automatic external FEM LNA bypass Configuration +// Enable automatic LNA bypass +// Default: 0 +#define SL_FEM_UTIL_AUTO_LNA_BYPASS_ENABLE 0 +// LNA bypass threshold +// <1-31:1> +// Default: 12 +#define SL_FEM_UTIL_AUTO_LNA_BYPASS_THRESHOLD 12 +// LNA bypass delta RSSI (dBm) +// <1-255:1> +// Default: 15 +#define SL_FEM_UTIL_AUTO_LNA_BYPASS_DELTA_RSSI_DBM 15 +// LNA bypass GPIO polarity +// <0-1:1> +// Default: 1 +#define SL_FEM_UTIL_AUTO_LNA_BYPASS_POLARITY 1 +// LNA bypass timeout (Us) +// <1-65535:1> +// Default: 4000 +#define SL_FEM_UTIL_AUTO_LNA_BYPASS_TIMEOUT_US 4000 +// +// +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> +// SL_FEM_UTIL_RX +// $[PRS_SL_FEM_UTIL_RX] +#define SL_FEM_UTIL_RX_CHANNEL 6 + +// PRS ASYNCH6 on PC08 +#define SL_FEM_UTIL_RX_PORT gpioPortC +#define SL_FEM_UTIL_RX_PIN 8 + +// [PRS_SL_FEM_UTIL_RX]$ + +// SL_FEM_UTIL_TX +// $[PRS_SL_FEM_UTIL_TX] + +#define SL_FEM_UTIL_TX_CHANNEL 8 + +// PRS ASYNCH8 on PC05 +#define SL_FEM_UTIL_TX_PORT gpioPortC +#define SL_FEM_UTIL_TX_PIN 5 + +// [PRS_SL_FEM_UTIL_TX]$ + +// SL_FEM_UTIL_SLEEP +// $[PRS_SL_FEM_UTIL_SLEEP] +#define SL_FEM_UTIL_SLEEP_CHANNEL 7 + +// PRS ASYNCH7 on PC04 +#define SL_FEM_UTIL_SLEEP_PORT gpioPortC +#define SL_FEM_UTIL_SLEEP_PIN 4 + +// [PRS_SL_FEM_UTIL_SLEEP]$ + +// SL_FEM_UTIL_BYPASS +// $[GPIO_SL_FEM_UTIL_BYPASS] + + +// [GPIO_SL_FEM_UTIL_BYPASS]$ + +// SL_FEM_UTIL_TX_HIGH_POWER +// $[GPIO_SL_FEM_UTIL_TX_HIGH_POWER] + + +// [GPIO_SL_FEM_UTIL_TX_HIGH_POWER]$ +// <<< sl:end pin_tool >>> + +#define SL_FEM_UTIL_OPTIMIZED_PHY_ENABLE 0 +#define SL_FEM_UTIL_RUNTIME_PHY_SELECT 0 + +#endif // SL_FEM_UTIL_CONFIG_H diff --git a/hardware/board/config/brd4276a_brd4002a/sl_iostream_eusart_exp_config.h b/hardware/board/config/brd4276a_brd4002a/sl_iostream_eusart_exp_config.h new file mode 100644 index 0000000000..aa27f1e8fa --- /dev/null +++ b/hardware/board/config/brd4276a_brd4002a/sl_iostream_eusart_exp_config.h @@ -0,0 +1,107 @@ +/***************************************************************************//** + * @file + * @brief IOSTREAM_EUSART Config. + ******************************************************************************* + * # License + * Copyright 2020 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_IOSTREAM_EUSART_EXP_CONFIG_H +#define SL_IOSTREAM_EUSART_EXP_CONFIG_H + +// <<< Use Configuration Wizard in Context Menu >>> + +// EUART settings + +// Enable High frequency mode +// Default: 1 +#define SL_IOSTREAM_EUSART_EXP_ENABLE_HIGH_FREQUENCY 1 + +// Baud rate +// Default: 115200 +#define SL_IOSTREAM_EUSART_EXP_BAUDRATE 115200 + +// Parity mode to use +// No Parity +// Even parity +// Odd parity +// Default: SL_IOSTREAM_EUSART_UART_NO_PARITY +#define SL_IOSTREAM_EUSART_EXP_PARITY SL_IOSTREAM_EUSART_UART_NO_PARITY + +// Number of stop bits to use. +// 0.5 stop bits +// 1 stop bits +// 1.5 stop bits +// 2 stop bits +// Default: SL_IOSTREAM_EUSART_UART_STOP_BITS_1 +#define SL_IOSTREAM_EUSART_EXP_STOP_BITS SL_IOSTREAM_EUSART_UART_STOP_BITS_1 + +// Flow control +// None +// CTS +// RTS +// CTS/RTS +// Software Flow control (XON/XOFF) +// Default: SL_IOSTREAM_EUSART_UART_FLOW_CTRL_NONE +#define SL_IOSTREAM_EUSART_EXP_FLOW_CONTROL_TYPE SL_IOSTREAM_EUSART_UART_FLOW_CTRL_NONE + +// Receive buffer size +// Default: 32 +#define SL_IOSTREAM_EUSART_EXP_RX_BUFFER_SIZE 32 + +// Convert \n to \r\n +// It can be changed at runtime using the C API. +// Default: 0 +#define SL_IOSTREAM_EUSART_EXP_CONVERT_BY_DEFAULT_LF_TO_CRLF 0 + +// Restrict the energy mode to allow the reception. +// Default: 1 +// Limits the lowest energy mode the system can sleep to in order to keep the reception on. May cause higher power consumption. +#define SL_IOSTREAM_EUSART_EXP_RESTRICT_ENERGY_MODE_TO_ALLOW_RECEPTION 1 + +// + +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> +// SL_IOSTREAM_EUSART_EXP +// $[EUSART_SL_IOSTREAM_EUSART_EXP] +#define SL_IOSTREAM_EUSART_EXP_PERIPHERAL EUSART0 +#define SL_IOSTREAM_EUSART_EXP_PERIPHERAL_NO 0 + +// EUSART0 TX on PA08 +#define SL_IOSTREAM_EUSART_EXP_TX_PORT gpioPortA +#define SL_IOSTREAM_EUSART_EXP_TX_PIN 8 + +// EUSART0 RX on PA09 +#define SL_IOSTREAM_EUSART_EXP_RX_PORT gpioPortA +#define SL_IOSTREAM_EUSART_EXP_RX_PIN 9 + + + +// [EUSART_SL_IOSTREAM_EUSART_EXP]$ +// <<< sl:end pin_tool >>> + +#endif diff --git a/hardware/board/config/brd4276a_brd4002a/sl_iostream_eusart_vcom_config.h b/hardware/board/config/brd4276a_brd4002a/sl_iostream_eusart_vcom_config.h new file mode 100644 index 0000000000..49c4d10f2d --- /dev/null +++ b/hardware/board/config/brd4276a_brd4002a/sl_iostream_eusart_vcom_config.h @@ -0,0 +1,113 @@ +/***************************************************************************//** + * @file + * @brief IOSTREAM_EUSART Config. + ******************************************************************************* + * # License + * Copyright 2020 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_IOSTREAM_EUSART_VCOM_CONFIG_H +#define SL_IOSTREAM_EUSART_VCOM_CONFIG_H + +// <<< Use Configuration Wizard in Context Menu >>> + +// EUART settings + +// Enable High frequency mode +// Default: 1 +#define SL_IOSTREAM_EUSART_VCOM_ENABLE_HIGH_FREQUENCY 1 + +// Baud rate +// Default: 115200 +#define SL_IOSTREAM_EUSART_VCOM_BAUDRATE 115200 + +// Parity mode to use +// No Parity +// Even parity +// Odd parity +// Default: SL_IOSTREAM_EUSART_UART_NO_PARITY +#define SL_IOSTREAM_EUSART_VCOM_PARITY SL_IOSTREAM_EUSART_UART_NO_PARITY + +// Number of stop bits to use. +// 0.5 stop bits +// 1 stop bits +// 1.5 stop bits +// 2 stop bits +// Default: SL_IOSTREAM_EUSART_UART_STOP_BITS_1 +#define SL_IOSTREAM_EUSART_VCOM_STOP_BITS SL_IOSTREAM_EUSART_UART_STOP_BITS_1 + +// Flow control +// None +// CTS +// RTS +// CTS/RTS +// Software Flow control (XON/XOFF) +// Default: SL_IOSTREAM_EUSART_UART_FLOW_CTRL_NONE +#define SL_IOSTREAM_EUSART_VCOM_FLOW_CONTROL_TYPE SL_IOSTREAM_EUSART_UART_FLOW_CTRL_CTS_RTS + +// Receive buffer size +// Default: 32 +#define SL_IOSTREAM_EUSART_VCOM_RX_BUFFER_SIZE 32 + +// Convert \n to \r\n +// It can be changed at runtime using the C API. +// Default: 0 +#define SL_IOSTREAM_EUSART_VCOM_CONVERT_BY_DEFAULT_LF_TO_CRLF 0 + +// Restrict the energy mode to allow the reception. +// Default: 1 +// Limits the lowest energy mode the system can sleep to in order to keep the reception on. May cause higher power consumption. +#define SL_IOSTREAM_EUSART_VCOM_RESTRICT_ENERGY_MODE_TO_ALLOW_RECEPTION 1 + +// + +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> +// SL_IOSTREAM_EUSART_VCOM +// $[EUSART_SL_IOSTREAM_EUSART_VCOM] +#define SL_IOSTREAM_EUSART_VCOM_PERIPHERAL EUSART0 +#define SL_IOSTREAM_EUSART_VCOM_PERIPHERAL_NO 0 + +// EUSART0 TX on PA08 +#define SL_IOSTREAM_EUSART_VCOM_TX_PORT gpioPortA +#define SL_IOSTREAM_EUSART_VCOM_TX_PIN 8 + +// EUSART0 RX on PA09 +#define SL_IOSTREAM_EUSART_VCOM_RX_PORT gpioPortA +#define SL_IOSTREAM_EUSART_VCOM_RX_PIN 9 + +// EUSART0 CTS on PA10 +#define SL_IOSTREAM_EUSART_VCOM_CTS_PORT gpioPortA +#define SL_IOSTREAM_EUSART_VCOM_CTS_PIN 10 + +// EUSART0 RTS on PA00 +#define SL_IOSTREAM_EUSART_VCOM_RTS_PORT gpioPortA +#define SL_IOSTREAM_EUSART_VCOM_RTS_PIN 0 + +// [EUSART_SL_IOSTREAM_EUSART_VCOM]$ +// <<< sl:end pin_tool >>> + +#endif diff --git a/hardware/board/config/brd4276a_brd4002a/sl_memlcd_eusart_config.h b/hardware/board/config/brd4276a_brd4002a/sl_memlcd_eusart_config.h new file mode 100644 index 0000000000..8ddcc39db5 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4002a/sl_memlcd_eusart_config.h @@ -0,0 +1,66 @@ +/***************************************************************************//** + * @file + * @brief SPI abstraction used by memory lcd display + ******************************************************************************* + * # License + * Copyright 2022 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_MEMLCD_CONFIG_H +#define SL_MEMLCD_CONFIG_H + +// <<< sl:start pin_tool >>> +// SL_MEMLCD_SPI +// $[EUSART_SL_MEMLCD_SPI] +#define SL_MEMLCD_SPI_PERIPHERAL EUSART1 +#define SL_MEMLCD_SPI_PERIPHERAL_NO 1 + +// EUSART1 TX on PC00 +#define SL_MEMLCD_SPI_TX_PORT gpioPortC +#define SL_MEMLCD_SPI_TX_PIN 0 + +// EUSART1 SCLK on PC02 +#define SL_MEMLCD_SPI_SCLK_PORT gpioPortC +#define SL_MEMLCD_SPI_SCLK_PIN 2 + +// [EUSART_SL_MEMLCD_SPI]$ + +// SL_MEMLCD_SPI_CS +// $[GPIO_SL_MEMLCD_SPI_CS] +#define SL_MEMLCD_SPI_CS_PORT gpioPortD +#define SL_MEMLCD_SPI_CS_PIN 5 + +// [GPIO_SL_MEMLCD_SPI_CS]$ + +// SL_MEMLCD_EXTCOMIN +// $[GPIO_SL_MEMLCD_EXTCOMIN] +#define SL_MEMLCD_EXTCOMIN_PORT gpioPortA +#define SL_MEMLCD_EXTCOMIN_PIN 7 + +// [GPIO_SL_MEMLCD_EXTCOMIN]$ + +// <<< sl:end pin_tool >>> + +#endif diff --git a/hardware/board/config/brd4276a_brd4002a/sl_mx25_flash_shutdown_eusart_config.h b/hardware/board/config/brd4276a_brd4002a/sl_mx25_flash_shutdown_eusart_config.h new file mode 100644 index 0000000000..df3e82ad8a --- /dev/null +++ b/hardware/board/config/brd4276a_brd4002a/sl_mx25_flash_shutdown_eusart_config.h @@ -0,0 +1,64 @@ +/***************************************************************************//** + * @file + * @brief SL_MX25_FLASH_SHUTDOWN_USART Config + ******************************************************************************* + * # License + * Copyright 2020 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_MX25_FLASH_SHUTDOWN_CONFIG_H +#define SL_MX25_FLASH_SHUTDOWN_CONFIG_H + +// <<< sl:start pin_tool >>> +// {eusart signal=TX,RX,SCLK} SL_MX25_FLASH_SHUTDOWN +// [EUSART_SL_MX25_FLASH_SHUTDOWN] +#define SL_MX25_FLASH_SHUTDOWN_PERIPHERAL EUSART1 +#define SL_MX25_FLASH_SHUTDOWN_PERIPHERAL_NO 1 + +// EUSART1 TX on PC00 +#define SL_MX25_FLASH_SHUTDOWN_TX_PORT gpioPortC +#define SL_MX25_FLASH_SHUTDOWN_TX_PIN 0 + +// EUSART1 RX on PC01 +#define SL_MX25_FLASH_SHUTDOWN_RX_PORT gpioPortC +#define SL_MX25_FLASH_SHUTDOWN_RX_PIN 1 + +// EUSART1 SCLK on PC02 +#define SL_MX25_FLASH_SHUTDOWN_SCLK_PORT gpioPortC +#define SL_MX25_FLASH_SHUTDOWN_SCLK_PIN 2 + +// [EUSART_SL_MX25_FLASH_SHUTDOWN] + +// SL_MX25_FLASH_SHUTDOWN_CS + +// $[GPIO_SL_MX25_FLASH_SHUTDOWN_CS] +#define SL_MX25_FLASH_SHUTDOWN_CS_PORT gpioPortA +#define SL_MX25_FLASH_SHUTDOWN_CS_PIN 4 + +// [GPIO_SL_MX25_FLASH_SHUTDOWN_CS]$ + +// <<< sl:end pin_tool >>> + +#endif // SL_MX25_FLASH_SHUTDOWN_CONFIG_H diff --git a/hardware/board/config/brd4276a_brd4002a/sl_pwm_init_led0_config.h b/hardware/board/config/brd4276a_brd4002a/sl_pwm_init_led0_config.h new file mode 100644 index 0000000000..321effc04d --- /dev/null +++ b/hardware/board/config/brd4276a_brd4002a/sl_pwm_init_led0_config.h @@ -0,0 +1,75 @@ +/***************************************************************************//** + * @file + * @brief PWM Driver + ******************************************************************************* + * # License + * Copyright 2022 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_PWM_INIT_PWM_CONFIG_H +#define SL_PWM_INIT_PWM_CONFIG_H + +#ifdef __cplusplus +extern "C" { +#endif + +// <<< Use Configuration Wizard in Context Menu >>> + +// PWM configuration + +// PWM frequency [Hz] +// Default: 10000 +#define SL_PWM_LED0_FREQUENCY 10000 + +// Polarity +// Active high +// Active low +// Default: PWM_ACTIVE_HIGH +#define SL_PWM_LED0_POLARITY PWM_ACTIVE_HIGH +// end pwm configuration + +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> + +// SL_PWM_LED0 +// $[TIMER_SL_PWM_LED0] +#define SL_PWM_LED0_PERIPHERAL TIMER0 +#define SL_PWM_LED0_PERIPHERAL_NO 0 + +#define SL_PWM_LED0_OUTPUT_CHANNEL 0 +// TIMER0 CC0 on PA05 +#define SL_PWM_LED0_OUTPUT_PORT gpioPortA +#define SL_PWM_LED0_OUTPUT_PIN 5 + +// [TIMER_SL_PWM_LED0]$ + +// <<< sl:end pin_tool >>> + +#ifdef __cplusplus +} +#endif + +#endif // SL_PWM_INIT_PWM_CONFIG_H diff --git a/hardware/board/config/brd4276a_brd4002a/sl_pwm_init_led1_config.h b/hardware/board/config/brd4276a_brd4002a/sl_pwm_init_led1_config.h new file mode 100644 index 0000000000..c51f3b1f72 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4002a/sl_pwm_init_led1_config.h @@ -0,0 +1,75 @@ +/***************************************************************************//** + * @file + * @brief PWM Driver + ******************************************************************************* + * # License + * Copyright 2022 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_PWM_INIT_PWM_CONFIG_H +#define SL_PWM_INIT_PWM_CONFIG_H + +#ifdef __cplusplus +extern "C" { +#endif + +// <<< Use Configuration Wizard in Context Menu >>> + +// PWM configuration + +// PWM frequency [Hz] +// Default: 10000 +#define SL_PWM_LED1_FREQUENCY 10000 + +// Polarity +// Active high +// Active low +// Default: PWM_ACTIVE_HIGH +#define SL_PWM_LED1_POLARITY PWM_ACTIVE_HIGH +// end pwm configuration + +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> + +// SL_PWM_LED1 +// $[TIMER_SL_PWM_LED1] +#define SL_PWM_LED1_PERIPHERAL TIMER1 +#define SL_PWM_LED1_PERIPHERAL_NO 1 + +#define SL_PWM_LED1_OUTPUT_CHANNEL 0 +// TIMER1 CC0 on PA06 +#define SL_PWM_LED1_OUTPUT_PORT gpioPortA +#define SL_PWM_LED1_OUTPUT_PIN 6 + +// [TIMER_SL_PWM_LED1]$ + +// <<< sl:end pin_tool >>> + +#ifdef __cplusplus +} +#endif + +#endif // SL_PWM_INIT_PWM_CONFIG_H diff --git a/hardware/board/config/brd4276a_brd4002a/sl_rail_util_pa_config.h b/hardware/board/config/brd4276a_brd4002a/sl_rail_util_pa_config.h new file mode 100644 index 0000000000..a98f953491 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4002a/sl_rail_util_pa_config.h @@ -0,0 +1,88 @@ +/***************************************************************************//** + * @file + * @brief Power Amplifier configuration file. + ******************************************************************************* + * # License + * Copyright 2020 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_RAIL_UTIL_PA_CONFIG_H +#define SL_RAIL_UTIL_PA_CONFIG_H + +#include "rail_chip_specific.h" + +// <<< Use Configuration Wizard in Context Menu >>> +// PA configuration + +// Initial PA Power (deci-dBm, 100 = 10.0 dBm) +// Default: 100 +#define SL_RAIL_UTIL_PA_POWER_DECI_DBM 250 + +// PA Ramp Time (microseconds) +// <0-65535:1> +// Default: 10 +#define SL_RAIL_UTIL_PA_RAMP_TIME_US 44 + +// Milli-volts on PA supply pin (PA_VDD) +// <3300=> 3.3V +// <3600=> 3.6V +// Default: 3600 +#define SL_RAIL_UTIL_PA_VOLTAGE_MV 3300 + +// 2.4 GHz PA Selection +// Highest Possible +// High Power (chip-specific) +// Medium Power (chip-specific) +// Low Power +// Disable +// Default: RAIL_TX_POWER_MODE_2P4GIG_HIGHEST +#define SL_RAIL_UTIL_PA_SELECTION_2P4GHZ RAIL_TX_POWER_MODE_NONE + +// Sub-1 GHz PA Selection +// Disable +// Default: RAIL_TX_POWER_MODE_NONE +#define SL_RAIL_UTIL_PA_SELECTION_SUBGHZ RAIL_TX_POWER_MODE_SUBGIG_HIGHEST + +// OFDM PA Selection +// OFDM mode +// Default: RAIL_TX_POWER_MODE_OFDM_PA_POWERSETTING_TABLE +#define SL_RAIL_UTIL_PA_SELECTION_OFDM RAIL_TX_POWER_MODE_OFDM_PA_POWERSETTING_TABLE + +// Header file containing custom PA curves +// Default: "pa_curves_efr32.h" +#define SL_RAIL_UTIL_PA_CURVE_HEADER "efr32xg25/pa_curves_brd4276a.h" + +// Header file containing PA curve types +// Default: "pa_curve_types_efr32.h" +#define SL_RAIL_UTIL_PA_CURVE_TYPES "pa_curve_types_efr32.h" + +// Enable PA Calibration +// Default: 1 +#define SL_RAIL_UTIL_PA_CALIBRATION_ENABLE 1 + +// +// <<< end of configuration section >>> + +#endif // SL_RAIL_UTIL_PA_CONFIG_H diff --git a/hardware/board/config/brd4276a_brd4002a/sl_rail_util_pti_config.h b/hardware/board/config/brd4276a_brd4002a/sl_rail_util_pti_config.h new file mode 100644 index 0000000000..df328986d9 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4002a/sl_rail_util_pti_config.h @@ -0,0 +1,73 @@ +/***************************************************************************//** + * @file + * @brief Packet Trace Information configuration file. + ******************************************************************************* + * # License + * Copyright 2020 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_RAIL_UTIL_PTI_CONFIG_H +#define SL_RAIL_UTIL_PTI_CONFIG_H + +#include "rail_types.h" + +// <<< Use Configuration Wizard in Context Menu >>> +// PTI Configuration + +// PTI mode +// UART +// UART onewire +// SPI +// Disabled +// Default: RAIL_PTI_MODE_UART +#define SL_RAIL_UTIL_PTI_MODE RAIL_PTI_MODE_UART + +// PTI Baud Rate (Hertz) +// <147800-20000000:1> +// Default: 3200000 +#define SL_RAIL_UTIL_PTI_BAUD_RATE_HZ 3200000 + +// +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> +// SL_RAIL_UTIL_PTI +// $[PTI_SL_RAIL_UTIL_PTI] +#define SL_RAIL_UTIL_PTI_PERIPHERAL PTI + +// PTI DOUT on PD03 +#define SL_RAIL_UTIL_PTI_DOUT_PORT gpioPortD +#define SL_RAIL_UTIL_PTI_DOUT_PIN 3 + +// PTI DFRAME on PD04 +#define SL_RAIL_UTIL_PTI_DFRAME_PORT gpioPortD +#define SL_RAIL_UTIL_PTI_DFRAME_PIN 4 + + +// [PTI_SL_RAIL_UTIL_PTI]$ + +// <<< sl:end pin_tool >>> + +#endif // SL_RAIL_UTIL_PTI_CONFIG_H diff --git a/hardware/board/config/brd4276a_brd4002a/sl_rail_util_rssi_config.h b/hardware/board/config/brd4276a_brd4002a/sl_rail_util_rssi_config.h new file mode 100644 index 0000000000..94f5f847b9 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4002a/sl_rail_util_rssi_config.h @@ -0,0 +1,44 @@ +/***************************************************************************//** + * @file + * @brief RSSI configuration header file. + ******************************************************************************* + * # License + * Copyright 2020 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_RAIL_UTIL_RSSI_CONFIG_H +#define SL_RAIL_UTIL_RSSI_CONFIG_H + +// <<< Use Configuration Wizard in Context Menu >>> + +// RSSI Offset Configuration + +// Software RSSI offset value +// Default: 0 +#define SL_RAIL_UTIL_RSSI_OFFSET -13 + +// +// <<< end of configuration section >>> +#endif // SL_RAIL_UTIL_RSSI_CONFIG_H diff --git a/hardware/board/config/brd4276a_brd4002a/sl_simple_button_btn0_config.h b/hardware/board/config/brd4276a_brd4002a/sl_simple_button_btn0_config.h new file mode 100644 index 0000000000..ab0634f889 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4002a/sl_simple_button_btn0_config.h @@ -0,0 +1,58 @@ +/***************************************************************************//** + * @file + * @brief Simple Button Driver User Config + ******************************************************************************* + * # License + * Copyright 2019 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_SIMPLE_BUTTON_BTN0_CONFIG_H +#define SL_SIMPLE_BUTTON_BTN0_CONFIG_H + +#include "em_gpio.h" +#include "sl_simple_button.h" + +// <<< Use Configuration Wizard in Context Menu >>> + +// +// Interrupt +// Poll and Debounce +// Poll +// Default: SL_SIMPLE_BUTTON_MODE_INTERRUPT +#define SL_SIMPLE_BUTTON_BTN0_MODE SL_SIMPLE_BUTTON_MODE_INTERRUPT +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> + +// SL_SIMPLE_BUTTON_BTN0 +// $[GPIO_SL_SIMPLE_BUTTON_BTN0] +#define SL_SIMPLE_BUTTON_BTN0_PORT gpioPortB +#define SL_SIMPLE_BUTTON_BTN0_PIN 0 + +// [GPIO_SL_SIMPLE_BUTTON_BTN0]$ + +// <<< sl:end pin_tool >>> + +#endif // SL_SIMPLE_BUTTON_BTN0_CONFIG_H diff --git a/hardware/board/config/brd4276a_brd4002a/sl_simple_button_btn1_config.h b/hardware/board/config/brd4276a_brd4002a/sl_simple_button_btn1_config.h new file mode 100644 index 0000000000..ed9afe4790 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4002a/sl_simple_button_btn1_config.h @@ -0,0 +1,58 @@ +/***************************************************************************//** + * @file + * @brief Simple Button Driver User Config + ******************************************************************************* + * # License + * Copyright 2019 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_SIMPLE_BUTTON_BTN1_CONFIG_H +#define SL_SIMPLE_BUTTON_BTN1_CONFIG_H + +#include "em_gpio.h" +#include "sl_simple_button.h" + +// <<< Use Configuration Wizard in Context Menu >>> + +// +// Interrupt +// Poll and Debounce +// Poll +// Default: SL_SIMPLE_BUTTON_MODE_INTERRUPT +#define SL_SIMPLE_BUTTON_BTN1_MODE SL_SIMPLE_BUTTON_MODE_INTERRUPT +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> + +// SL_SIMPLE_BUTTON_BTN1 +// $[GPIO_SL_SIMPLE_BUTTON_BTN1] +#define SL_SIMPLE_BUTTON_BTN1_PORT gpioPortB +#define SL_SIMPLE_BUTTON_BTN1_PIN 1 + +// [GPIO_SL_SIMPLE_BUTTON_BTN1]$ + +// <<< sl:end pin_tool >>> + +#endif // SL_SIMPLE_BUTTON_BTN1_CONFIG_H diff --git a/hardware/board/config/brd4276a_brd4002a/sl_simple_led_led0_config.h b/hardware/board/config/brd4276a_brd4002a/sl_simple_led_led0_config.h new file mode 100644 index 0000000000..3891ad0377 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4002a/sl_simple_led_led0_config.h @@ -0,0 +1,57 @@ +/***************************************************************************//** + * @file + * @brief Simple Led Driver Configuration + ******************************************************************************* + * # License + * Copyright 2019 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_SIMPLE_LED_LED0_CONFIG_H +#define SL_SIMPLE_LED_LED0_CONFIG_H + +// <<< Use Configuration Wizard in Context Menu >>> + +// Simple LED configuration +// +// Active low +// Active high +// Default: SL_SIMPLE_LED_POLARITY_ACTIVE_HIGH +#define SL_SIMPLE_LED_LED0_POLARITY SL_SIMPLE_LED_POLARITY_ACTIVE_HIGH +// end led configuration + +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> + +// SL_SIMPLE_LED_LED0 +// $[GPIO_SL_SIMPLE_LED_LED0] +#define SL_SIMPLE_LED_LED0_PORT gpioPortA +#define SL_SIMPLE_LED_LED0_PIN 5 + +// [GPIO_SL_SIMPLE_LED_LED0]$ + +// <<< sl:end pin_tool >>> + +#endif // SL_SIMPLE_LED_LED0_CONFIG_H diff --git a/hardware/board/config/brd4276a_brd4002a/sl_simple_led_led1_config.h b/hardware/board/config/brd4276a_brd4002a/sl_simple_led_led1_config.h new file mode 100644 index 0000000000..f8759c4c1a --- /dev/null +++ b/hardware/board/config/brd4276a_brd4002a/sl_simple_led_led1_config.h @@ -0,0 +1,57 @@ +/***************************************************************************//** + * @file + * @brief Simple Led Driver Configuration + ******************************************************************************* + * # License + * Copyright 2019 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_SIMPLE_LED_LED1_CONFIG_H +#define SL_SIMPLE_LED_LED1_CONFIG_H + +// <<< Use Configuration Wizard in Context Menu >>> + +// Simple LED configuration +// +// Active low +// Active high +// Default: SL_SIMPLE_LED_POLARITY_ACTIVE_HIGH +#define SL_SIMPLE_LED_LED1_POLARITY SL_SIMPLE_LED_POLARITY_ACTIVE_HIGH +// end led configuration + +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> + +// SL_SIMPLE_LED_LED1 +// $[GPIO_SL_SIMPLE_LED_LED1] +#define SL_SIMPLE_LED_LED1_PORT gpioPortA +#define SL_SIMPLE_LED_LED1_PIN 6 + +// [GPIO_SL_SIMPLE_LED_LED1]$ + +// <<< sl:end pin_tool >>> + +#endif // SL_SIMPLE_LED_LED1_CONFIG_H diff --git a/hardware/board/config/brd4276a_brd4002a/sl_spidrv_eusart_exp_config.h b/hardware/board/config/brd4276a_brd4002a/sl_spidrv_eusart_exp_config.h new file mode 100644 index 0000000000..701d4b163a --- /dev/null +++ b/hardware/board/config/brd4276a_brd4002a/sl_spidrv_eusart_exp_config.h @@ -0,0 +1,102 @@ +/***************************************************************************//** + * @file + * @brief SPIDRV_EUSART Config + ******************************************************************************* + * # License + * Copyright 2019 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_SPIDRV_EUSART_EXP_CONFIG_H +#define SL_SPIDRV_EUSART_EXP_CONFIG_H + +#include "spidrv.h" + +// <<< Use Configuration Wizard in Context Menu >>> +// SPIDRV settings + +// SPI bitrate +// Default: 1000000 +#define SL_SPIDRV_EUSART_EXP_BITRATE 1000000 + +// SPI frame length <7-16> +// Default: 8 +#define SL_SPIDRV_EUSART_EXP_FRAME_LENGTH 8 + +// SPI mode +// Master +// Slave +#define SL_SPIDRV_EUSART_EXP_TYPE spidrvMaster + +// Bit order on the SPI bus +// LSB transmitted first +// MSB transmitted first +#define SL_SPIDRV_EUSART_EXP_BIT_ORDER spidrvBitOrderMsbFirst + +// SPI clock mode +// SPI mode 0: CLKPOL=0, CLKPHA=0 +// SPI mode 1: CLKPOL=0, CLKPHA=1 +// SPI mode 2: CLKPOL=1, CLKPHA=0 +// SPI mode 3: CLKPOL=1, CLKPHA=1 +#define SL_SPIDRV_EUSART_EXP_CLOCK_MODE spidrvClockMode0 + +// SPI master chip select (CS) control scheme. +// CS controlled by the SPI driver +// CS controlled by the application +#define SL_SPIDRV_EUSART_EXP_CS_CONTROL spidrvCsControlAuto + +// SPI slave transfer start scheme +// Transfer starts immediately +// Transfer starts when the bus is idle (CS deasserted) +// Only applies if instance type is spidrvSlave +#define SL_SPIDRV_EUSART_EXP_SLAVE_START_MODE spidrvSlaveStartImmediate +// +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> +// SL_SPIDRV_EUSART_EXP +// $[EUSART_SL_SPIDRV_EUSART_EXP] +#define SL_SPIDRV_EUSART_EXP_PERIPHERAL EUSART1 +#define SL_SPIDRV_EUSART_EXP_PERIPHERAL_NO 1 + +// EUSART1 TX on PC00 +#define SL_SPIDRV_EUSART_EXP_TX_PORT gpioPortC +#define SL_SPIDRV_EUSART_EXP_TX_PIN 0 + +// EUSART1 RX on PC01 +#define SL_SPIDRV_EUSART_EXP_RX_PORT gpioPortC +#define SL_SPIDRV_EUSART_EXP_RX_PIN 1 + +// EUSART1 SCLK on PC02 +#define SL_SPIDRV_EUSART_EXP_SCLK_PORT gpioPortC +#define SL_SPIDRV_EUSART_EXP_SCLK_PIN 2 + +// EUSART1 CS on PB04 +#define SL_SPIDRV_EUSART_EXP_CS_PORT gpioPortB +#define SL_SPIDRV_EUSART_EXP_CS_PIN 4 + +// [EUSART_SL_SPIDRV_EUSART_EXP]$ +// <<< sl:end pin_tool >>> + +#endif // SL_SPIDRV_EUSART_EXP_CONFIG_HEUSART_ diff --git a/hardware/board/config/brd4276a_brd4002a/sl_uartdrv_eusart_exp_config.h b/hardware/board/config/brd4276a_brd4002a/sl_uartdrv_eusart_exp_config.h new file mode 100644 index 0000000000..3554ed257e --- /dev/null +++ b/hardware/board/config/brd4276a_brd4002a/sl_uartdrv_eusart_exp_config.h @@ -0,0 +1,113 @@ +/***************************************************************************//** + * @file + * @brief UARTDRV_EUSART Config + ******************************************************************************* + * # License + * Copyright 2019 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_UARTDRV_EUSART_EXP_CONFIG_H +#define SL_UARTDRV_EUSART_EXP_CONFIG_H + +#include "em_eusart.h" +// <<< Use Configuration Wizard in Context Menu >>> + +// EUSART settings +// Baud rate +// Default: 115200 +#define SL_UARTDRV_EUSART_EXP_BAUDRATE 115200 + +// Low frequency mode +// True +// False +#define SL_UARTDRV_EUSART_EXP_LF_MODE false + +// Parity mode to use +// No Parity +// Even parity +// Odd parity +// Default: eusartNoParity +#define SL_UARTDRV_EUSART_EXP_PARITY eusartNoParity + +// Number of stop bits to use. +// 0.5 stop bits +// 1 stop bits +// 1.5 stop bits +// 2 stop bits +// Default: eusartStopbits1 +#define SL_UARTDRV_EUSART_EXP_STOP_BITS eusartStopbits1 + +// Flow control method +// None +// Software XON/XOFF +// nRTS/nCTS hardware handshake +// UART peripheral controls nRTS/nCTS +// Default: uartdrvFlowControlHwUart +#define SL_UARTDRV_EUSART_EXP_FLOW_CONTROL_TYPE uartdrvFlowControlNone + +// Oversampling selection +// 16x oversampling +// 8x oversampling +// 6x oversampling +// 4x oversampling +// Oversampling disabled +// Default: eusartOVS16 +#define SL_UARTDRV_EUSART_EXP_OVERSAMPLING eusartOVS16 + +// Majority vote disable for 16x, 8x and 6x oversampling modes +// False +// True +// Default: eusartMajorityVoteEnable +#define SL_UARTDRV_EUSART_EXP_MVDIS eusartMajorityVoteEnable + +// Size of the receive operation queue +// Default: 6 +#define SL_UARTDRV_EUSART_EXP_RX_BUFFER_SIZE 6 + +// Size of the transmit operation queue +// Default: 6 +#define SL_UARTDRV_EUSART_EXP_TX_BUFFER_SIZE 6 +// +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> +// SL_UARTDRV_EUSART_EXP +// $[EUSART_SL_UARTDRV_EUSART_EXP] +#define SL_UARTDRV_EUSART_EXP_PERIPHERAL EUSART0 +#define SL_UARTDRV_EUSART_EXP_PERIPHERAL_NO 0 + +// EUSART0 TX on PA08 +#define SL_UARTDRV_EUSART_EXP_TX_PORT gpioPortA +#define SL_UARTDRV_EUSART_EXP_TX_PIN 8 + +// EUSART0 RX on PA09 +#define SL_UARTDRV_EUSART_EXP_RX_PORT gpioPortA +#define SL_UARTDRV_EUSART_EXP_RX_PIN 9 + + + +// [EUSART_SL_UARTDRV_EUSART_EXP]$ +// <<< sl:end pin_tool >>> +#endif // SL_UARTDRV_EUSART_EXP_CONFIG_H diff --git a/hardware/board/config/brd4276a_brd4002a/sl_uartdrv_eusart_vcom_config.h b/hardware/board/config/brd4276a_brd4002a/sl_uartdrv_eusart_vcom_config.h new file mode 100644 index 0000000000..c4dc8e9cf0 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4002a/sl_uartdrv_eusart_vcom_config.h @@ -0,0 +1,119 @@ +/***************************************************************************//** + * @file + * @brief UARTDRV_EUSART Config + ******************************************************************************* + * # License + * Copyright 2019 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_UARTDRV_EUSART_VCOM_CONFIG_H +#define SL_UARTDRV_EUSART_VCOM_CONFIG_H + +#include "em_eusart.h" +// <<< Use Configuration Wizard in Context Menu >>> + +// EUSART settings +// Baud rate +// Default: 115200 +#define SL_UARTDRV_EUSART_VCOM_BAUDRATE 115200 + +// Low frequency mode +// True +// False +#define SL_UARTDRV_EUSART_VCOM_LF_MODE false + +// Parity mode to use +// No Parity +// Even parity +// Odd parity +// Default: eusartNoParity +#define SL_UARTDRV_EUSART_VCOM_PARITY eusartNoParity + +// Number of stop bits to use. +// 0.5 stop bits +// 1 stop bits +// 1.5 stop bits +// 2 stop bits +// Default: eusartStopbits1 +#define SL_UARTDRV_EUSART_VCOM_STOP_BITS eusartStopbits1 + +// Flow control method +// None +// Software XON/XOFF +// nRTS/nCTS hardware handshake +// UART peripheral controls nRTS/nCTS +// Default: uartdrvFlowControlHwUart +#define SL_UARTDRV_EUSART_VCOM_FLOW_CONTROL_TYPE uartdrvFlowControlHwUart + +// Oversampling selection +// 16x oversampling +// 8x oversampling +// 6x oversampling +// 4x oversampling +// Oversampling disabled +// Default: eusartOVS16 +#define SL_UARTDRV_EUSART_VCOM_OVERSAMPLING eusartOVS16 + +// Majority vote disable for 16x, 8x and 6x oversampling modes +// False +// True +// Default: eusartMajorityVoteEnable +#define SL_UARTDRV_EUSART_VCOM_MVDIS eusartMajorityVoteEnable + +// Size of the receive operation queue +// Default: 6 +#define SL_UARTDRV_EUSART_VCOM_RX_BUFFER_SIZE 6 + +// Size of the transmit operation queue +// Default: 6 +#define SL_UARTDRV_EUSART_VCOM_TX_BUFFER_SIZE 6 +// +// <<< end of configuration section >>> + +// <<< sl:start pin_tool >>> +// SL_UARTDRV_EUSART_VCOM +// $[EUSART_SL_UARTDRV_EUSART_VCOM] +#define SL_UARTDRV_EUSART_VCOM_PERIPHERAL EUSART0 +#define SL_UARTDRV_EUSART_VCOM_PERIPHERAL_NO 0 + +// EUSART0 TX on PA08 +#define SL_UARTDRV_EUSART_VCOM_TX_PORT gpioPortA +#define SL_UARTDRV_EUSART_VCOM_TX_PIN 8 + +// EUSART0 RX on PA09 +#define SL_UARTDRV_EUSART_VCOM_RX_PORT gpioPortA +#define SL_UARTDRV_EUSART_VCOM_RX_PIN 9 + +// EUSART0 CTS on PA10 +#define SL_UARTDRV_EUSART_VCOM_CTS_PORT gpioPortA +#define SL_UARTDRV_EUSART_VCOM_CTS_PIN 10 + +// EUSART0 RTS on PA00 +#define SL_UARTDRV_EUSART_VCOM_RTS_PORT gpioPortA +#define SL_UARTDRV_EUSART_VCOM_RTS_PIN 0 + +// [EUSART_SL_UARTDRV_EUSART_VCOM]$ +// <<< sl:end pin_tool >>> +#endif // SL_UARTDRV_EUSART_VCOM_CONFIG_H diff --git a/hardware/board/config/brd4276a_brd4002a/sl_usbd_driver_config.h b/hardware/board/config/brd4276a_brd4002a/sl_usbd_driver_config.h new file mode 100644 index 0000000000..005a845bd2 --- /dev/null +++ b/hardware/board/config/brd4276a_brd4002a/sl_usbd_driver_config.h @@ -0,0 +1,30 @@ +/***************************************************************************//** + * @file + * @brief USBD Hardware Configuration + ******************************************************************************* + * # License + * Copyright 2021 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * The licensor of this software is Silicon Laboratories Inc. Your use of this + * software is governed by the terms of Silicon Labs Master Software License + * Agreement (MSLA) available at + * www.silabs.com/about-us/legal/master-software-license-agreement. This + * software is distributed to you in Source Code format and is governed by the + * sections of the MSLA applicable to Source Code. + * + ******************************************************************************/ + +#ifndef SL_USBD_DRIVER_CONFIG_H +#define SL_USBD_DRIVER_CONFIG_H + +// <<< sl:start pin_tool >>> +// SL_USBD_DRIVER_VBUS_SENSE +// $[GPIO_SL_USBD_DRIVER_VBUS_SENSE] +#define SL_USBD_DRIVER_VBUS_SENSE_PORT gpioPortD +#define SL_USBD_DRIVER_VBUS_SENSE_PIN 2 + +// [GPIO_SL_USBD_DRIVER_VBUS_SENSE]$ +// <<< sl:end pin_tool >>> + +#endif // SL_USBD_DRIVER_CONFIG_H diff --git a/hardware/board/config/component/brd2606a_config.slcc b/hardware/board/config/component/brd2606a_config.slcc index d3b29b4e13..902ee22999 100644 --- a/hardware/board/config/component/brd2606a_config.slcc +++ b/hardware/board/config/component/brd2606a_config.slcc @@ -85,6 +85,10 @@ file_id: i2cspm_config instance: qwiic path: brd2606a/sl_i2cspm_qwiic_config.h + - override: + component: icm40627_driver + file_id: icm40627_config + path: brd2606a/sl_icm40627_config.h - override: component: iostream_eusart file_id: iostream_eusart_config @@ -148,10 +152,18 @@ file_id: pwm_config instance: led1 path: brd2606a/sl_pwm_init_led1_config.h + - override: + component: rail_util_ant_div + file_id: rail_util_ant_div_config + path: brd2606a/sl_rail_util_ant_div_config.h - override: component: rail_util_aox file_id: rail_util_aox_config path: brd2606a/sl_rail_util_aox_config.h + - override: + component: rail_util_pa + file_id: rail_util_pa_config + path: brd2606a/sl_rail_util_pa_config.h - override: component: rail_util_pti file_id: rail_util_pti_config diff --git a/hardware/board/config/component/brd2608a_config.slcc b/hardware/board/config/component/brd2608a_config.slcc index 210b89dc66..34e119c479 100644 --- a/hardware/board/config/component/brd2608a_config.slcc +++ b/hardware/board/config/component/brd2608a_config.slcc @@ -89,6 +89,10 @@ file_id: i2cspm_config instance: sensor path: brd2608a/sl_i2cspm_sensor_config.h + - override: + component: icm40627_driver + file_id: icm40627_config + path: brd2608a/sl_icm40627_config.h - override: component: iostream_eusart file_id: iostream_eusart_config diff --git a/hardware/board/config/component/brd4276a_config.slcc b/hardware/board/config/component/brd4276a_config.slcc new file mode 100644 index 0000000000..a0c7fcb205 --- /dev/null +++ b/hardware/board/config/component/brd4276a_config.slcc @@ -0,0 +1,532 @@ +!!omap +- id: brd4276a_config +- label: brd4276a config +- description: Configuration files for BRD4276A +- package: platform +- category: Platform|Board|Config +- quality: production +- metadata: + sbom: + license: Zlib +- ui_hints: + visibility: never +- root_path: hardware/board/config +- requires: + - name: brd4276a +- provides: + - name: brd4276a_config +- config_file: + - condition: + - brd4001a + override: + component: board_control + file_id: board_control_config + path: brd4276a_brd4001a/sl_board_control_config.h + - condition: + - brd4002a + override: + component: board_control + file_id: board_control_config + path: brd4276a_brd4002a/sl_board_control_config.h + - condition: + - brd4001a + override: + component: bootloader_euart_driver + file_id: btl_euart_driver_cfg + path: brd4276a_brd4001a/btl_euart_driver_cfg.h + - condition: + - brd4001a + override: + component: bootloader_gpio_activation + file_id: btl_gpio_activation_cfg + path: brd4276a_brd4001a/btl_gpio_activation_cfg.h + - condition: + - brd4001a + override: + component: bootloader_spi_controller_eusart_driver + file_id: btl_spi_controller_eusart_driver_cfg + path: brd4276a_brd4001a/btl_spi_controller_eusart_driver_cfg.h + - condition: + - brd4001a + override: + component: bootloader_spi_peripheral_eusart_driver + file_id: btl_spi_peripheral_eusart_driver_cfg + path: brd4276a_brd4001a/btl_spi_peripheral_eusart_driver_cfg.h + - condition: + - brd4001a + override: + component: clock_manager + file_id: clock_manager_oscillator_config + path: brd4276a_brd4001a/sl_clock_manager_oscillator_config.h + - condition: + - brd4001a + override: + component: clock_manager + file_id: clock_manager_tree_config + path: brd4276a_brd4001a/sl_clock_manager_tree_config.h + - condition: + - brd4001a + override: + component: cpc_gpio_expander_gpio_instance + file_id: cpc_gpio_expander_gpio_config + instance: btn0 + path: brd4276a_brd4001a/sl_cpc_gpio_expander_gpio_btn0_config.h + - condition: + - brd4001a + override: + component: cpc_gpio_expander_gpio_instance + file_id: cpc_gpio_expander_gpio_config + instance: btn1 + path: brd4276a_brd4001a/sl_cpc_gpio_expander_gpio_btn1_config.h + - condition: + - brd4001a + override: + component: cpc_primary_driver_uart_eusart + file_id: cpc_drv_uart_eusart_config + instance: exp + path: brd4276a_brd4001a/sl_cpc_drv_uart_eusart_exp_config.h + - condition: + - brd4001a + override: + component: cpc_secondary_driver_spi_eusart + file_id: cpc_drv_secondary_spi_eusart_config + instance: exp + path: brd4276a_brd4001a/sl_cpc_drv_secondary_spi_eusart_exp_config.h + - condition: + - brd4001a + override: + component: cpc_secondary_driver_uart_eusart + file_id: cpc_drv_uart_eusart_config + instance: vcom + path: brd4276a_brd4001a/sl_cpc_drv_uart_eusart_vcom_config.h + - condition: + - brd4001a + override: + component: cpc_secondary_driver_uart_eusart + file_id: cpc_drv_uart_eusart_config + instance: exp + path: brd4276a_brd4001a/sl_cpc_drv_uart_eusart_exp_config.h + - condition: + - brd4001a + override: + component: device_init_hfxo + file_id: device_init_hfxo_config + path: brd4276a_brd4001a/sl_device_init_hfxo_config.h + - condition: + - brd4001a + override: + component: device_init_lfxo + file_id: device_init_lfxo_config + path: brd4276a_brd4001a/sl_device_init_lfxo_config.h + - condition: + - brd4001a + override: + component: fem_util + file_id: fem_util_config + path: brd4276a_brd4001a/sl_fem_util_config.h + - condition: + - brd4001a + override: + component: iostream_eusart + file_id: iostream_eusart_config + instance: vcom + path: brd4276a_brd4001a/sl_iostream_eusart_vcom_config.h + - condition: + - brd4001a + override: + component: iostream_eusart + file_id: iostream_eusart_config + instance: exp + path: brd4276a_brd4001a/sl_iostream_eusart_exp_config.h + - condition: + - brd4001a + override: + component: iot_flash + file_id: iot_flash_cfg + instance: msc + path: brd4276a_brd4001a/iot_flash_cfg_msc.h + - condition: + - brd4001a + override: + component: iot_i2c + file_id: iot_i2c_cfg + instance: sensor + path: brd4276a_brd4001a/iot_i2c_cfg_sensor.h + - condition: + - brd4001a + override: + component: iot_i2c + file_id: iot_i2c_cfg + instance: exp + path: brd4276a_brd4001a/iot_i2c_cfg_exp.h + - condition: + - brd4001a + override: + component: iot_i2c + file_id: iot_i2c_cfg + instance: test + path: brd4276a_brd4001a/iot_i2c_cfg_test.h + - condition: + - brd4001a + override: + component: iot_pwm + file_id: iot_pwm_cfg + instance: led0 + path: brd4276a_brd4001a/iot_pwm_cfg_led0.h + - condition: + - brd4001a + override: + component: iot_pwm + file_id: iot_pwm_cfg + instance: led1 + path: brd4276a_brd4001a/iot_pwm_cfg_led1.h + - condition: + - brd4001a + override: + component: memlcd_eusart + file_id: sl_memlcd_eusart_config + path: brd4276a_brd4001a/sl_memlcd_eusart_config.h + - condition: + - brd4001a + override: + component: mx25_flash_shutdown_eusart + file_id: mx25_flash_shutdown_eusart_config + path: brd4276a_brd4001a/sl_mx25_flash_shutdown_eusart_config.h + - condition: + - brd4001a + override: + component: pwm + file_id: pwm_config + instance: led0 + path: brd4276a_brd4001a/sl_pwm_init_led0_config.h + - condition: + - brd4001a + override: + component: pwm + file_id: pwm_config + instance: led1 + path: brd4276a_brd4001a/sl_pwm_init_led1_config.h + - condition: + - brd4001a + override: + component: rail_util_pa + file_id: rail_util_pa_config + path: brd4276a_brd4001a/sl_rail_util_pa_config.h + - condition: + - brd4001a + override: + component: rail_util_pti + file_id: rail_util_pti_config + path: brd4276a_brd4001a/sl_rail_util_pti_config.h + - condition: + - brd4001a + override: + component: simple_button + file_id: simple_button_config + instance: btn0 + path: brd4276a_brd4001a/sl_simple_button_btn0_config.h + - condition: + - brd4001a + override: + component: simple_button + file_id: simple_button_config + instance: btn1 + path: brd4276a_brd4001a/sl_simple_button_btn1_config.h + - condition: + - brd4001a + override: + component: simple_led + file_id: simple_led_config + instance: led0 + path: brd4276a_brd4001a/sl_simple_led_led0_config.h + - condition: + - brd4001a + override: + component: simple_led + file_id: simple_led_config + instance: led1 + path: brd4276a_brd4001a/sl_simple_led_led1_config.h + - condition: + - brd4001a + override: + component: spidrv_eusart + file_id: spidrv_eusart_config + instance: exp + path: brd4276a_brd4001a/sl_spidrv_eusart_exp_config.h + - condition: + - brd4001a + override: + component: uartdrv_eusart + file_id: uartdrv_eusart_config + instance: vcom + path: brd4276a_brd4001a/sl_uartdrv_eusart_vcom_config.h + - condition: + - brd4001a + override: + component: uartdrv_eusart + file_id: uartdrv_eusart_config + instance: exp + path: brd4276a_brd4001a/sl_uartdrv_eusart_exp_config.h + - condition: + - brd4001a + override: + component: usb_device_driver_dwc_otg_fs + file_id: usbd_driver_config + path: brd4276a_brd4001a/sl_usbd_driver_config.h + - condition: + - brd4002a + override: + component: bootloader_euart_driver + file_id: btl_euart_driver_cfg + path: brd4276a_brd4002a/btl_euart_driver_cfg.h + - condition: + - brd4002a + override: + component: bootloader_gpio_activation + file_id: btl_gpio_activation_cfg + path: brd4276a_brd4002a/btl_gpio_activation_cfg.h + - condition: + - brd4002a + override: + component: bootloader_spi_controller_eusart_driver + file_id: btl_spi_controller_eusart_driver_cfg + path: brd4276a_brd4002a/btl_spi_controller_eusart_driver_cfg.h + - condition: + - brd4002a + override: + component: bootloader_spi_peripheral_eusart_driver + file_id: btl_spi_peripheral_eusart_driver_cfg + path: brd4276a_brd4002a/btl_spi_peripheral_eusart_driver_cfg.h + - condition: + - brd4002a + override: + component: clock_manager + file_id: clock_manager_oscillator_config + path: brd4276a_brd4002a/sl_clock_manager_oscillator_config.h + - condition: + - brd4002a + override: + component: clock_manager + file_id: clock_manager_tree_config + path: brd4276a_brd4002a/sl_clock_manager_tree_config.h + - condition: + - brd4002a + override: + component: cpc_gpio_expander_gpio_instance + file_id: cpc_gpio_expander_gpio_config + instance: btn0 + path: brd4276a_brd4002a/sl_cpc_gpio_expander_gpio_btn0_config.h + - condition: + - brd4002a + override: + component: cpc_gpio_expander_gpio_instance + file_id: cpc_gpio_expander_gpio_config + instance: btn1 + path: brd4276a_brd4002a/sl_cpc_gpio_expander_gpio_btn1_config.h + - condition: + - brd4002a + override: + component: cpc_primary_driver_uart_eusart + file_id: cpc_drv_uart_eusart_config + instance: exp + path: brd4276a_brd4002a/sl_cpc_drv_uart_eusart_exp_config.h + - condition: + - brd4002a + override: + component: cpc_secondary_driver_spi_eusart + file_id: cpc_drv_secondary_spi_eusart_config + instance: exp + path: brd4276a_brd4002a/sl_cpc_drv_secondary_spi_eusart_exp_config.h + - condition: + - brd4002a + override: + component: cpc_secondary_driver_uart_eusart + file_id: cpc_drv_uart_eusart_config + instance: vcom + path: brd4276a_brd4002a/sl_cpc_drv_uart_eusart_vcom_config.h + - condition: + - brd4002a + override: + component: cpc_secondary_driver_uart_eusart + file_id: cpc_drv_uart_eusart_config + instance: exp + path: brd4276a_brd4002a/sl_cpc_drv_uart_eusart_exp_config.h + - condition: + - brd4002a + override: + component: device_init_hfxo + file_id: device_init_hfxo_config + path: brd4276a_brd4002a/sl_device_init_hfxo_config.h + - condition: + - brd4002a + override: + component: device_init_lfxo + file_id: device_init_lfxo_config + path: brd4276a_brd4002a/sl_device_init_lfxo_config.h + - condition: + - brd4002a + override: + component: fem_util + file_id: fem_util_config + path: brd4276a_brd4002a/sl_fem_util_config.h + - condition: + - brd4002a + override: + component: iostream_eusart + file_id: iostream_eusart_config + instance: vcom + path: brd4276a_brd4002a/sl_iostream_eusart_vcom_config.h + - condition: + - brd4002a + override: + component: iostream_eusart + file_id: iostream_eusart_config + instance: exp + path: brd4276a_brd4002a/sl_iostream_eusart_exp_config.h + - condition: + - brd4002a + override: + component: iot_flash + file_id: iot_flash_cfg + instance: msc + path: brd4276a_brd4002a/iot_flash_cfg_msc.h + - condition: + - brd4002a + override: + component: iot_i2c + file_id: iot_i2c_cfg + instance: sensor + path: brd4276a_brd4002a/iot_i2c_cfg_sensor.h + - condition: + - brd4002a + override: + component: iot_i2c + file_id: iot_i2c_cfg + instance: exp + path: brd4276a_brd4002a/iot_i2c_cfg_exp.h + - condition: + - brd4002a + override: + component: iot_i2c + file_id: iot_i2c_cfg + instance: test + path: brd4276a_brd4002a/iot_i2c_cfg_test.h + - condition: + - brd4002a + override: + component: iot_pwm + file_id: iot_pwm_cfg + instance: led0 + path: brd4276a_brd4002a/iot_pwm_cfg_led0.h + - condition: + - brd4002a + override: + component: iot_pwm + file_id: iot_pwm_cfg + instance: led1 + path: brd4276a_brd4002a/iot_pwm_cfg_led1.h + - condition: + - brd4002a + override: + component: memlcd_eusart + file_id: sl_memlcd_eusart_config + path: brd4276a_brd4002a/sl_memlcd_eusart_config.h + - condition: + - brd4002a + override: + component: mx25_flash_shutdown_eusart + file_id: mx25_flash_shutdown_eusart_config + path: brd4276a_brd4002a/sl_mx25_flash_shutdown_eusart_config.h + - condition: + - brd4002a + override: + component: pwm + file_id: pwm_config + instance: led0 + path: brd4276a_brd4002a/sl_pwm_init_led0_config.h + - condition: + - brd4002a + override: + component: pwm + file_id: pwm_config + instance: led1 + path: brd4276a_brd4002a/sl_pwm_init_led1_config.h + - condition: + - brd4002a + override: + component: rail_util_pa + file_id: rail_util_pa_config + path: brd4276a_brd4002a/sl_rail_util_pa_config.h + - condition: + - brd4002a + override: + component: rail_util_pti + file_id: rail_util_pti_config + path: brd4276a_brd4002a/sl_rail_util_pti_config.h + - condition: + - brd4002a + override: + component: simple_button + file_id: simple_button_config + instance: btn0 + path: brd4276a_brd4002a/sl_simple_button_btn0_config.h + - condition: + - brd4002a + override: + component: simple_button + file_id: simple_button_config + instance: btn1 + path: brd4276a_brd4002a/sl_simple_button_btn1_config.h + - condition: + - brd4002a + override: + component: simple_led + file_id: simple_led_config + instance: led0 + path: brd4276a_brd4002a/sl_simple_led_led0_config.h + - condition: + - brd4002a + override: + component: simple_led + file_id: simple_led_config + instance: led1 + path: brd4276a_brd4002a/sl_simple_led_led1_config.h + - condition: + - brd4002a + override: + component: spidrv_eusart + file_id: spidrv_eusart_config + instance: exp + path: brd4276a_brd4002a/sl_spidrv_eusart_exp_config.h + - condition: + - brd4002a + override: + component: uartdrv_eusart + file_id: uartdrv_eusart_config + instance: vcom + path: brd4276a_brd4002a/sl_uartdrv_eusart_vcom_config.h + - condition: + - brd4002a + override: + component: uartdrv_eusart + file_id: uartdrv_eusart_config + instance: exp + path: brd4276a_brd4002a/sl_uartdrv_eusart_exp_config.h + - condition: + - brd4002a + override: + component: usb_device_driver_dwc_otg_fs + file_id: usbd_driver_config + path: brd4276a_brd4002a/sl_usbd_driver_config.h + - condition: + - brd4001a + override: + component: rail_util_rssi + file_id: rail_util_rssi_config + path: brd4276a_brd4001a/sl_rail_util_rssi_config.h + - condition: + - brd4002a + override: + component: rail_util_rssi + file_id: rail_util_rssi_config + path: brd4276a_brd4002a/sl_rail_util_rssi_config.h diff --git a/hardware/driver/component/icm40627_driver.slcc b/hardware/driver/component/icm40627_driver.slcc new file mode 100644 index 0000000000..5387f418d2 --- /dev/null +++ b/hardware/driver/component/icm40627_driver.slcc @@ -0,0 +1,36 @@ +id: icm40627_driver +package: platform +label: ICM40627 - Motion Sensor +description: > + Driver for the Invensense ICM40627 6-axis motion sensor +category: Platform|Board Drivers +quality: production +metadata: + sbom: + license: Zlib +root_path: hardware/driver/icm40627 +provides: + - name: icm40627_driver +requires: + - name: hal_generic_common + - name: clock_manager_runtime + - name: emlib_gpio + - name: emlib_eusart + - name: sleeptimer + - name: status +include: + - path: inc + file_list: + - path: sl_icm40627.h + - path: sl_icm40627_defs.h +source: + - path: src/sl_icm40627.c +config_file: + - path: config/sl_icm40627_config.h + file_id: icm40627_config +template_contribution: + - name: component_catalog + value: icm40627_driver +documentation: + docset: gecko-platform + document: platform-hardware-driver/icm40627 diff --git a/hardware/driver/component/imu_driver_icm40627.slcc b/hardware/driver/component/imu_driver_icm40627.slcc new file mode 100644 index 0000000000..2f1c4e1dec --- /dev/null +++ b/hardware/driver/component/imu_driver_icm40627.slcc @@ -0,0 +1,21 @@ +id: imu_driver_icm40627 +package: platform +label: IMU - Device driver for InvenSense ICM-40627 +description: > + Intertial Measurement Unit driver for InvenSense ICM-40627 +category: Platform|Board Drivers +quality: production +metadata: + sbom: + license: Zlib +root_path: hardware/driver/imu +provides: + - name: imu_device_driver +requires: + - name: imu_driver_core + - name: icm40627_driver +source: + - path: src/sl_imu_icm40627.c +documentation: + docset: gecko-platform + document: platform-hardware-driver/imu diff --git a/hardware/driver/icm40627/config/sl_icm40627_config.h b/hardware/driver/icm40627/config/sl_icm40627_config.h new file mode 100644 index 0000000000..2e5f21d440 --- /dev/null +++ b/hardware/driver/icm40627/config/sl_icm40627_config.h @@ -0,0 +1,61 @@ +/*****************************CS**********************************************//** + * @file + * @brief ICM40627 Config + ******************************************************************************* + * # License + * Copyright 2024 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_ICM40627_CONFIG_H +#define SL_ICM40627_CONFIG_H + +// <<< sl:start pin_tool >>> +// SL_ICM40627_SPI_EUSART +// $[EUSART_SL_ICM40627_SPI_EUSART] +#warning "ICM40627 EUSART peripheral not configured" +//#define SL_ICM40627_SPI_EUSART_PERIPHERAL EUSART1 +//#define SL_ICM40627_SPI_EUSART_PERIPHERAL_NO 1 + +//#define SL_ICM40627_SPI_EUSART_TX_PORT gpioPortC +//#define SL_ICM40627_SPI_EUSART_TX_PIN 3 + +//#define SL_ICM40627_SPI_EUSART_RX_PORT gpioPortC +//#define SL_ICM40627_SPI_EUSART_RX_PIN 2 + +//#define SL_ICM40627_SPI_EUSART_SCLK_PORT gpioPortC +//#define SL_ICM40627_SPI_EUSART_SCLK_PIN 1 + +//#define SL_ICM40627_SPI_EUSART_CS_PORT gpioPortC +//#define SL_ICM40627_SPI_EUSART_CS_PIN 0 +// [EUSART_SL_ICM40627_SPI_EUSART]$ + +// SL_ICM40627_INT +// $[GPIO_SL_ICM40627_INT] +//#define SL_ICM40627_INT_PORT gpioPortB +//#define SL_ICM40627_INT_PIN 1 +// [GPIO_SL_ICM40627_INT]$ +// <<< sl:end pin_tool >>> + +#endif // SL_ICM40627_CONFIG_H diff --git a/hardware/driver/icm40627/inc/sl_icm40627.h b/hardware/driver/icm40627/inc/sl_icm40627.h new file mode 100644 index 0000000000..855c663f2f --- /dev/null +++ b/hardware/driver/icm40627/inc/sl_icm40627.h @@ -0,0 +1,523 @@ +/***************************************************************************//** + * @file + * @brief Driver for the Invensense ICM40627 6-axis motion sensor + ******************************************************************************* + * # License + * Copyright 2024 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#ifndef SL_ICM40627_H +#define SL_ICM40627_H + +#include +#include +#include "sl_status.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/***************************************************************************//** + * @addtogroup icm40627 ICM40627 - Motion Sensor + * @brief Driver for the Invensense ICM40627 6-axis motion sensor. + * @{ + ******************************************************************************/ +/***************************************************************************//** + * @addtogroup icm40627_details Register definitions + * @brief Register definitions. + * @{ + ******************************************************************************/ + +/**************************************************************************//** +* @name Register and associated bit definitions +* @{ +******************************************************************************/ +#include "sl_icm40627_defs.h" + +#define ICM40627_WHO_AM_I_ID (0x4E) /**< Device ID register */ +#define ICM40627_DEVICE_ID ICM40627_WHO_AM_I_ID /**< ICM40627 Device ID value */ + +#define FIFO_SAMPLE_COUNT (12 * 42) /**< Total number of samples in the FIFO */ +#define FIFO_HEADER_SIZE 1 /**< Size of the FIFO header in bytes */ +#define FIFO_ACCEL_DATA_SIZE 6 /**< Size of the accelerometer data in the FIFO in bytes */ +#define FIFO_GYRO_DATA_SIZE 6 /**< Size of the gyroscope data in the FIFO in bytes */ +#define FIFO_TEMP_DATA_SIZE 1 /**< Size of the temperature data in the FIFO in bytes */ +#define FIFO_TS_FSYNC_SIZE 2 /**< Size of the timestamp/fSync data in the FIFO in bytes */ + +typedef enum { + sl_accelODR_8000Hz = ICM40627_ACCEL_ODR_VALUE_8000, /**< 8 kHz (LN mode) >**/ + sl_accelODR_4000Hz = ICM40627_ACCEL_ODR_VALUE_4000, /**< 4 kHz (LN mode) >**/ + sl_accelODR_2000Hz = ICM40627_ACCEL_ODR_VALUE_2000, /**< 2 kHz (LN mode) >**/ + sl_accelODR_1000Hz = ICM40627_ACCEL_ODR_VALUE_1000, /**< 1 kHz (LN mode) >**/ + sl_accelODR_500Hz = ICM40627_ACCEL_ODR_VALUE_500, /**< 500 Hz (LP or LN mode) >**/ + sl_accelODR_200Hz = ICM40627_ACCEL_ODR_VALUE_200, /**< 200 Hz (LP or LN mode) >**/ + sl_accelODR_100Hz = ICM40627_ACCEL_ODR_VALUE_100, /**< 100 Hz (LP or LN mode) >**/ + sl_accelODR_50Hz = ICM40627_ACCEL_ODR_VALUE_50, /**< 50 Hz (LP or LN mode) >**/ + sl_accelODR_25Hz = ICM40627_ACCEL_ODR_VALUE_25, /**< 25 Hz (LP or LN mode) >**/ + sl_accelODR_12_5Hz = ICM40627_ACCEL_ODR_VALUE_12_5, /**< 12.5 Hz (LP or LN mode) >**/ + sl_accelODR_6_25Hz = ICM40627_ACCEL_ODR_VALUE_6_25, /**< 6.25 Hz (LP mode) >**/ + sl_accelODR_3_125Hz = ICM40627_ACCEL_ODR_VALUE_3_125, /**< 3.125 Hz (LP mode) >**/ + sl_accelODR_1_5625Hz = ICM40627_ACCEL_ODR_VALUE_1_5625, /**< 1.5625 Hz (LP mode) >**/ +} sl_accel_ODR_t; + +typedef enum { + sl_gyroODR_8000Hz = ICM40627_GYRO_ODR_VALUE_8000, /**< 8 kHz >**/ + sl_gyroODR_4000Hz = ICM40627_GYRO_ODR_VALUE_4000, /**< 4 kHz >**/ + sl_gyroODR_2000Hz = ICM40627_GYRO_ODR_VALUE_2000, /**< 2 kHz >**/ + sl_gyroODR_1000Hz = ICM40627_GYRO_ODR_VALUE_1000, /**< 1 kHz >**/ + sl_gyroODR_500Hz = ICM40627_GYRO_ODR_VALUE_500, /**< 500 Hz >**/ + sl_gyroODR_200Hz = ICM40627_GYRO_ODR_VALUE_200, /**< 200 Hz >**/ + sl_gyroODR_100Hz = ICM40627_GYRO_ODR_VALUE_100, /**< 100 Hz >**/ + sl_gyroODR_50Hz = ICM40627_GYRO_ODR_VALUE_50, /**< 50 Hz >**/ + sl_gyroODR_25Hz = ICM40627_GYRO_ODR_VALUE_25, /**< 25 Hz >**/ + sl_gyroODR_12_5Hz = ICM40627_GYRO_ODR_VALUE_12_5, /**< 12.5 Hz >**/ +} sl_gyro_ODR_t; + +typedef enum { + sl_gyroFS_2000dps = ICM40627_GYRO_FS_SEL_VALUE_2000, /**< ±2000 dps (default) >**/ + sl_gyroFS_1000dps = ICM40627_GYRO_FS_SEL_VALUE_1000, /**< ±1000 dps >**/ + sl_gyroFS_500dps = ICM40627_GYRO_FS_SEL_VALUE_500, /**< ±500 dps >**/ + sl_gyroFS_250dps = ICM40627_GYRO_FS_SEL_VALUE_250, /**< ±250 dps >**/ + sl_gyroFS_125dps = ICM40627_GYRO_FS_SEL_VALUE_125, /**< ±125 dps >**/ + sl_gyroFS_62_5dps = ICM40627_GYRO_FS_SEL_VALUE_62_5, /**< ±62.5 dps >**/ + sl_gyroFS_31_25dps = ICM40627_GYRO_FS_SEL_VALUE_31_25, /**< ±31.25 dps >**/ + sl_gyroFS_15_625dps = ICM40627_GYRO_FS_SEL_VALUE_15_625 /**< ±15.625 dps >**/ +} sl_gyro_FS_t; + +typedef enum { + sl_accelFS_16g = ICM40627_ACCEL_FS_SEL_VALUE_16G, /**< ±16g (default) >**/ + sl_accelFS_8g = ICM40627_ACCEL_FS_SEL_VALUE_8G, /**< ±8g >**/ + sl_accelFS_4g = ICM40627_ACCEL_FS_SEL_VALUE_4G, /**< ±4g >**/ + sl_accelFS_2g = ICM40627_ACCEL_FS_SEL_VALUE_2G /**< ±2g >**/ +} sl_Accel_FS_t; + +typedef enum { + sl_gyroBW_ODR_DIV_2 = ICM40627_GYRO_UI_FILT_BW_VALUE_0, /**< BW = ODR / 2 */ + sl_gyroBW_ODR_DIV_4 = ICM40627_GYRO_UI_FILT_BW_VALUE_1, /**< BW = max(400 Hz, ODR) / 4 (default) */ + sl_gyroBW_ODR_DIV_5 = ICM40627_GYRO_UI_FILT_BW_VALUE_2, /**< BW = max(400 Hz, ODR) / 5 */ + sl_gyroBW_ODR_DIV_8 = ICM40627_GYRO_UI_FILT_BW_VALUE_3, /**< BW = max(400 Hz, ODR) / 8 */ + sl_gyroBW_ODR_DIV_10 = ICM40627_GYRO_UI_FILT_BW_VALUE_4, /**< BW = max(400 Hz, ODR) / 10 */ + sl_gyroBW_ODR_DIV_16 = ICM40627_GYRO_UI_FILT_BW_VALUE_5, /**< BW = max(400 Hz, ODR) / 16 */ + sl_gyroBW_ODR_DIV_20 = ICM40627_GYRO_UI_FILT_BW_VALUE_6, /**< BW = max(400 Hz, ODR) / 20 */ + sl_gyroBW_ODR_DIV_40 = ICM40627_GYRO_UI_FILT_BW_VALUE_7, /**< BW = max(400 Hz, ODR) / 40 */ + sl_gyroBW_ODR_DIV_1 = ICM40627_GYRO_UI_FILT_BW_VALUE_8, /**< BW = max(400 Hz, ODR) */ + sl_gyroBW_ODR_MUL_8 = ICM40627_GYRO_UI_FILT_BW_VALUE_9 /**< BW = max(200 Hz, 8*ODR) */ +} sl_gyro_BW_t; + +typedef enum { + sl_accelBW_ODR_DIV_2 = ICM40627_ACCEL_UI_FILT_BW_VALUE_0, /**< BW = ODR / 2 */ + sl_accelBW_ODR_DIV_4 = ICM40627_ACCEL_UI_FILT_BW_VALUE_1, /**< BW = max(400 Hz, ODR) / 4 (default) */ + sl_accelBW_ODR_DIV_5 = ICM40627_ACCEL_UI_FILT_BW_VALUE_2, /**< BW = max(400 Hz, ODR) / 5 */ + sl_accelBW_ODR_DIV_8 = ICM40627_ACCEL_UI_FILT_BW_VALUE_3, /**< BW = max(400 Hz, ODR) / 8 */ + sl_accelBW_ODR_DIV_10 = ICM40627_ACCEL_UI_FILT_BW_VALUE_4, /**< BW = max(400 Hz, ODR) / 10 */ + sl_accelBW_ODR_DIV_16 = ICM40627_ACCEL_UI_FILT_BW_VALUE_5, /**< BW = max(400 Hz, ODR) / 16 */ + sl_accelBW_ODR_DIV_20 = ICM40627_ACCEL_UI_FILT_BW_VALUE_6, /**< BW = max(400 Hz, ODR) / 20 */ + sl_accelBW_ODR_DIV_40 = ICM40627_ACCEL_UI_FILT_BW_VALUE_7, /**< BW = max(400 Hz, ODR) / 40 */ + sl_accelBW_ODR_DIV_1 = ICM40627_ACCEL_UI_FILT_BW_VALUE_8, /**< BW = max(400 Hz, ODR) */ + sl_accelBW_ODR_MUL_8 = ICM40627_ACCEL_UI_FILT_BW_VALUE_9 /**< BW = max(200 Hz, 8*ODR) */ +} sl_accel_BW_t; + +/**@}*/ +/**@}*/ //icm40627_details + +/***************************************************************************//** + * @brief + * Initialize the SPI bus to communicate with the ICM40627. + * + * @return + * Returns zero on OK, non-zero otherwise + ******************************************************************************/ +sl_status_t sl_icm40627_spi_init(void); + +/***************************************************************************//** + * @brief + * De-initialize the ICM40627 sensor. + * + * @return + * Returns zero on OK, non-zero otherwise + ******************************************************************************/ +sl_status_t sl_icm40627_deinit(void); + +/***************************************************************************//** + * @brief + * Read register from the ICM40627 device. + * + * @param[in] addr + * The register address to read from in the sensor + * Bit[7:0] - register address + * + * @param[in] num_bytes + * The number of bytes to read + * + * @param[out] data + * The data read from the register + * + * @return + * Returns zero on OK, non-zero otherwise + ******************************************************************************/ +sl_status_t sl_icm40627_read_register(uint16_t addr, int num_bytes, uint8_t *data); + +/***************************************************************************//** + * @brief + * Write a register in the ICM40627 device. + * + * @param[in] addr + * The register address to write + * Bit[7:0] - register address + * + * @param[in] data + * The data to write to the register + * + * @return + * Returns zero on OK, non-zero otherwise + ******************************************************************************/ +sl_status_t sl_icm40627_write_register(uint16_t addr, uint8_t data); + +/***************************************************************************//** + * @brief + * Perform soft reset on the ICM40627 chip. + * + * @return + * Returns zero on OK, non-zero otherwise + ******************************************************************************/ +sl_status_t sl_icm40627_reset(void); + +/***************************************************************************//** + * @brief + * Initialize the ICM40627 sensor. Enable the power supply and SPI lines, + * set up the host SPI controller, configure the chip control interface, + * clock generator, and interrupt line. + * + * @return + * Returns zero on OK, non-zero otherwise + ******************************************************************************/ +sl_status_t sl_icm40627_init(void); + +/***************************************************************************//** + * @brief + * Set the bandwidth of the gyroscope. + * + * @param[in] gyro_Bw + * The desired bandwidth value by chosing a UI filter Bandwidth mode. + * Use the sl_gyro_BW_t enum, which are defined in the icm40627.h file. + * + * @return + * Returns zero on OK, non-zero otherwise + ******************************************************************************/ +sl_status_t sl_icm40627_gyro_set_bandwidth(sl_gyro_BW_t gyro_Bw); + +/***************************************************************************//** + * @brief + * Set the bandwidth of the accelerometer. + * + * @param[in] accel_Bw + * The desired bandwidth value by chosing a UI filter Bandwidth mode. + * Use the sl_accel_BW_t enum, which are defined in the icm40627.h file. + * + * @return + * Returns zero on OK, non-zero otherwise + ******************************************************************************/ +sl_status_t sl_icm40627_accel_set_bandwidth(sl_accel_BW_t accel_Bw); + +/***************************************************************************//** + * @brief + * Set the sample rate(Output Data Rate) for both the accelerometer + * and the gyroscope. + * + * @param[in] sample_rate + * The desired sample rate in Hz. The value of the sample_rate can be + * 8000Hz, 4000Hz, 2000Hz, 1000Hz, 500Hz, 200Hz, 100Hz, 50Hz, 25Hz, 12Hz. + * + * @return + * Returns the actual sample rate. + * + ******************************************************************************/ +float sl_icm40627_set_sample_rate(float sample_rate); + +/***************************************************************************//** + * @brief + * Set the sample rate(Output Data Rate) of the accelerometer. + * + * @param[in] accel_ODR + * The desired sample rate value. Use the sl_accel_ODR_t enum, + * which are defined in the icm40627.h file. The value can be + * 8 kHz, 4 kHz, 2 kHz, 1 kHz, 500 Hz, 200 Hz, 100 Hz, 50 Hz + * 25 Hz, 12.5 Hz, 6.25 Hz, 3.125 Hz, 1.5625 Hz. + * + * @return + * Returns zero on OK, non-zero otherwise + ******************************************************************************/ +sl_status_t sl_icm40627_accel_set_sample_rate(sl_accel_ODR_t accel_ODR); + +/***************************************************************************//** + * @brief + * Set the sample rate(Output Data Rate) of the gyroscope. + * + * @param[in] gyro_ODR + * The desired sample rate value. Use the sl_gyro_ODR_t enum, + * which are defined in the icm40627.h file. The value can be + * 8 kHz, 4 kHz, 2 kHz, 1 kHz, 500 Hz, 200 Hz, 100 Hz, 50 Hz + * 25 Hz, 12.5 Hz. + * + * @return + * Returns zero on OK, non-zero otherwise + ******************************************************************************/ +sl_status_t sl_icm40627_gyro_set_sample_rate(sl_gyro_ODR_t gyro_ODR); + +/***************************************************************************//** + * @brief + * Read the raw acceleration value and convert to g value based on + * the actual resolution. + * + * @param[out] accel + * A 3-element array of float numbers containing the acceleration values + * for the x, y and z axes in g units. + * + * @return + * Returns zero on OK, non-zero otherwise + ******************************************************************************/ +sl_status_t sl_icm40627_accel_read_data(float accel[3]); + +/***************************************************************************//** + * @brief + * Read the raw gyroscope value and convert to deg/sec value based on + * the actual resolution. + * + * @param[out] gyro + * A 3-element array of float numbers containing the gyroscope values + * for the x, y and z axes in deg/sec units. + * + * @return + * Returns zero on OK, non-zero otherwise + ******************************************************************************/ +sl_status_t sl_icm40627_gyro_read_data(float gyro[3]); + +/***************************************************************************//** + * @brief + * Get the actual resolution of the accelerometer. + * + * @param[out] accel_res + * The resolution in g/bit units + * + * @return + * Returns zero on OK, non-zero otherwise + ******************************************************************************/ +sl_status_t sl_icm40627_accel_get_resolution(float *accel_res); + +/***************************************************************************//** + * @brief + * Get the actual resolution of the gyroscope. + * + * @param[out] gyro_res + * The actual resolution in (deg/sec)/bit units + * + * @return + * Returns zero on OK, non-zero otherwise + ******************************************************************************/ +sl_status_t sl_icm40627_gyro_get_resolution(float *gyro_res); + +/***************************************************************************//** + * @brief + * Set the Full scale value of the accelerometer. + * + * @param[in] accelFs + * The desired Full scale value. Use the sl_Accel_FS_t enum, + * which are defined in the icm40627.h file. The value can be + * 16g, 8g, 4g, 2g. + * + * @return + * Returns zero on OK, non-zero otherwise + ******************************************************************************/ +sl_status_t sl_icm40627_accel_set_full_scale(sl_Accel_FS_t accelFs); + +/***************************************************************************//** + * @brief + * Set the full scale value of the gyroscope. + * + * @param[in] gyroFs + * The desired full scale value. Use the sl_gyro_FS_t enum, + * which are defined in the icm40627.h file. The value can be + * 2000, 1000, 500, 250, 125, 62.5, 31.25, 15.625 (in dps). + * + * @return + * Returns zero on OK, non-zero otherwise + ******************************************************************************/ +sl_status_t sl_icm40627_gyro_set_full_scale(sl_gyro_FS_t gyroFs); + +/***************************************************************************//** + * @brief + * Enable or disable the sleep mode of the device. + * + * @param[in] enable + * If true, sleep mode is enabled. Set to false to disable sleep mode. + * + * @return + * Returns zero on OK, non-zero otherwise + ******************************************************************************/ +sl_status_t sl_icm40627_enable_sleep_mode(bool enable); + +/***************************************************************************//** + * @brief + * Enable or disable the sensors in the ICM40627 chip. + * + * @param[in] accel + * If true, enables the acceleration sensor + * + * @param[in] gyro + * If true, enables the gyroscope sensor + * + * @param[in] temp + * If true, enables the temperature sensor + * + * @return + * Returns zero on OK, non-zero otherwise + ******************************************************************************/ +sl_status_t sl_icm40627_enable_sensor(bool accel, bool gyro, bool temp); + +/***************************************************************************//** + * @brief + * Enable or disable the interrupts in the ICM40627 chip. + * + * @param[in] data_ready_enable + * If true, enables the Raw Data Ready interrupt, otherwise disables. + * + * @param[in] wom_enable + * If true, enables the Wake-up On Motion interrupt, otherwise disables. + * + * @return + * Returns zero on OK, non-zero otherwise + ******************************************************************************/ +sl_status_t sl_icm40627_enable_interrupt(bool data_ready_enable, bool wom_enable); + +/***************************************************************************//** + * @brief + * Read the interrupt status registers of the ICM40627 chip. + * + * @param[out] int_status + * The content of the three interrupt registers which are INT_STATUS, + * INT_STATUS2, INT_STATUS3. + * + * @return + * Returns zero on OK, non-zero otherwise + ******************************************************************************/ +sl_status_t sl_icm40627_read_interrupt_status(uint32_t *int_status); + +/***************************************************************************//** + * @brief + * Check if new data is available to read. + * + * @return + * Returns true if the Raw Data Ready interrupt bit set, false otherwise + ******************************************************************************/ +bool sl_icm40627_is_data_ready(void); + +/***************************************************************************//** + * @brief + * Accelerometer and gyroscope calibration function. Reads the gyroscope + * and accelerometer values while the device is at rest and in level. The + * resulting values are loaded to the accel and gyro bias registers to cancel + * the static offset error. + * + * @param[out] accel_bias_scaled + * The mesured acceleration sensor bias in mg + * + * @param[out] gyro_bias_scaled + * The mesured gyro sensor bias in deg/sec + * + * @return + * Returns zero on OK, non-zero otherwise + ******************************************************************************/ +sl_status_t sl_icm40627_calibrate_accel_and_gyro(float *accel_bias_scaled, float *gyro_bias_scaled); + +/***************************************************************************//** + * @brief + * Read the temperature sensor raw value and convert to Celsius. + * + * @param[out] temperature + * The mesured temperature in Celsius + * + * @return + * Returns zero on OK, non-zero otherwise + ******************************************************************************/ +sl_status_t sl_icm40627_read_temperature_data(float *temperature); + +/***************************************************************************//** + * @brief + * Read the device ID of the ICM40627. + * + * @param[out] dev_id + * The ID of the device read from the WHO_AM_I register. Expected value 0x4E. + * + * @return + * Returns zero on OK, non-zero otherwise + ******************************************************************************/ +sl_status_t sl_icm40627_get_device_id(uint8_t *dev_id); + +/***************************************************************************//** + * @brief + * Gyroscope calibration function. Read the gyroscope + * values while the device is at rest and in level. The + * resulting values are loaded to the gyro bias registers to cancel + * the static offset error. + * + * @param[out] gyroBiasScaled + * The mesured gyro sensor bias in deg/sec + * + * @return + * Returns zero on OK, non-zero otherwise + ******************************************************************************/ +sl_status_t sl_icm40627_calibrate_gyro(float *gyroBiasScaled); + +/***************************************************************************//** + * @brief + * Enable or disable the accelerometer sensor in low-power mode in the ICM40627 chip. + * + * @param[in] enAccel + * If true, enables the acceleration sensor in low power mode + * + * @return + * Returns zero on OK, non-zero otherwise + ******************************************************************************/ +sl_status_t sl_icm40627_accel_enter_low_power_mode(bool enAccel); + +/***************************************************************************//** + * @brief + * Select the desired register bank. + * + * @param[in] bank + * The address of the register bank (0,1,2,4) + * + * @return + * Returns zero on OK, non-zero otherwise + ******************************************************************************/ +sl_status_t sl_icm40627_select_register_bank(uint8_t bank); + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif // SL_ICM40627_H diff --git a/hardware/driver/icm40627/inc/sl_icm40627_defs.h b/hardware/driver/icm40627/inc/sl_icm40627_defs.h new file mode 100644 index 0000000000..e796be09c9 --- /dev/null +++ b/hardware/driver/icm40627/inc/sl_icm40627_defs.h @@ -0,0 +1,804 @@ +#ifndef SL_ICM40627_DEFS_H +#define SL_ICM40627_DEFS_H + +#ifdef __cplusplus +extern "C" { +#endif + +/** @cond DO_NOT_INCLUDE_WITH_DOXYGEN */ + +/***************************************************************************//** + * @addtogroup icm40627 ICM240627 - Motion Sensor + * @brief Driver for the Invensense ICM40627 6-axis motion sensor. + * @{ + ******************************************************************************/ +/***************************************************************************//** + * @addtogroup icm40627_details Register definitions + * @brief Register definitions. + * @{ + ******************************************************************************/ +/**************************************************************************//** +* @name ICM40627 register banks +* @{ +******************************************************************************/ +#define ICM40627_BANK_0 (uint16_t)(0 << 7) /**< Register bank 0 */ +#define ICM40627_BANK_1 (uint16_t)(1 << 7) /**< Register bank 1 */ +#define ICM40627_BANK_2 (uint16_t)(2 << 7) /**< Register bank 2 */ +#define ICM40627_BANK_3 (uint16_t)(3 << 7) /**< Register bank 3 */ +#define ICM40627_BANK_4 (uint16_t)(4 << 7) /**< Register bank 4 */ + +/**@}*/ + +/**************************************************************************//** +* @name Register and associated bit definitions +* @{ +******************************************************************************/ +/***********************/ +/* Bank 0 register map */ +/***********************/ +#define ICM40627_REG_DEVICE_CONFIG (ICM40627_BANK_0 | 0x11) /**< DEVICE_CONFIG >**/ +#define ICM40627_BIT_SPI_MODE 4 /**< SPI mode selection >**/ +#define ICM40627_BIT_SOFT_RESET_CONFIG 0 /**< Software reset configuration >**/ +#define ICM40627_BIT_SOFT_RESET_CONFIG_ENABLE (1 << ICM40627_BIT_SOFT_RESET_CONFIG) /**< Enable the Software reset configuration >**/ + +#define ICM40627_REG_DRIVE_CONFIG (ICM40627_BANK_0 | 0x13) /**< DRIVE_CONFIG >**/ +#define ICM40627_SHIFT_I2C_SLEW_RATE 3 /**< Controls slew rate for output pin 14 in I2C mode only >**/ +#define ICM40627_I2C_SLEW_RATE_VALUE_0 (0 << ICM40627_SHIFT_I2C_SLEW_RATE) /**< 20 ns-60 ns >**/ +#define ICM40627_I2C_SLEW_RATE_VALUE_1 (1 << ICM40627_SHIFT_I2C_SLEW_RATE) /**< 12 ns-36 ns >**/ +#define ICM40627_I2C_SLEW_RATE_VALUE_10 (2 << ICM40627_SHIFT_I2C_SLEW_RATE) /**< 6 ns-18 ns >**/ +#define ICM40627_I2C_SLEW_RATE_VALUE_11 (3 << ICM40627_SHIFT_I2C_SLEW_RATE) /**< 4 ns-12 ns >**/ +#define ICM40627_I2C_SLEW_RATE_VALUE_100 (4 << ICM40627_SHIFT_I2C_SLEW_RATE) /**< 2 ns-6 ns >**/ +#define ICM40627_I2C_SLEW_RATE_VALUE_101 (5 << ICM40627_SHIFT_I2C_SLEW_RATE) /**< < 2 ns >**/ +#define ICM40627_I2C_SLEW_RATE_VALUE_110 (6 << ICM40627_SHIFT_I2C_SLEW_RATE) /**< Reserved >**/ +#define ICM40627_I2C_SLEW_RATE_VALUE_111 (7 << ICM40627_SHIFT_I2C_SLEW_RATE) /**< Reserved >**/ +#define ICM40627_SHIFT_SPI_SLEW_RATE 0 /**< Controls slew rate for output pin 14 in SPI mode, and for all other outputpins >**/ +#define ICM40627_SPI_SLEW_RATE_VALUE_0 (0 << ICM40627_SHIFT_SPI_SLEW_RATE) /**< 20 ns-60 ns >**/ +#define ICM40627_SPI_SLEW_RATE_VALUE_1 (1 << ICM40627_SHIFT_SPI_SLEW_RATE) /**< 12 ns-36 ns >**/ +#define ICM40627_SPI_SLEW_RATE_VALUE_10 (2 << ICM40627_SHIFT_SPI_SLEW_RATE) /**< 6 ns-18 ns >**/ +#define ICM40627_SPI_SLEW_RATE_VALUE_11 (3 << ICM40627_SHIFT_SPI_SLEW_RATE) /**< 4 ns-12 ns >**/ +#define ICM40627_SPI_SLEW_RATE_VALUE_100 (4 << ICM40627_SHIFT_SPI_SLEW_RATE) /**< 2 ns-6 ns >**/ +#define ICM40627_SPI_SLEW_RATE_VALUE_101 (5 << ICM40627_SHIFT_SPI_SLEW_RATE) /**< < 2 ns >**/ +#define ICM40627_SPI_SLEW_RATE_VALUE_110 (6 << ICM40627_SHIFT_SPI_SLEW_RATE) /**< Reserved >**/ +#define ICM40627_SPI_SLEW_RATE_VALUE_111 (7 << ICM40627_SHIFT_SPI_SLEW_RATE) /**< Reserved >**/ + +#define ICM40627_REG_INT_CONFIG (ICM40627_BANK_0 | 0x14) /**< INT_CONFIG >**/ +#define ICM40627_BIT_INT2_MODE 5 /**< INT2 interrupt mode >**/ +#define ICM40627_BIT_INT2_DRIVE_CIRCUIT 4 /**< INT2 drive circuit >**/ +#define ICM40627_BIT_INT2_POLARITY 3 /**< INT2 interrupt polarity >**/ +#define ICM40627_BIT_INT1_MODE 2 /**< INT1 interrupt mode >**/ +#define ICM40627_BIT_INT1_DRIVE_CIRCUIT 1 /**< INT1 drive circuit >**/ +#define ICM40627_BIT_INT1_DRIVE_CIRCUIT_OPEN_DRAIN (0 << ICM40627_BIT_INT1_DRIVE_CIRCUIT) /**< INT1 drive circuit-Open Drain>**/ +#define ICM40627_BIT_INT1_DRIVE_CIRCUIT_PUSH_PULL (1 << ICM40627_BIT_INT1_DRIVE_CIRCUIT) /**< INT1 drive circuit- Push Pull >**/ +#define ICM40627_BIT_INT1_POLARITY 0 /**< INT1 interrupt polarity >**/ +#define ICM40627_BIT_INT1_POLARITY_ACTL (0 << ICM40627_BIT_INT1_POLARITY) /**< INT1 interrupt polarity- Active Low>**/ +#define ICM40627_BIT_INT1_POLARITY_ACTH (1 << ICM40627_BIT_INT1_POLARITY) /**< INT1 interrupt polarity- Active High>**/ + +#define ICM40627_REG_FIFO_CONFIG (ICM40627_BANK_0 | 0x16) /**< FIFO_CONFIG >**/ +#define ICM40627_SHIFT_FIFO_MODE 6 +#define ICM40627_FIFO_MODE_BYPASS_MODE (0 << ICM40627_SHIFT_FIFO_MODE) /**< Bypass Mode (default) >**/ +#define ICM40627_FIFO_MODE_STREAM_TO_FIFO (1 << ICM40627_SHIFT_FIFO_MODE) /**< Stream-to-FIFO Mode >**/ +#define ICM40627_FIFO_MODE_STOP_ON_FULL (2 << ICM40627_SHIFT_FIFO_MODE) /**< STOP-on-FULL Mode >**/ +#define ICM40627_FIFO_MODE_VALUE_11 (3 << ICM40627_SHIFT_FIFO_MODE) /**< STOP-on-FULL Mode >**/ + +#define ICM40627_REG_FIFO_HEADER_MSG 7 /**<1: FIFO is empty 0: Packet contains sensor data>**/ +#define ICM40627_REG_FIFO_HEADER_ACCEL 6 /*1: Packet is sized so that accel data have location in the packet, FIFO_ACCEL_EN must be 1 0: Packet does not contain accel sample*/ +#define ICM40627_REG_FIFO_HEADER_GYRO 5 /*1: Packet is sized so that gyro data have location in the packet, FIFO_GYRO_EN must be 1 0: Packet does not contain gyro sample*/ +#define ICM40627_REG_FIFO_HEADER_TIMESTAMP_FSYNC 2 /*00: Packet does not contain timestamp or FSYNC time data 01: Reserved 10: Packet contains ODR Timestamp 11: Packet contains FSYNC time, and this packet is flagged as first ODR after FSYNC (only if FIFO_TMST_FSYNC_EN is 1)*/ +#define ICM40627_REG_FIFO_HEADER_ODR_ACCEL 1 /*1: The ODR for accel is different for this accel data packet compared to the previous accel packet 0: The ODR for accel is the same as the previous packet with accel*/ +#define ICM40627_REG_FIFO_HEADER_ODR_GYRO 0 /*1: The ODR for gyro is different for this gyro data packet compared to the previous gyro packet 0: The ODR for gyro is the same as the previous packet with gyro*/ +#define ICM40627_REG_FIFO_HEADER_MSG_EMPTY (1 << ICM40627_REG_FIFO_HEADER_MSG)/**<1: FIFO is empty>**/ +#define ICM40627_REG_FIFO_HEADER_ACCEL_MASK (1 << ICM40627_REG_FIFO_HEADER_ACCEL) /*FIFO consists of Accel data */ +#define ICM40627_REG_FIFO_HEADER_GYRO_MASK (1 << ICM40627_REG_FIFO_HEADER_GYRO) /*FIFO consists of Gyro data */ + +#define ICM40627_REG_TEMP_DATA1 (ICM40627_BANK_0 | 0x1D) /**< TEMP_DATA1 >**/ +#define ICM40627_SHIFT_TEMP_DATA_HIGH 0 /**< Upper byte of temperature data >**/ + +#define ICM40627_REG_TEMP_DATA0 (ICM40627_BANK_0 | 0x1E) /**< TEMP_DATA0 >**/ +#define ICM40627_SHIFT_TEMP_DATA_LOW 0 /**< Lower byte of temperature data >**/ + +#define ICM40627_REG_ACCEL_DATA_X1 (ICM40627_BANK_0 | 0x1F) /**< ACCEL_DATA_X1 >**/ +#define ICM40627_SHIFT_ACCEL_DATA_X_HIGH 0 /**< Upper byte of Accel X-axis data >**/ + +#define ICM40627_REG_ACCEL_DATA_X0 (ICM40627_BANK_0 | 0x20) /**< ACCEL_DATA_X0 >**/ +#define ICM40627_SHIFT_ACCEL_DATA_X_LOW 0 /**< Lower byte of Accel X-axis data >**/ + +#define ICM40627_REG_ACCEL_DATA_Y1 (ICM40627_BANK_0 | 0x21) /**< ACCEL_DATA_Y1 >**/ +#define ICM40627_SHIFT_ACCEL_DATA_Y_HIGH 0 /**< Upper byte of Accel Y-axis data >**/ + +#define ICM40627_REG_ACCEL_DATA_Y0 (ICM40627_BANK_0 | 0x22) /**< ACCEL_DATA_Y0 >**/ +#define ICM40627_SHIFT_ACCEL_DATA_Y_LOW 0 /**< Lower byte of Accel Y-axis data >**/ + +#define ICM40627_REG_ACCEL_DATA_Z1 (ICM40627_BANK_0 | 0x23) /**< ACCEL_DATA_Z1 >**/ +#define ICM40627_SHIFT_ACCEL_DATA_Z_HIGH 0 /**< Upper byte of Accel Z-axis data >**/ + +#define ICM40627_REG_ACCEL_DATA_Z0 (ICM40627_BANK_0 | 0x24) /**< ACCEL_DATA_Z0 >**/ +#define ICM40627_SHIFT_ACCEL_DATA_Z_LOW 0 /**< Lower byte of Accel Z-axis data >**/ + +#define ICM40627_REG_GYRO_DATA_X1 (ICM40627_BANK_0 | 0x25) /**< GYRO_DATA_X1 >**/ +#define ICM40627_SHIFT_GYRO_DATA_X_HIGH 0 /**< Upper byte of Gyro X-axis data >**/ + +#define ICM40627_REG_GYRO_DATA_X0 (ICM40627_BANK_0 | 0x26) /**< GYRO_DATA_X0 >**/ +#define ICM40627_SHIFT_GYRO_DATA_X_LOW 0 /**< Lower byte of Gyro X-axis data >**/ + +#define ICM40627_REG_GYRO_DATA_Y1 (ICM40627_BANK_0 | 0x27) /**< GYRO_DATA_Y1 >**/ +#define ICM40627_SHIFT_GYRO_DATA_Y_HIGH 0 /**< Upper byte of Gyro Y-axis data >**/ + +#define ICM40627_REG_GYRO_DATA_Y0 (ICM40627_BANK_0 | 0x28) /**< GYRO_DATA_Y0 >**/ +#define ICM40627_SHIFT_GYRO_DATA_Y_LOW 0 /**< Lower byte of Gyro Y-axis data >**/ + +#define ICM40627_REG_GYRO_DATA_Z1 (ICM40627_BANK_0 | 0x29) /**< GYRO_DATA_Z1 >**/ +#define ICM40627_SHIFT_GYRO_DATA_Z_HIGH 0 /**< Upper byte of Gyro Z-axis data >**/ + +#define ICM40627_REG_GYRO_DATA_Z0 (ICM40627_BANK_0 | 0x2A) /**< GYRO_DATA_Z0 >**/ +#define ICM40627_SHIFT_GYRO_DATA_Z_LOW 0 /**< Lower byte of Gyro Z-axis data >**/ + +#define ICM40627_REG_TMST_FSYNCH (ICM40627_BANK_0 | 0x2B) /**< TMST_FSYNCH >**/ +#define ICM40627_SHIFT_TMST_FSYNC_DATA_HIGH 0 /**< Stores the upper byte of the time delta from the rising edge of FSYNC tothe latest ODR until the UI Interface reads the FSYNC tag in the statusregister >**/ + +#define ICM40627_REG_TMST_FSYNCL (ICM40627_BANK_0 | 0x2C) /**< TMST_FSYNCL >**/ +#define ICM40627_SHIFT_TMST_FSYNC_DATA_LOW 0 /**< Stores the lower byte of the time delta from the rising edge of FSYNC tothe latest ODR until the UI Interface reads the FSYNC tag in the statusregister >**/ + +#define ICM40627_REG_INT_STATUS (ICM40627_BANK_0 | 0x2D) /**< INT_STATUS >**/ +#define ICM40627_BIT_UI_FSYNC_INT 6 /**< This bit automatically sets to 1 when a UI FSYNC interrupt is generated. Thebit clears to 0 after the register has been read. >**/ +#define ICM40627_BIT_PLL_RDY_INT 5 /**< This bit automatically sets to 1 when a PLL Ready interrupt is generated. Thebit clears to 0 after the register has been read. >**/ +#define ICM40627_BIT_RESET_DONE_INT 4 /**< This bit automatically sets to 1 when software reset is complete. The bitclears to 0 after the register has been read. >**/ +#define ICM40627_BIT_DATA_RDY_INT 3 /**< This bit automatically sets to 1 when a Data Ready interrupt is generated.The bit clears to 0 after the register has been read. >**/ +#define ICM40627_BIT_FIFO_THS_INT 2 /**< This bit automatically sets to 1 when the FIFO buffer reaches the thresholdvalue. The bit clears to 0 after the register has been read. >**/ +#define ICM40627_BIT_FIFO_FULL_INT 1 /**< This bit automatically sets to 1 when the FIFO buffer is full. The bit clears to 0after the register has been read. >**/ +#define ICM40627_BIT_AGC_RDY_INT 0 /**< This bit automatically sets to 1 when an AGC Ready interrupt is generated.The bit clears to 0 after the register has been read. >**/ +#define ICM40627_MASK_DATA_RDY_INT (1 << ICM40627_BIT_DATA_RDY_INT) +#define ICM40627_MASK_RESET_DONE_INT (1 << ICM40627_BIT_RESET_DONE_INT) + +#define ICM40627_REG_FIFO_COUNTH (ICM40627_BANK_0 | 0x2E) /**< FIFO_COUNTH >**/ +#define ICM40627_SHIFT_FIFO_COUNT_HIGH 0 /**< High Bits, count indicates the number of records or bytes available in FIFOaccording to FIFO_COUNT_REC setting.Note: Must read FIFO_COUNTL to latch new data for both FIFO_COUNTHand FIFO_COUNTL. >**/ + +#define ICM40627_REG_FIFO_COUNTL (ICM40627_BANK_0 | 0x2F) /**< FIFO_COUNTL >**/ +#define ICM40627_SHIFT_FIFO_COUNT_LOW 0 /**< Low Bits, count indicates the number of records or bytes available in FIFOaccording to FIFO_COUNT_REC setting.Reading this byte latches the data for both FIFO_COUNTH, andFIFO_COUNTL. >**/ + +#define ICM40627_REG_FIFO_DATA (ICM40627_BANK_0 | 0x30) /**< FIFO_DATA >**/ +#define ICM40627_SHIFT_FIFO_DATA 0 /**< FIFO data port >**/ + +#define ICM40627_REG_APEX_DATA0 (ICM40627_BANK_0 | 0x31) /**< APEX_DATA0 >**/ +#define ICM40627_SHIFT_STEP_CNT_LOW 0 /**< Pedometer Output: Lower byte of Step Count measured by pedometer >**/ + +#define ICM40627_REG_APEX_DATA1 (ICM40627_BANK_0 | 0x32) /**< APEX_DATA1 >**/ +#define ICM40627_SHIFT_STEP_CNT_HIGH 0 /**< Pedometer Output: Upper byte of Step Count measured by pedometer >**/ + +#define ICM40627_REG_APEX_DATA2 (ICM40627_BANK_0 | 0x33) /**< APEX_DATA2 >**/ +#define ICM40627_SHIFT_STEP_CADENCE 0 /**< Pedometer Output: Walk/run cadency in number of samples. Format is u6.2.e.g. At 50 Hz ODR and 2 Hz walk frequency, the cadency is 25 samples. Theregister will output 100. >**/ + +#define ICM40627_REG_APEX_DATA3 (ICM40627_BANK_0 | 0x34) /**< APEX_DATA3 >**/ +#define ICM40627_BIT_DMP_IDLE 2 +#define ICM40627_SHIFT_ACTIVITY_CLASS 0 /**< Pedometer Output: Detected activity >**/ +#define ICM40627_ACTIVITY_CLASS_VALUE_0 (0 << ICM40627_SHIFT_ACTIVITY_CLASS) /**< Unknown >**/ +#define ICM40627_ACTIVITY_CLASS_VALUE_1 (1 << ICM40627_SHIFT_ACTIVITY_CLASS) /**< Walk >**/ +#define ICM40627_ACTIVITY_CLASS_VALUE_10 (2 << ICM40627_SHIFT_ACTIVITY_CLASS) /**< Run >**/ +#define ICM40627_ACTIVITY_CLASS_VALUE_11 (3 << ICM40627_SHIFT_ACTIVITY_CLASS) /**< Reserved >**/ + +#define ICM40627_REG_APEX_DATA4 (ICM40627_BANK_0 | 0x35) /**< APEX_DATA4 >**/ +#define ICM40627_SHIFT_TAP_NUM 3 /**< Tap Detection Output: Number of taps in the current Tap event >**/ +#define ICM40627_TAP_NUM_VALUE_0 (0 << ICM40627_SHIFT_TAP_NUM) /**< No tap >**/ +#define ICM40627_TAP_NUM_VALUE_1 (1 << ICM40627_SHIFT_TAP_NUM) /**< Single tap >**/ +#define ICM40627_TAP_NUM_VALUE_10 (2 << ICM40627_SHIFT_TAP_NUM) /**< Double tap >**/ +#define ICM40627_TAP_NUM_VALUE_11 (3 << ICM40627_SHIFT_TAP_NUM) /**< Reserved >**/ +#define ICM40627_SHIFT_TAP_AXIS 1 /**< Tap Detection Output: Represents the accelerometer axis on which tapenergy is concentrated >**/ +#define ICM40627_TAP_AXIS_VALUE_0 (0 << ICM40627_SHIFT_TAP_AXIS) /**< X-axis >**/ +#define ICM40627_TAP_AXIS_VALUE_1 (1 << ICM40627_SHIFT_TAP_AXIS) /**< Y-axis >**/ +#define ICM40627_TAP_AXIS_VALUE_10 (2 << ICM40627_SHIFT_TAP_AXIS) /**< Z-axis >**/ +#define ICM40627_TAP_AXIS_VALUE_11 (3 << ICM40627_SHIFT_TAP_AXIS) /**< Reserved >**/ +#define ICM40627_BIT_TAP_DIR 0 /**< Tap Detection Output: Polarity of tap pulsevalue >**/ + +#define ICM40627_REG_APEX_DATA5 (ICM40627_BANK_0 | 0x36) /**< APEX_DATA5 >**/ +#define ICM40627_SHIFT_DOUBLE_TAP_TIMING 0 /**< DOUBLE_TAP_TIMING measures the time interval between the two tapswhen double tap is detected. It counts every 16 accelerometer samples asone unit between the 2 tap pulses. Therefore, the value is related to theaccelerometer ODR.Time in seconds = DOUBLE_TAP_TIMING * 16 / ODRFor example, if the accelerometer ODR is 500 Hz, and theDOUBLE_TAP_TIMING register reading is 6, the time interval value is6*16/500 = 0.192s. >**/ + +#define ICM40627_REG_INT_STATUS2 (ICM40627_BANK_0 | 0x37) /**< INT_STATUS2 >**/ +#define ICM40627_BIT_SMD_INT 3 /**< Significant Motion Detection Interrupt, clears on read >**/ +#define ICM40627_BIT_WOM_Z_INT 2 /**< Wake on Motion Interrupt on Z-axis, clears on read >**/ +#define ICM40627_BIT_WOM_Y_INT 1 /**< Wake on Motion Interrupt on Y-axis, clears on read >**/ +#define ICM40627_BIT_WOM_X_INT 0 /**< Wake on Motion Interrupt on X-axis, clears on read >**/ + +#define ICM40627_REG_INT_STATUS3 (ICM40627_BANK_0 | 0x38) /**< INT_STATUS3 >**/ +#define ICM40627_BIT_STEP_DET_INT 5 /**< Step Detection Interrupt, clears on read >**/ +#define ICM40627_BIT_STEP_CNT_OVF_INT 4 /**< Step Count Overflow Interrupt, clears on read >**/ +#define ICM40627_BIT_TILT_DET_INT 3 /**< Tilt Detection Interrupt, clears on read >**/ +#define ICM40627_BIT_WAKE_INT 2 /**< Wake Event Interrupt, clears on read >**/ +#define ICM40627_BIT_SLEEP_INT 1 /**< Sleep Event Interrupt, clears on read >**/ +#define ICM40627_BIT_TAP_DET_INT 0 /**< Tap Detection Interrupt, clears on read >**/ +#define ICM40627_BIT_MASK_WAKE_INT 0x04 /**< Wake Event Interrupt, clears on read >**/ +#define ICM40627_BIT_MASK_SLEEP_INT 0x02 /**< Sleep Event Interrupt, clears on read >**/ + +#define ICM40627_REG_SIGNAL_PATH_RESET (ICM40627_BANK_0 | 0x4B) /**< SIGNAL_PATH_RESET >**/ +#define ICM40627_BIT_DMP_INIT_EN 6 /**< When this bit is set to 1, the DMP is enabled >**/ +#define ICM40627_BIT_DMP_MEM_RESET_EN 5 /**< When this bit is set to 1, the DMP memory is reset >**/ +#define ICM40627_BIT_ABORT_AND_RESET 3 /**< When this bit is set to 1, the signal path is reset by restarting the ODRcounter and signal path controls >**/ +#define ICM40627_BIT_TMST_STROBE 2 /**< When this bit is set to 1, the time stamp counter is latched into the timestamp register. This is a write on clear bit. >**/ +#define ICM40627_BIT_FIFO_FLUSH 1 /**< When set to 1, FIFO will get flushed. >**/ +#define ICM40627_MASK_BIT_ABORT_AND_RESET (1 << ICM40627_BIT_ABORT_AND_RESET) +#define ICM40627_MASK_BIT_FIFO_FLUSH (1 << ICM40627_BIT_FIFO_FLUSH) + +#define ICM40627_REG_INTF_CONFIG0 (ICM40627_BANK_0 | 0x4C) /**< INTF_CONFIG0 >**/ +#define ICM40627_BIT_FIFO_HOLD_LAST_DATA_E 7 /**< Setting 0 corresponds to the following:Sense Registers from Power on Reset till first sample:Sense Registers after first sample received:FIFO:Setting 1 corresponds to the following:Sense Registers from Power on Reset till first sample:Sense Registers after first sample received:FIFO: >**/ +#define ICM40627_BIT_FIFO_COUNT_REC 6 /**< accel + temp sensor data + time stamp, or 8 bytes for header + gyro/accel +temp sensor data) >**/ +#define ICM40627_BIT_FIFO_COUNT_ENDIAN 5 +#define ICM40627_BIT_SENSOR_DATA_ENDIAN 4 +#define ICM40627_SHIFT_UI_SIFS_CFG 0 /**< 0x: Reserved >**/ +#define ICM40627_UI_SIFS_CFG_VALUE_0 (2 << ICM40627_SHIFT_UI_SIFS_CFG) /**< Disable SPI >**/ +#define ICM40627_UI_SIFS_CFG_VALUE_1 (3 << ICM40627_SHIFT_UI_SIFS_CFG) /**< Disable I2C >**/ +#define ICM40627_MASK_BIT_FIFO_COUNT_REC (1 << ICM40627_BIT_FIFO_COUNT_REC) + +#define ICM40627_REG_INTF_CONFIG1 (ICM40627_BANK_0 | 0x4D) /**< INTF_CONFIG1 >**/ +#define ICM40627_BIT_ACCEL_LP_CLK_SEL 3 +#define ICM40627_BIT_ACCEL_LP_CLK_SEL_MASK (1 << ICM40627_BIT_ACCEL_LP_CLK_SEL) +#define ICM40627_SHIFT_CLKSEL 0 +#define ICM40627_CLKSEL_VALUE_0 (0 << ICM40627_SHIFT_CLKSEL) /**< Always select internal RC oscillator >**/ +#define ICM40627_CLKSEL_VALUE_1 (1 << ICM40627_SHIFT_CLKSEL) /**< Select PLL when available, else select RC oscillator (default) >**/ +#define ICM40627_CLKSEL_VALUE_10 (2 << ICM40627_SHIFT_CLKSEL) /**< Reserved >**/ +#define ICM40627_CLKSEL_VALUE_11 (3 << ICM40627_SHIFT_CLKSEL) /**< Disable all clocks >**/ + +#define ICM40627_REG_PWR_MGMT0 (ICM40627_BANK_0 | 0x4E) /**< PWR_MGMT0 >**/ +#define ICM40627_BIT_TEMP_DIS 5 /**< Temperature sensor >**/ +#define ICM40627_BIT_IDLE 4 /**< If this bit is set to 1, the RC oscillator is powered on even if Accel and Gyroare powered off.Nominally this bit is set to 0, so when Accel and Gyro are powered off,the chip will go to OFF state, since the RC oscillator will also be powered off00: Turns gyroscope off (default)01: Places gyroscope in Standby Mode10: Reserved >**/ +#define ICM40627_SHIFT_GYRO_MODE 2 /**< Gyroscope needs to be kept ON for a minimum of 45 ms. When transitioningfrom OFF to any of the other modes, do not issue any register writes for200 µs. >**/ +#define ICM40627_GYRO_MODE_VALUE_0 (0 << ICM40627_SHIFT_GYRO_MODE) /**< Turns gyroscope off (default) >**/ +#define ICM40627_GYRO_MODE_VALUE_1 (1 << ICM40627_SHIFT_GYRO_MODE) /**< Places gyroscope in Standby Mode >**/ +#define ICM40627_GYRO_MODE_VALUE_10 (2 << ICM40627_SHIFT_GYRO_MODE) /**< Reserved >**/ +#define ICM40627_GYRO_MODE_VALUE_11 (3 << ICM40627_SHIFT_GYRO_MODE) /**< Places gyroscope in Low Noise (LN) Mode >**/ +#define ICM40627_SHIFT_ACCEL_MODE 0 /**< When transitioning from OFF to any of the other modes, do not issue anyregister writes for 200 µs. >**/ +#define ICM40627_ACCEL_MODE_VALUE_0 (0 << ICM40627_SHIFT_ACCEL_MODE) /**< Turns accelerometer off (default) >**/ +#define ICM40627_ACCEL_MODE_VALUE_1 (1 << ICM40627_SHIFT_ACCEL_MODE) /**< Turns accelerometer off >**/ +#define ICM40627_ACCEL_MODE_VALUE_10 (2 << ICM40627_SHIFT_ACCEL_MODE) /**< Places accelerometer in Low Power (LP) Mode >**/ +#define ICM40627_ACCEL_MODE_VALUE_11 (3 << ICM40627_SHIFT_ACCEL_MODE) /**< Places accelerometer in Low Noise (LN) Mode >**/ +#define ICM40627_PWR_MGMT0_ACCEL_MODE_MASK 0x03 +#define ICM40627_PWR_MGMT0_ACCEL_MODE_LN 0x03 /**< Enable accelerometer standby mode */ +#define ICM40627_PWR_MGMT0_ACCEL_MODE_LP 0x02 /**< Enable accelerometer Low power */ +#define ICM40627_PWR_MGMT0_ACCEL_MODE_DIS 0x3C /**< Disable accelerometer */ +#define ICM40627_PWR_MGMT0_GYRO_MODE_LN 0x0C /**< Enable gyroscope */ +#define ICM40627_PWR_MGMT0_GYRO_MODE_DIS 0x33 /**< Disable gyroscope */ +#define ICM40627_PWR_MGMT0_TEMP_MODE_EN 0x1F /**< Enable temperature sensor */ +#define ICM40627_PWR_MGMT0_TEMP_MODE_DIS 0x20 /**< Disable temperature sensor */ + +#define ICM40627_REG_GYRO_CONFIG0 (ICM40627_BANK_0 | 0x4F) /**< GYRO_CONFIG0 >**/ +#define ICM40627_SHIFT_GYRO_FS_SEL 5 /**< Full scale select for gyroscope UI interface output >**/ +#define ICM40627_MASK_GYRO_FS_SEL 0xE0 /**< Bitmask for Full scale select for gyroscope >**/ +#define ICM40627_GYRO_FS_SEL_VALUE_2000 (0 << ICM40627_SHIFT_GYRO_FS_SEL) /**< ±2000 dps (default) >**/ +#define ICM40627_GYRO_FS_SEL_VALUE_1000 (1 << ICM40627_SHIFT_GYRO_FS_SEL) /**< ±1000 dps >**/ +#define ICM40627_GYRO_FS_SEL_VALUE_500 (2 << ICM40627_SHIFT_GYRO_FS_SEL) /**< ±500 dps >**/ +#define ICM40627_GYRO_FS_SEL_VALUE_250 (3 << ICM40627_SHIFT_GYRO_FS_SEL) /**< ±250 dps >**/ +#define ICM40627_GYRO_FS_SEL_VALUE_125 (4 << ICM40627_SHIFT_GYRO_FS_SEL) /**< ±125 dps >**/ +#define ICM40627_GYRO_FS_SEL_VALUE_62_5 (5 << ICM40627_SHIFT_GYRO_FS_SEL) /**< ±62.5 dps >**/ +#define ICM40627_GYRO_FS_SEL_VALUE_31_25 (6 << ICM40627_SHIFT_GYRO_FS_SEL) /**< ±31.25 dps >**/ +#define ICM40627_GYRO_FS_SEL_VALUE_15_625 (7 << ICM40627_SHIFT_GYRO_FS_SEL) /**< ±15.625 dps >**/ +#define ICM40627_SHIFT_GYRO_ODR 0 /**< Gyroscope ODR selection for UI interface output >**/ +#define ICM40627_MASK_GYRO_ODR_VALUE 0x0F +#define ICM40627_GYRO_ODR_VALUE_0 (0 << ICM40627_SHIFT_GYRO_ODR) /**< Reserved >**/ +#define ICM40627_GYRO_ODR_VALUE_1 (1 << ICM40627_SHIFT_GYRO_ODR) /**< Reserved >**/ +#define ICM40627_GYRO_ODR_VALUE_10 (2 << ICM40627_SHIFT_GYRO_ODR) /**< Reserved >**/ +#define ICM40627_GYRO_ODR_VALUE_8000 (3 << ICM40627_SHIFT_GYRO_ODR) /**< 8 kHz >**/ +#define ICM40627_GYRO_ODR_VALUE_4000 (4 << ICM40627_SHIFT_GYRO_ODR) /**< 4 kHz >**/ +#define ICM40627_GYRO_ODR_VALUE_2000 (5 << ICM40627_SHIFT_GYRO_ODR) /**< 2 kHz >**/ +#define ICM40627_GYRO_ODR_VALUE_1000 (6 << ICM40627_SHIFT_GYRO_ODR) /**< 1 kHz >**/ +#define ICM40627_GYRO_ODR_VALUE_200 (7 << ICM40627_SHIFT_GYRO_ODR) /**< 200 Hz >**/ +#define ICM40627_GYRO_ODR_VALUE_100 (8 << ICM40627_SHIFT_GYRO_ODR) /**< 100 Hz >**/ +#define ICM40627_GYRO_ODR_VALUE_50 (9 << ICM40627_SHIFT_GYRO_ODR) /**< 50 Hz >**/ +#define ICM40627_GYRO_ODR_VALUE_25 (0x0A << ICM40627_SHIFT_GYRO_ODR) /**< 25Hz >**/ +#define ICM40627_GYRO_ODR_VALUE_12_5 (0x0B << ICM40627_SHIFT_GYRO_ODR) /**< 12.5 Hz >**/ +#define ICM40627_GYRO_ODR_VALUE_1100 (0x0C << ICM40627_SHIFT_GYRO_ODR) /**< Reserved >**/ +#define ICM40627_GYRO_ODR_VALUE_1101 (0x0D << ICM40627_SHIFT_GYRO_ODR) /**< Reserved >**/ +#define ICM40627_GYRO_ODR_VALUE_1110 (0x0E << ICM40627_SHIFT_GYRO_ODR) /**< Reserved >**/ +#define ICM40627_GYRO_ODR_VALUE_500 (0x0F << ICM40627_SHIFT_GYRO_ODR) /**< 500Hz >**/ + +#define ICM40627_REG_ACCEL_CONFIG0 (ICM40627_BANK_0 | 0x50) /**< ACCEL_CONFIG0 >**/ +#define ICM40627_SHIFT_ACCEL_FS_SEL 5 /**< Full scale select for accelerometer UI interface output >**/ +#define ICM40627_ACCEL_FS_SEL_VALUE_16G (0 << ICM40627_SHIFT_ACCEL_FS_SEL) /**< ±16g (default) >**/ +#define ICM40627_ACCEL_FS_SEL_VALUE_8G (1 << ICM40627_SHIFT_ACCEL_FS_SEL) /**< ±8g >**/ +#define ICM40627_ACCEL_FS_SEL_VALUE_4G (2 << ICM40627_SHIFT_ACCEL_FS_SEL) /**< ±4g >**/ +#define ICM40627_ACCEL_FS_SEL_VALUE_2G (3 << ICM40627_SHIFT_ACCEL_FS_SEL) /**< ±2g >**/ +#define ICM40627_ACCEL_FS_SEL_VALUE_100 (4 << ICM40627_SHIFT_ACCEL_FS_SEL) /**< Reserved >**/ +#define ICM40627_ACCEL_FS_SEL_VALUE_101 (5 << ICM40627_SHIFT_ACCEL_FS_SEL) /**< Reserved >**/ +#define ICM40627_ACCEL_FS_SEL_VALUE_110 (6 << ICM40627_SHIFT_ACCEL_FS_SEL) /**< Reserved >**/ +#define ICM40627_ACCEL_FS_SEL_VALUE_111 (7 << ICM40627_SHIFT_ACCEL_FS_SEL) /**< Reserved >**/ +#define ICM40627_MASK_ACCEL_FS_SEL 0xE0 /*Accel Full Scale Select bitmask */ +#define ICM40627_SHIFT_ACCEL_ODR 0 /**< Accelerometer ODR selection for UI interface output >**/ +#define ICM40627_ACCEL_ODR_VALUE_0 (0 << ICM40627_SHIFT_ACCEL_ODR) /**< Reserved >**/ +#define ICM40627_ACCEL_ODR_VALUE_1 (1 << ICM40627_SHIFT_ACCEL_ODR) /**< Reserved >**/ +#define ICM40627_ACCEL_ODR_VALUE_10 (2 << ICM40627_SHIFT_ACCEL_ODR) /**< Reserved >**/ +#define ICM40627_ACCEL_ODR_VALUE_8000 (3 << ICM40627_SHIFT_ACCEL_ODR) /**< 8 kHz (LN mode) >**/ +#define ICM40627_ACCEL_ODR_VALUE_4000 (4 << ICM40627_SHIFT_ACCEL_ODR) /**< 4 kHz (LN mode) >**/ +#define ICM40627_ACCEL_ODR_VALUE_2000 (5 << ICM40627_SHIFT_ACCEL_ODR) /**< 2 kHz (LN mode) >**/ +#define ICM40627_ACCEL_ODR_VALUE_1000 (6 << ICM40627_SHIFT_ACCEL_ODR) /**< 1 kHz (LN mode) >**/ +#define ICM40627_ACCEL_ODR_VALUE_200 (7 << ICM40627_SHIFT_ACCEL_ODR) /**< 200 Hz (LP or LN mode) >**/ +#define ICM40627_ACCEL_ODR_VALUE_100 (8 << ICM40627_SHIFT_ACCEL_ODR) /**< 100 Hz (LP or LN mode) >**/ +#define ICM40627_ACCEL_ODR_VALUE_50 (9 << ICM40627_SHIFT_ACCEL_ODR) /**< 50 Hz (LP or LN mode) >**/ +#define ICM40627_ACCEL_ODR_VALUE_25 (0x0A << ICM40627_SHIFT_ACCEL_ODR) /**< 25Hz (LP or LN mode) >**/ +#define ICM40627_ACCEL_ODR_VALUE_12_5 (0x0B << ICM40627_SHIFT_ACCEL_ODR) /**< 12.5 Hz (LP or LN mode) >**/ +#define ICM40627_ACCEL_ODR_VALUE_6_25 (0x0C << ICM40627_SHIFT_ACCEL_ODR) /**< 6.25Hz (LP mode) >**/ +#define ICM40627_ACCEL_ODR_VALUE_3_125 (0x0D << ICM40627_SHIFT_ACCEL_ODR) /**< 3.125 Hz (LP mode) >**/ +#define ICM40627_ACCEL_ODR_VALUE_1_5625 (0x0E << ICM40627_SHIFT_ACCEL_ODR) /**< 1.5625Hz (LP mode) >**/ +#define ICM40627_ACCEL_ODR_VALUE_500 (0x0F << ICM40627_SHIFT_ACCEL_ODR) /**< 500 Hz (LP or LN mode) >**/ +#define ICM40627_MASK_ACCEL_ODR_VALUE 0x0F + +#define ICM40627_REG_GYRO_CONFIG1 (ICM40627_BANK_0 | 0x51) /**< GYRO_CONFIG1 >**/ +#define ICM40627_SHIFT_TEMP_FILT_BW 5 /**< Sets the bandwidth of the temperature signal DLPF >**/ +#define ICM40627_TEMP_FILT_BW_VALUE_0 (0 << ICM40627_SHIFT_TEMP_FILT_BW) /**< DLPF BW = 4000 Hz; DLPF Latency = 0.125ms (default) >**/ +#define ICM40627_TEMP_FILT_BW_VALUE_1 (1 << ICM40627_SHIFT_TEMP_FILT_BW) /**< DLPF BW = 170 Hz; DLPF Latency = 1ms >**/ +#define ICM40627_TEMP_FILT_BW_VALUE_10 (2 << ICM40627_SHIFT_TEMP_FILT_BW) /**< DLPF BW = 82Hz; DLPF Latency = 2ms >**/ +#define ICM40627_TEMP_FILT_BW_VALUE_11 (3 << ICM40627_SHIFT_TEMP_FILT_BW) /**< DLPF BW = 40 Hz; DLPF Latency = 4 ms >**/ +#define ICM40627_TEMP_FILT_BW_VALUE_100 (4 << ICM40627_SHIFT_TEMP_FILT_BW) /**< DLPF BW = 20Hz; DLPF Latency = 8 ms >**/ +#define ICM40627_TEMP_FILT_BW_VALUE_101 (5 << ICM40627_SHIFT_TEMP_FILT_BW) /**< DLPF BW = 10 Hz; DLPF Latency = 16 ms >**/ +#define ICM40627_TEMP_FILT_BW_VALUE_110 (6 << ICM40627_SHIFT_TEMP_FILT_BW) /**< DLPF BW = 5Hz; DLPF Latency = 32 ms >**/ +#define ICM40627_TEMP_FILT_BW_VALUE_111 (7 << ICM40627_SHIFT_TEMP_FILT_BW) /**< DLPF BW = 5 Hz; DLPF Latency = 32 ms >**/ +#define ICM40627_SHIFT_GYRO_UI_FILT_ORD 2 /**< Selects order of GYRO UI filter >**/ +#define ICM40627_GYRO_UI_FILT_ORD_VALUE_0 (0 << ICM40627_SHIFT_GYRO_UI_FILT_ORD) /**< 1st Order >**/ +#define ICM40627_GYRO_UI_FILT_ORD_VALUE_1 (1 << ICM40627_SHIFT_GYRO_UI_FILT_ORD) /**< 2nd Order >**/ +#define ICM40627_GYRO_UI_FILT_ORD_VALUE_10 (2 << ICM40627_SHIFT_GYRO_UI_FILT_ORD) /**< 3rd Order >**/ +#define ICM40627_GYRO_UI_FILT_ORD_VALUE_11 (3 << ICM40627_SHIFT_GYRO_UI_FILT_ORD) /**< Reserved >**/ +#define ICM40627_SHIFT_GYRO_DEC2_M2_ORD 0 /**< Selects order of GYRO DEC2_M2 Filter >**/ +#define ICM40627_GYRO_DEC2_M2_ORD_VALUE_0 (0 << ICM40627_SHIFT_GYRO_DEC2_M2_ORD) /**< Reserved >**/ +#define ICM40627_GYRO_DEC2_M2_ORD_VALUE_1 (1 << ICM40627_SHIFT_GYRO_DEC2_M2_ORD) /**< Reserved >**/ +#define ICM40627_GYRO_DEC2_M2_ORD_VALUE_10 (2 << ICM40627_SHIFT_GYRO_DEC2_M2_ORD) /**< 3rd Order >**/ +#define ICM40627_GYRO_DEC2_M2_ORD_VALUE_11 (3 << ICM40627_SHIFT_GYRO_DEC2_M2_ORD) /**< Reserved >**/ + +#define ICM40627_REG_GYRO_ACCEL_CONFIG0 (ICM40627_BANK_0 | 0x52) /**< GYRO_ACCEL_CONFIG0 >**/ +#define ICM40627_SHIFT_ACCEL_UI_FILT_BW 4 /**< LN Mode:Bandwidth for Accel LPF0 BW=ODR/21 BW=max(400 Hz, ODR)/4 (default)2 BW=max(400 Hz, ODR)/53 BW=max(400 Hz, ODR)/84 BW=max(400 Hz, ODR)/105 BW=max(400 Hz, ODR)/166 BW=max(400 Hz, ODR)/207 BW=max(400 Hz, ODR)/408 to 13: Reserved14 Low Latency option: Trivial decimation @ ODR of Dec2 filter output. Dec2runs at max(400 Hz, ODR)15 Low Latency option: Trivial decimation @ ODR of Dec2 filter output. Dec2runs at max(200 Hz, 8*ODR)LP Mode:0 Reserved1 1x AVG filter (default)2 to 5 Reserved6 16x AVG filter7 to 15 ReservedLN Mode:Bandwidth for Gyro LPF0 BW=ODR/21 BW=max(400 Hz, ODR)/4 (default)2 BW=max(400 Hz, ODR)/53 BW=max(400 Hz, ODR)/84 BW=max(400 Hz, ODR)/10 >**/ +#define ICM40627_SHIFT_GYRO_UI_FILT_BW 0 /**< 5 BW=max(400 Hz, ODR)/166 BW=max(400 Hz, ODR)/207 BW=max(400 Hz, ODR)/408 to 13: Reserved14 Low Latency option: Trivial decimation @ ODR of Dec2 filter output. Dec2runs at max(400 Hz, ODR)15 Low Latency option: Trivial decimation @ ODR of Dec2 filter output. Dec2runs at max(200 Hz, 8*ODR) >**/ +#define ICM40627_MASK_GYRO_UI_FILT_BW 0x0F /*Gyro band-width select bit-mask */ +#define ICM40627_MASK_ACCEL_UI_FILT_BW 0xF0 /*Accelerometer band-width select bit-mask */ +/* Bandwidth for Gyro */ +#define ICM40627_GYRO_UI_FILT_BW_VALUE_0 (0 << ICM40627_SHIFT_GYRO_UI_FILT_BW) /**< BW = ODR / 2 */ +#define ICM40627_GYRO_UI_FILT_BW_VALUE_1 (1 << ICM40627_SHIFT_GYRO_UI_FILT_BW) /**< BW = max(400 Hz, ODR) / 4 (default) */ +#define ICM40627_GYRO_UI_FILT_BW_VALUE_2 (2 << ICM40627_SHIFT_GYRO_UI_FILT_BW) /**< BW = max(400 Hz, ODR) / 5 */ +#define ICM40627_GYRO_UI_FILT_BW_VALUE_3 (3 << ICM40627_SHIFT_GYRO_UI_FILT_BW) /**< BW = max(400 Hz, ODR) / 8 */ +#define ICM40627_GYRO_UI_FILT_BW_VALUE_4 (4 << ICM40627_SHIFT_GYRO_UI_FILT_BW) /**< BW = max(400 Hz, ODR) / 10 */ +#define ICM40627_GYRO_UI_FILT_BW_VALUE_5 (5 << ICM40627_SHIFT_GYRO_UI_FILT_BW) /**< BW = max(400 Hz, ODR) / 16 */ +#define ICM40627_GYRO_UI_FILT_BW_VALUE_6 (6 << ICM40627_SHIFT_GYRO_UI_FILT_BW) /**< BW = max(400 Hz, ODR) / 20 */ +#define ICM40627_GYRO_UI_FILT_BW_VALUE_7 (7 << ICM40627_SHIFT_GYRO_UI_FILT_BW) /**< BW = max(400 Hz, ODR) / 40 */ +#define ICM40627_GYRO_UI_FILT_BW_VALUE_8 (14 << ICM40627_SHIFT_GYRO_UI_FILT_BW) /**< BW = max(400 Hz, ODR) */ +#define ICM40627_GYRO_UI_FILT_BW_VALUE_9 (15 << ICM40627_SHIFT_GYRO_UI_FILT_BW) /**< BW = max(200 Hz, 8*ODR) */ +/* LN Mode: Bandwidth for Accel LPF */ +#define ICM40627_ACCEL_UI_FILT_BW_VALUE_0 (0 << ICM40627_SHIFT_ACCEL_UI_FILT_BW) /**< BW = ODR / 2 */ +#define ICM40627_ACCEL_UI_FILT_BW_VALUE_1 (1 << ICM40627_SHIFT_ACCEL_UI_FILT_BW) /**< BW = max(400 Hz, ODR) / 4 (default) */ +#define ICM40627_ACCEL_UI_FILT_BW_VALUE_2 (2 << ICM40627_SHIFT_ACCEL_UI_FILT_BW) /**< BW = max(400 Hz, ODR) / 5 */ +#define ICM40627_ACCEL_UI_FILT_BW_VALUE_3 (3 << ICM40627_SHIFT_ACCEL_UI_FILT_BW) /**< BW = max(400 Hz, ODR) / 8 */ +#define ICM40627_ACCEL_UI_FILT_BW_VALUE_4 (4 << ICM40627_SHIFT_ACCEL_UI_FILT_BW) /**< BW = max(400 Hz, ODR) / 10 */ +#define ICM40627_ACCEL_UI_FILT_BW_VALUE_5 (5 << ICM40627_SHIFT_ACCEL_UI_FILT_BW) /**< BW = max(400 Hz, ODR) / 16 */ +#define ICM40627_ACCEL_UI_FILT_BW_VALUE_6 (6 << ICM40627_SHIFT_ACCEL_UI_FILT_BW) /**< BW = max(400 Hz, ODR) / 20 */ +#define ICM40627_ACCEL_UI_FILT_BW_VALUE_7 (7 << ICM40627_SHIFT_ACCEL_UI_FILT_BW) /**< BW = max(400 Hz, ODR) / 40 */ +#define ICM40627_ACCEL_UI_FILT_BW_VALUE_8 (14 << ICM40627_SHIFT_ACCEL_UI_FILT_BW) /**< BW = max(400 Hz, ODR) */ +#define ICM40627_ACCEL_UI_FILT_BW_VALUE_9 (15 << ICM40627_SHIFT_ACCEL_UI_FILT_BW) /**< BW = max(200 Hz, 8*ODR) */ +/* LP Mode: Bandwidth for Accel LPF */ +#define ICM40627_ACCEL_UI_FILT_BW_LP_VALUE_1 (1 << ICM40627_SHIFT_ACCEL_UI_FILT_BW) /**< 1x AVG filter (default) */ +#define ICM40627_ACCEL_UI_FILT_BW_LP_VALUE_6 (6 << ICM40627_SHIFT_ACCEL_UI_FILT_BW) /**< 16x AVG filter */ + +#define ICM40627_REG_ACCEL_CONFIG1 (ICM40627_BANK_0 | 0x53) /**< ACCEL_CONFIG1 >**/ +#define ICM40627_SHIFT_ACCEL_UI_FILT_ORD 3 /**< Selects order of ACCEL UI filter >**/ +#define ICM40627_ACCEL_UI_FILT_ORD_VALUE_0 (0 << ICM40627_SHIFT_ACCEL_UI_FILT_ORD) /**< 1st Order >**/ +#define ICM40627_ACCEL_UI_FILT_ORD_VALUE_1 (1 << ICM40627_SHIFT_ACCEL_UI_FILT_ORD) /**< 2nd Order >**/ +#define ICM40627_ACCEL_UI_FILT_ORD_VALUE_10 (2 << ICM40627_SHIFT_ACCEL_UI_FILT_ORD) /**< 3rd Order >**/ +#define ICM40627_ACCEL_UI_FILT_ORD_VALUE_11 (3 << ICM40627_SHIFT_ACCEL_UI_FILT_ORD) /**< Reserved >**/ +#define ICM40627_SHIFT_ACCEL_DEC2_M2_ORD 1 /**< Order of Accelerometer DEC2_M2 filter >**/ +#define ICM40627_ACCEL_DEC2_M2_ORD_VALUE_0 (0 << ICM40627_SHIFT_ACCEL_DEC2_M2_ORD) /**< Reserved >**/ +#define ICM40627_ACCEL_DEC2_M2_ORD_VALUE_1 (1 << ICM40627_SHIFT_ACCEL_DEC2_M2_ORD) /**< Reserved >**/ +#define ICM40627_ACCEL_DEC2_M2_ORD_VALUE_10 (2 << ICM40627_SHIFT_ACCEL_DEC2_M2_ORD) /**< 3rd order >**/ +#define ICM40627_ACCEL_DEC2_M2_ORD_VALUE_11 (3 << ICM40627_SHIFT_ACCEL_DEC2_M2_ORD) /**< Reserved >**/ + +#define ICM40627_REG_TMST_CONFIG (ICM40627_BANK_0 | 0x54) /**< TMST_CONFIG >**/ +#define ICM40627_BIT_TMST_TO_REGS_EN 4 +#define ICM40627_BIT_TMST_RES 3 /**< Time Stamp resolution: When set to 0 (default), time stamp resolution is1 µs. When set to 1, resolution is 16 µs >**/ +#define ICM40627_BIT_TMST_DELTA_EN 2 /**< Time Stamp delta enable: When set to 1, the time stamp field contains themeasurement of time since the last occurrence of ODR.Time Stamp register FSYNC enable (default). When set to 1, the contents of >**/ +#define ICM40627_BIT_TMST_FSYNC_EN 1 /**< the Timestamp feature of FSYNC is enabled. The user also needs to selectFIFO_TMST_FSYNC_EN in order to propagate the timestamp value to theFIFO. >**/ +#define ICM40627_BIT_TMST_EN 0 + +#define ICM40627_REG_APEX_CONFIG0 (ICM40627_BANK_0 | 0x56) /**< APEX_CONFIG0 >**/ +#define ICM40627_BIT_DMP_POWER_SAVE 7 +#define ICM40627_BIT_TAP_ENABLE 6 +#define ICM40627_BIT_PED_ENABLE 5 /**< values supported by Tap Detection (200 Hz, 500 Hz, 1 kHz) >**/ +#define ICM40627_BIT_TILT_ENABLE 4 +#define ICM40627_BIT_R2W_EN 3 +#define ICM40627_SHIFT_DMP_ODR 0 +#define ICM40627_DMP_ODR_VALUE_0 (0 << ICM40627_SHIFT_DMP_ODR) /**< 25 Hz >**/ +#define ICM40627_DMP_ODR_VALUE_1 (1 << ICM40627_SHIFT_DMP_ODR) /**< Reserved >**/ +#define ICM40627_DMP_ODR_VALUE_10 (2 << ICM40627_SHIFT_DMP_ODR) /**< 50 Hz >**/ +#define ICM40627_DMP_ODR_VALUE_11 (3 << ICM40627_SHIFT_DMP_ODR) /**< Reserved >**/ + +#define ICM40627_REG_SMD_CONFIG (ICM40627_BANK_0 | 0x57) /**< SMD_CONFIG >**/ +#define ICM40627_BIT_WOM_INT_MODE 3 /**< WOM_INT_MODE >**/ +#define ICM40627_BIT_WOM_MODE 2 /**< WOM_MODE >**/ +#define ICM40627_BIT_WOM_MODE_MASK (1 << ICM40627_BIT_WOM_MODE) +#define ICM40627_SHIFT_SMD_MODE 0 /**< detected 1 sec apart >**/ +#define ICM40627_SMD_MODE_VALUE_0 (0 << ICM40627_SHIFT_SMD_MODE) /**< SMD disabled >**/ +#define ICM40627_SMD_MODE_VALUE_1 (1 << ICM40627_SHIFT_SMD_MODE) /**< WOM mode >**/ +#define ICM40627_SMD_MODE_VALUE_10 (2 << ICM40627_SHIFT_SMD_MODE) /**< SMD short (1 sec wait) An SMD event is detected when two WOM are >**/ +#define ICM40627_SMD_MODE_VALUE_11 (3 << ICM40627_SHIFT_SMD_MODE) /**< SMD long (3 sec wait) An SMD event is detected when two WOM are >**/ + +#define ICM40627_REG_FIFO_CONFIG1 (ICM40627_BANK_0 | 0x5F) /**< FIFO_CONFIG1 >**/ +#define ICM40627_BIT_FIFO_RESUME_PARTIAL_RD 6 +#define ICM40627_BIT_FIFO_WM_GT_TH 5 /**< Trigger FIFO watermark interrupt on every ODR (DMA write) if >**/ +#define ICM40627_BIT_FIFO_TMST_FSYNC_EN 3 /**< Must be set to 1 for all use cases >**/ +#define ICM40627_BIT_FIFO_TEMP_EN 2 /**< Enable temperature sensor packets to go to FIFO >**/ +#define ICM40627_BIT_FIFO_GYRO_EN 1 /**< Enable gyroscope packets to go to FIFO >**/ +#define ICM40627_BIT_FIFO_ACCEL_EN 0 /**< Enable accelerometer packets to go to FIFO >**/ +#define ICM40627_MASK_FIFO_TMST_FSYNC_EN (1 << ICM40627_BIT_FIFO_TMST_FSYNC_EN) /**< Must be set to 1 for all use cases >**/ +#define ICM40627_MASK_FIFO_TEMP_EN (1 << ICM40627_BIT_FIFO_TEMP_EN) /**< Enable temperature sensor packets to go to FIFO >**/ +#define ICM40627_MASK_FIFO_GYRO_EN (1 << ICM40627_BIT_FIFO_GYRO_EN) /**< Enable gyroscope packets to go to FIFO >**/ +#define ICM40627_MASK_FIFO_ACCEL_EN (1 << ICM40627_BIT_FIFO_ACCEL_EN) /**< Enable accelerometer packets to go to FIFO >**/ +#define ICM40627_MASK_FIFO_WM_GT_TH (1 << ICM40627_BIT_FIFO_WM_GT_TH) + +#define ICM40627_REG_FIFO_CONFIG2 (ICM40627_BANK_0 | 0x60) /**< FIFO_CONFIG2 >**/ +#define ICM40627_SHIFT_FIFO_WM_LOW 0 /**< Lower bits of FIFO watermark. Generate interrupt when the FIFO reachesor exceeds FIFO_WM size in bytes or records according toFIFO_COUNT_REC setting. FIFO_WM_EN must be zero before writing thisregister. Interrupt only fires once. This register should be set to non-zerovalue, before choosing this interrupt source. >**/ + +#define ICM40627_REG_FIFO_CONFIG3 (ICM40627_BANK_0 | 0x61) /**< FIFO_CONFIG3 >**/ +#define ICM40627_SHIFT_FIFO_WM_HIGH 0 /**< Upper bits of FIFO watermark. Generate interrupt when the FIFO reachesor exceeds FIFO_WM size in bytes or records according toFIFO_COUNT_REC setting. FIFO_WM_EN must be zero before writing thisregister. Interrupt only fires once. This register should be set to non-zerovalue, before choosing this interrupt source. >**/ + +#define ICM40627_REG_FSYNC_CONFIG (ICM40627_BANK_0 | 0x62) /**< FSYNC_CONFIG >**/ +#define ICM40627_SHIFT_FSYNC_UI_SEL 4 +#define ICM40627_FSYNC_UI_SEL_VALUE_0 (0 << ICM40627_SHIFT_FSYNC_UI_SEL) /**< Do not tag FSYNC flag >**/ +#define ICM40627_FSYNC_UI_SEL_VALUE_1 (1 << ICM40627_SHIFT_FSYNC_UI_SEL) /**< Tag FSYNC flag to TEMP_OUT LSB >**/ +#define ICM40627_FSYNC_UI_SEL_VALUE_10 (2 << ICM40627_SHIFT_FSYNC_UI_SEL) /**< Tag FSYNC flag to GYRO_XOUT LSB >**/ +#define ICM40627_FSYNC_UI_SEL_VALUE_11 (3 << ICM40627_SHIFT_FSYNC_UI_SEL) /**< Tag FSYNC flag to GYRO_YOUT LSB >**/ +#define ICM40627_FSYNC_UI_SEL_VALUE_100 (4 << ICM40627_SHIFT_FSYNC_UI_SEL) /**< Tag FSYNC flag to GYRO_ZOUT LSB >**/ +#define ICM40627_FSYNC_UI_SEL_VALUE_101 (5 << ICM40627_SHIFT_FSYNC_UI_SEL) /**< Tag FSYNC flag to ACCEL_XOUT LSB >**/ +#define ICM40627_FSYNC_UI_SEL_VALUE_110 (6 << ICM40627_SHIFT_FSYNC_UI_SEL) /**< Tag FSYNC flag to ACCEL_YOUT LSB >**/ +#define ICM40627_FSYNC_UI_SEL_VALUE_111 (7 << ICM40627_SHIFT_FSYNC_UI_SEL) /**< Tag FSYNC flag to ACCEL_ZOUT LSB >**/ +#define ICM40627_BIT_ 1 +#define ICM40627_BIT_FSYNC_POLARITY 0 /**< FSYNC tagged axis >**/ + +#define ICM40627_REG_INT_CONFIG0 (ICM40627_BANK_0 | 0x63) /**< INT_CONFIG0 >**/ +#define ICM40627_SHIFT_UI_DRDY_INT_CLEAR 4 /**< Data Ready Interrupt Clear Option (latched mode) >**/ +#define ICM40627_UI_DRDY_INT_CLEAR_VALUE_0 (0 << ICM40627_SHIFT_UI_DRDY_INT_CLEAR) /**< Clear on Status Bit Read (default) >**/ +#define ICM40627_UI_DRDY_INT_CLEAR_VALUE_1 (1 << ICM40627_SHIFT_UI_DRDY_INT_CLEAR) /**< Clear on Status Bit Read >**/ +#define ICM40627_UI_DRDY_INT_CLEAR_VALUE_10 (2 << ICM40627_SHIFT_UI_DRDY_INT_CLEAR) /**< Clear on FIFO data 1Byte Read >**/ +#define ICM40627_UI_DRDY_INT_CLEAR_VALUE_11 (3 << ICM40627_SHIFT_UI_DRDY_INT_CLEAR) /**< Clear on Status Bit Read AND on Sensor Register read >**/ +#define ICM40627_SHIFT_FIFO_THS_INT_CLEAR 2 /**< FIFO Threshold Interrupt Clear Option (latched mode) >**/ +#define ICM40627_FIFO_THS_INT_CLEAR_VALUE_0 (0 << ICM40627_SHIFT_FIFO_THS_INT_CLEAR) /**< Clear on Status Bit Read (default) >**/ +#define ICM40627_FIFO_THS_INT_CLEAR_VALUE_1 (1 << ICM40627_SHIFT_FIFO_THS_INT_CLEAR) /**< Clear on Status Bit Read >**/ +#define ICM40627_FIFO_THS_INT_CLEAR_VALUE_10 (2 << ICM40627_SHIFT_FIFO_THS_INT_CLEAR) /**< Clear on FIFO data 1Byte Read >**/ +#define ICM40627_FIFO_THS_INT_CLEAR_VALUE_11 (3 << ICM40627_SHIFT_FIFO_THS_INT_CLEAR) /**< Clear on Status Bit Read AND on FIFO data 1 byte read >**/ +#define ICM40627_SHIFT_FIFO_FULL_INT_CLEAR 0 /**< FIFO Full Interrupt Clear Option (latched mode) >**/ +#define ICM40627_FIFO_FULL_INT_CLEAR_VALUE_0 (0 << ICM40627_SHIFT_FIFO_FULL_INT_CLEAR) /**< Clear on Status Bit Read (default) >**/ +#define ICM40627_FIFO_FULL_INT_CLEAR_VALUE_1 (1 << ICM40627_SHIFT_FIFO_FULL_INT_CLEAR) /**< Clear on Status Bit Read >**/ +#define ICM40627_FIFO_FULL_INT_CLEAR_VALUE_10 (2 << ICM40627_SHIFT_FIFO_FULL_INT_CLEAR) /**< Clear on FIFO data 1Byte Read >**/ +#define ICM40627_FIFO_FULL_INT_CLEAR_VALUE_11 (3 << ICM40627_SHIFT_FIFO_FULL_INT_CLEAR) /**< Clear on Status Bit Read AND on FIFO data 1 byte read >**/ + +#define ICM40627_REG_INT_CONFIG1 (ICM40627_BANK_0 | 0x64) /**< INT_CONFIG1 >**/ +#define ICM40627_BIT_INT_TPULSE_DURATION 6 /**< Interrupt pulse duration< 4 kHz.Interrupt de-assertion duration >**/ +#define ICM40627_BIT_INT_TDEASSERT_DISABLE 5 /**< only if ODR < 4 kHz. (Default)4 kHz. >**/ +#define ICM40627_BIT_INT_ASYNC_RESET 4 /**< User should change setting to 0 from default setting of 1, for proper INT1and INT2 pin operation >**/ +#define ICM40627_BIT_INT_ASYNC_RESET_0 (0 << ICM40627_BIT_INT_ASYNC_RESET) /**< setting to 0 from default setting of 1, for proper INT1and INT2 pin operation >**/ + +#define ICM40627_REG_INT_SOURCE0 (ICM40627_BANK_0 | 0x65) /**< INT_SOURCE0 >**/ +#define ICM40627_BIT_UI_FSYNC_INT1_EN 6 /**< UI FSYNC interrupt >**/ +#define ICM40627_BIT_PLL_RDY_INT1_EN 5 /**< PLL ready interrupt >**/ +#define ICM40627_BIT_RESET_DONE_INT1_EN 4 /**< Reset done interrupt >**/ +#define ICM40627_BIT_UI_DRDY_INT1_EN 3 /**< UI data ready interrupt >**/ +#define ICM40627_MASK_UI_DRDY_INT1_EN (1 << ICM40627_BIT_UI_DRDY_INT1_EN) /**< UI data ready interrupt Bit Mask >**/ +#define ICM40627_BIT_FIFO_THS_INT1_EN 2 /**< FIFO threshold interrupt >**/ +#define ICM40627_BIT_FIFO_FULL_INT1_EN 1 /**< FIFO full interrupt >**/ +#define ICM40627_BIT_UI_AGC_RDY_INT1_EN 0 /**< UI AGC ready interrupt >**/ + +#define ICM40627_REG_INT_SOURCE1 (ICM40627_BANK_0 | 0x66) /**< INT_SOURCE1 >**/ +#define ICM40627_BIT_SMD_INT1_EN 3 /**< SMD interrupt >**/ +#define ICM40627_BIT_WOM_Z_INT1_EN 2 /**< Z-axis WOM interrupt >**/ +#define ICM40627_BIT_WOM_Y_INT1_EN 1 /**< Y-axis WOM interrupt >**/ +#define ICM40627_BIT_WOM_X_INT1_EN 0 /**< X-axis WOM interrupt >**/ +#define ICM40627_BIT_MASK_SMD_INT1_EN (1 << ICM40627_BIT_SMD_INT1_EN)/**< SMD Bitmask interrupt routed to INT1 >**/ +#define ICM40627_BIT_MASK_WOM_Z_INT1_EN (1 << ICM40627_BIT_WOM_Z_INT1_EN) /**< Z-axis WOM interrupt routed to INT1 >**/ +#define ICM40627_BIT_MASK_WOM_Y_INT1_EN (1 << ICM40627_BIT_WOM_Y_INT1_EN) /**< Y-axis WOM interrupt routed to INT1 >**/ +#define ICM40627_BIT_MASK_WOM_X_INT1_EN (1 << ICM40627_BIT_WOM_X_INT1_EN) /**< X-axis WOM interrupt routed to INT1 >**/ + +#define ICM40627_REG_INT_SOURCE3 (ICM40627_BANK_0 | 0x68) /**< INT_SOURCE3 >**/ +#define ICM40627_BIT_UI_FSYNC_INT2_EN 6 +#define ICM40627_BIT_PLL_RDY_INT2_EN 5 +#define ICM40627_BIT_RESET_DONE_INT2_EN 4 +#define ICM40627_BIT_UI_DRDY_INT2_EN 3 +#define ICM40627_BIT_FIFO_THS_INT2_EN 2 +#define ICM40627_BIT_FIFO_FULL_INT2_EN 1 +#define ICM40627_BIT_UI_AGC_RDY_INT2_EN 0 + +#define ICM40627_REG_INT_SOURCE4 (ICM40627_BANK_0 | 0x69) /**< INT_SOURCE4 >**/ +#define ICM40627_BIT_SMD_INT2_EN 3 +#define ICM40627_BIT_WOM_Z_INT2_EN 2 +#define ICM40627_BIT_WOM_Y_INT2_EN 1 +#define ICM40627_BIT_WOM_X_INT2_EN 0 + +#define ICM40627_REG_FIFO_LOST_PKT0 (ICM40627_BANK_0 | 0x6C) /**< FIFO_LOST_PKT0 >**/ +#define ICM40627_SHIFT_FIFO_LOST_PKT_CNT_LOW 0 /**< Low byte, number of packets lost in the FIFO >**/ + +#define ICM40627_REG_FIFO_LOST_PKT1 (ICM40627_BANK_0 | 0x6D) /**< FIFO_LOST_PKT1 >**/ +#define ICM40627_SHIFT_FIFO_LOST_PKT_CNT_HIGH 0 /**< High byte, number of packets lost in the FIFO >**/ + +#define ICM40627_REG_SELF_TEST_CONFIG (ICM40627_BANK_0 | 0x70) /**< SELF_TEST_CONFIG >**/ +#define ICM40627_BIT_ACCEL_ST_POWER 6 /**< Set to 1 for accel self-testOtherwise set to 0; Set to 0 after self-test is completed >**/ +#define ICM40627_BIT_EN_AZ_ST 5 /**< Enable Z-accel self-test >**/ +#define ICM40627_BIT_EN_AY_ST 4 /**< Enable Y-accel self-test >**/ +#define ICM40627_BIT_EN_AX_ST 3 /**< Enable X-accel self-test >**/ +#define ICM40627_BIT_EN_GZ_ST 2 /**< Enable Z-gyro self-test >**/ +#define ICM40627_BIT_EN_GY_ST 1 /**< Enable Y-gyro self-test >**/ +#define ICM40627_BIT_EN_GX_ST 0 /**< Enable X-gyro self-test >**/ + +#define ICM40627_REG_WHO_AM_I (ICM40627_BANK_0 | 0x75) /**< WHO_AM_I >**/ +#define ICM40627_SHIFT_WHOAMI 0 /**< Register to indicate to user which device is being accessed >**/ + +#define ICM40627_REG_REG_BANK_SEL (0x76) /**< REG_BANK_SEL >**/ + +#define ICM40627_SHIFT_BANK_SEL 0 /**< Register bank selection >**/ +#define ICM40627_BANK_SEL_VALUE_0 (0 << ICM40627_SHIFT_BANK_SEL) /**< Bank 0 (default) >**/ +#define ICM40627_BANK_SEL_VALUE_1 (1 << ICM40627_SHIFT_BANK_SEL) /**< Bank 1 >**/ +#define ICM40627_BANK_SEL_VALUE_10 (2 << ICM40627_SHIFT_BANK_SEL) /**< Bank 2 >**/ +#define ICM40627_BANK_SEL_VALUE_11 (3 << ICM40627_SHIFT_BANK_SEL) /**< Bank 3 >**/ +#define ICM40627_BANK_SEL_VALUE_100 (4 << ICM40627_SHIFT_BANK_SEL) /**< Bank 4 >**/ +#define ICM40627_BANK_SEL_VALUE_101 (5 << ICM40627_SHIFT_BANK_SEL) /**< Reserved >**/ +#define ICM40627_BANK_SEL_VALUE_110 (6 << ICM40627_SHIFT_BANK_SEL) /**< Reserved >**/ +#define ICM40627_BANK_SEL_VALUE_111 (7 << ICM40627_SHIFT_BANK_SEL) /**< Reserved >**/ + +/***********************/ +/* Bank 1 register map */ +/***********************/ +#define ICM40627_REG_SENSOR_CONFIG0 (ICM40627_BANK_1 | 0x03) /**< SENSOR_CONFIG0 >**/ +#define ICM40627_BIT_ZG_DISABLE 5 +#define ICM40627_BIT_YG_DISABLE 4 +#define ICM40627_BIT_XG_DISABLE 3 +#define ICM40627_BIT_ZA_DISABLE 2 +#define ICM40627_BIT_YA_DISABLE 1 +#define ICM40627_BIT_XA_DISABLE 0 + +#define ICM40627_REG_GYRO_CONFIG_STATIC2 (ICM40627_BANK_1 | 0x0B) /**< GYRO_CONFIG_STATIC2 >**/ +#define ICM40627_BIT_GYRO_AAF_DIS 1 +#define ICM40627_BIT_GYRO_NF_DIS 0 + +#define ICM40627_REG_GYRO_CONFIG_STATIC3 (ICM40627_BANK_1 | 0x0C) /**< GYRO_CONFIG_STATIC3 >**/ +#define ICM40627_SHIFT_GYRO_AAF_DELT 0 /**< Controls bandwidth of the gyroscope anti-alias filterSee section 5.2for details >**/ + +#define ICM40627_REG_GYRO_CONFIG_STATIC4 (ICM40627_BANK_1 | 0x0D) /**< GYRO_CONFIG_STATIC4 >**/ +#define ICM40627_SHIFT_GYRO_AAF_DELTSQR_LOW 0 /**< Controls bandwidth of the gyroscope anti-alias filterSee section 5.2 for details >**/ + +#define ICM40627_REG_GYRO_CONFIG_STATIC5 (ICM40627_BANK_1 | 0x0E) /**< GYRO_CONFIG_STATIC5 >**/ +#define ICM40627_SHIFT_GYRO_AAF_BITSHIFT 4 /**< Controls bandwidth of the gyroscope anti-alias filterSee section 5.2 for details >**/ +#define ICM40627_SHIFT_GYRO_AAF_DELTSQR_HIGH 0 /**< Controls bandwidth of the gyroscope anti-alias filterSee section 5.2 for details >**/ + +#define ICM40627_REG_GYRO_CONFIG_STATIC6 (ICM40627_BANK_1 | 0x0F) /**< GYRO_CONFIG_STATIC6 >**/ +#define ICM40627_SHIFT_GYRO_X_NF_COSWZ_LOW 0 /**< Used for gyroscope X-axis notch filter frequency selectionSee section 5.1 for details >**/ + +#define ICM40627_REG_GYRO_CONFIG_STATIC7 (ICM40627_BANK_1 | 0x10) /**< GYRO_CONFIG_STATIC7 >**/ +#define ICM40627_SHIFT_GYRO_Y_NF_COSWZ_LOW 0 /**< Used for gyroscope Y-axis notch filter frequency selectionSee section 5.1 for details >**/ + +#define ICM40627_REG_GYRO_CONFIG_STATIC8 (ICM40627_BANK_1 | 0x11) /**< GYRO_CONFIG_STATIC8 >**/ +#define ICM40627_SHIFT_GYRO_Z_NF_COSWZ_LOW 0 /**< Used for gyroscope Z-axis notch filter frequency selectionSee section 5.1 for details >**/ + +#define ICM40627_REG_GYRO_CONFIG_STATIC9 (ICM40627_BANK_1 | 0x12) /**< GYRO_CONFIG_STATIC9 >**/ +#define ICM40627_BIT_GYRO_Z_NF_COSWZ_SEL_LOW 5 /**< Used for gyroscope Z-axis notch filter frequency selectionSee section 5.1 for details >**/ +#define ICM40627_BIT_GYRO_Y_NF_COSWZ_SEL_LOW 4 /**< Used for gyroscope Y-axis notch filter frequency selectionSee section 5.1 for details >**/ +#define ICM40627_BIT_GYRO_X_NF_COSWZ_SEL_LOW 3 /**< Used for gyroscope X-axis notch filter frequency selectionSee section 5.1 for details >**/ +#define ICM40627_BIT_GYRO_Z_NF_COSWZ_HIGH 2 /**< Used for gyroscope Z-axis notch filter frequency selectionSee section 5.1 for details >**/ +#define ICM40627_BIT_GYRO_Y_NF_COSWZ_HIGH 1 /**< Used for gyroscope Y-axis notch filter frequency selectionSee section 5.1 for details >**/ +#define ICM40627_BIT_GYRO_X_NF_COSWZ_HIGH 0 /**< Used for gyroscope X-axis notch filter frequency selectionSee section 5.1 for details >**/ + +#define ICM40627_REG_GYRO_CONFIG_STATIC10 (ICM40627_BANK_1 | 0x13) /**< GYRO_CONFIG_STATIC10 >**/ +#define ICM40627_SHIFT_GYRO_NF_BW_SEL 4 /**< Selects bandwidth for gyroscope notch filterSee section 5.1 for details >**/ +#define ICM40627_SHIFT_GYRO_HPF_BW_IND 1 /**< Selects HPF 3 dB cutoff frequency bandwidthSee section 5.6 for detailsSelects HPF filter order (see section 5.6 for details) >**/ +#define ICM40627_BIT_GYRO_HPF_ORD_IND 0 + +#define ICM40627_REG_XG_ST_DATA (ICM40627_BANK_1 | 0x5F) /**< XG_ST_DATA >**/ +#define ICM40627_SHIFT_XG_ST_DATA 0 /**< X-gyro self-test data >**/ + +#define ICM40627_REG_YG_ST_DATA (ICM40627_BANK_1 | 0x60) /**< YG_ST_DATA >**/ +#define ICM40627_SHIFT_YG_ST_DATA 0 /**< Y-gyro self-test data >**/ + +#define ICM40627_REG_ZG_ST_DATA (ICM40627_BANK_1 | 0x61) /**< ZG_ST_DATA >**/ +#define ICM40627_SHIFT_ZG_ST_DATA 0 /**< Z-gyro self-test data >**/ + +#define ICM40627_REG_TMSTVAL0 (ICM40627_BANK_1 | 0x62) /**< TMSTVAL0 >**/ +#define ICM40627_SHIFT_TMST_VALUE_LOW 0 /**< When TMST_STROBE is programmed, the current value of the internalcounter is latched to this register. Allows the full 20-bit precision of the timestamp to be read back. >**/ + +#define ICM40627_REG_TMSTVAL1 (ICM40627_BANK_1 | 0x63) /**< TMSTVAL1 >**/ +#define ICM40627_SHIFT_TMST_VALUE_HIGH 0 /**< When TMST_STROBE is programmed, the current value of the internalcounter is latched to this register. Allows the full 20-bit precision of the timestamp to be read back. >**/ + +#define ICM40627_REG_TMSTVAL2 (ICM40627_BANK_1 | 0x64) /**< TMSTVAL2 >**/ +#define ICM40627_SHIFT_TMST_VALUE 0 /**< When TMST_STROBE is programmed, the current value of the internalcounter is latched to this register. Allows the full 20-bit precision of the timestamp to be read back. >**/ + +#define ICM40627_REG_INTF_CONFIG4 (ICM40627_BANK_1 | 0x7A) /**< INTF_CONFIG4 >**/ +#define ICM40627_BIT_SPI_AP_4WIRE 1 + +#define ICM40627_REG_INTF_CONFIG5 (ICM40627_BANK_1 | 0x7B) /**< INTF_CONFIG5 >**/ +#define ICM40627_SHIFT_PIN9_FUNCTION 1 /**< Selects among the following functionalities for pin 9 >**/ +#define ICM40627_PIN9_FUNCTION_VALUE_0 (0 << ICM40627_SHIFT_PIN9_FUNCTION) /**< INT2 >**/ +#define ICM40627_PIN9_FUNCTION_VALUE_1 (1 << ICM40627_SHIFT_PIN9_FUNCTION) /**< FSYNC >**/ +#define ICM40627_PIN9_FUNCTION_VALUE_10 (2 << ICM40627_SHIFT_PIN9_FUNCTION) /**< Reserved >**/ +#define ICM40627_PIN9_FUNCTION_VALUE_11 (3 << ICM40627_SHIFT_PIN9_FUNCTION) /**< Reserved >**/ + +/***********************/ +/* Bank 2 register map */ +/***********************/ +#define ICM40627_REG_ACCEL_CONFIG_STATIC2 (ICM40627_BANK_2 | 0x03) /**< ACCEL_CONFIG_STATIC2 >**/ +#define ICM40627_SHIFT_ACCEL_AAF_DELT 1 /**< Controls bandwidth of the accelerometer anti-alias filterSee section 5.2 for details >**/ +#define ICM40627_BIT_ACCEL_AAF_DIS 0 + +#define ICM40627_REG_ACCEL_CONFIG_STATIC3 (ICM40627_BANK_2 | 0x04) /**< ACCEL_CONFIG_STATIC3 >**/ +#define ICM40627_SHIFT_ACCEL_AAF_DELTSQR_LOW 0 /**< Controls bandwidth of the accelerometer anti-alias filterSee section 5.2for details >**/ + +#define ICM40627_REG_ACCEL_CONFIG_STATIC4 (ICM40627_BANK_2 | 0x05) /**< ACCEL_CONFIG_STATIC4 >**/ +#define ICM40627_SHIFT_ACCEL_AAF_BITSHIFT 4 /**< Controls bandwidth of the accelerometer anti-alias filterSee section 5.2 for details >**/ +#define ICM40627_SHIFT_ACCEL_AAF_DELTSQR_HIGH 0 /**< Controls bandwidth of the accelerometer anti-alias filterSee section 5.2 for details >**/ + +#define ICM40627_REG_XA_ST_DATA (ICM40627_BANK_2 | 0x3B) /**< XA_ST_DATA >**/ +#define ICM40627_SHIFT_XA_ST_DATA 0 /**< X-accel self-test data >**/ + +#define ICM40627_REG_YA_ST_DATA (ICM40627_BANK_2 | 0x3C) /**< YA_ST_DATA >**/ +#define ICM40627_SHIFT_YA_ST_DATA 0 /**< Y-accel self-test data >**/ + +#define ICM40627_REG_ZA_ST_DATA (ICM40627_BANK_2 | 0x3D) /**< ZA_ST_DATA >**/ +#define ICM40627_SHIFT_ZA_ST_DATA 0 /**< Z-accel self-test data >**/ + +/***********************/ +/* Bank 4 register map */ +/***********************/ +#define ICM40627_REG_GYRO_ON_OFF_CONFIG (ICM40627_BANK_4 | 0x0E) /**< GYRO_ON_OFF_CONFIG >**/ +#define ICM40627_BIT_GYRO_ON_OFF_CONFIG 6 /**< Set value to 0 when turning off gyroscope.Set value to 1 when turning on gyroscope.See Section 12 for details. >**/ + +#define ICM40627_REG_APEX_CONFIG1 (ICM40627_BANK_4 | 0x40) /**< APEX_CONFIG1 >**/ +#define ICM40627_SHIFT_LOW_ENERGY_AMP_TH_SEL 4 /**< Pedometer Low Energy mode amplitude threshold selectionUse default value 1010bWhen the DMP is in power save mode, it is awakened by the WOM and willwait for a certain duration before going back to sleep. This bitfieldconfigures this duration. >**/ +#define ICM40627_LOW_ENERGY_AMP_TH_SEL_VALUE_0 (0 << ICM40627_SHIFT_LOW_ENERGY_AMP_TH_SEL) /**< 0s >**/ +#define ICM40627_LOW_ENERGY_AMP_TH_SEL_VALUE_1 (1 << ICM40627_SHIFT_LOW_ENERGY_AMP_TH_SEL) /**< 4s >**/ +#define ICM40627_LOW_ENERGY_AMP_TH_SEL_VALUE_10 (2 << ICM40627_SHIFT_LOW_ENERGY_AMP_TH_SEL) /**< 8s >**/ +#define ICM40627_LOW_ENERGY_AMP_TH_SEL_VALUE_11 (3 << ICM40627_SHIFT_LOW_ENERGY_AMP_TH_SEL) /**< 12s >**/ +#define ICM40627_LOW_ENERGY_AMP_TH_SEL_VALUE_100 (4 << ICM40627_SHIFT_LOW_ENERGY_AMP_TH_SEL) /**< 16s >**/ +#define ICM40627_LOW_ENERGY_AMP_TH_SEL_VALUE_101 (5 << ICM40627_SHIFT_LOW_ENERGY_AMP_TH_SEL) /**< 20s >**/ +#define ICM40627_SHIFT_ 0 +#define ICM40627__VALUE_0 (0 << ICM40627_SHIFT_) /**< 24s >**/ +#define ICM40627__VALUE_1 (1 << ICM40627_SHIFT_) /**< 28s >**/ +#define ICM40627__VALUE_10 (2 << ICM40627_SHIFT_) /**< 32s >**/ +#define ICM40627__VALUE_11 (3 << ICM40627_SHIFT_) /**< 36s >**/ +#define ICM40627__VALUE_100 (4 << ICM40627_SHIFT_) /**< 40s >**/ +#define ICM40627__VALUE_101 (5 << ICM40627_SHIFT_) /**< 44s >**/ +#define ICM40627__VALUE_110 (6 << ICM40627_SHIFT_) /**< 48s >**/ +#define ICM40627__VALUE_111 (7 << ICM40627_SHIFT_) /**< 52s >**/ +#define ICM40627__VALUE_1000 (8 << ICM40627_SHIFT_) /**< 56s >**/ +#define ICM40627__VALUE_1001 (9 << ICM40627_SHIFT_) /**< 60s >**/ + +#define ICM40627_REG_APEX_CONFIG2 (ICM40627_BANK_4 | 0x41) /**< APEX_CONFIG2 >**/ +#define ICM40627_SHIFT_PED_AMP_TH_SEL 4 /**< Pedometer amplitude threshold selectionUse default value 1000bPedometer step count detection windowUse default value 0101b >**/ +#define ICM40627_PED_AMP_TH_SEL_VALUE_0 (0 << ICM40627_SHIFT_PED_AMP_TH_SEL) /**< 0 steps >**/ +#define ICM40627_PED_AMP_TH_SEL_VALUE_1 (1 << ICM40627_SHIFT_PED_AMP_TH_SEL) /**< 1 step >**/ +#define ICM40627_PED_AMP_TH_SEL_VALUE_10 (2 << ICM40627_SHIFT_PED_AMP_TH_SEL) /**< 2 steps >**/ +#define ICM40627_PED_AMP_TH_SEL_VALUE_11 (3 << ICM40627_SHIFT_PED_AMP_TH_SEL) /**< 3 steps >**/ +#define ICM40627_PED_AMP_TH_SEL_VALUE_100 (4 << ICM40627_SHIFT_PED_AMP_TH_SEL) /**< 4 steps >**/ +#define ICM40627_PED_AMP_TH_SEL_VALUE_101 (5 << ICM40627_SHIFT_PED_AMP_TH_SEL) /**< 5 steps (default) >**/ +#define ICM40627_SHIFT_PED_STEP_CNT_TH_SEL 0 +#define ICM40627_PED_STEP_CNT_TH_SEL_VALUE_0 (0 << ICM40627_SHIFT_PED_STEP_CNT_TH_SEL) /**< 6 steps >**/ +#define ICM40627_PED_STEP_CNT_TH_SEL_VALUE_1 (1 << ICM40627_SHIFT_PED_STEP_CNT_TH_SEL) /**< 7 steps >**/ +#define ICM40627_PED_STEP_CNT_TH_SEL_VALUE_10 (2 << ICM40627_SHIFT_PED_STEP_CNT_TH_SEL) /**< 8 steps >**/ +#define ICM40627_PED_STEP_CNT_TH_SEL_VALUE_11 (3 << ICM40627_SHIFT_PED_STEP_CNT_TH_SEL) /**< 9 steps >**/ +#define ICM40627_PED_STEP_CNT_TH_SEL_VALUE_100 (4 << ICM40627_SHIFT_PED_STEP_CNT_TH_SEL) /**< 10 steps >**/ +#define ICM40627_PED_STEP_CNT_TH_SEL_VALUE_101 (5 << ICM40627_SHIFT_PED_STEP_CNT_TH_SEL) /**< 11 steps >**/ +#define ICM40627_PED_STEP_CNT_TH_SEL_VALUE_110 (6 << ICM40627_SHIFT_PED_STEP_CNT_TH_SEL) /**< 12 steps >**/ +#define ICM40627_PED_STEP_CNT_TH_SEL_VALUE_111 (7 << ICM40627_SHIFT_PED_STEP_CNT_TH_SEL) /**< 13 steps >**/ +#define ICM40627_PED_STEP_CNT_TH_SEL_VALUE_1000 (8 << ICM40627_SHIFT_PED_STEP_CNT_TH_SEL) /**< 14 steps >**/ +#define ICM40627_PED_STEP_CNT_TH_SEL_VALUE_1001 (9 << ICM40627_SHIFT_PED_STEP_CNT_TH_SEL) /**< 15 steps >**/ + +#define ICM40627_REG_APEX_CONFIG3 (ICM40627_BANK_4 | 0x42) /**< APEX_CONFIG3 >**/ +#define ICM40627_SHIFT_PED_STEP_DET_TH_SEL 5 /**< Pedometer step detection threshold selectionUse default value 010b >**/ +#define ICM40627_PED_STEP_DET_TH_SEL_VALUE_0 (0 << ICM40627_SHIFT_PED_STEP_DET_TH_SEL) /**< 0 steps >**/ +#define ICM40627_PED_STEP_DET_TH_SEL_VALUE_1 (1 << ICM40627_SHIFT_PED_STEP_DET_TH_SEL) /**< 1 step >**/ +#define ICM40627_PED_STEP_DET_TH_SEL_VALUE_10 (2 << ICM40627_SHIFT_PED_STEP_DET_TH_SEL) /**< 2 steps (default) >**/ +#define ICM40627_PED_STEP_DET_TH_SEL_VALUE_11 (3 << ICM40627_SHIFT_PED_STEP_DET_TH_SEL) /**< 3 steps >**/ +#define ICM40627_PED_STEP_DET_TH_SEL_VALUE_100 (4 << ICM40627_SHIFT_PED_STEP_DET_TH_SEL) /**< 4 steps >**/ +#define ICM40627_PED_STEP_DET_TH_SEL_VALUE_101 (5 << ICM40627_SHIFT_PED_STEP_DET_TH_SEL) /**< 5 steps >**/ +#define ICM40627_PED_STEP_DET_TH_SEL_VALUE_110 (6 << ICM40627_SHIFT_PED_STEP_DET_TH_SEL) /**< 6 steps >**/ +#define ICM40627_PED_STEP_DET_TH_SEL_VALUE_111 (7 << ICM40627_SHIFT_PED_STEP_DET_TH_SEL) /**< 7 steps >**/ +#define ICM40627_SHIFT_PED_SB_TIMER_TH_SEL 2 /**< Pedometer step buffer timer threshold selectionUse default value 100b >**/ +#define ICM40627_PED_SB_TIMER_TH_SEL_VALUE_0 (0 << ICM40627_SHIFT_PED_SB_TIMER_TH_SEL) /**< 0 samples >**/ +#define ICM40627_PED_SB_TIMER_TH_SEL_VALUE_1 (1 << ICM40627_SHIFT_PED_SB_TIMER_TH_SEL) /**< 1 sample >**/ +#define ICM40627_PED_SB_TIMER_TH_SEL_VALUE_10 (2 << ICM40627_SHIFT_PED_SB_TIMER_TH_SEL) /**< 2 samples >**/ +#define ICM40627_PED_SB_TIMER_TH_SEL_VALUE_11 (3 << ICM40627_SHIFT_PED_SB_TIMER_TH_SEL) /**< 3 samples >**/ +#define ICM40627_PED_SB_TIMER_TH_SEL_VALUE_100 (4 << ICM40627_SHIFT_PED_SB_TIMER_TH_SEL) /**< 4 samples (default) >**/ +#define ICM40627_PED_SB_TIMER_TH_SEL_VALUE_101 (5 << ICM40627_SHIFT_PED_SB_TIMER_TH_SEL) /**< 5 samples >**/ +#define ICM40627_PED_SB_TIMER_TH_SEL_VALUE_110 (6 << ICM40627_SHIFT_PED_SB_TIMER_TH_SEL) /**< 6 samples >**/ +#define ICM40627_PED_SB_TIMER_TH_SEL_VALUE_111 (7 << ICM40627_SHIFT_PED_SB_TIMER_TH_SEL) /**< 7 samples >**/ +#define ICM40627_SHIFT_PED_HI_EN_TH_SEL 0 /**< Pedometer high energy threshold selectionUse default value 01b >**/ + +#define ICM40627_REG_APEX_CONFIG4 (ICM40627_BANK_4 | 0x43) /**< APEX_CONFIG4 >**/ +#define ICM40627_SHIFT_TILT_WAIT_TIME_SEL 6 /**< Configures duration of delay after tilt is detected before interrupt istriggered >**/ +#define ICM40627_TILT_WAIT_TIME_SEL_VALUE_0 (0 << ICM40627_SHIFT_TILT_WAIT_TIME_SEL) /**< 0s >**/ +#define ICM40627_TILT_WAIT_TIME_SEL_VALUE_1 (1 << ICM40627_SHIFT_TILT_WAIT_TIME_SEL) /**< 2s >**/ +#define ICM40627_TILT_WAIT_TIME_SEL_VALUE_10 (2 << ICM40627_SHIFT_TILT_WAIT_TIME_SEL) /**< 4s (default) >**/ +#define ICM40627_TILT_WAIT_TIME_SEL_VALUE_11 (3 << ICM40627_SHIFT_TILT_WAIT_TIME_SEL) /**< 6s >**/ +#define ICM40627_SHIFT_SLEEP_TIME_OUT 3 /**< Configures the time out for sleep detection, for Raise to Wake/Sleepfeature >**/ +#define ICM40627_SLEEP_TIME_OUT_VALUE_0 (0 << ICM40627_SHIFT_SLEEP_TIME_OUT) /**< 1.28s >**/ +#define ICM40627_SLEEP_TIME_OUT_VALUE_1 (1 << ICM40627_SHIFT_SLEEP_TIME_OUT) /**< 2.56s >**/ +#define ICM40627_SLEEP_TIME_OUT_VALUE_10 (2 << ICM40627_SHIFT_SLEEP_TIME_OUT) /**< 3.84s >**/ +#define ICM40627_SLEEP_TIME_OUT_VALUE_11 (3 << ICM40627_SHIFT_SLEEP_TIME_OUT) /**< 5.12s >**/ +#define ICM40627_SLEEP_TIME_OUT_VALUE_100 (4 << ICM40627_SHIFT_SLEEP_TIME_OUT) /**< 6.40s >**/ +#define ICM40627_SLEEP_TIME_OUT_VALUE_101 (5 << ICM40627_SHIFT_SLEEP_TIME_OUT) /**< 7.68s >**/ +#define ICM40627_SLEEP_TIME_OUT_VALUE_110 (6 << ICM40627_SHIFT_SLEEP_TIME_OUT) /**< 8.96s >**/ +#define ICM40627_SLEEP_TIME_OUT_VALUE_111 (7 << ICM40627_SHIFT_SLEEP_TIME_OUT) /**< 10.24s >**/ + +#define ICM40627_REG_APEX_CONFIG5 (ICM40627_BANK_4 | 0x44) /**< APEX_CONFIG5 >**/ +#define ICM40627_SHIFT_MOUNTING_MATRIX 0 /**< Defines mounting matrix, chip to device frame >**/ +#define ICM40627_MOUNTING_MATRIX_VALUE_0 (0 << ICM40627_SHIFT_MOUNTING_MATRIX) /**< [ 1 0 0; 0 1 0; 0 0 1] >**/ +#define ICM40627_MOUNTING_MATRIX_VALUE_1 (1 << ICM40627_SHIFT_MOUNTING_MATRIX) /**< [ 1 0 0; 0 -1 0; 0 0 -1] >**/ +#define ICM40627_MOUNTING_MATRIX_VALUE_10 (2 << ICM40627_SHIFT_MOUNTING_MATRIX) /**< [-1 0 0; 0 1 0; 0 0 -1] >**/ +#define ICM40627_MOUNTING_MATRIX_VALUE_11 (3 << ICM40627_SHIFT_MOUNTING_MATRIX) /**< [-1 0 0; 0 -1 0; 0 0 1] >**/ +#define ICM40627_MOUNTING_MATRIX_VALUE_100 (4 << ICM40627_SHIFT_MOUNTING_MATRIX) /**< [ 0 1 0; 1 0 0; 0 0 -1] >**/ +#define ICM40627_MOUNTING_MATRIX_VALUE_101 (5 << ICM40627_SHIFT_MOUNTING_MATRIX) /**< [ 0 1 0; -1 0 0; 0 0 1] >**/ +#define ICM40627_MOUNTING_MATRIX_VALUE_110 (6 << ICM40627_SHIFT_MOUNTING_MATRIX) /**< [ 0 -1 0; 1 0 0; 0 0 1] >**/ +#define ICM40627_MOUNTING_MATRIX_VALUE_111 (7 << ICM40627_SHIFT_MOUNTING_MATRIX) /**< [ 0 -1 0; -1 0 0; 0 0 -1] >**/ + +#define ICM40627_REG_APEX_CONFIG6 (ICM40627_BANK_4 | 0x45) /**< APEX_CONFIG6 >**/ +#define ICM40627_SHIFT_SLEEP_GESTURE_DELAY 0 /**< Configures detection window for sleep gesture detection >**/ +#define ICM40627_SLEEP_GESTURE_DELAY_VALUE_0 (0 << ICM40627_SHIFT_SLEEP_GESTURE_DELAY) /**< 0.32s >**/ +#define ICM40627_SLEEP_GESTURE_DELAY_VALUE_1 (1 << ICM40627_SHIFT_SLEEP_GESTURE_DELAY) /**< 0.64s >**/ +#define ICM40627_SLEEP_GESTURE_DELAY_VALUE_10 (2 << ICM40627_SHIFT_SLEEP_GESTURE_DELAY) /**< 0.96s >**/ +#define ICM40627_SLEEP_GESTURE_DELAY_VALUE_11 (3 << ICM40627_SHIFT_SLEEP_GESTURE_DELAY) /**< 1.28s >**/ +#define ICM40627_SLEEP_GESTURE_DELAY_VALUE_100 (4 << ICM40627_SHIFT_SLEEP_GESTURE_DELAY) /**< 1.60s >**/ +#define ICM40627_SLEEP_GESTURE_DELAY_VALUE_101 (5 << ICM40627_SHIFT_SLEEP_GESTURE_DELAY) /**< 1.92s >**/ +#define ICM40627_SLEEP_GESTURE_DELAY_VALUE_110 (6 << ICM40627_SHIFT_SLEEP_GESTURE_DELAY) /**< 2.24s >**/ +#define ICM40627_SLEEP_GESTURE_DELAY_VALUE_111 (7 << ICM40627_SHIFT_SLEEP_GESTURE_DELAY) /**< 2.56s >**/ + +#define ICM40627_REG_APEX_CONFIG7 (ICM40627_BANK_4 | 0x46) /**< APEX_CONFIG7 >**/ +#define ICM40627_SHIFT_TAP_MIN_JERK_THR 2 /**< Tap Detection minimum jerk thresholdUse default value 010001b >**/ +#define ICM40627_SHIFT_TAP_MAX_PEAK_TOL 0 /**< Tap Detection maximum peak toleranceUse default value 01b >**/ + +#define ICM40627_REG_APEX_CONFIG8 (ICM40627_BANK_4 | 0x47) /**< APEX_CONFIG8 >**/ +#define ICM40627_SHIFT_TAP_TMAX 5 /**< Tap measurement window (number of samples)Use default value 01b >**/ +#define ICM40627_SHIFT_TAP_TAVG 3 /**< Tap energy measurement window (number of samples)Use default value 01b >**/ +#define ICM40627_SHIFT_TAP_TMIN 0 /**< Single tap window (number of samples)Use default value 011b >**/ + +#define ICM40627_REG_APEX_CONFIG9 (ICM40627_BANK_4 | 0x48) /**< APEX_CONFIG9 >**/ +#define ICM40627_BIT_SENSITIVITY_MODE 0 /**< at accelerometer ODR ≥ 50 Hz >**/ + +#define ICM40627_REG_ACCEL_WOM_X_THR (ICM40627_BANK_4 | 0x4A) /**< ACCEL_WOM_X_THR >**/ +#define ICM40627_SHIFT_WOM_X_TH 0 /**< Threshold value for the Wake on Motion Interrupt for X-axis accelerometerWoM thresholds are expressed in fixed “mg” independent of the selectedRange [0g : 1g]; Resolution 1g/256=~3.9 mg >**/ + +#define ICM40627_REG_ACCEL_WOM_Y_THR (ICM40627_BANK_4 | 0x4B) /**< ACCEL_WOM_Y_THR >**/ +#define ICM40627_SHIFT_WOM_Y_TH 0 /**< Threshold value for the Wake on Motion Interrupt for Y-axis accelerometerWoM thresholds are expressed in fixed “mg” independent of the selectedRange [0g : 1g]; Resolution 1g/256=~3.9 mg >**/ + +#define ICM40627_REG_ACCEL_WOM_Z_THR (ICM40627_BANK_4 | 0x4C) /**< ACCEL_WOM_Z_THR >**/ +#define ICM40627_SHIFT_WOM_Z_TH 0 /**< Threshold value for the Wake on Motion Interrupt for Z-axis accelerometerWoM thresholds are expressed in fixed “mg” independent of the selectedRange [0g : 1g]; Resolution 1g/256=~3.9 mg >**/ + +#define ICM40627_REG_INT_SOURCE6 (ICM40627_BANK_4 | 0x4D) /**< INT_SOURCE6 >**/ +#define ICM40627_BIT_STEP_DET_INT1_EN 5 +#define ICM40627_BIT_STEP_CNT_OFL_INT1_EN 4 +#define ICM40627_BIT_TILT_DET_INT1_EN 3 +#define ICM40627_BIT_TAP_DET_INT1_EN 0 + +#define ICM40627_REG_INT_SOURCE7 (ICM40627_BANK_4 | 0x4E) /**< INT_SOURCE7 >**/ +#define ICM40627_BIT_STEP_DET_INT2_EN 5 +#define ICM40627_BIT_STEP_CNT_OFL_INT2_EN 4 +#define ICM40627_BIT_TILT_DET_INT2_EN 3 +#define ICM40627_BIT_TAP_DET_INT2_EN 0 + +#define ICM40627_REG_OFFSET_USER0 (ICM40627_BANK_4 | 0x77) /**< OFFSET_USER0 >**/ +#define ICM40627_SHIFT_GYRO_X_OFFUSER_LOW 0 /**< Lower bits of X-gyro offset programmed by user. Max value is ±64 dps,resolution is 1/32 dps. >**/ + +#define ICM40627_REG_OFFSET_USER1 (ICM40627_BANK_4 | 0x78) /**< OFFSET_USER1 >**/ +#define ICM40627_SHIFT_GYRO_Y_OFFUSER_HIGH 4 /**< Upper bits of Y-gyro offset programmed by user. Max value is ±64 dps,resolution is 1/32 dps. >**/ +#define ICM40627_SHIFT_GYRO_X_OFFUSER_HIGH 0 /**< Upper bits of X-gyro offset programmed by user. Max value is ±64 dps,resolution is 1/32 dps. >**/ + +#define ICM40627_REG_OFFSET_USER2 (ICM40627_BANK_4 | 0x79) /**< OFFSET_USER2 >**/ +#define ICM40627_SHIFT_GYRO_Y_OFFUSER_LOW 0 /**< Lower bits of Y-gyro offset programmed by user. Max value is ±64 dps,resolution is 1/32 dps. >**/ + +#define ICM40627_REG_OFFSET_USER3 (ICM40627_BANK_4 | 0x7A) /**< OFFSET_USER3 >**/ +#define ICM40627_SHIFT_GYRO_Z_OFFUSER_LOW 0 /**< Lower bits of Z-gyro offset programmed by user. Max value is ±64 dps,resolution is 1/32 dps. >**/ + +#define ICM40627_REG_OFFSET_USER4 (ICM40627_BANK_4 | 0x7B) /**< OFFSET_USER4 >**/ +#define ICM40627_SHIFT_ACCEL_X_OFFUSER_HIGH 4 /**< Upper bits of X-accel offset programmed by user. Max value is ±1g,resolution is 0.5 mg. >**/ +#define ICM40627_SHIFT_GYRO_Z_OFFUSER_HIGH 0 /**< Upper bits of Z-gyro offset programmed by user. Max value is ±64 dps,resolution is 1/32 dps. >**/ + +#define ICM40627_REG_OFFSET_USER5 (ICM40627_BANK_4 | 0x7C) /**< OFFSET_USER5 >**/ +#define ICM40627_SHIFT_ACCEL_X_OFFUSER_LOW 0 /**< Lower bits of X-accel offset programmed by user. Max value is ±1g,resolution is 0.5 mg. >**/ + +#define ICM40627_REG_OFFSET_USER6 (ICM40627_BANK_4 | 0x7D) /**< OFFSET_USER6 >**/ +#define ICM40627_SHIFT_ACCEL_Y_OFFUSER_LOW 0 /**< Lower bits of Y-accel offset programmed by user. Max value is ±1g,resolution is 0.5 mg. >**/ + +#define ICM40627_REG_OFFSET_USER7 (ICM40627_BANK_4 | 0x7E) /**< OFFSET_USER7 >**/ +#define ICM40627_SHIFT_ACCEL_Z_OFFUSER_HIGH 4 /**< Upper bits of Z-accel offset programmed by user. Max value is ±1g,resolution is 0.5 mg. >**/ +#define ICM40627_SHIFT_ACCEL_Y_OFFUSER_HIGH 0 /**< Upper bits of Y-accel offset programmed by user. Max value is ±1g,resolution is 0.5 mg. >**/ + +#define ICM40627_REG_OFFSET_USER8 (ICM40627_BANK_4 | 0x7F) /**< OFFSET_USER8 >**/ +#define ICM40627_SHIFT_ACCEL_Z_OFFUSER_LOW 0 /**< Lower bits of Z-accel offset programmed by user. Max value is ±1g,resolution is 0.5 mg. >**/ + +#ifdef __cplusplus +} +#endif + +/** @endcond */ +#endif // SL_ICM40627_DEFS_H diff --git a/hardware/driver/icm40627/src/sl_icm40627.c b/hardware/driver/icm40627/src/sl_icm40627.c new file mode 100644 index 0000000000..66c40da5c9 --- /dev/null +++ b/hardware/driver/icm40627/src/sl_icm40627.c @@ -0,0 +1,1191 @@ +/***************************************************************************//** + * @file + * @brief Driver for the Invensense ICM40627 6-axis motion sensor + ******************************************************************************* + * # License + * Copyright 2024 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#include "sl_icm40627.h" +#include "sl_icm40627_config.h" + +#include +#include + +#include "sl_sleeptimer.h" +#include "sl_clock_manager.h" +#include "em_device.h" +#include "em_assert.h" +#include "em_gpio.h" +#include "em_eusart.h" + +/** @cond DO_NOT_INCLUDE_WITH_DOXYGEN */ +static void sl_icm40627_chip_select_set(bool select); + +/* Concatenate preprocessor tokens A and B. */ +#define SL_CONCAT(A, B) A ## B + +/* Generate the cmu clock symbol based on instance. */ +#define ICM40627_SPI_CLK(N) SL_CONCAT(SL_BUS_CLOCK_EUSART, N) +/** @endcond */ + +/***************************************************************************//** + * Initializes the ICM40627 sensor. Enables the power supply and SPI lines, + * sets up the host SPI controller, configures the chip control interface, + * clock generator and interrupt line. + ******************************************************************************/ +sl_status_t sl_icm40627_init(void) +{ + uint8_t data; + + /* Enable and setup the SPI bus */ + sl_icm40627_spi_init(); + + /* Issue reset */ + sl_icm40627_reset(); + + /* Read Who am I register, should get 0x4E */ + sl_icm40627_read_register(ICM40627_REG_WHO_AM_I, 1, &data); + + /* If not - return */ + if (data != ICM40627_DEVICE_ID) { + return SL_STATUS_INITIALIZATION; + } + + /* Disable I2C interface, use SPI */ + sl_icm40627_read_register(ICM40627_REG_INTF_CONFIG0, 1, &data); + data |= ICM40627_UI_SIFS_CFG_VALUE_1; + sl_icm40627_write_register(ICM40627_REG_INTF_CONFIG0, data); + + /* Set clock select to automatic clock source selection -Select PLL when available, else select RC oscillator (default) */ + sl_icm40627_read_register(ICM40627_REG_INTF_CONFIG1, 1, &data); + data |= ICM40627_CLKSEL_VALUE_1; + sl_icm40627_write_register(ICM40627_REG_INTF_CONFIG1, data); + + /*Clear the sleep bit*/ + sl_icm40627_enable_sleep_mode(false); + + /* PLL startup time - maybe it is too long but better be on the safe side, no spec in the datasheet */ + sl_sleeptimer_delay_millisecond(30); + + /* INT pin: active low, open drain, IT status read clears. It seems that latched mode does not work, the INT pin cannot be cleared if set */ + sl_icm40627_write_register(ICM40627_REG_INT_CONFIG, ICM40627_BIT_INT1_DRIVE_CIRCUIT_OPEN_DRAIN | ICM40627_BIT_INT1_POLARITY_ACTL); + + /*Set INT_ASYNC_RESET to 0 from default setting of 1, for proper INT1 and INT2 pin operation */ + sl_icm40627_read_register(ICM40627_REG_INT_CONFIG1, 1, &data); + data |= ICM40627_BIT_INT_ASYNC_RESET_0; + sl_icm40627_write_register(ICM40627_REG_INT_CONFIG1, data); + + return SL_STATUS_OK; +} + +/***************************************************************************//** + * De-initializes the ICM40627 sensor. + ******************************************************************************/ +sl_status_t sl_icm40627_deinit(void) +{ + return SL_STATUS_OK; +} + +/***************************************************************************//** + * Reads the device ID of the ICM40627 + ******************************************************************************/ +sl_status_t sl_icm40627_get_device_id(uint8_t *dev_id) +{ + sl_icm40627_read_register(ICM40627_REG_WHO_AM_I, 1, dev_id); + + return SL_STATUS_OK; +} + +/***************************************************************************//** + * Reads register from the ICM40627 device + ******************************************************************************/ +sl_status_t sl_icm40627_read_register(uint16_t addr, int num_bytes, uint8_t *data) +{ + uint8_t regAddr; + uint8_t bank; + + regAddr = (uint8_t) (addr & 0x7F); + bank = (uint8_t) (addr >> 7); + + /*Select the User bank*/ + sl_icm40627_select_register_bank(bank); + + /* Enable chip select */ + sl_icm40627_chip_select_set(true); + + /* Set R/W bit to 1 - read */ + EUSART_Spi_TxRx(SL_ICM40627_SPI_EUSART_PERIPHERAL, (regAddr | 0x80)); + + /* Transmit 0's to provide clock and read the data */ + while ( num_bytes-- ) { + *data++ = EUSART_Spi_TxRx(SL_ICM40627_SPI_EUSART_PERIPHERAL, 0x00); + } + + /* Disable chip select */ + sl_icm40627_chip_select_set(false); + + return SL_STATUS_OK; +} + +/***************************************************************************//** + * Writes a register in the ICM40627 device + ******************************************************************************/ +sl_status_t sl_icm40627_write_register(uint16_t addr, uint8_t data) +{ + uint8_t regAddr; + uint8_t bank; + + regAddr = (uint8_t) (addr & 0x7F); + bank = (uint8_t) (addr >> 7); + + /*Select the User bank*/ + sl_icm40627_select_register_bank(bank); + + /* Enable chip select */ + sl_icm40627_chip_select_set(true); + + /* clear R/W bit - write, send the address */ + EUSART_Spi_TxRx(SL_ICM40627_SPI_EUSART_PERIPHERAL, (regAddr & 0x7F)); + + /* Send the data */ + EUSART_Spi_TxRx(SL_ICM40627_SPI_EUSART_PERIPHERAL, data); + + /* Disable chip select */ + sl_icm40627_chip_select_set(false); + + return SL_STATUS_OK; +} + +/***************************************************************************//** + * Performs the software reset on the ICM40627 chip + ******************************************************************************/ +sl_status_t sl_icm40627_reset(void) +{ + uint32_t intStatus; + + /* Set Soft_reset bit to initiate software reset */ + sl_icm40627_write_register(ICM40627_REG_DEVICE_CONFIG, ICM40627_BIT_SOFT_RESET_CONFIG_ENABLE); + + /* Wait 100ms to complete the reset sequence */ + sl_sleeptimer_delay_millisecond(100); + + /* Check the Int Reset Done bit */ + sl_icm40627_read_interrupt_status(&intStatus); + + if ((intStatus & ICM40627_MASK_RESET_DONE_INT) == 0 ) { + return SL_STATUS_FAIL; + } + /* Set endianess to Big Endian format for further processing */ + sl_icm40627_write_register(ICM40627_REG_INTF_CONFIG0, 0x30); + + return SL_STATUS_OK; +} + +/***************************************************************************//** + * Initializes the SPI bus in order to communicate with the ICM40627 + ******************************************************************************/ +sl_status_t sl_icm40627_spi_init(void) +{ + EUSART_TypeDef *eusart = SL_ICM40627_SPI_EUSART_PERIPHERAL; + EUSART_SpiInit_TypeDef init = EUSART_SPI_MASTER_INIT_DEFAULT_HF; + EUSART_SpiAdvancedInit_TypeDef advancedInit = EUSART_SPI_ADVANCED_INIT_DEFAULT; + + init.bitRate = 3300000UL; + init.advancedSettings = &advancedInit; + + advancedInit.autoCsEnable = false; + advancedInit.msbFirst = true; + + /* Enabling clock to EUSART */ + sl_clock_manager_enable_bus_clock(ICM40627_SPI_CLK(SL_ICM40627_SPI_EUSART_PERIPHERAL_NO)); + sl_clock_manager_enable_bus_clock(SL_BUS_CLOCK_GPIO); + + /* IO configuration */ + GPIO_PinModeSet(SL_ICM40627_SPI_EUSART_TX_PORT, SL_ICM40627_SPI_EUSART_TX_PIN, gpioModePushPull, 0); /* TX - MOSI */ + GPIO_PinModeSet(SL_ICM40627_SPI_EUSART_RX_PORT, SL_ICM40627_SPI_EUSART_RX_PIN, gpioModeInput, 0); /* RX - MISO */ + GPIO_PinModeSet(SL_ICM40627_SPI_EUSART_SCLK_PORT, SL_ICM40627_SPI_EUSART_SCLK_PIN, gpioModePushPull, 0); /* Clock */ + GPIO_PinModeSet(SL_ICM40627_SPI_EUSART_CS_PORT, SL_ICM40627_SPI_EUSART_CS_PIN, gpioModePushPull, 1); /* CS */ + + /* Initialize EUSART, in SPI master mode. */ + EUSART_SpiInit(eusart, &init); + + /* Enable pins at correct EUSART location. */ + GPIO->EUSARTROUTE[SL_ICM40627_SPI_EUSART_PERIPHERAL_NO].TXROUTE = ((SL_ICM40627_SPI_EUSART_TX_PORT << _GPIO_EUSART_TXROUTE_PORT_SHIFT) | (SL_ICM40627_SPI_EUSART_TX_PIN << _GPIO_EUSART_TXROUTE_PIN_SHIFT)); + GPIO->EUSARTROUTE[SL_ICM40627_SPI_EUSART_PERIPHERAL_NO].RXROUTE = ((SL_ICM40627_SPI_EUSART_RX_PORT << _GPIO_EUSART_RXROUTE_PORT_SHIFT) | (SL_ICM40627_SPI_EUSART_RX_PIN << _GPIO_EUSART_RXROUTE_PIN_SHIFT)); + GPIO->EUSARTROUTE[SL_ICM40627_SPI_EUSART_PERIPHERAL_NO].SCLKROUTE = ((SL_ICM40627_SPI_EUSART_SCLK_PORT << _GPIO_EUSART_SCLKROUTE_PORT_SHIFT) | (SL_ICM40627_SPI_EUSART_SCLK_PIN << _GPIO_EUSART_SCLKROUTE_PIN_SHIFT)); + GPIO->EUSARTROUTE[SL_ICM40627_SPI_EUSART_PERIPHERAL_NO].ROUTEEN = GPIO_EUSART_ROUTEEN_RXPEN | GPIO_EUSART_ROUTEEN_TXPEN | GPIO_EUSART_ROUTEEN_SCLKPEN; + + return SL_STATUS_OK; +} + +/***************************************************************************//** + * Enables or disables the sleep mode of the device + ******************************************************************************/ +sl_status_t sl_icm40627_enable_sleep_mode(bool enable) +{ + uint8_t reg; + + sl_icm40627_read_register(ICM40627_REG_INT_STATUS3, 1, ®); + + if ( enable ) { + /* Sleep: Set the SLEEP interrupt bit and clear the WAKE interrupt bit */ + reg |= ICM40627_BIT_MASK_SLEEP_INT; + reg &= ~(ICM40627_BIT_MASK_WAKE_INT); + } else { + /* Wake Up: Clear the SLEEP interrupt bit and set the wake interrupt bit */ + reg &= ~(ICM40627_BIT_MASK_SLEEP_INT); + reg |= ICM40627_BIT_MASK_WAKE_INT; + } + + sl_icm40627_write_register(ICM40627_REG_INT_STATUS3, reg); + + return SL_STATUS_OK; +} + +/***************************************************************************//** + * Sets the sample rate for both the accelerometer and the gyroscope. + ******************************************************************************/ +float sl_icm40627_set_sample_rate(float sample_rate) +{ + uint8_t accel_sample_rate_setting; + uint8_t gyro_sample_rate_setting; + + /* Map sample_rate to corresponding register values*/ + switch ((int)sample_rate) { + case 8000: + accel_sample_rate_setting = ICM40627_ACCEL_ODR_VALUE_8000; + gyro_sample_rate_setting = ICM40627_GYRO_ODR_VALUE_8000; + break; + case 4000: + accel_sample_rate_setting = ICM40627_ACCEL_ODR_VALUE_4000; + gyro_sample_rate_setting = ICM40627_GYRO_ODR_VALUE_4000; + break; + case 2000: + accel_sample_rate_setting = ICM40627_ACCEL_ODR_VALUE_2000; + gyro_sample_rate_setting = ICM40627_GYRO_ODR_VALUE_2000; + break; + case 1000: + accel_sample_rate_setting = ICM40627_ACCEL_ODR_VALUE_1000; + gyro_sample_rate_setting = ICM40627_GYRO_ODR_VALUE_1000; + break; + case 500: + accel_sample_rate_setting = ICM40627_ACCEL_ODR_VALUE_500; + gyro_sample_rate_setting = ICM40627_GYRO_ODR_VALUE_500; + break; + case 200: + accel_sample_rate_setting = ICM40627_ACCEL_ODR_VALUE_200; + gyro_sample_rate_setting = ICM40627_GYRO_ODR_VALUE_200; + break; + case 100: + accel_sample_rate_setting = ICM40627_ACCEL_ODR_VALUE_100; + gyro_sample_rate_setting = ICM40627_GYRO_ODR_VALUE_100; + break; + case 50: + accel_sample_rate_setting = ICM40627_ACCEL_ODR_VALUE_50; + gyro_sample_rate_setting = ICM40627_GYRO_ODR_VALUE_50; + break; + case 25: + accel_sample_rate_setting = ICM40627_ACCEL_ODR_VALUE_25; + gyro_sample_rate_setting = ICM40627_GYRO_ODR_VALUE_25; + break; + case 12: + accel_sample_rate_setting = ICM40627_ACCEL_ODR_VALUE_12_5; + gyro_sample_rate_setting = ICM40627_GYRO_ODR_VALUE_12_5; + break; + default: + return -1.0f; + } + + /* Set the sample rate for gyroscope and accelerometer*/ + sl_icm40627_gyro_set_sample_rate((sl_gyro_ODR_t)gyro_sample_rate_setting); + sl_icm40627_accel_set_sample_rate((sl_accel_ODR_t)accel_sample_rate_setting); + + /* Return the actual sample rate set*/ + return sample_rate; +} + +/***************************************************************************//** + * Sets the Output Data Rate of the gyroscope + ******************************************************************************/ +sl_status_t sl_icm40627_gyro_set_sample_rate(sl_gyro_ODR_t gyro_ODR) +{ + uint8_t reg; + + /* Read the ICM40627_REG_GYRO_CONFIG0 register */ + sl_icm40627_read_register(ICM40627_REG_GYRO_CONFIG0, 1, ®); + reg &= ~(ICM40627_MASK_GYRO_ODR_VALUE); + + /* Write the new bandwidth value to the gyro config register */ + reg |= (gyro_ODR & ICM40627_MASK_GYRO_ODR_VALUE); + sl_icm40627_write_register(ICM40627_REG_GYRO_CONFIG0, reg); + + return SL_STATUS_OK; +} + +/***************************************************************************//** + * Sets the Output Data Rate of the accelerometer + ******************************************************************************/ +sl_status_t sl_icm40627_accel_set_sample_rate(sl_accel_ODR_t accel_ODR) +{ + uint8_t reg; + + /* Read the ICM40627_REG_ACCEL_CONFIG0 register */ + sl_icm40627_read_register(ICM40627_REG_ACCEL_CONFIG0, 1, ®); + reg &= ~(ICM40627_MASK_ACCEL_ODR_VALUE); + + /* Write the new bandwidth value to the accel config register */ + reg |= (accel_ODR & ICM40627_MASK_ACCEL_ODR_VALUE); + sl_icm40627_write_register(ICM40627_REG_ACCEL_CONFIG0, reg); + + return SL_STATUS_OK; +} + +/***************************************************************************//** + * Sets the Bandwidth of the gyroscope by chosing a UI Filter Bandwidth + ******************************************************************************/ +sl_status_t sl_icm40627_gyro_set_bandwidth(sl_gyro_BW_t gyro_Bw) +{ + uint8_t reg; + + /* Read the ICM40627_REG_GYRO_ACCEL_CONFIG0 register */ + sl_icm40627_read_register(ICM40627_REG_GYRO_ACCEL_CONFIG0, 1, ®); + reg &= ~(ICM40627_MASK_GYRO_UI_FILT_BW); + + /* Write the new bandwidth value to the gyro accel config register */ + reg |= (gyro_Bw & ICM40627_MASK_GYRO_UI_FILT_BW); + sl_icm40627_write_register(ICM40627_REG_GYRO_ACCEL_CONFIG0, reg); + + return SL_STATUS_OK; +} + +/***************************************************************************//** + * Sets the Bandwidth of the accelerometer by chosing a UI Filter Bandwidth + ******************************************************************************/ +sl_status_t sl_icm40627_accel_set_bandwidth(sl_accel_BW_t accel_Bw) +{ + uint8_t reg; + + /* Read the ICM40627_REG_GYRO_ACCEL_CONFIG0 register */ + sl_icm40627_read_register(ICM40627_REG_GYRO_ACCEL_CONFIG0, 1, ®); + reg &= ~(ICM40627_MASK_ACCEL_UI_FILT_BW); + + /* Write the new bandwidth value to the gyro accel config register */ + reg |= (accel_Bw & ICM40627_MASK_ACCEL_UI_FILT_BW); + sl_icm40627_write_register(ICM40627_REG_GYRO_ACCEL_CONFIG0, reg); + + return SL_STATUS_OK; +} + +/***************************************************************************//** + * Sets the full scale value of the accelerometer + ******************************************************************************/ +sl_status_t sl_icm40627_accel_set_full_scale(sl_Accel_FS_t accelFs) +{ + uint8_t reg; + accelFs &= ICM40627_MASK_ACCEL_FS_SEL; + + /* Read the ICM40627_REG_ACCEL_CONFIG0 register */ + sl_icm40627_read_register(ICM40627_REG_ACCEL_CONFIG0, 1, ®); + reg &= ~(ICM40627_MASK_ACCEL_FS_SEL); + + /* Write the new full-scale value to the accel config register */ + reg |= accelFs; + sl_icm40627_write_register(ICM40627_REG_ACCEL_CONFIG0, reg); + + return SL_STATUS_OK; +} + +/***************************************************************************//** + * Sets the full scale value of the gyroscope + ******************************************************************************/ +sl_status_t sl_icm40627_gyro_set_full_scale(sl_gyro_FS_t gyroFs) +{ + uint8_t reg; + + gyroFs &= ICM40627_MASK_GYRO_FS_SEL; + + /* Read the ICM40627_REG_GYRO_CONFIG0 register */ + sl_icm40627_read_register(ICM40627_REG_GYRO_CONFIG0, 1, ®); + reg &= ~(ICM40627_MASK_GYRO_FS_SEL); + + /* Write the new full-scale value to the gyro config register */ + reg |= gyroFs; + sl_icm40627_write_register(ICM40627_REG_GYRO_CONFIG0, reg); + + return SL_STATUS_OK; +} + +/***************************************************************************//** + * Reads the raw acceleration value and converts to g value based on + * the actual resolution + ******************************************************************************/ +sl_status_t sl_icm40627_accel_read_data(float accel[3]) +{ + uint8_t raw_data[6]; + int16_t temp; + float accel_res; + + /* Retrieve the current resolution */ + sl_icm40627_accel_get_resolution(&accel_res); + + /* Read the six raw data registers into data array */ + sl_icm40627_read_register(ICM40627_REG_ACCEL_DATA_X1, 6, &raw_data[0]); + + /* Convert the MSB and LSB into a signed 16-bit value and multiply by the resolution to get the g value */ + temp = ( (int16_t) raw_data[0] << 8) | raw_data[1]; + accel[0] = (float) temp * accel_res; + + temp = ( (int16_t) raw_data[2] << 8) | raw_data[3]; + accel[1] = (float) temp * accel_res; + + temp = ( (int16_t) raw_data[4] << 8) | raw_data[5]; + accel[2] = (float) temp * accel_res; + + return SL_STATUS_FAIL; +} + +/***************************************************************************//** + * Reads the raw gyroscope value and converts to deg/sec value based on + * the actual resolution + ******************************************************************************/ +sl_status_t sl_icm40627_gyro_read_data(float gyro[3]) +{ + uint8_t raw_data[6]; + float gyro_res; + int16_t temp; + + /* Retrieve the current resolution */ + sl_icm40627_accel_get_resolution(&gyro_res); + + /* Read the six raw data registers into data array */ + sl_icm40627_read_register(ICM40627_REG_GYRO_DATA_X1, 6, &raw_data[0]); + + /* Convert the MSB and LSB into a signed 16-bit value and multiply by the resolution to get the dps value */ + temp = ( (int16_t) raw_data[0] << 8) | raw_data[1]; + gyro[0] = (float) temp * gyro_res; + + temp = ( (int16_t) raw_data[2] << 8) | raw_data[3]; + gyro[1] = (float) temp * gyro_res; + + temp = ( (int16_t) raw_data[4] << 8) | raw_data[5]; + gyro[2] = (float) temp * gyro_res; + + return SL_STATUS_OK; +} + +/***************************************************************************//** + * Gets the actual resolution of the accelerometer + ******************************************************************************/ +sl_status_t sl_icm40627_accel_get_resolution(float *accel_res) +{ + uint8_t reg; + + /* Read the actual acceleration full scale setting */ + sl_icm40627_read_register(ICM40627_REG_ACCEL_CONFIG0, 1, ®); + reg &= ICM40627_MASK_ACCEL_FS_SEL; + + /* Calculate the resolution */ + switch ( reg ) { + case ICM40627_ACCEL_FS_SEL_VALUE_2G: + *accel_res = 2.0 / 32768.0; + break; + + case ICM40627_ACCEL_FS_SEL_VALUE_4G: + *accel_res = 4.0 / 32768.0; + break; + + case ICM40627_ACCEL_FS_SEL_VALUE_8G: + *accel_res = 8.0 / 32768.0; + break; + + case ICM40627_ACCEL_FS_SEL_VALUE_16G: + *accel_res = 16.0 / 32768.0; + break; + + default: + EFM_ASSERT(false); + return SL_STATUS_FAIL; + } + + return SL_STATUS_OK; +} + +/***************************************************************************//** + * Gets the actual resolution of the gyroscope + ******************************************************************************/ +sl_status_t sl_icm40627_gyro_get_resolution(float *gyro_res) +{ + uint8_t reg; + + /* Read the actual gyroscope full scale setting */ + sl_icm40627_read_register(ICM40627_REG_GYRO_CONFIG0, 1, ®); + reg &= ICM40627_MASK_GYRO_FS_SEL; + + /* Calculate the resolution */ + switch ( reg ) { + case ICM40627_GYRO_FS_SEL_VALUE_250: + *gyro_res = 250.0 / 32768.0; + break; + + case ICM40627_GYRO_FS_SEL_VALUE_500: + *gyro_res = 500.0 / 32768.0; + break; + + case ICM40627_GYRO_FS_SEL_VALUE_1000: + *gyro_res = 1000.0 / 32768.0; + break; + + case ICM40627_GYRO_FS_SEL_VALUE_2000: + *gyro_res = 2000.0 / 32768.0; + break; + + case ICM40627_GYRO_FS_SEL_VALUE_125: + *gyro_res = 125.0 / 32768.0; + break; + + case ICM40627_GYRO_FS_SEL_VALUE_62_5: + *gyro_res = 62.5 / 32768.0; + break; + + case ICM40627_GYRO_FS_SEL_VALUE_31_25: + *gyro_res = 31.25 / 32768.0; + break; + + case ICM40627_GYRO_FS_SEL_VALUE_15_625: + *gyro_res = 15.625 / 32768.0; + break; + + default: + EFM_ASSERT(false); + return SL_STATUS_FAIL; + } + + return SL_STATUS_OK; +} + +/***************************************************************************//** + * Enables or disables the sensors in the ICM40627 chip + + ******************************************************************************/ +sl_status_t sl_icm40627_enable_sensor(bool accel, bool gyro, bool temp) +{ + uint8_t pwrManagement = 0x00; + + sl_icm40627_read_register(ICM40627_REG_PWR_MGMT0, 1, &pwrManagement); + + /* To enable the accelerometer */ + if (accel) { + /*Set the accelerometer to the low-noise mode*/ + pwrManagement |= ICM40627_PWR_MGMT0_ACCEL_MODE_LN; + } else { + pwrManagement &= ICM40627_PWR_MGMT0_ACCEL_MODE_DIS; + } + + /* To enable gyro */ + if (gyro) { + /*Set the gyro to the low-noise mode*/ + pwrManagement |= ICM40627_PWR_MGMT0_GYRO_MODE_LN; + + /*Set value to 0 when turning off gyroscope.*/ + sl_icm40627_write_register(ICM40627_REG_GYRO_ON_OFF_CONFIG, 0x40); + } else { + pwrManagement &= ICM40627_PWR_MGMT0_GYRO_MODE_DIS; + + /*Set value to 1 when turning on gyroscope.*/ + sl_icm40627_write_register(ICM40627_REG_GYRO_ON_OFF_CONFIG, 0x00); + } + + /* To enable the temperature sensor */ + if (temp) { + pwrManagement &= ICM40627_PWR_MGMT0_TEMP_MODE_EN; + } else { + pwrManagement |= ICM40627_PWR_MGMT0_TEMP_MODE_DIS; + } + + /* Write back the modified values */ + sl_icm40627_write_register(ICM40627_REG_PWR_MGMT0, pwrManagement); + + /* Wait 200ms to complete the write */ + sl_sleeptimer_delay_millisecond(200); + + return SL_STATUS_OK; +} + +/***************************************************************************//** + * Enables or disables the interrupts in the ICM40627 chip + ******************************************************************************/ +sl_status_t sl_icm40627_enable_interrupt(bool dataReadyEnable, bool womEnable) +{ + uint8_t intEnable; + uint8_t data; + + /* All interrupts are disabled by default */ + intEnable = 0; + data = 0; + + sl_icm40627_read_register(ICM40627_REG_INT_SOURCE1, 1, &data); + + /* Enable one or both of the interrupt sources if required */ + if ( womEnable ) { + intEnable = (data | ICM40627_BIT_MASK_WOM_X_INT1_EN | ICM40627_BIT_MASK_WOM_Y_INT1_EN | ICM40627_BIT_MASK_WOM_Z_INT1_EN); + } + /* Write value to register */ + sl_icm40627_write_register(ICM40627_REG_INT_SOURCE1, intEnable); + + /* All interrupts are disabled by default */ + intEnable = 0; + data = 0; + + sl_icm40627_read_register(ICM40627_REG_INT_SOURCE0, 1, &data); + + if ( dataReadyEnable ) { + intEnable = data | ICM40627_MASK_UI_DRDY_INT1_EN; + } + /* Write value to register */ + sl_icm40627_write_register(ICM40627_REG_INT_SOURCE0, intEnable); + + return SL_STATUS_OK; +} + +/***************************************************************************//** + * Reads the interrupt status registers of the ICM40627 chip + ******************************************************************************/ +sl_status_t sl_icm40627_read_interrupt_status(uint32_t *intStatus) +{ + uint8_t reg_status; + uint8_t reg_status2; + uint8_t reg_status3; + + sl_icm40627_read_register(ICM40627_REG_INT_STATUS, 1, ®_status); + + sl_icm40627_read_register(ICM40627_REG_INT_STATUS2, 1, ®_status2); + + sl_icm40627_read_register(ICM40627_REG_INT_STATUS3, 1, ®_status3); + + *intStatus = (uint32_t) reg_status; + *intStatus |= ( ( (uint32_t) reg_status2) << 8); + *intStatus |= ( ( (uint32_t) reg_status3) << 16); + + return SL_STATUS_OK; +} + +/***************************************************************************//** + * Checks if new data is available for read + ******************************************************************************/ +bool sl_icm40627_is_data_ready(void) +{ + uint8_t status; + bool ret; + + ret = false; + sl_icm40627_read_register(ICM40627_REG_INT_STATUS, 1, &status); + + if ( status & ICM40627_MASK_DATA_RDY_INT ) { + ret = true; + } + + return ret; +} + +/***************************************************************************//** + * Accelerometer and gyroscope calibration function. Reads the gyroscope + * and accelerometer values while the device is at rest and in level. The + * resulting values are loaded to the accel and gyro bias registers to cancel + * the static offset error. + ******************************************************************************/ +sl_status_t sl_icm40627_calibrate_accel_and_gyro(float *accel_bias_scaled, float *gyro_bias_scaled) +{ + uint8_t data[13]; + uint16_t i, packet_count, fifo_count; + int32_t gyro_bias[3] = { 0, 0, 0 }; + int32_t accel_bias[3] = { 0, 0, 0 }; + int32_t accel_temp[3]; + int32_t gyro_temp[3]; + int32_t accel_bias_factory[3]; + int32_t gyro_bias_stored[3]; + float gyro_res, accel_res; + + /*Disable all the sensors*/ + sl_icm40627_enable_sensor(false, false, false); + + /* Set the most sensitive range: 2G full scale and 250dps full scale */ + sl_icm40627_accel_set_full_scale(sl_accelFS_2g); + sl_icm40627_gyro_set_full_scale(sl_gyroFS_250dps); + + /*Set the output data rate as 1kHz*/ + sl_icm40627_accel_set_sample_rate(sl_accelODR_1000Hz); + sl_icm40627_gyro_set_sample_rate(sl_gyroODR_1000Hz); + + /*Configure the bandwidths to 2kHz*/ + sl_icm40627_accel_set_bandwidth(sl_accelBW_ODR_MUL_8); + sl_icm40627_gyro_set_bandwidth(sl_gyroBW_ODR_MUL_8); + + /* Retrieve the resolution per bit */ + sl_icm40627_accel_get_resolution(&accel_res); + sl_icm40627_gyro_get_resolution(&gyro_res); + + /* Disable the FIFO-Bypass mode */ + sl_icm40627_write_register(ICM40627_REG_FIFO_CONFIG, ICM40627_FIFO_MODE_BYPASS_MODE); + + /* Enable the accelerometer and the gyro */ + sl_icm40627_enable_sensor(true, true, false); + + /* The accel sensor needs max 30ms, the gyro max 35ms to fully start */ + /* Experiments show that the gyro needs more time to get reliable results */ + sl_sleeptimer_delay_millisecond(50); + + /* Reset the FIFO-Stream to FIFO mode */ + sl_icm40627_write_register(ICM40627_REG_FIFO_CONFIG, ICM40627_FIFO_MODE_STREAM_TO_FIFO); + + // Enable the different sensors to write to the FIFO + sl_icm40627_write_register(ICM40627_REG_FIFO_CONFIG1, ICM40627_MASK_FIFO_TMST_FSYNC_EN + | ICM40627_MASK_FIFO_TEMP_EN + | ICM40627_MASK_FIFO_GYRO_EN + | ICM40627_MASK_FIFO_ACCEL_EN); + + /* The max FIFO size is 2048 bytes, but is limited to 512. */ + fifo_count = 0; + while ( fifo_count < FIFO_SAMPLE_COUNT ) { + sl_sleeptimer_delay_millisecond(5); + /* Read FIFO sample count */ + sl_icm40627_read_register(ICM40627_REG_FIFO_COUNTH, 2, &data[0]); + /* Convert to a 16 bit value */ + fifo_count = ( (uint16_t) (data[0] << 8) | data[1]); + } + + /* Disable accelerometer and gyro to store the data in FIFO */ + sl_icm40627_write_register(ICM40627_REG_FIFO_CONFIG1, 0x00); + + /* Read FIFO sample count */ + sl_icm40627_read_register(ICM40627_REG_FIFO_COUNTH, 2, &data[0]); + + /* Convert to a 16 bit value */ + fifo_count = ( (uint16_t) (data[0] << 8) | data[1]); + + /* Calculate the number of data sets (3 axis of accel an gyro, two bytes each = 12 bytes) */ + packet_count = fifo_count / 12; + + /* Retrieve the data from the FIFO */ + for ( i = 0; i < packet_count; i++ ) { + sl_icm40627_read_register(ICM40627_REG_FIFO_DATA, sizeof(data), &data[0]); + /* Convert to 16 bit signed accel and gyro x,y and z values */ + accel_temp[0] = ( (int16_t) (data[1] << 8) | data[2]); + accel_temp[1] = ( (int16_t) (data[3] << 8) | data[4]); + accel_temp[2] = ( (int16_t) (data[5] << 8) | data[6]); + gyro_temp[0] = ( (int16_t) (data[7] << 8) | data[8]); + gyro_temp[1] = ( (int16_t) (data[9] << 8) | data[10]); + gyro_temp[2] = ( (int16_t) (data[11] << 8) | data[12]); + + /* Sum the values */ + accel_bias[0] += accel_temp[0]; + accel_bias[1] += accel_temp[1]; + accel_bias[2] += accel_temp[2]; + gyro_bias[0] += gyro_temp[0]; + gyro_bias[1] += gyro_temp[1]; + gyro_bias[2] += gyro_temp[2]; + } + + /* Divide by packet count to get the average */ + accel_bias[0] /= packet_count; + accel_bias[1] /= packet_count; + accel_bias[2] /= packet_count; + gyro_bias[0] /= packet_count; + gyro_bias[1] /= packet_count; + gyro_bias[2] /= packet_count; + + /* Acceleormeter: add or remove (depending on the orientation of the chip) 1G (gravity) from the Z axis value */ + if ( accel_bias[2] > 0L ) { + accel_bias[2] -= (int32_t) (1.0f / accel_res); + } else { + accel_bias[2] += (int32_t) (1.0f / accel_res); + } + + /* Convert the values to degrees per sec for displaying */ + gyro_bias_scaled[0] = (float) gyro_bias[0] * gyro_res; + gyro_bias_scaled[1] = (float) gyro_bias[1] * gyro_res; + gyro_bias_scaled[2] = (float) gyro_bias[2] * gyro_res; + + /* Read stored gyro trim values. After reset these values are all 0 */ + sl_icm40627_read_register(ICM40627_REG_OFFSET_USER0, 1, &data[0]); + gyro_bias_stored[0] = (int16_t)data[0]; + sl_icm40627_read_register(ICM40627_REG_OFFSET_USER1, 1, &data[0]); + uint8_t temp = data[0]; + gyro_bias_stored[0] |= (int16_t)((temp & 0x0F) << 8); + gyro_bias_stored[1] = (int16_t)((temp & 0xF0) << 4); + sl_icm40627_read_register(ICM40627_REG_OFFSET_USER2, 1, &data[0]); + gyro_bias_stored[1] |= (int16_t)data[0]; + sl_icm40627_read_register(ICM40627_REG_OFFSET_USER3, 1, &data[0]); + gyro_bias_stored[2] = (int16_t)data[0]; + sl_icm40627_read_register(ICM40627_REG_OFFSET_USER4, 1, &data[0]); + temp = data[0]; + gyro_bias_stored[2] |= (int16_t)((temp & 0x0F) << 8); + + /* The gyro bias should be stored in 1000dps full scaled format. We measured in 250dps to get */ + /* the best sensitivity, so need to divide by 4 */ + /* Substract from the stored calibration value */ + gyro_bias_stored[0] -= gyro_bias[0] / 4; + gyro_bias_stored[1] -= gyro_bias[1] / 4; + gyro_bias_stored[2] -= gyro_bias[2] / 4; + + /* Calculate the accelerometer bias values to store in the hardware accelerometer bias registers. These registers contain */ + /* factory trim values which must be added to the calculated accelerometer biases; on boot up these registers will hold */ + /* non-zero values. In addition, bit 0 of the lower byte must be preserved since it is used for temperature */ + /* compensation calculations(? the datasheet is not clear). Accelerometer bias registers expect bias input */ + /* as 2048 LSB per g, so that the accelerometer biases calculated above must be divided by 8. */ + + /* Read factory accelerometer trim values */ + accel_bias_factory[0] = (int16_t)((temp & 0xF0) << 4); + sl_icm40627_read_register(ICM40627_REG_OFFSET_USER5, 1, &data[0]); + accel_bias_factory[0] |= (int16_t)data[0]; + sl_icm40627_read_register(ICM40627_REG_OFFSET_USER6, 1, &data[0]); + accel_bias_factory[1] = (int16_t)data[0]; + sl_icm40627_read_register(ICM40627_REG_OFFSET_USER7, 1, &data[0]); + temp = data[0]; + accel_bias_factory[1] |= (int16_t)((temp & 0x0F) << 8); + accel_bias_factory[2] = (int16_t)((temp & 0xF0) << 4); + sl_icm40627_read_register(ICM40627_REG_OFFSET_USER8, 1, &data[0]); + accel_bias_factory[2] |= (int16_t)data[0]; + + /* Construct total accelerometer bias, including calculated average accelerometer bias from above */ + /* Scale the 2g full scale (most sensitive range) results to 16g full scale - divide by 8 */ + /* Clear the last bit (temperature compensation? - the datasheet is not clear) */ + /* Substract from the factory calibration value */ + + accel_bias_factory[0] -= ( (accel_bias[0] / 8) & ~1); + accel_bias_factory[1] -= ( (accel_bias[1] / 8) & ~1); + accel_bias_factory[2] -= ( (accel_bias[2] / 8) & ~1); + + /* Split the values into two bytes */ + /*Lower bits of X-gyro offset*/ + data[0] = gyro_bias_stored[0] & 0xFF; + /*Upper bits of Y-gyro offset and Upper bits of X-gyro offset*/ + data[1] = ((gyro_bias_stored[0]) >> 8) | ((gyro_bias_stored[1] >> 4) & 0xF0); + /*Lower bits of Y-gyro offset */ + data[2] = gyro_bias_stored[1] & 0xFF; + /*Lower bits of Z-gyro offset*/ + data[3] = gyro_bias_stored[2] & 0xFF; + /*Upper bits of X-accel offset and Upper bits of Z-gyro offset*/ + data[4] = ((gyro_bias_stored[2]) >> 8) | ((accel_bias_factory[0] >> 4) & 0xF0); + /*Lower bits of X-accel offset*/ + data[5] = accel_bias_factory[0] & 0xFF; + /*Lower bits of Y-accel offset */ + data[6] = accel_bias_factory[1] & 0xFF; + /*Upper bits of Z-accel and Upper bits of Y-accel offset*/ + data[7] = (((accel_bias_factory[1])) >> 8) | ((accel_bias_factory[2] >> 4) & 0xF0); + /*Lower bits of Z-accel offset*/ + data[8] = accel_bias_factory[2] & 0xFF; + + /* Write the gyro and accel bias values to the chip */ + sl_icm40627_write_register(ICM40627_REG_OFFSET_USER0, data[0]); + sl_icm40627_write_register(ICM40627_REG_OFFSET_USER1, data[1]); + sl_icm40627_write_register(ICM40627_REG_OFFSET_USER2, data[2]); + sl_icm40627_write_register(ICM40627_REG_OFFSET_USER3, data[3]); + sl_icm40627_write_register(ICM40627_REG_OFFSET_USER4, data[4]); + sl_icm40627_write_register(ICM40627_REG_OFFSET_USER5, data[5]); + sl_icm40627_write_register(ICM40627_REG_OFFSET_USER6, data[6]); + sl_icm40627_write_register(ICM40627_REG_OFFSET_USER7, data[7]); + sl_icm40627_write_register(ICM40627_REG_OFFSET_USER8, data[8]); + + /* Convert the values to G for displaying */ + accel_bias_scaled[0] = (float) accel_bias[0] * accel_res; + accel_bias_scaled[1] = (float) accel_bias[1] * accel_res; + accel_bias_scaled[2] = (float) accel_bias[2] * accel_res; + + /* Turn off FIFO */ + sl_icm40627_write_register(ICM40627_REG_FIFO_CONFIG, ICM40627_FIFO_MODE_BYPASS_MODE); + + /* Disable all sensors */ + sl_icm40627_enable_sensor(false, false, false); + + return SL_STATUS_OK; +} + +/***************************************************************************//** + * Gyroscope calibration function. Reads the gyroscope + * values while the device is at rest and in level. The + * resulting values are loaded to the gyro bias registers to cancel + * the static offset error. + ******************************************************************************/ +sl_status_t sl_icm40627_calibrate_gyro(float *gyro_bias_scaled) +{ + uint8_t data[13]; + uint16_t i, packet_count, fifo_count; + int32_t gyro_bias[3] = { 0, 0, 0 }; + int32_t gyro_temp[3]; + int32_t accel_bias_factory[1]; + int32_t gyro_bias_stored[3]; + float gyro_res; + + /*Disable all the sensors*/ + sl_icm40627_enable_sensor(false, false, false); + + /* Set the most sensitive range: 2G full scale and 250dps full scale */ + sl_icm40627_gyro_set_full_scale(sl_gyroFS_250dps); + + /*Set the output data rate as 1kHz*/ + sl_icm40627_gyro_set_sample_rate(sl_gyroODR_1000Hz); + + /*Configure the bandwidths to 2kHz*/ + sl_icm40627_gyro_set_bandwidth(sl_gyroBW_ODR_DIV_1); + + /* Retrieve the resolution per bit */ + sl_icm40627_gyro_get_resolution(&gyro_res); + + /* Disable the FIFO-Bypass mode */ + sl_icm40627_write_register(ICM40627_REG_FIFO_CONFIG, 0x00); + + /* Enable the accelerometer and the gyro */ + sl_icm40627_enable_sensor(true, true, false); + + /* The accel sensor needs max 30ms, the gyro max 35ms to fully start */ + /* Experiments show that the gyro needs more time to get reliable results */ + sl_sleeptimer_delay_millisecond(50); + + /* Reset the FIFO-Stream to FIFO mode */ + sl_icm40627_write_register(ICM40627_REG_FIFO_CONFIG, ICM40627_FIFO_MODE_STREAM_TO_FIFO); + + // Enable the different sensors to write to the FIFO + sl_icm40627_write_register(ICM40627_REG_FIFO_CONFIG1, ICM40627_MASK_FIFO_TMST_FSYNC_EN + | ICM40627_MASK_FIFO_TEMP_EN + | ICM40627_MASK_FIFO_GYRO_EN + | ICM40627_MASK_FIFO_ACCEL_EN); + + /* The max FIFO size is 2048 bytes, but is limited to 512. */ + fifo_count = 0; + while ( fifo_count < FIFO_SAMPLE_COUNT ) { + sl_sleeptimer_delay_millisecond(5); + /* Read FIFO sample count */ + sl_icm40627_read_register(ICM40627_REG_FIFO_COUNTH, 2, &data[0]); + /* Convert to a 16 bit value */ + fifo_count = ( (uint16_t) (data[0] << 8) | data[1]); + } + + /* Disable accelerometer and gyro to store the data in FIFO */ + sl_icm40627_write_register(ICM40627_REG_FIFO_CONFIG1, ICM40627_FIFO_MODE_BYPASS_MODE); + + /* Read FIFO sample count */ + sl_icm40627_read_register(ICM40627_REG_FIFO_COUNTH, 2, &data[0]); + + /* Convert to a 16 bit value */ + fifo_count = ( (uint16_t) (data[0] << 8) | data[1]); + + /* Calculate the number of data sets (3 axis of accel an gyro, two bytes each = 12 bytes) */ + packet_count = fifo_count / 12; + + /* Retrieve the data from the FIFO */ + for ( i = 0; i < packet_count; i++ ) { + sl_icm40627_read_register(ICM40627_REG_FIFO_DATA, sizeof(data), &data[0]); + /* Convert to 16 bit signed accel and gyro x,y and z values */ + gyro_temp[0] = ( (int16_t) (data[7] << 8) | data[8]); + gyro_temp[1] = ( (int16_t) (data[9] << 8) | data[10]); + gyro_temp[2] = ( (int16_t) (data[11] << 8) | data[12]); + + /* Sum the values */ + gyro_bias[0] += gyro_temp[0]; + gyro_bias[1] += gyro_temp[1]; + gyro_bias[2] += gyro_temp[2]; + } + + /* Divide by packet count to get the average */ + gyro_bias[0] /= packet_count; + gyro_bias[1] /= packet_count; + gyro_bias[2] /= packet_count; + + /* Convert the values to degrees per sec for displaying */ + gyro_bias_scaled[0] = (float) gyro_bias[0] * gyro_res; + gyro_bias_scaled[1] = (float) gyro_bias[1] * gyro_res; + gyro_bias_scaled[2] = (float) gyro_bias[2] * gyro_res; + + /* Read stored gyro trim values. After reset these values are all 0 */ + sl_icm40627_read_register(ICM40627_REG_OFFSET_USER0, 1, &data[0]); + gyro_bias_stored[0] = (int16_t)data[0]; + sl_icm40627_read_register(ICM40627_REG_OFFSET_USER1, 1, &data[0]); + uint8_t temp = data[0]; + gyro_bias_stored[0] |= (int16_t)((temp & 0x0F) << 8); + gyro_bias_stored[1] = (int16_t)((temp & 0xF0) << 4); + sl_icm40627_read_register(ICM40627_REG_OFFSET_USER2, 1, &data[0]); + gyro_bias_stored[1] |= (int16_t)data[0]; + sl_icm40627_read_register(ICM40627_REG_OFFSET_USER3, 1, &data[0]); + gyro_bias_stored[2] = (int16_t)data[0]; + sl_icm40627_read_register(ICM40627_REG_OFFSET_USER4, 1, &data[0]); + temp = data[0]; + gyro_bias_stored[2] |= (int16_t)((temp & 0x0F) << 8); + accel_bias_factory[0] = (int16_t)((temp & 0xF0) << 4); + + /* The gyro bias should be stored in 1000dps full scaled format. We measured in 250dps to get */ + /* the best sensitivity, so need to divide by 4 */ + /* Substract from the stored calibration value */ + gyro_bias_stored[0] -= gyro_bias[0] / 4; + gyro_bias_stored[1] -= gyro_bias[1] / 4; + gyro_bias_stored[2] -= gyro_bias[2] / 4; + + /* Split the values into two bytes */ + /*Lower bits of X-gyro offset*/ + data[0] = gyro_bias_stored[0] & 0xFF; + /*Upper bits of Y-gyro offset and Upper bits of X-gyro offset*/ + data[1] = ((gyro_bias_stored[0]) >> 8) | ((gyro_bias_stored[1] >> 4) & 0xF0); + /*Lower bits of Y-gyro offset */ + data[2] = gyro_bias_stored[1] & 0xFF; + /*Lower bits of Z-gyro offset*/ + data[3] = gyro_bias_stored[2] & 0xFF; + /*Upper bits of X-accel offset and Upper bits of Z-gyro offset*/ + data[4] = ((gyro_bias_stored[2]) >> 8) | ((accel_bias_factory[0] >> 4) & 0xF0); + + /* Write the gyro and accel bias values to the chip */ + sl_icm40627_write_register(ICM40627_REG_OFFSET_USER0, data[0]); + sl_icm40627_write_register(ICM40627_REG_OFFSET_USER1, data[1]); + sl_icm40627_write_register(ICM40627_REG_OFFSET_USER2, data[2]); + sl_icm40627_write_register(ICM40627_REG_OFFSET_USER3, data[3]); + sl_icm40627_write_register(ICM40627_REG_OFFSET_USER4, data[4]); + + /* Turn off FIFO */ + sl_icm40627_write_register(ICM40627_REG_FIFO_CONFIG, ICM40627_FIFO_MODE_BYPASS_MODE); + + /* Disable all sensors */ + sl_icm40627_enable_sensor(false, false, false); + + return SL_STATUS_OK; +} + +/***************************************************************************//** + * Reads the temperature sensor raw value and converts to Celsius. + ******************************************************************************/ +sl_status_t sl_icm40627_read_temperature_data(float *temperature) +{ + uint8_t data[2]; + int16_t raw_temp; + + /* Read temperature registers */ + sl_icm40627_read_register(ICM40627_REG_TEMP_DATA1, 2, data); + + /* Convert to int16 */ + raw_temp = (int16_t) ( (data[0] << 8) + data[1]); + + /* Calculate the Centigrade value from the raw reading */ + *temperature = ((float) raw_temp / 132.48f) + 25.0f; + + return SL_STATUS_OK; +} + +/***************************************************************************//** + * Enable or disable the accelerometer sensor in low power mode in the ICM40627 chip + ******************************************************************************/ +sl_status_t sl_icm40627_accel_enter_low_power_mode(bool enAccel) +{ + uint8_t data = 0; + + sl_icm40627_read_register(ICM40627_REG_PWR_MGMT0, 1, &data); + + /* Make sure that the chip is not in sleep */ + sl_icm40627_enable_sleep_mode(false); + + /* Enable the accelerometer and the gyroscope*/ + sl_icm40627_enable_sensor(true, false, false); + + sl_sleeptimer_delay_millisecond(50); + + /* Clear the ACCEL_MODE bits */ + data &= ~(ICM40627_PWR_MGMT0_ACCEL_MODE_MASK); + + if ( enAccel ) { + /* Set the ACCEL_MODE bits to enable low power mode */ + data |= ICM40627_PWR_MGMT0_ACCEL_MODE_LP; + + /* Write the updated value to the PWR_MGNT_0 register */ + sl_icm40627_write_register(ICM40627_REG_PWR_MGMT0, data); + + sl_icm40627_read_register(ICM40627_REG_INTF_CONFIG1, 1, &data); + + /* Clear the ACCEL_LP_CLK_SEL bits for the Accelerometer LP mode to use Wake Up oscillator clock */ + data &= ~(ICM40627_BIT_ACCEL_LP_CLK_SEL_MASK); + + /* Write the updated value to the INTF_CONFIG1 register */ + sl_icm40627_write_register(ICM40627_REG_INTF_CONFIG1, data); + + sl_sleeptimer_delay_millisecond(10); + } else { + /* Set the ACCEL_MODE bits to enable low noise mode */ + data |= ICM40627_PWR_MGMT0_ACCEL_MODE_LN; + + /* Write the updated value to the PWR_MGNT_0 register */ + sl_icm40627_write_register(ICM40627_REG_PWR_MGMT0, data); + + sl_icm40627_read_register(ICM40627_REG_INTF_CONFIG1, 1, &data); + + /* Set the ACCEL_LP_CLK_SEL bits for the Accelerometer LP mode to use RC oscillator clock*/ + data |= (ICM40627_BIT_ACCEL_LP_CLK_SEL_MASK); + + /* Write the updated value to the INTF_CONFIG1 register */ + sl_icm40627_write_register(ICM40627_REG_INTF_CONFIG1, data); + + sl_sleeptimer_delay_millisecond(10); + } + + return SL_STATUS_OK; +} + +/***************************************************************************//** + * Select the desired register bank + ******************************************************************************/ +sl_status_t sl_icm40627_select_register_bank(uint8_t bank) +{ + /* Enable chip select */ + sl_icm40627_chip_select_set(true); + + /* Select the Bank Select register */ + EUSART_Spi_TxRx(SL_ICM40627_SPI_EUSART_PERIPHERAL, ICM40627_REG_REG_BANK_SEL); + + /* Send the data */ + EUSART_Spi_TxRx(SL_ICM40627_SPI_EUSART_PERIPHERAL, bank); + + /* Disable chip select */ + sl_icm40627_chip_select_set(false); + + return SL_STATUS_OK; +} + +/** @cond DO_NOT_INCLUDE_WITH_DOXYGEN */ + +/***************************************************************************//** + * @brief + * Controls the state of the ICM40627 SPI chip select pin + * + * @param[in] select + * The desired state of the select pin. True: asserted (logic L) + * + * @return + * None + ******************************************************************************/ +static void sl_icm40627_chip_select_set(bool select) +{ + if ( select ) { + GPIO_PinOutClear(SL_ICM40627_SPI_EUSART_CS_PORT, SL_ICM40627_SPI_EUSART_CS_PIN); + } else { + GPIO_PinOutSet(SL_ICM40627_SPI_EUSART_CS_PORT, SL_ICM40627_SPI_EUSART_CS_PIN); + } +} + +/** @endcond */ diff --git a/hardware/driver/imu/src/sl_imu_icm40627.c b/hardware/driver/imu/src/sl_imu_icm40627.c new file mode 100644 index 0000000000..2531d59ff7 --- /dev/null +++ b/hardware/driver/imu/src/sl_imu_icm40627.c @@ -0,0 +1,288 @@ +/***************************************************************************//** + * @file + * @brief Inertial Measurement Unit driver + ******************************************************************************* + * # License + * Copyright 2024 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#include +#include + +#include "sl_icm40627.h" +#include "sl_imu.h" +#include "sl_sleeptimer.h" + +/** @cond DO_NOT_INCLUDE_WITH_DOXYGEN */ +static uint8_t IMU_state = IMU_STATE_DISABLED; /**< IMU state variable */ +static float sensorsSampleRate; /**< Sensors sample rate */ +static uint32_t IMU_isDataReadyQueryCount = 0; /**< The number of the total data ready queries */ +static uint32_t IMU_isDataReadyTrueCount = 0; /**< The number of queries when data is ready */ +static sl_imu_sensor_fusion_t fuseObj; /**< Structure to store the sensor fusion data */ +/** @endcond */ + +/***************************************************************************//** + * Initializes and calibrates the IMU + ******************************************************************************/ +sl_status_t sl_imu_init(void) +{ + sl_status_t status; + uint8_t devid; + float gyroBiasScaled[3]; + + IMU_state = IMU_STATE_INITIALIZING; + sl_imu_fuse_new(&fuseObj); + + /* Initialize acc/gyro driver */ + status = sl_icm40627_init(); + if ( status != SL_STATUS_OK ) { + goto cleanup; + } + + status = sl_icm40627_get_device_id(&devid); + if ( status != SL_STATUS_OK ) { + goto cleanup; + } + + /* Gyro calibration */ + IMU_state = IMU_STATE_CALIBRATING; + status = sl_icm40627_calibrate_gyro(gyroBiasScaled); + if ( status != SL_STATUS_OK ) { + goto cleanup; + } + + IMU_state = IMU_STATE_INITIALIZING; + + cleanup: + + if ( status != SL_STATUS_OK ) { + sl_icm40627_deinit(); + IMU_state = IMU_STATE_DISABLED; + } + + return status; +} + +/***************************************************************************//** + * De-initializes the IMU chip + ******************************************************************************/ +sl_status_t sl_imu_deinit(void) +{ + sl_status_t status; + + IMU_state = IMU_STATE_DISABLED; + status = sl_icm40627_deinit(); + + return status; +} + +/***************************************************************************//** + * Returns IMU state + ******************************************************************************/ +uint8_t sl_imu_get_state(void) +{ + return IMU_state; +} + +/***************************************************************************//** + * Configures the IMU + ******************************************************************************/ +void sl_imu_configure(float sampleRate) +{ + uint32_t itStatus; + + /* Set IMU state */ + IMU_state = IMU_STATE_INITIALIZING; + + /* Enable accel sensor */ + sl_icm40627_enable_sensor(true, true, false); + + /* Set sample rate */ + sensorsSampleRate = sl_icm40627_set_sample_rate(sampleRate); + + /* Filter bandwidth: 49.30Hz for accel and 92.30Hz for gyro */ + sl_icm40627_accel_set_bandwidth(sl_accelBW_ODR_DIV_2); + sl_icm40627_gyro_set_bandwidth(sl_gyroBW_ODR_DIV_4); + + /* Accel: 2G full scale */ + sl_icm40627_accel_set_full_scale(sl_accelFS_2g); + + /* Gyro: 62.5 degrees per sec full scale */ + sl_icm40627_gyro_set_full_scale(sl_gyroFS_62_5dps); + + sl_sleeptimer_delay_millisecond(50); + + /* Enable the raw data ready interrupt */ + sl_icm40627_enable_interrupt(true, false); + + /* Clear the interrupts */ + sl_icm40627_read_interrupt_status(&itStatus); + + /* IMU fuse config & setup */ + sl_imu_fuse_accelerometer_set_sample_rate(&fuseObj, sensorsSampleRate); + sl_imu_fuse_gyro_set_sample_rate(&fuseObj, sensorsSampleRate); + sl_imu_fuse_reset(&fuseObj); + + IMU_state = IMU_STATE_READY; +} + +/***************************************************************************//** + * Retrieves the processed acceleration data + ******************************************************************************/ +void sl_imu_get_acceleration(int16_t avec[3]) +{ + if ( fuseObj.aAccumulatorCount > 0 ) { + avec[0] = (int16_t) (1000.0f * fuseObj.aAccumulator[0] / fuseObj.aAccumulatorCount); + avec[1] = (int16_t) (1000.0f * fuseObj.aAccumulator[1] / fuseObj.aAccumulatorCount); + avec[2] = (int16_t) (1000.0f * fuseObj.aAccumulator[2] / fuseObj.aAccumulatorCount); + fuseObj.aAccumulator[0] = 0; + fuseObj.aAccumulator[1] = 0; + fuseObj.aAccumulator[2] = 0; + fuseObj.aAccumulatorCount = 0; + } else { + avec[0] = 0; + avec[1] = 0; + avec[2] = 0; + } +} + +/***************************************************************************//** + * Retrieves the processed orientation data + ******************************************************************************/ +void sl_imu_get_orientation(int16_t ovec[3]) +{ + ovec[0] = (int16_t) (100.0f * (float)IMU_RAD_TO_DEG_FACTOR * fuseObj.orientation[0]); + ovec[1] = (int16_t) (100.0f * (float)IMU_RAD_TO_DEG_FACTOR * fuseObj.orientation[1]); + ovec[2] = (int16_t) (100.0f * (float)IMU_RAD_TO_DEG_FACTOR * fuseObj.orientation[2]); +} + +/***************************************************************************//** + * Retrieves the processed gyroscope data + ******************************************************************************/ +void sl_imu_get_gyro(int16_t gvec[3]) +{ + gvec[0] = (int16_t) (100.0f * fuseObj.gVector[0]); + gvec[1] = (int16_t) (100.0f * fuseObj.gVector[1]); + gvec[2] = (int16_t) (100.0f * fuseObj.gVector[2]); +} + +/***************************************************************************//** + * Performs gyroscope calibration to cancel gyro bias. + ******************************************************************************/ +sl_status_t sl_imu_calibrate_gyro(void) +{ + sl_status_t status; + + status = SL_STATUS_OK; + + /* Disable interrupt */ + sl_icm40627_enable_interrupt(false, false); + + sl_imu_deinit(); + status = sl_imu_init(); + + /* Restart regular sampling */ + sl_imu_configure(sensorsSampleRate); + + return status; +} + +/***************************************************************************//** + * Gets a new set of data from the accel and gyro sensor and updates the + * fusion calculation + ******************************************************************************/ +void sl_imu_update(void) +{ + sl_imu_fuse_update(&fuseObj); +} + +/***************************************************************************//** + * Resets the fusion calculation + ******************************************************************************/ +void sl_imu_reset(void) +{ + sl_imu_fuse_reset(&fuseObj); +} + +/***************************************************************************//** + * Retrieves the raw acceleration data from the IMU + ******************************************************************************/ +void sl_imu_get_acceleration_raw_data(float avec[3]) +{ + if ( IMU_state != IMU_STATE_READY ) { + avec[0] = 0; + avec[1] = 0; + avec[2] = 0; + return; + } + + sl_icm40627_accel_read_data(avec); +} + +/***************************************************************************//** + * Retrieves the processed gyroscope correction angles + ******************************************************************************/ +void sl_imu_get_gyro_correction_angles(float acorr[3]) +{ + acorr[0] = fuseObj.angleCorrection[0]; + acorr[1] = fuseObj.angleCorrection[1]; + acorr[2] = fuseObj.angleCorrection[2]; +} + +/***************************************************************************//** + * Retrieves the raw gyroscope data from the IMU + ******************************************************************************/ +void sl_imu_get_gyro_raw_data(float gvec[3]) +{ + if ( IMU_state != IMU_STATE_READY ) { + gvec[0] = 0; + gvec[1] = 0; + gvec[2] = 0; + return; + } + + sl_icm40627_gyro_read_data(gvec); +} + +/***************************************************************************//** + * Checks if there is new accel/gyro data available for read + ******************************************************************************/ +bool sl_imu_is_data_ready(void) +{ + bool ready; + + if ( IMU_state != IMU_STATE_READY ) { + return false; + } + + ready = sl_icm40627_is_data_ready(); + IMU_isDataReadyQueryCount++; + + if ( ready ) { + IMU_isDataReadyTrueCount++; + } + + return ready; +} diff --git a/platform/Device/SiliconLabs/BGM21/Include/system_bgm21.h b/platform/Device/SiliconLabs/BGM21/Include/system_bgm21.h index 7266e428ef..b41c30ca7a 100644 --- a/platform/Device/SiliconLabs/BGM21/Include/system_bgm21.h +++ b/platform/Device/SiliconLabs/BGM21/Include/system_bgm21.h @@ -189,11 +189,6 @@ static __INLINE void SystemCoreClockUpdate(void) } void SystemInit(void); -#if !defined(SL_LEGACY_LINKER) -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size); -#endif uint32_t SystemHFRCODPLLClockGet(void); void SystemHFRCODPLLClockSet(uint32_t freq); uint32_t SystemSYSCLKGet(void); diff --git a/platform/Device/SiliconLabs/BGM21/Source/startup_bgm21.c b/platform/Device/SiliconLabs/BGM21/Source/startup_bgm21.c index 4ed25ff203..af229d72ae 100644 --- a/platform/Device/SiliconLabs/BGM21/Source/startup_bgm21.c +++ b/platform/Device/SiliconLabs/BGM21/Source/startup_bgm21.c @@ -85,12 +85,6 @@ extern int __START(void) __attribute__((noreturn)); /* main entry point */ void Copy_Table(); void Zero_Table(); #endif // __START -#if !defined(SL_LEGACY_LINKER) -#if defined (__GNUC__) -// Function to copy RAM functions from Flash to RAM at startup time -void CopyRamFuncs(); -#endif -#endif /*--------------------------------------------------------------------------- * Internal References @@ -335,15 +329,40 @@ void Zero_Table() #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) #if defined (__GNUC__) -void CopyRamFuncs() +__attribute__((optimize("no-tree-loop-distribute-patterns"))) +#endif +void CopyBlock(const uint32_t *from, uint32_t *to, uint32_t size) +{ + if (size != 0) { + while (size--) { + *to++ = *from++; + } + } +} +#if defined (__GNUC__) +void CopyToRam() { extern uint32_t __lma_ramfuncs_start__; extern uint32_t __lma_ramfuncs_end__; extern uint32_t __ramfuncs_start__; uint32_t size = &__lma_ramfuncs_end__ - &__lma_ramfuncs_start__; - FlashToRamCopy(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); + CopyBlock(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); +} +#elif defined (__ICCARM__) +#pragma language=save +#pragma language=extended +#pragma section="text_ram" +#pragma section="text_ram_init" +void CopyToRam(void) +{ + uint32_t size = __section_size("text_ram"); + uint32_t * from = __section_begin("text_ram_init"); + uint32_t * to = __section_begin("text_ram"); + + CopyBlock(from, to, size); } +#pragma language=restore #endif #endif @@ -368,9 +387,7 @@ __NO_RETURN void Reset_Handler(void) SystemInit2(); #endif // BOOTLOADER_ENABLE #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) -#if defined (__GNUC__) - CopyRamFuncs(); -#endif + CopyToRam(); #endif #if defined (__GNUC__) && defined (__START) Copy_Table(); diff --git a/platform/Device/SiliconLabs/BGM21/Source/system_bgm21.c b/platform/Device/SiliconLabs/BGM21/Source/system_bgm21.c index a315762500..b8b0174001 100644 --- a/platform/Device/SiliconLabs/BGM21/Source/system_bgm21.c +++ b/platform/Device/SiliconLabs/BGM21/Source/system_bgm21.c @@ -190,35 +190,6 @@ void SystemInit(void) #endif //SL_TRUSTZONE_SECURE } -#if !defined(SL_LEGACY_LINKER) -/**************************************************************************//** - * @brief - * Copy data. - * - * @details - * Used to copy data from Flash to Ram at startup and runtime. - * - * @param[in] from - * Pointer to the source address in Flash. - * - * @param[in] to - * Pointer to the destination address in Ram. - * - * @param[in] size - * Size of data to copy. - *****************************************************************************/ -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size) -{ - if (size != 0) { - while (size--) { - *to++ = *from++; - } - } -} -#endif - /**************************************************************************//** * @brief * Get current HFRCODPLL frequency. diff --git a/platform/Device/SiliconLabs/BGM22/Include/system_bgm22.h b/platform/Device/SiliconLabs/BGM22/Include/system_bgm22.h index d57ddb9581..db1ba230e6 100644 --- a/platform/Device/SiliconLabs/BGM22/Include/system_bgm22.h +++ b/platform/Device/SiliconLabs/BGM22/Include/system_bgm22.h @@ -206,11 +206,6 @@ static __INLINE void SystemCoreClockUpdate(void) } void SystemInit(void); -#if !defined(SL_LEGACY_LINKER) -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size); -#endif uint32_t SystemHFRCODPLLClockGet(void); void SystemHFRCODPLLClockSet(uint32_t freq); uint32_t SystemSYSCLKGet(void); diff --git a/platform/Device/SiliconLabs/BGM22/Source/startup_bgm22.c b/platform/Device/SiliconLabs/BGM22/Source/startup_bgm22.c index b9c59807b4..19a57f0ff2 100644 --- a/platform/Device/SiliconLabs/BGM22/Source/startup_bgm22.c +++ b/platform/Device/SiliconLabs/BGM22/Source/startup_bgm22.c @@ -85,12 +85,6 @@ extern int __START(void) __attribute__((noreturn)); /* main entry point */ void Copy_Table(); void Zero_Table(); #endif // __START -#if !defined(SL_LEGACY_LINKER) -#if defined (__GNUC__) -// Function to copy RAM functions from Flash to RAM at startup time -void CopyRamFuncs(); -#endif -#endif /*--------------------------------------------------------------------------- * Internal References @@ -341,15 +335,40 @@ void Zero_Table() #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) #if defined (__GNUC__) -void CopyRamFuncs() +__attribute__((optimize("no-tree-loop-distribute-patterns"))) +#endif +void CopyBlock(const uint32_t *from, uint32_t *to, uint32_t size) +{ + if (size != 0) { + while (size--) { + *to++ = *from++; + } + } +} +#if defined (__GNUC__) +void CopyToRam() { extern uint32_t __lma_ramfuncs_start__; extern uint32_t __lma_ramfuncs_end__; extern uint32_t __ramfuncs_start__; uint32_t size = &__lma_ramfuncs_end__ - &__lma_ramfuncs_start__; - FlashToRamCopy(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); + CopyBlock(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); +} +#elif defined (__ICCARM__) +#pragma language=save +#pragma language=extended +#pragma section="text_ram" +#pragma section="text_ram_init" +void CopyToRam(void) +{ + uint32_t size = __section_size("text_ram"); + uint32_t * from = __section_begin("text_ram_init"); + uint32_t * to = __section_begin("text_ram"); + + CopyBlock(from, to, size); } +#pragma language=restore #endif #endif @@ -374,9 +393,7 @@ __NO_RETURN void Reset_Handler(void) SystemInit2(); #endif // BOOTLOADER_ENABLE #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) -#if defined (__GNUC__) - CopyRamFuncs(); -#endif + CopyToRam(); #endif #if defined (__GNUC__) && defined (__START) Copy_Table(); diff --git a/platform/Device/SiliconLabs/BGM22/Source/system_bgm22.c b/platform/Device/SiliconLabs/BGM22/Source/system_bgm22.c index f937758ef0..f8fe965903 100644 --- a/platform/Device/SiliconLabs/BGM22/Source/system_bgm22.c +++ b/platform/Device/SiliconLabs/BGM22/Source/system_bgm22.c @@ -191,35 +191,6 @@ void SystemInit(void) #endif //SL_TRUSTZONE_SECURE } -#if !defined(SL_LEGACY_LINKER) -/**************************************************************************//** - * @brief - * Copy data. - * - * @details - * Used to copy data from Flash to Ram at startup and runtime. - * - * @param[in] from - * Pointer to the source address in Flash. - * - * @param[in] to - * Pointer to the destination address in Ram. - * - * @param[in] size - * Size of data to copy. - *****************************************************************************/ -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size) -{ - if (size != 0) { - while (size--) { - *to++ = *from++; - } - } -} -#endif - /**************************************************************************//** * @brief * Get current HFRCODPLL frequency. diff --git a/platform/Device/SiliconLabs/BGM24/Include/system_bgm24.h b/platform/Device/SiliconLabs/BGM24/Include/system_bgm24.h index 37083b1860..d3a09b30a7 100644 --- a/platform/Device/SiliconLabs/BGM24/Include/system_bgm24.h +++ b/platform/Device/SiliconLabs/BGM24/Include/system_bgm24.h @@ -218,11 +218,6 @@ static __INLINE void SystemCoreClockUpdate(void) } void SystemInit(void); -#if !defined(SL_LEGACY_LINKER) -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size); -#endif uint32_t SystemHFRCODPLLClockGet(void); void SystemHFRCODPLLClockSet(uint32_t freq); uint32_t SystemSYSCLKGet(void); diff --git a/platform/Device/SiliconLabs/BGM24/Source/startup_bgm24.c b/platform/Device/SiliconLabs/BGM24/Source/startup_bgm24.c index b06df18b7b..d0a1de3260 100644 --- a/platform/Device/SiliconLabs/BGM24/Source/startup_bgm24.c +++ b/platform/Device/SiliconLabs/BGM24/Source/startup_bgm24.c @@ -85,12 +85,6 @@ extern int __START(void) __attribute__((noreturn)); /* main entry point */ void Copy_Table(); void Zero_Table(); #endif // __START -#if !defined(SL_LEGACY_LINKER) -#if defined (__GNUC__) -// Function to copy RAM functions from Flash to RAM at startup time -void CopyRamFuncs(); -#endif -#endif /*--------------------------------------------------------------------------- * Internal References @@ -365,15 +359,40 @@ void Zero_Table() #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) #if defined (__GNUC__) -void CopyRamFuncs() +__attribute__((optimize("no-tree-loop-distribute-patterns"))) +#endif +void CopyBlock(const uint32_t *from, uint32_t *to, uint32_t size) +{ + if (size != 0) { + while (size--) { + *to++ = *from++; + } + } +} +#if defined (__GNUC__) +void CopyToRam() { extern uint32_t __lma_ramfuncs_start__; extern uint32_t __lma_ramfuncs_end__; extern uint32_t __ramfuncs_start__; uint32_t size = &__lma_ramfuncs_end__ - &__lma_ramfuncs_start__; - FlashToRamCopy(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); + CopyBlock(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); +} +#elif defined (__ICCARM__) +#pragma language=save +#pragma language=extended +#pragma section="text_ram" +#pragma section="text_ram_init" +void CopyToRam(void) +{ + uint32_t size = __section_size("text_ram"); + uint32_t * from = __section_begin("text_ram_init"); + uint32_t * to = __section_begin("text_ram"); + + CopyBlock(from, to, size); } +#pragma language=restore #endif #endif @@ -398,9 +417,7 @@ __NO_RETURN void Reset_Handler(void) SystemInit2(); #endif // BOOTLOADER_ENABLE #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) -#if defined (__GNUC__) - CopyRamFuncs(); -#endif + CopyToRam(); #endif #if defined (__GNUC__) && defined (__START) Copy_Table(); diff --git a/platform/Device/SiliconLabs/BGM24/Source/system_bgm24.c b/platform/Device/SiliconLabs/BGM24/Source/system_bgm24.c index dff3c66506..00e6c23560 100644 --- a/platform/Device/SiliconLabs/BGM24/Source/system_bgm24.c +++ b/platform/Device/SiliconLabs/BGM24/Source/system_bgm24.c @@ -191,35 +191,6 @@ void SystemInit(void) #endif //SL_TRUSTZONE_SECURE } -#if !defined(SL_LEGACY_LINKER) -/**************************************************************************//** - * @brief - * Copy data. - * - * @details - * Used to copy data from Flash to Ram at startup and runtime. - * - * @param[in] from - * Pointer to the source address in Flash. - * - * @param[in] to - * Pointer to the destination address in Ram. - * - * @param[in] size - * Size of data to copy. - *****************************************************************************/ -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size) -{ - if (size != 0) { - while (size--) { - *to++ = *from++; - } - } -} -#endif - /**************************************************************************//** * @brief * Get current HFRCODPLL frequency. diff --git a/platform/Device/SiliconLabs/EFM32PG22/Include/system_efm32pg22.h b/platform/Device/SiliconLabs/EFM32PG22/Include/system_efm32pg22.h index 660c1ac579..07c9b93882 100644 --- a/platform/Device/SiliconLabs/EFM32PG22/Include/system_efm32pg22.h +++ b/platform/Device/SiliconLabs/EFM32PG22/Include/system_efm32pg22.h @@ -191,11 +191,6 @@ static __INLINE void SystemCoreClockUpdate(void) } void SystemInit(void); -#if !defined(SL_LEGACY_LINKER) -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size); -#endif uint32_t SystemHFRCODPLLClockGet(void); void SystemHFRCODPLLClockSet(uint32_t freq); uint32_t SystemSYSCLKGet(void); diff --git a/platform/Device/SiliconLabs/EFM32PG22/Source/startup_efm32pg22.c b/platform/Device/SiliconLabs/EFM32PG22/Source/startup_efm32pg22.c index f84a3dc0a7..06858d3fd1 100644 --- a/platform/Device/SiliconLabs/EFM32PG22/Source/startup_efm32pg22.c +++ b/platform/Device/SiliconLabs/EFM32PG22/Source/startup_efm32pg22.c @@ -85,12 +85,6 @@ extern int __START(void) __attribute__((noreturn)); /* main entry point */ void Copy_Table(); void Zero_Table(); #endif // __START -#if !defined(SL_LEGACY_LINKER) -#if defined (__GNUC__) -// Function to copy RAM functions from Flash to RAM at startup time -void CopyRamFuncs(); -#endif -#endif /*--------------------------------------------------------------------------- * Internal References @@ -326,15 +320,40 @@ void Zero_Table() #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) #if defined (__GNUC__) -void CopyRamFuncs() +__attribute__((optimize("no-tree-loop-distribute-patterns"))) +#endif +void CopyBlock(const uint32_t *from, uint32_t *to, uint32_t size) +{ + if (size != 0) { + while (size--) { + *to++ = *from++; + } + } +} +#if defined (__GNUC__) +void CopyToRam() { extern uint32_t __lma_ramfuncs_start__; extern uint32_t __lma_ramfuncs_end__; extern uint32_t __ramfuncs_start__; uint32_t size = &__lma_ramfuncs_end__ - &__lma_ramfuncs_start__; - FlashToRamCopy(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); + CopyBlock(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); +} +#elif defined (__ICCARM__) +#pragma language=save +#pragma language=extended +#pragma section="text_ram" +#pragma section="text_ram_init" +void CopyToRam(void) +{ + uint32_t size = __section_size("text_ram"); + uint32_t * from = __section_begin("text_ram_init"); + uint32_t * to = __section_begin("text_ram"); + + CopyBlock(from, to, size); } +#pragma language=restore #endif #endif @@ -359,9 +378,7 @@ __NO_RETURN void Reset_Handler(void) SystemInit2(); #endif // BOOTLOADER_ENABLE #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) -#if defined (__GNUC__) - CopyRamFuncs(); -#endif + CopyToRam(); #endif #if defined (__GNUC__) && defined (__START) Copy_Table(); diff --git a/platform/Device/SiliconLabs/EFM32PG22/Source/system_efm32pg22.c b/platform/Device/SiliconLabs/EFM32PG22/Source/system_efm32pg22.c index 7be380ae1d..5cf19a4a33 100644 --- a/platform/Device/SiliconLabs/EFM32PG22/Source/system_efm32pg22.c +++ b/platform/Device/SiliconLabs/EFM32PG22/Source/system_efm32pg22.c @@ -191,35 +191,6 @@ void SystemInit(void) #endif //SL_TRUSTZONE_SECURE } -#if !defined(SL_LEGACY_LINKER) -/**************************************************************************//** - * @brief - * Copy data. - * - * @details - * Used to copy data from Flash to Ram at startup and runtime. - * - * @param[in] from - * Pointer to the source address in Flash. - * - * @param[in] to - * Pointer to the destination address in Ram. - * - * @param[in] size - * Size of data to copy. - *****************************************************************************/ -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size) -{ - if (size != 0) { - while (size--) { - *to++ = *from++; - } - } -} -#endif - /**************************************************************************//** * @brief * Get current HFRCODPLL frequency. diff --git a/platform/Device/SiliconLabs/EFM32PG23/Include/system_efm32pg23.h b/platform/Device/SiliconLabs/EFM32PG23/Include/system_efm32pg23.h index f6f87fbd3a..b81e8d32ca 100644 --- a/platform/Device/SiliconLabs/EFM32PG23/Include/system_efm32pg23.h +++ b/platform/Device/SiliconLabs/EFM32PG23/Include/system_efm32pg23.h @@ -206,11 +206,6 @@ static __INLINE void SystemCoreClockUpdate(void) } void SystemInit(void); -#if !defined(SL_LEGACY_LINKER) -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size); -#endif uint32_t SystemHFRCODPLLClockGet(void); void SystemHFRCODPLLClockSet(uint32_t freq); uint32_t SystemSYSCLKGet(void); diff --git a/platform/Device/SiliconLabs/EFM32PG23/Source/startup_efm32pg23.c b/platform/Device/SiliconLabs/EFM32PG23/Source/startup_efm32pg23.c index fe38817df8..1983165b4a 100644 --- a/platform/Device/SiliconLabs/EFM32PG23/Source/startup_efm32pg23.c +++ b/platform/Device/SiliconLabs/EFM32PG23/Source/startup_efm32pg23.c @@ -85,12 +85,6 @@ extern int __START(void) __attribute__((noreturn)); /* main entry point */ void Copy_Table(); void Zero_Table(); #endif // __START -#if !defined(SL_LEGACY_LINKER) -#if defined (__GNUC__) -// Function to copy RAM functions from Flash to RAM at startup time -void CopyRamFuncs(); -#endif -#endif /*--------------------------------------------------------------------------- * Internal References @@ -353,15 +347,40 @@ void Zero_Table() #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) #if defined (__GNUC__) -void CopyRamFuncs() +__attribute__((optimize("no-tree-loop-distribute-patterns"))) +#endif +void CopyBlock(const uint32_t *from, uint32_t *to, uint32_t size) +{ + if (size != 0) { + while (size--) { + *to++ = *from++; + } + } +} +#if defined (__GNUC__) +void CopyToRam() { extern uint32_t __lma_ramfuncs_start__; extern uint32_t __lma_ramfuncs_end__; extern uint32_t __ramfuncs_start__; uint32_t size = &__lma_ramfuncs_end__ - &__lma_ramfuncs_start__; - FlashToRamCopy(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); + CopyBlock(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); +} +#elif defined (__ICCARM__) +#pragma language=save +#pragma language=extended +#pragma section="text_ram" +#pragma section="text_ram_init" +void CopyToRam(void) +{ + uint32_t size = __section_size("text_ram"); + uint32_t * from = __section_begin("text_ram_init"); + uint32_t * to = __section_begin("text_ram"); + + CopyBlock(from, to, size); } +#pragma language=restore #endif #endif @@ -386,9 +405,7 @@ __NO_RETURN void Reset_Handler(void) SystemInit2(); #endif // BOOTLOADER_ENABLE #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) -#if defined (__GNUC__) - CopyRamFuncs(); -#endif + CopyToRam(); #endif #if defined (__GNUC__) && defined (__START) Copy_Table(); diff --git a/platform/Device/SiliconLabs/EFM32PG23/Source/system_efm32pg23.c b/platform/Device/SiliconLabs/EFM32PG23/Source/system_efm32pg23.c index 404401f131..a53c9783eb 100644 --- a/platform/Device/SiliconLabs/EFM32PG23/Source/system_efm32pg23.c +++ b/platform/Device/SiliconLabs/EFM32PG23/Source/system_efm32pg23.c @@ -191,35 +191,6 @@ void SystemInit(void) #endif //SL_TRUSTZONE_SECURE } -#if !defined(SL_LEGACY_LINKER) -/**************************************************************************//** - * @brief - * Copy data. - * - * @details - * Used to copy data from Flash to Ram at startup and runtime. - * - * @param[in] from - * Pointer to the source address in Flash. - * - * @param[in] to - * Pointer to the destination address in Ram. - * - * @param[in] size - * Size of data to copy. - *****************************************************************************/ -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size) -{ - if (size != 0) { - while (size--) { - *to++ = *from++; - } - } -} -#endif - /**************************************************************************//** * @brief * Get current HFRCODPLL frequency. diff --git a/platform/Device/SiliconLabs/EFM32PG26/Include/system_efm32pg26.h b/platform/Device/SiliconLabs/EFM32PG26/Include/system_efm32pg26.h index 4559708645..2252201811 100644 --- a/platform/Device/SiliconLabs/EFM32PG26/Include/system_efm32pg26.h +++ b/platform/Device/SiliconLabs/EFM32PG26/Include/system_efm32pg26.h @@ -223,11 +223,6 @@ static __INLINE void SystemCoreClockUpdate(void) } void SystemInit(void); -#if !defined(SL_LEGACY_LINKER) -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size); -#endif uint32_t SystemHFRCODPLLClockGet(void); void SystemHFRCODPLLClockSet(uint32_t freq); uint32_t SystemSYSCLKGet(void); diff --git a/platform/Device/SiliconLabs/EFM32PG26/Source/startup_efm32pg26.c b/platform/Device/SiliconLabs/EFM32PG26/Source/startup_efm32pg26.c index 3e16a83d1c..4797edc03a 100644 --- a/platform/Device/SiliconLabs/EFM32PG26/Source/startup_efm32pg26.c +++ b/platform/Device/SiliconLabs/EFM32PG26/Source/startup_efm32pg26.c @@ -85,12 +85,6 @@ extern int __START(void) __attribute__((noreturn)); /* main entry point */ void Copy_Table(); void Zero_Table(); #endif // __START -#if !defined(SL_LEGACY_LINKER) -#if defined (__GNUC__) -// Function to copy RAM functions from Flash to RAM at startup time -void CopyRamFuncs(); -#endif -#endif /*--------------------------------------------------------------------------- * Internal References @@ -387,15 +381,40 @@ void Zero_Table() #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) #if defined (__GNUC__) -void CopyRamFuncs() +__attribute__((optimize("no-tree-loop-distribute-patterns"))) +#endif +void CopyBlock(const uint32_t *from, uint32_t *to, uint32_t size) +{ + if (size != 0) { + while (size--) { + *to++ = *from++; + } + } +} +#if defined (__GNUC__) +void CopyToRam() { extern uint32_t __lma_ramfuncs_start__; extern uint32_t __lma_ramfuncs_end__; extern uint32_t __ramfuncs_start__; uint32_t size = &__lma_ramfuncs_end__ - &__lma_ramfuncs_start__; - FlashToRamCopy(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); + CopyBlock(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); +} +#elif defined (__ICCARM__) +#pragma language=save +#pragma language=extended +#pragma section="text_ram" +#pragma section="text_ram_init" +void CopyToRam(void) +{ + uint32_t size = __section_size("text_ram"); + uint32_t * from = __section_begin("text_ram_init"); + uint32_t * to = __section_begin("text_ram"); + + CopyBlock(from, to, size); } +#pragma language=restore #endif #endif @@ -420,9 +439,7 @@ __NO_RETURN void Reset_Handler(void) SystemInit2(); #endif // BOOTLOADER_ENABLE #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) -#if defined (__GNUC__) - CopyRamFuncs(); -#endif + CopyToRam(); #endif #if defined (__GNUC__) && defined (__START) Copy_Table(); diff --git a/platform/Device/SiliconLabs/EFM32PG26/Source/system_efm32pg26.c b/platform/Device/SiliconLabs/EFM32PG26/Source/system_efm32pg26.c index 9bb673913f..2b02cdbccc 100644 --- a/platform/Device/SiliconLabs/EFM32PG26/Source/system_efm32pg26.c +++ b/platform/Device/SiliconLabs/EFM32PG26/Source/system_efm32pg26.c @@ -192,35 +192,6 @@ void SystemInit(void) #endif //SL_TRUSTZONE_SECURE } -#if !defined(SL_LEGACY_LINKER) -/**************************************************************************//** - * @brief - * Copy data. - * - * @details - * Used to copy data from Flash to Ram at startup and runtime. - * - * @param[in] from - * Pointer to the source address in Flash. - * - * @param[in] to - * Pointer to the destination address in Ram. - * - * @param[in] size - * Size of data to copy. - *****************************************************************************/ -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size) -{ - if (size != 0) { - while (size--) { - *to++ = *from++; - } - } -} -#endif - /**************************************************************************//** * @brief * Get current HFRCODPLL frequency. diff --git a/platform/Device/SiliconLabs/EFM32PG28/Include/system_efm32pg28.h b/platform/Device/SiliconLabs/EFM32PG28/Include/system_efm32pg28.h index 9914e85372..aa3eb5c32a 100644 --- a/platform/Device/SiliconLabs/EFM32PG28/Include/system_efm32pg28.h +++ b/platform/Device/SiliconLabs/EFM32PG28/Include/system_efm32pg28.h @@ -209,11 +209,6 @@ static __INLINE void SystemCoreClockUpdate(void) } void SystemInit(void); -#if !defined(SL_LEGACY_LINKER) -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size); -#endif uint32_t SystemHFRCODPLLClockGet(void); void SystemHFRCODPLLClockSet(uint32_t freq); uint32_t SystemSYSCLKGet(void); diff --git a/platform/Device/SiliconLabs/EFM32PG28/Source/startup_efm32pg28.c b/platform/Device/SiliconLabs/EFM32PG28/Source/startup_efm32pg28.c index 81ef716731..6e350e5f01 100644 --- a/platform/Device/SiliconLabs/EFM32PG28/Source/startup_efm32pg28.c +++ b/platform/Device/SiliconLabs/EFM32PG28/Source/startup_efm32pg28.c @@ -85,12 +85,6 @@ extern int __START(void) __attribute__((noreturn)); /* main entry point */ void Copy_Table(); void Zero_Table(); #endif // __START -#if !defined(SL_LEGACY_LINKER) -#if defined (__GNUC__) -// Function to copy RAM functions from Flash to RAM at startup time -void CopyRamFuncs(); -#endif -#endif /*--------------------------------------------------------------------------- * Internal References @@ -359,15 +353,40 @@ void Zero_Table() #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) #if defined (__GNUC__) -void CopyRamFuncs() +__attribute__((optimize("no-tree-loop-distribute-patterns"))) +#endif +void CopyBlock(const uint32_t *from, uint32_t *to, uint32_t size) +{ + if (size != 0) { + while (size--) { + *to++ = *from++; + } + } +} +#if defined (__GNUC__) +void CopyToRam() { extern uint32_t __lma_ramfuncs_start__; extern uint32_t __lma_ramfuncs_end__; extern uint32_t __ramfuncs_start__; uint32_t size = &__lma_ramfuncs_end__ - &__lma_ramfuncs_start__; - FlashToRamCopy(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); + CopyBlock(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); +} +#elif defined (__ICCARM__) +#pragma language=save +#pragma language=extended +#pragma section="text_ram" +#pragma section="text_ram_init" +void CopyToRam(void) +{ + uint32_t size = __section_size("text_ram"); + uint32_t * from = __section_begin("text_ram_init"); + uint32_t * to = __section_begin("text_ram"); + + CopyBlock(from, to, size); } +#pragma language=restore #endif #endif @@ -392,9 +411,7 @@ __NO_RETURN void Reset_Handler(void) SystemInit2(); #endif // BOOTLOADER_ENABLE #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) -#if defined (__GNUC__) - CopyRamFuncs(); -#endif + CopyToRam(); #endif #if defined (__GNUC__) && defined (__START) Copy_Table(); diff --git a/platform/Device/SiliconLabs/EFM32PG28/Source/system_efm32pg28.c b/platform/Device/SiliconLabs/EFM32PG28/Source/system_efm32pg28.c index 4fca372e3d..393b5e2948 100644 --- a/platform/Device/SiliconLabs/EFM32PG28/Source/system_efm32pg28.c +++ b/platform/Device/SiliconLabs/EFM32PG28/Source/system_efm32pg28.c @@ -191,35 +191,6 @@ void SystemInit(void) #endif //SL_TRUSTZONE_SECURE } -#if !defined(SL_LEGACY_LINKER) -/**************************************************************************//** - * @brief - * Copy data. - * - * @details - * Used to copy data from Flash to Ram at startup and runtime. - * - * @param[in] from - * Pointer to the source address in Flash. - * - * @param[in] to - * Pointer to the destination address in Ram. - * - * @param[in] size - * Size of data to copy. - *****************************************************************************/ -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size) -{ - if (size != 0) { - while (size--) { - *to++ = *from++; - } - } -} -#endif - /**************************************************************************//** * @brief * Get current HFRCODPLL frequency. diff --git a/platform/Device/SiliconLabs/EFR32BG21/Include/system_efr32bg21.h b/platform/Device/SiliconLabs/EFR32BG21/Include/system_efr32bg21.h index 59b8f94422..82ecc3eb6b 100644 --- a/platform/Device/SiliconLabs/EFR32BG21/Include/system_efr32bg21.h +++ b/platform/Device/SiliconLabs/EFR32BG21/Include/system_efr32bg21.h @@ -189,11 +189,6 @@ static __INLINE void SystemCoreClockUpdate(void) } void SystemInit(void); -#if !defined(SL_LEGACY_LINKER) -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size); -#endif uint32_t SystemHFRCODPLLClockGet(void); void SystemHFRCODPLLClockSet(uint32_t freq); uint32_t SystemSYSCLKGet(void); diff --git a/platform/Device/SiliconLabs/EFR32BG21/Source/startup_efr32bg21.c b/platform/Device/SiliconLabs/EFR32BG21/Source/startup_efr32bg21.c index be9220a54d..52a3f27ec1 100644 --- a/platform/Device/SiliconLabs/EFR32BG21/Source/startup_efr32bg21.c +++ b/platform/Device/SiliconLabs/EFR32BG21/Source/startup_efr32bg21.c @@ -85,12 +85,6 @@ extern int __START(void) __attribute__((noreturn)); /* main entry point */ void Copy_Table(); void Zero_Table(); #endif // __START -#if !defined(SL_LEGACY_LINKER) -#if defined (__GNUC__) -// Function to copy RAM functions from Flash to RAM at startup time -void CopyRamFuncs(); -#endif -#endif /*--------------------------------------------------------------------------- * Internal References @@ -335,15 +329,40 @@ void Zero_Table() #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) #if defined (__GNUC__) -void CopyRamFuncs() +__attribute__((optimize("no-tree-loop-distribute-patterns"))) +#endif +void CopyBlock(const uint32_t *from, uint32_t *to, uint32_t size) +{ + if (size != 0) { + while (size--) { + *to++ = *from++; + } + } +} +#if defined (__GNUC__) +void CopyToRam() { extern uint32_t __lma_ramfuncs_start__; extern uint32_t __lma_ramfuncs_end__; extern uint32_t __ramfuncs_start__; uint32_t size = &__lma_ramfuncs_end__ - &__lma_ramfuncs_start__; - FlashToRamCopy(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); + CopyBlock(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); +} +#elif defined (__ICCARM__) +#pragma language=save +#pragma language=extended +#pragma section="text_ram" +#pragma section="text_ram_init" +void CopyToRam(void) +{ + uint32_t size = __section_size("text_ram"); + uint32_t * from = __section_begin("text_ram_init"); + uint32_t * to = __section_begin("text_ram"); + + CopyBlock(from, to, size); } +#pragma language=restore #endif #endif @@ -368,9 +387,7 @@ __NO_RETURN void Reset_Handler(void) SystemInit2(); #endif // BOOTLOADER_ENABLE #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) -#if defined (__GNUC__) - CopyRamFuncs(); -#endif + CopyToRam(); #endif #if defined (__GNUC__) && defined (__START) Copy_Table(); diff --git a/platform/Device/SiliconLabs/EFR32BG21/Source/system_efr32bg21.c b/platform/Device/SiliconLabs/EFR32BG21/Source/system_efr32bg21.c index a230d62447..50efbd4c81 100644 --- a/platform/Device/SiliconLabs/EFR32BG21/Source/system_efr32bg21.c +++ b/platform/Device/SiliconLabs/EFR32BG21/Source/system_efr32bg21.c @@ -190,35 +190,6 @@ void SystemInit(void) #endif //SL_TRUSTZONE_SECURE } -#if !defined(SL_LEGACY_LINKER) -/**************************************************************************//** - * @brief - * Copy data. - * - * @details - * Used to copy data from Flash to Ram at startup and runtime. - * - * @param[in] from - * Pointer to the source address in Flash. - * - * @param[in] to - * Pointer to the destination address in Ram. - * - * @param[in] size - * Size of data to copy. - *****************************************************************************/ -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size) -{ - if (size != 0) { - while (size--) { - *to++ = *from++; - } - } -} -#endif - /**************************************************************************//** * @brief * Get current HFRCODPLL frequency. diff --git a/platform/Device/SiliconLabs/EFR32BG22/Include/system_efr32bg22.h b/platform/Device/SiliconLabs/EFR32BG22/Include/system_efr32bg22.h index 09609a3f76..94706b09f7 100644 --- a/platform/Device/SiliconLabs/EFR32BG22/Include/system_efr32bg22.h +++ b/platform/Device/SiliconLabs/EFR32BG22/Include/system_efr32bg22.h @@ -206,11 +206,6 @@ static __INLINE void SystemCoreClockUpdate(void) } void SystemInit(void); -#if !defined(SL_LEGACY_LINKER) -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size); -#endif uint32_t SystemHFRCODPLLClockGet(void); void SystemHFRCODPLLClockSet(uint32_t freq); uint32_t SystemSYSCLKGet(void); diff --git a/platform/Device/SiliconLabs/EFR32BG22/Source/startup_efr32bg22.c b/platform/Device/SiliconLabs/EFR32BG22/Source/startup_efr32bg22.c index 4703fbae28..26b4b30a59 100644 --- a/platform/Device/SiliconLabs/EFR32BG22/Source/startup_efr32bg22.c +++ b/platform/Device/SiliconLabs/EFR32BG22/Source/startup_efr32bg22.c @@ -85,12 +85,6 @@ extern int __START(void) __attribute__((noreturn)); /* main entry point */ void Copy_Table(); void Zero_Table(); #endif // __START -#if !defined(SL_LEGACY_LINKER) -#if defined (__GNUC__) -// Function to copy RAM functions from Flash to RAM at startup time -void CopyRamFuncs(); -#endif -#endif /*--------------------------------------------------------------------------- * Internal References @@ -341,15 +335,40 @@ void Zero_Table() #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) #if defined (__GNUC__) -void CopyRamFuncs() +__attribute__((optimize("no-tree-loop-distribute-patterns"))) +#endif +void CopyBlock(const uint32_t *from, uint32_t *to, uint32_t size) +{ + if (size != 0) { + while (size--) { + *to++ = *from++; + } + } +} +#if defined (__GNUC__) +void CopyToRam() { extern uint32_t __lma_ramfuncs_start__; extern uint32_t __lma_ramfuncs_end__; extern uint32_t __ramfuncs_start__; uint32_t size = &__lma_ramfuncs_end__ - &__lma_ramfuncs_start__; - FlashToRamCopy(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); + CopyBlock(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); +} +#elif defined (__ICCARM__) +#pragma language=save +#pragma language=extended +#pragma section="text_ram" +#pragma section="text_ram_init" +void CopyToRam(void) +{ + uint32_t size = __section_size("text_ram"); + uint32_t * from = __section_begin("text_ram_init"); + uint32_t * to = __section_begin("text_ram"); + + CopyBlock(from, to, size); } +#pragma language=restore #endif #endif @@ -374,9 +393,7 @@ __NO_RETURN void Reset_Handler(void) SystemInit2(); #endif // BOOTLOADER_ENABLE #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) -#if defined (__GNUC__) - CopyRamFuncs(); -#endif + CopyToRam(); #endif #if defined (__GNUC__) && defined (__START) Copy_Table(); diff --git a/platform/Device/SiliconLabs/EFR32BG22/Source/system_efr32bg22.c b/platform/Device/SiliconLabs/EFR32BG22/Source/system_efr32bg22.c index 4060d87122..ab43f8bc33 100644 --- a/platform/Device/SiliconLabs/EFR32BG22/Source/system_efr32bg22.c +++ b/platform/Device/SiliconLabs/EFR32BG22/Source/system_efr32bg22.c @@ -191,35 +191,6 @@ void SystemInit(void) #endif //SL_TRUSTZONE_SECURE } -#if !defined(SL_LEGACY_LINKER) -/**************************************************************************//** - * @brief - * Copy data. - * - * @details - * Used to copy data from Flash to Ram at startup and runtime. - * - * @param[in] from - * Pointer to the source address in Flash. - * - * @param[in] to - * Pointer to the destination address in Ram. - * - * @param[in] size - * Size of data to copy. - *****************************************************************************/ -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size) -{ - if (size != 0) { - while (size--) { - *to++ = *from++; - } - } -} -#endif - /**************************************************************************//** * @brief * Get current HFRCODPLL frequency. diff --git a/platform/Device/SiliconLabs/EFR32BG24/Include/system_efr32bg24.h b/platform/Device/SiliconLabs/EFR32BG24/Include/system_efr32bg24.h index 562688b18c..d4820fea59 100644 --- a/platform/Device/SiliconLabs/EFR32BG24/Include/system_efr32bg24.h +++ b/platform/Device/SiliconLabs/EFR32BG24/Include/system_efr32bg24.h @@ -218,11 +218,6 @@ static __INLINE void SystemCoreClockUpdate(void) } void SystemInit(void); -#if !defined(SL_LEGACY_LINKER) -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size); -#endif uint32_t SystemHFRCODPLLClockGet(void); void SystemHFRCODPLLClockSet(uint32_t freq); uint32_t SystemSYSCLKGet(void); diff --git a/platform/Device/SiliconLabs/EFR32BG24/Source/startup_efr32bg24.c b/platform/Device/SiliconLabs/EFR32BG24/Source/startup_efr32bg24.c index 57ab6b3b15..712fbb605d 100644 --- a/platform/Device/SiliconLabs/EFR32BG24/Source/startup_efr32bg24.c +++ b/platform/Device/SiliconLabs/EFR32BG24/Source/startup_efr32bg24.c @@ -85,12 +85,6 @@ extern int __START(void) __attribute__((noreturn)); /* main entry point */ void Copy_Table(); void Zero_Table(); #endif // __START -#if !defined(SL_LEGACY_LINKER) -#if defined (__GNUC__) -// Function to copy RAM functions from Flash to RAM at startup time -void CopyRamFuncs(); -#endif -#endif /*--------------------------------------------------------------------------- * Internal References @@ -365,15 +359,40 @@ void Zero_Table() #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) #if defined (__GNUC__) -void CopyRamFuncs() +__attribute__((optimize("no-tree-loop-distribute-patterns"))) +#endif +void CopyBlock(const uint32_t *from, uint32_t *to, uint32_t size) +{ + if (size != 0) { + while (size--) { + *to++ = *from++; + } + } +} +#if defined (__GNUC__) +void CopyToRam() { extern uint32_t __lma_ramfuncs_start__; extern uint32_t __lma_ramfuncs_end__; extern uint32_t __ramfuncs_start__; uint32_t size = &__lma_ramfuncs_end__ - &__lma_ramfuncs_start__; - FlashToRamCopy(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); + CopyBlock(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); +} +#elif defined (__ICCARM__) +#pragma language=save +#pragma language=extended +#pragma section="text_ram" +#pragma section="text_ram_init" +void CopyToRam(void) +{ + uint32_t size = __section_size("text_ram"); + uint32_t * from = __section_begin("text_ram_init"); + uint32_t * to = __section_begin("text_ram"); + + CopyBlock(from, to, size); } +#pragma language=restore #endif #endif @@ -398,9 +417,7 @@ __NO_RETURN void Reset_Handler(void) SystemInit2(); #endif // BOOTLOADER_ENABLE #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) -#if defined (__GNUC__) - CopyRamFuncs(); -#endif + CopyToRam(); #endif #if defined (__GNUC__) && defined (__START) Copy_Table(); diff --git a/platform/Device/SiliconLabs/EFR32BG24/Source/system_efr32bg24.c b/platform/Device/SiliconLabs/EFR32BG24/Source/system_efr32bg24.c index 32d73f0960..80ab604a07 100644 --- a/platform/Device/SiliconLabs/EFR32BG24/Source/system_efr32bg24.c +++ b/platform/Device/SiliconLabs/EFR32BG24/Source/system_efr32bg24.c @@ -191,35 +191,6 @@ void SystemInit(void) #endif //SL_TRUSTZONE_SECURE } -#if !defined(SL_LEGACY_LINKER) -/**************************************************************************//** - * @brief - * Copy data. - * - * @details - * Used to copy data from Flash to Ram at startup and runtime. - * - * @param[in] from - * Pointer to the source address in Flash. - * - * @param[in] to - * Pointer to the destination address in Ram. - * - * @param[in] size - * Size of data to copy. - *****************************************************************************/ -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size) -{ - if (size != 0) { - while (size--) { - *to++ = *from++; - } - } -} -#endif - /**************************************************************************//** * @brief * Get current HFRCODPLL frequency. diff --git a/platform/Device/SiliconLabs/EFR32BG26/Include/system_efr32bg26.h b/platform/Device/SiliconLabs/EFR32BG26/Include/system_efr32bg26.h index 27c69f326f..3211c83bd0 100644 --- a/platform/Device/SiliconLabs/EFR32BG26/Include/system_efr32bg26.h +++ b/platform/Device/SiliconLabs/EFR32BG26/Include/system_efr32bg26.h @@ -235,11 +235,6 @@ static __INLINE void SystemCoreClockUpdate(void) } void SystemInit(void); -#if !defined(SL_LEGACY_LINKER) -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size); -#endif uint32_t SystemHFRCODPLLClockGet(void); void SystemHFRCODPLLClockSet(uint32_t freq); uint32_t SystemSYSCLKGet(void); diff --git a/platform/Device/SiliconLabs/EFR32BG26/Source/startup_efr32bg26.c b/platform/Device/SiliconLabs/EFR32BG26/Source/startup_efr32bg26.c index cc4402e1c5..3791dd186b 100644 --- a/platform/Device/SiliconLabs/EFR32BG26/Source/startup_efr32bg26.c +++ b/platform/Device/SiliconLabs/EFR32BG26/Source/startup_efr32bg26.c @@ -85,12 +85,6 @@ extern int __START(void) __attribute__((noreturn)); /* main entry point */ void Copy_Table(); void Zero_Table(); #endif // __START -#if !defined(SL_LEGACY_LINKER) -#if defined (__GNUC__) -// Function to copy RAM functions from Flash to RAM at startup time -void CopyRamFuncs(); -#endif -#endif /*--------------------------------------------------------------------------- * Internal References @@ -399,15 +393,40 @@ void Zero_Table() #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) #if defined (__GNUC__) -void CopyRamFuncs() +__attribute__((optimize("no-tree-loop-distribute-patterns"))) +#endif +void CopyBlock(const uint32_t *from, uint32_t *to, uint32_t size) +{ + if (size != 0) { + while (size--) { + *to++ = *from++; + } + } +} +#if defined (__GNUC__) +void CopyToRam() { extern uint32_t __lma_ramfuncs_start__; extern uint32_t __lma_ramfuncs_end__; extern uint32_t __ramfuncs_start__; uint32_t size = &__lma_ramfuncs_end__ - &__lma_ramfuncs_start__; - FlashToRamCopy(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); + CopyBlock(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); +} +#elif defined (__ICCARM__) +#pragma language=save +#pragma language=extended +#pragma section="text_ram" +#pragma section="text_ram_init" +void CopyToRam(void) +{ + uint32_t size = __section_size("text_ram"); + uint32_t * from = __section_begin("text_ram_init"); + uint32_t * to = __section_begin("text_ram"); + + CopyBlock(from, to, size); } +#pragma language=restore #endif #endif @@ -432,9 +451,7 @@ __NO_RETURN void Reset_Handler(void) SystemInit2(); #endif // BOOTLOADER_ENABLE #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) -#if defined (__GNUC__) - CopyRamFuncs(); -#endif + CopyToRam(); #endif #if defined (__GNUC__) && defined (__START) Copy_Table(); diff --git a/platform/Device/SiliconLabs/EFR32BG26/Source/system_efr32bg26.c b/platform/Device/SiliconLabs/EFR32BG26/Source/system_efr32bg26.c index 11fbf6a982..a22659a660 100644 --- a/platform/Device/SiliconLabs/EFR32BG26/Source/system_efr32bg26.c +++ b/platform/Device/SiliconLabs/EFR32BG26/Source/system_efr32bg26.c @@ -192,35 +192,6 @@ void SystemInit(void) #endif //SL_TRUSTZONE_SECURE } -#if !defined(SL_LEGACY_LINKER) -/**************************************************************************//** - * @brief - * Copy data. - * - * @details - * Used to copy data from Flash to Ram at startup and runtime. - * - * @param[in] from - * Pointer to the source address in Flash. - * - * @param[in] to - * Pointer to the destination address in Ram. - * - * @param[in] size - * Size of data to copy. - *****************************************************************************/ -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size) -{ - if (size != 0) { - while (size--) { - *to++ = *from++; - } - } -} -#endif - /**************************************************************************//** * @brief * Get current HFRCODPLL frequency. diff --git a/platform/Device/SiliconLabs/EFR32BG27/Include/system_efr32bg27.h b/platform/Device/SiliconLabs/EFR32BG27/Include/system_efr32bg27.h index 576477408f..cd86a7dc9f 100644 --- a/platform/Device/SiliconLabs/EFR32BG27/Include/system_efr32bg27.h +++ b/platform/Device/SiliconLabs/EFR32BG27/Include/system_efr32bg27.h @@ -209,11 +209,6 @@ static __INLINE void SystemCoreClockUpdate(void) } void SystemInit(void); -#if !defined(SL_LEGACY_LINKER) -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size); -#endif uint32_t SystemHFRCODPLLClockGet(void); void SystemHFRCODPLLClockSet(uint32_t freq); uint32_t SystemSYSCLKGet(void); diff --git a/platform/Device/SiliconLabs/EFR32BG27/Source/startup_efr32bg27.c b/platform/Device/SiliconLabs/EFR32BG27/Source/startup_efr32bg27.c index edae54ef11..14c70243e9 100644 --- a/platform/Device/SiliconLabs/EFR32BG27/Source/startup_efr32bg27.c +++ b/platform/Device/SiliconLabs/EFR32BG27/Source/startup_efr32bg27.c @@ -85,12 +85,6 @@ extern int __START(void) __attribute__((noreturn)); /* main entry point */ void Copy_Table(); void Zero_Table(); #endif // __START -#if !defined(SL_LEGACY_LINKER) -#if defined (__GNUC__) -// Function to copy RAM functions from Flash to RAM at startup time -void CopyRamFuncs(); -#endif -#endif /*--------------------------------------------------------------------------- * Internal References @@ -347,15 +341,40 @@ void Zero_Table() #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) #if defined (__GNUC__) -void CopyRamFuncs() +__attribute__((optimize("no-tree-loop-distribute-patterns"))) +#endif +void CopyBlock(const uint32_t *from, uint32_t *to, uint32_t size) +{ + if (size != 0) { + while (size--) { + *to++ = *from++; + } + } +} +#if defined (__GNUC__) +void CopyToRam() { extern uint32_t __lma_ramfuncs_start__; extern uint32_t __lma_ramfuncs_end__; extern uint32_t __ramfuncs_start__; uint32_t size = &__lma_ramfuncs_end__ - &__lma_ramfuncs_start__; - FlashToRamCopy(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); + CopyBlock(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); +} +#elif defined (__ICCARM__) +#pragma language=save +#pragma language=extended +#pragma section="text_ram" +#pragma section="text_ram_init" +void CopyToRam(void) +{ + uint32_t size = __section_size("text_ram"); + uint32_t * from = __section_begin("text_ram_init"); + uint32_t * to = __section_begin("text_ram"); + + CopyBlock(from, to, size); } +#pragma language=restore #endif #endif @@ -380,9 +399,7 @@ __NO_RETURN void Reset_Handler(void) SystemInit2(); #endif // BOOTLOADER_ENABLE #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) -#if defined (__GNUC__) - CopyRamFuncs(); -#endif + CopyToRam(); #endif #if defined (__GNUC__) && defined (__START) Copy_Table(); diff --git a/platform/Device/SiliconLabs/EFR32BG27/Source/system_efr32bg27.c b/platform/Device/SiliconLabs/EFR32BG27/Source/system_efr32bg27.c index 44e827bf11..0d493dd5c4 100644 --- a/platform/Device/SiliconLabs/EFR32BG27/Source/system_efr32bg27.c +++ b/platform/Device/SiliconLabs/EFR32BG27/Source/system_efr32bg27.c @@ -191,35 +191,6 @@ void SystemInit(void) #endif //SL_TRUSTZONE_SECURE } -#if !defined(SL_LEGACY_LINKER) -/**************************************************************************//** - * @brief - * Copy data. - * - * @details - * Used to copy data from Flash to Ram at startup and runtime. - * - * @param[in] from - * Pointer to the source address in Flash. - * - * @param[in] to - * Pointer to the destination address in Ram. - * - * @param[in] size - * Size of data to copy. - *****************************************************************************/ -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size) -{ - if (size != 0) { - while (size--) { - *to++ = *from++; - } - } -} -#endif - /**************************************************************************//** * @brief * Get current HFRCODPLL frequency. diff --git a/platform/Device/SiliconLabs/EFR32FG22/Include/system_efr32fg22.h b/platform/Device/SiliconLabs/EFR32FG22/Include/system_efr32fg22.h index b79fb2c280..5bd5935619 100644 --- a/platform/Device/SiliconLabs/EFR32FG22/Include/system_efr32fg22.h +++ b/platform/Device/SiliconLabs/EFR32FG22/Include/system_efr32fg22.h @@ -206,11 +206,6 @@ static __INLINE void SystemCoreClockUpdate(void) } void SystemInit(void); -#if !defined(SL_LEGACY_LINKER) -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size); -#endif uint32_t SystemHFRCODPLLClockGet(void); void SystemHFRCODPLLClockSet(uint32_t freq); uint32_t SystemSYSCLKGet(void); diff --git a/platform/Device/SiliconLabs/EFR32FG22/Source/startup_efr32fg22.c b/platform/Device/SiliconLabs/EFR32FG22/Source/startup_efr32fg22.c index 7b6414f07f..dd3da09b56 100644 --- a/platform/Device/SiliconLabs/EFR32FG22/Source/startup_efr32fg22.c +++ b/platform/Device/SiliconLabs/EFR32FG22/Source/startup_efr32fg22.c @@ -85,12 +85,6 @@ extern int __START(void) __attribute__((noreturn)); /* main entry point */ void Copy_Table(); void Zero_Table(); #endif // __START -#if !defined(SL_LEGACY_LINKER) -#if defined (__GNUC__) -// Function to copy RAM functions from Flash to RAM at startup time -void CopyRamFuncs(); -#endif -#endif /*--------------------------------------------------------------------------- * Internal References @@ -341,15 +335,40 @@ void Zero_Table() #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) #if defined (__GNUC__) -void CopyRamFuncs() +__attribute__((optimize("no-tree-loop-distribute-patterns"))) +#endif +void CopyBlock(const uint32_t *from, uint32_t *to, uint32_t size) +{ + if (size != 0) { + while (size--) { + *to++ = *from++; + } + } +} +#if defined (__GNUC__) +void CopyToRam() { extern uint32_t __lma_ramfuncs_start__; extern uint32_t __lma_ramfuncs_end__; extern uint32_t __ramfuncs_start__; uint32_t size = &__lma_ramfuncs_end__ - &__lma_ramfuncs_start__; - FlashToRamCopy(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); + CopyBlock(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); +} +#elif defined (__ICCARM__) +#pragma language=save +#pragma language=extended +#pragma section="text_ram" +#pragma section="text_ram_init" +void CopyToRam(void) +{ + uint32_t size = __section_size("text_ram"); + uint32_t * from = __section_begin("text_ram_init"); + uint32_t * to = __section_begin("text_ram"); + + CopyBlock(from, to, size); } +#pragma language=restore #endif #endif @@ -374,9 +393,7 @@ __NO_RETURN void Reset_Handler(void) SystemInit2(); #endif // BOOTLOADER_ENABLE #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) -#if defined (__GNUC__) - CopyRamFuncs(); -#endif + CopyToRam(); #endif #if defined (__GNUC__) && defined (__START) Copy_Table(); diff --git a/platform/Device/SiliconLabs/EFR32FG22/Source/system_efr32fg22.c b/platform/Device/SiliconLabs/EFR32FG22/Source/system_efr32fg22.c index bec0a3649f..aa681f1d53 100644 --- a/platform/Device/SiliconLabs/EFR32FG22/Source/system_efr32fg22.c +++ b/platform/Device/SiliconLabs/EFR32FG22/Source/system_efr32fg22.c @@ -191,35 +191,6 @@ void SystemInit(void) #endif //SL_TRUSTZONE_SECURE } -#if !defined(SL_LEGACY_LINKER) -/**************************************************************************//** - * @brief - * Copy data. - * - * @details - * Used to copy data from Flash to Ram at startup and runtime. - * - * @param[in] from - * Pointer to the source address in Flash. - * - * @param[in] to - * Pointer to the destination address in Ram. - * - * @param[in] size - * Size of data to copy. - *****************************************************************************/ -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size) -{ - if (size != 0) { - while (size--) { - *to++ = *from++; - } - } -} -#endif - /**************************************************************************//** * @brief * Get current HFRCODPLL frequency. diff --git a/platform/Device/SiliconLabs/EFR32FG23/Include/system_efr32fg23.h b/platform/Device/SiliconLabs/EFR32FG23/Include/system_efr32fg23.h index fc76490e30..8e79649db0 100644 --- a/platform/Device/SiliconLabs/EFR32FG23/Include/system_efr32fg23.h +++ b/platform/Device/SiliconLabs/EFR32FG23/Include/system_efr32fg23.h @@ -218,11 +218,6 @@ static __INLINE void SystemCoreClockUpdate(void) } void SystemInit(void); -#if !defined(SL_LEGACY_LINKER) -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size); -#endif uint32_t SystemHFRCODPLLClockGet(void); void SystemHFRCODPLLClockSet(uint32_t freq); uint32_t SystemSYSCLKGet(void); diff --git a/platform/Device/SiliconLabs/EFR32FG23/Source/startup_efr32fg23.c b/platform/Device/SiliconLabs/EFR32FG23/Source/startup_efr32fg23.c index 25eeaa08f3..f2047a9100 100644 --- a/platform/Device/SiliconLabs/EFR32FG23/Source/startup_efr32fg23.c +++ b/platform/Device/SiliconLabs/EFR32FG23/Source/startup_efr32fg23.c @@ -85,12 +85,6 @@ extern int __START(void) __attribute__((noreturn)); /* main entry point */ void Copy_Table(); void Zero_Table(); #endif // __START -#if !defined(SL_LEGACY_LINKER) -#if defined (__GNUC__) -// Function to copy RAM functions from Flash to RAM at startup time -void CopyRamFuncs(); -#endif -#endif /*--------------------------------------------------------------------------- * Internal References @@ -365,15 +359,40 @@ void Zero_Table() #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) #if defined (__GNUC__) -void CopyRamFuncs() +__attribute__((optimize("no-tree-loop-distribute-patterns"))) +#endif +void CopyBlock(const uint32_t *from, uint32_t *to, uint32_t size) +{ + if (size != 0) { + while (size--) { + *to++ = *from++; + } + } +} +#if defined (__GNUC__) +void CopyToRam() { extern uint32_t __lma_ramfuncs_start__; extern uint32_t __lma_ramfuncs_end__; extern uint32_t __ramfuncs_start__; uint32_t size = &__lma_ramfuncs_end__ - &__lma_ramfuncs_start__; - FlashToRamCopy(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); + CopyBlock(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); +} +#elif defined (__ICCARM__) +#pragma language=save +#pragma language=extended +#pragma section="text_ram" +#pragma section="text_ram_init" +void CopyToRam(void) +{ + uint32_t size = __section_size("text_ram"); + uint32_t * from = __section_begin("text_ram_init"); + uint32_t * to = __section_begin("text_ram"); + + CopyBlock(from, to, size); } +#pragma language=restore #endif #endif @@ -398,9 +417,7 @@ __NO_RETURN void Reset_Handler(void) SystemInit2(); #endif // BOOTLOADER_ENABLE #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) -#if defined (__GNUC__) - CopyRamFuncs(); -#endif + CopyToRam(); #endif #if defined (__GNUC__) && defined (__START) Copy_Table(); diff --git a/platform/Device/SiliconLabs/EFR32FG23/Source/system_efr32fg23.c b/platform/Device/SiliconLabs/EFR32FG23/Source/system_efr32fg23.c index 3b31ef5147..cc8265676c 100644 --- a/platform/Device/SiliconLabs/EFR32FG23/Source/system_efr32fg23.c +++ b/platform/Device/SiliconLabs/EFR32FG23/Source/system_efr32fg23.c @@ -191,35 +191,6 @@ void SystemInit(void) #endif //SL_TRUSTZONE_SECURE } -#if !defined(SL_LEGACY_LINKER) -/**************************************************************************//** - * @brief - * Copy data. - * - * @details - * Used to copy data from Flash to Ram at startup and runtime. - * - * @param[in] from - * Pointer to the source address in Flash. - * - * @param[in] to - * Pointer to the destination address in Ram. - * - * @param[in] size - * Size of data to copy. - *****************************************************************************/ -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size) -{ - if (size != 0) { - while (size--) { - *to++ = *from++; - } - } -} -#endif - /**************************************************************************//** * @brief * Get current HFRCODPLL frequency. diff --git a/platform/Device/SiliconLabs/EFR32FG25/Include/system_efr32fg25.h b/platform/Device/SiliconLabs/EFR32FG25/Include/system_efr32fg25.h index d42194b03c..594f94dfba 100644 --- a/platform/Device/SiliconLabs/EFR32FG25/Include/system_efr32fg25.h +++ b/platform/Device/SiliconLabs/EFR32FG25/Include/system_efr32fg25.h @@ -231,11 +231,6 @@ static __INLINE void SystemCoreClockUpdate(void) } void SystemInit(void); -#if !defined(SL_LEGACY_LINKER) -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size); -#endif uint32_t SystemHFRCODPLLClockGet(void); void SystemHFRCODPLLClockSet(uint32_t freq); uint32_t SystemSYSCLKGet(void); diff --git a/platform/Device/SiliconLabs/EFR32FG25/Source/startup_efr32fg25.c b/platform/Device/SiliconLabs/EFR32FG25/Source/startup_efr32fg25.c index 4bcec79aaa..309c7a8fa6 100644 --- a/platform/Device/SiliconLabs/EFR32FG25/Source/startup_efr32fg25.c +++ b/platform/Device/SiliconLabs/EFR32FG25/Source/startup_efr32fg25.c @@ -85,12 +85,6 @@ extern int __START(void) __attribute__((noreturn)); /* main entry point */ void Copy_Table(); void Zero_Table(); #endif // __START -#if !defined(SL_LEGACY_LINKER) -#if defined (__GNUC__) -// Function to copy RAM functions from Flash to RAM at startup time -void CopyRamFuncs(); -#endif -#endif /*--------------------------------------------------------------------------- * Internal References @@ -392,15 +386,40 @@ void Zero_Table() #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) #if defined (__GNUC__) -void CopyRamFuncs() +__attribute__((optimize("no-tree-loop-distribute-patterns"))) +#endif +void CopyBlock(const uint32_t *from, uint32_t *to, uint32_t size) +{ + if (size != 0) { + while (size--) { + *to++ = *from++; + } + } +} +#if defined (__GNUC__) +void CopyToRam() { extern uint32_t __lma_ramfuncs_start__; extern uint32_t __lma_ramfuncs_end__; extern uint32_t __ramfuncs_start__; uint32_t size = &__lma_ramfuncs_end__ - &__lma_ramfuncs_start__; - FlashToRamCopy(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); + CopyBlock(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); +} +#elif defined (__ICCARM__) +#pragma language=save +#pragma language=extended +#pragma section="text_ram" +#pragma section="text_ram_init" +void CopyToRam(void) +{ + uint32_t size = __section_size("text_ram"); + uint32_t * from = __section_begin("text_ram_init"); + uint32_t * to = __section_begin("text_ram"); + + CopyBlock(from, to, size); } +#pragma language=restore #endif #endif @@ -425,9 +444,7 @@ __NO_RETURN void Reset_Handler(void) SystemInit2(); #endif // BOOTLOADER_ENABLE #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) -#if defined (__GNUC__) - CopyRamFuncs(); -#endif + CopyToRam(); #endif #if defined (__GNUC__) && defined (__START) Copy_Table(); diff --git a/platform/Device/SiliconLabs/EFR32FG25/Source/system_efr32fg25.c b/platform/Device/SiliconLabs/EFR32FG25/Source/system_efr32fg25.c index bb85233ec5..3ff6157097 100644 --- a/platform/Device/SiliconLabs/EFR32FG25/Source/system_efr32fg25.c +++ b/platform/Device/SiliconLabs/EFR32FG25/Source/system_efr32fg25.c @@ -205,35 +205,6 @@ void SystemInit(void) #endif //SL_TRUSTZONE_SECURE } -#if !defined(SL_LEGACY_LINKER) -/**************************************************************************//** - * @brief - * Copy data. - * - * @details - * Used to copy data from Flash to Ram at startup and runtime. - * - * @param[in] from - * Pointer to the source address in Flash. - * - * @param[in] to - * Pointer to the destination address in Ram. - * - * @param[in] size - * Size of data to copy. - *****************************************************************************/ -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size) -{ - if (size != 0) { - while (size--) { - *to++ = *from++; - } - } -} -#endif - /**************************************************************************//** * @brief * Get current HFRCODPLL frequency. diff --git a/platform/Device/SiliconLabs/EFR32FG28/Include/system_efr32fg28.h b/platform/Device/SiliconLabs/EFR32FG28/Include/system_efr32fg28.h index 77a80c1c23..c7ee1f3344 100644 --- a/platform/Device/SiliconLabs/EFR32FG28/Include/system_efr32fg28.h +++ b/platform/Device/SiliconLabs/EFR32FG28/Include/system_efr32fg28.h @@ -221,11 +221,6 @@ static __INLINE void SystemCoreClockUpdate(void) } void SystemInit(void); -#if !defined(SL_LEGACY_LINKER) -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size); -#endif uint32_t SystemHFRCODPLLClockGet(void); void SystemHFRCODPLLClockSet(uint32_t freq); uint32_t SystemSYSCLKGet(void); diff --git a/platform/Device/SiliconLabs/EFR32FG28/Source/startup_efr32fg28.c b/platform/Device/SiliconLabs/EFR32FG28/Source/startup_efr32fg28.c index 184ee42bba..f82539ea15 100644 --- a/platform/Device/SiliconLabs/EFR32FG28/Source/startup_efr32fg28.c +++ b/platform/Device/SiliconLabs/EFR32FG28/Source/startup_efr32fg28.c @@ -85,12 +85,6 @@ extern int __START(void) __attribute__((noreturn)); /* main entry point */ void Copy_Table(); void Zero_Table(); #endif // __START -#if !defined(SL_LEGACY_LINKER) -#if defined (__GNUC__) -// Function to copy RAM functions from Flash to RAM at startup time -void CopyRamFuncs(); -#endif -#endif /*--------------------------------------------------------------------------- * Internal References @@ -371,15 +365,40 @@ void Zero_Table() #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) #if defined (__GNUC__) -void CopyRamFuncs() +__attribute__((optimize("no-tree-loop-distribute-patterns"))) +#endif +void CopyBlock(const uint32_t *from, uint32_t *to, uint32_t size) +{ + if (size != 0) { + while (size--) { + *to++ = *from++; + } + } +} +#if defined (__GNUC__) +void CopyToRam() { extern uint32_t __lma_ramfuncs_start__; extern uint32_t __lma_ramfuncs_end__; extern uint32_t __ramfuncs_start__; uint32_t size = &__lma_ramfuncs_end__ - &__lma_ramfuncs_start__; - FlashToRamCopy(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); + CopyBlock(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); +} +#elif defined (__ICCARM__) +#pragma language=save +#pragma language=extended +#pragma section="text_ram" +#pragma section="text_ram_init" +void CopyToRam(void) +{ + uint32_t size = __section_size("text_ram"); + uint32_t * from = __section_begin("text_ram_init"); + uint32_t * to = __section_begin("text_ram"); + + CopyBlock(from, to, size); } +#pragma language=restore #endif #endif @@ -404,9 +423,7 @@ __NO_RETURN void Reset_Handler(void) SystemInit2(); #endif // BOOTLOADER_ENABLE #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) -#if defined (__GNUC__) - CopyRamFuncs(); -#endif + CopyToRam(); #endif #if defined (__GNUC__) && defined (__START) Copy_Table(); diff --git a/platform/Device/SiliconLabs/EFR32FG28/Source/system_efr32fg28.c b/platform/Device/SiliconLabs/EFR32FG28/Source/system_efr32fg28.c index c37ba1562e..2ea2d13a1b 100644 --- a/platform/Device/SiliconLabs/EFR32FG28/Source/system_efr32fg28.c +++ b/platform/Device/SiliconLabs/EFR32FG28/Source/system_efr32fg28.c @@ -191,35 +191,6 @@ void SystemInit(void) #endif //SL_TRUSTZONE_SECURE } -#if !defined(SL_LEGACY_LINKER) -/**************************************************************************//** - * @brief - * Copy data. - * - * @details - * Used to copy data from Flash to Ram at startup and runtime. - * - * @param[in] from - * Pointer to the source address in Flash. - * - * @param[in] to - * Pointer to the destination address in Ram. - * - * @param[in] size - * Size of data to copy. - *****************************************************************************/ -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size) -{ - if (size != 0) { - while (size--) { - *to++ = *from++; - } - } -} -#endif - /**************************************************************************//** * @brief * Get current HFRCODPLL frequency. diff --git a/platform/Device/SiliconLabs/EFR32MG21/Include/system_efr32mg21.h b/platform/Device/SiliconLabs/EFR32MG21/Include/system_efr32mg21.h index 2657ad168f..6222190e4e 100644 --- a/platform/Device/SiliconLabs/EFR32MG21/Include/system_efr32mg21.h +++ b/platform/Device/SiliconLabs/EFR32MG21/Include/system_efr32mg21.h @@ -189,11 +189,6 @@ static __INLINE void SystemCoreClockUpdate(void) } void SystemInit(void); -#if !defined(SL_LEGACY_LINKER) -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size); -#endif uint32_t SystemHFRCODPLLClockGet(void); void SystemHFRCODPLLClockSet(uint32_t freq); uint32_t SystemSYSCLKGet(void); diff --git a/platform/Device/SiliconLabs/EFR32MG21/Source/startup_efr32mg21.c b/platform/Device/SiliconLabs/EFR32MG21/Source/startup_efr32mg21.c index c6227bb266..dd8928b2b2 100644 --- a/platform/Device/SiliconLabs/EFR32MG21/Source/startup_efr32mg21.c +++ b/platform/Device/SiliconLabs/EFR32MG21/Source/startup_efr32mg21.c @@ -85,12 +85,6 @@ extern int __START(void) __attribute__((noreturn)); /* main entry point */ void Copy_Table(); void Zero_Table(); #endif // __START -#if !defined(SL_LEGACY_LINKER) -#if defined (__GNUC__) -// Function to copy RAM functions from Flash to RAM at startup time -void CopyRamFuncs(); -#endif -#endif /*--------------------------------------------------------------------------- * Internal References @@ -335,15 +329,40 @@ void Zero_Table() #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) #if defined (__GNUC__) -void CopyRamFuncs() +__attribute__((optimize("no-tree-loop-distribute-patterns"))) +#endif +void CopyBlock(const uint32_t *from, uint32_t *to, uint32_t size) +{ + if (size != 0) { + while (size--) { + *to++ = *from++; + } + } +} +#if defined (__GNUC__) +void CopyToRam() { extern uint32_t __lma_ramfuncs_start__; extern uint32_t __lma_ramfuncs_end__; extern uint32_t __ramfuncs_start__; uint32_t size = &__lma_ramfuncs_end__ - &__lma_ramfuncs_start__; - FlashToRamCopy(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); + CopyBlock(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); +} +#elif defined (__ICCARM__) +#pragma language=save +#pragma language=extended +#pragma section="text_ram" +#pragma section="text_ram_init" +void CopyToRam(void) +{ + uint32_t size = __section_size("text_ram"); + uint32_t * from = __section_begin("text_ram_init"); + uint32_t * to = __section_begin("text_ram"); + + CopyBlock(from, to, size); } +#pragma language=restore #endif #endif @@ -368,9 +387,7 @@ __NO_RETURN void Reset_Handler(void) SystemInit2(); #endif // BOOTLOADER_ENABLE #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) -#if defined (__GNUC__) - CopyRamFuncs(); -#endif + CopyToRam(); #endif #if defined (__GNUC__) && defined (__START) Copy_Table(); diff --git a/platform/Device/SiliconLabs/EFR32MG21/Source/system_efr32mg21.c b/platform/Device/SiliconLabs/EFR32MG21/Source/system_efr32mg21.c index 802cc853db..0239a0c8bf 100644 --- a/platform/Device/SiliconLabs/EFR32MG21/Source/system_efr32mg21.c +++ b/platform/Device/SiliconLabs/EFR32MG21/Source/system_efr32mg21.c @@ -190,35 +190,6 @@ void SystemInit(void) #endif //SL_TRUSTZONE_SECURE } -#if !defined(SL_LEGACY_LINKER) -/**************************************************************************//** - * @brief - * Copy data. - * - * @details - * Used to copy data from Flash to Ram at startup and runtime. - * - * @param[in] from - * Pointer to the source address in Flash. - * - * @param[in] to - * Pointer to the destination address in Ram. - * - * @param[in] size - * Size of data to copy. - *****************************************************************************/ -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size) -{ - if (size != 0) { - while (size--) { - *to++ = *from++; - } - } -} -#endif - /**************************************************************************//** * @brief * Get current HFRCODPLL frequency. diff --git a/platform/Device/SiliconLabs/EFR32MG22/Include/system_efr32mg22.h b/platform/Device/SiliconLabs/EFR32MG22/Include/system_efr32mg22.h index d423914ad0..3440554588 100644 --- a/platform/Device/SiliconLabs/EFR32MG22/Include/system_efr32mg22.h +++ b/platform/Device/SiliconLabs/EFR32MG22/Include/system_efr32mg22.h @@ -206,11 +206,6 @@ static __INLINE void SystemCoreClockUpdate(void) } void SystemInit(void); -#if !defined(SL_LEGACY_LINKER) -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size); -#endif uint32_t SystemHFRCODPLLClockGet(void); void SystemHFRCODPLLClockSet(uint32_t freq); uint32_t SystemSYSCLKGet(void); diff --git a/platform/Device/SiliconLabs/EFR32MG22/Source/startup_efr32mg22.c b/platform/Device/SiliconLabs/EFR32MG22/Source/startup_efr32mg22.c index 06cce664f7..0197329107 100644 --- a/platform/Device/SiliconLabs/EFR32MG22/Source/startup_efr32mg22.c +++ b/platform/Device/SiliconLabs/EFR32MG22/Source/startup_efr32mg22.c @@ -85,12 +85,6 @@ extern int __START(void) __attribute__((noreturn)); /* main entry point */ void Copy_Table(); void Zero_Table(); #endif // __START -#if !defined(SL_LEGACY_LINKER) -#if defined (__GNUC__) -// Function to copy RAM functions from Flash to RAM at startup time -void CopyRamFuncs(); -#endif -#endif /*--------------------------------------------------------------------------- * Internal References @@ -341,15 +335,40 @@ void Zero_Table() #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) #if defined (__GNUC__) -void CopyRamFuncs() +__attribute__((optimize("no-tree-loop-distribute-patterns"))) +#endif +void CopyBlock(const uint32_t *from, uint32_t *to, uint32_t size) +{ + if (size != 0) { + while (size--) { + *to++ = *from++; + } + } +} +#if defined (__GNUC__) +void CopyToRam() { extern uint32_t __lma_ramfuncs_start__; extern uint32_t __lma_ramfuncs_end__; extern uint32_t __ramfuncs_start__; uint32_t size = &__lma_ramfuncs_end__ - &__lma_ramfuncs_start__; - FlashToRamCopy(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); + CopyBlock(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); +} +#elif defined (__ICCARM__) +#pragma language=save +#pragma language=extended +#pragma section="text_ram" +#pragma section="text_ram_init" +void CopyToRam(void) +{ + uint32_t size = __section_size("text_ram"); + uint32_t * from = __section_begin("text_ram_init"); + uint32_t * to = __section_begin("text_ram"); + + CopyBlock(from, to, size); } +#pragma language=restore #endif #endif @@ -374,9 +393,7 @@ __NO_RETURN void Reset_Handler(void) SystemInit2(); #endif // BOOTLOADER_ENABLE #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) -#if defined (__GNUC__) - CopyRamFuncs(); -#endif + CopyToRam(); #endif #if defined (__GNUC__) && defined (__START) Copy_Table(); diff --git a/platform/Device/SiliconLabs/EFR32MG22/Source/system_efr32mg22.c b/platform/Device/SiliconLabs/EFR32MG22/Source/system_efr32mg22.c index fbc9198266..76679223a9 100644 --- a/platform/Device/SiliconLabs/EFR32MG22/Source/system_efr32mg22.c +++ b/platform/Device/SiliconLabs/EFR32MG22/Source/system_efr32mg22.c @@ -191,35 +191,6 @@ void SystemInit(void) #endif //SL_TRUSTZONE_SECURE } -#if !defined(SL_LEGACY_LINKER) -/**************************************************************************//** - * @brief - * Copy data. - * - * @details - * Used to copy data from Flash to Ram at startup and runtime. - * - * @param[in] from - * Pointer to the source address in Flash. - * - * @param[in] to - * Pointer to the destination address in Ram. - * - * @param[in] size - * Size of data to copy. - *****************************************************************************/ -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size) -{ - if (size != 0) { - while (size--) { - *to++ = *from++; - } - } -} -#endif - /**************************************************************************//** * @brief * Get current HFRCODPLL frequency. diff --git a/platform/Device/SiliconLabs/EFR32MG24/Include/system_efr32mg24.h b/platform/Device/SiliconLabs/EFR32MG24/Include/system_efr32mg24.h index c25f3d3cd3..7271f9c381 100644 --- a/platform/Device/SiliconLabs/EFR32MG24/Include/system_efr32mg24.h +++ b/platform/Device/SiliconLabs/EFR32MG24/Include/system_efr32mg24.h @@ -218,11 +218,6 @@ static __INLINE void SystemCoreClockUpdate(void) } void SystemInit(void); -#if !defined(SL_LEGACY_LINKER) -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size); -#endif uint32_t SystemHFRCODPLLClockGet(void); void SystemHFRCODPLLClockSet(uint32_t freq); uint32_t SystemSYSCLKGet(void); diff --git a/platform/Device/SiliconLabs/EFR32MG24/Source/startup_efr32mg24.c b/platform/Device/SiliconLabs/EFR32MG24/Source/startup_efr32mg24.c index f761b81799..f14245296c 100644 --- a/platform/Device/SiliconLabs/EFR32MG24/Source/startup_efr32mg24.c +++ b/platform/Device/SiliconLabs/EFR32MG24/Source/startup_efr32mg24.c @@ -85,12 +85,6 @@ extern int __START(void) __attribute__((noreturn)); /* main entry point */ void Copy_Table(); void Zero_Table(); #endif // __START -#if !defined(SL_LEGACY_LINKER) -#if defined (__GNUC__) -// Function to copy RAM functions from Flash to RAM at startup time -void CopyRamFuncs(); -#endif -#endif /*--------------------------------------------------------------------------- * Internal References @@ -365,15 +359,40 @@ void Zero_Table() #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) #if defined (__GNUC__) -void CopyRamFuncs() +__attribute__((optimize("no-tree-loop-distribute-patterns"))) +#endif +void CopyBlock(const uint32_t *from, uint32_t *to, uint32_t size) +{ + if (size != 0) { + while (size--) { + *to++ = *from++; + } + } +} +#if defined (__GNUC__) +void CopyToRam() { extern uint32_t __lma_ramfuncs_start__; extern uint32_t __lma_ramfuncs_end__; extern uint32_t __ramfuncs_start__; uint32_t size = &__lma_ramfuncs_end__ - &__lma_ramfuncs_start__; - FlashToRamCopy(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); + CopyBlock(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); +} +#elif defined (__ICCARM__) +#pragma language=save +#pragma language=extended +#pragma section="text_ram" +#pragma section="text_ram_init" +void CopyToRam(void) +{ + uint32_t size = __section_size("text_ram"); + uint32_t * from = __section_begin("text_ram_init"); + uint32_t * to = __section_begin("text_ram"); + + CopyBlock(from, to, size); } +#pragma language=restore #endif #endif @@ -398,9 +417,7 @@ __NO_RETURN void Reset_Handler(void) SystemInit2(); #endif // BOOTLOADER_ENABLE #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) -#if defined (__GNUC__) - CopyRamFuncs(); -#endif + CopyToRam(); #endif #if defined (__GNUC__) && defined (__START) Copy_Table(); diff --git a/platform/Device/SiliconLabs/EFR32MG24/Source/system_efr32mg24.c b/platform/Device/SiliconLabs/EFR32MG24/Source/system_efr32mg24.c index 4d8a3b492b..1fe9aa3fb2 100644 --- a/platform/Device/SiliconLabs/EFR32MG24/Source/system_efr32mg24.c +++ b/platform/Device/SiliconLabs/EFR32MG24/Source/system_efr32mg24.c @@ -191,35 +191,6 @@ void SystemInit(void) #endif //SL_TRUSTZONE_SECURE } -#if !defined(SL_LEGACY_LINKER) -/**************************************************************************//** - * @brief - * Copy data. - * - * @details - * Used to copy data from Flash to Ram at startup and runtime. - * - * @param[in] from - * Pointer to the source address in Flash. - * - * @param[in] to - * Pointer to the destination address in Ram. - * - * @param[in] size - * Size of data to copy. - *****************************************************************************/ -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size) -{ - if (size != 0) { - while (size--) { - *to++ = *from++; - } - } -} -#endif - /**************************************************************************//** * @brief * Get current HFRCODPLL frequency. diff --git a/platform/Device/SiliconLabs/EFR32MG26/Include/system_efr32mg26.h b/platform/Device/SiliconLabs/EFR32MG26/Include/system_efr32mg26.h index 90f1375ece..0f29c2b9ae 100644 --- a/platform/Device/SiliconLabs/EFR32MG26/Include/system_efr32mg26.h +++ b/platform/Device/SiliconLabs/EFR32MG26/Include/system_efr32mg26.h @@ -235,11 +235,6 @@ static __INLINE void SystemCoreClockUpdate(void) } void SystemInit(void); -#if !defined(SL_LEGACY_LINKER) -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size); -#endif uint32_t SystemHFRCODPLLClockGet(void); void SystemHFRCODPLLClockSet(uint32_t freq); uint32_t SystemSYSCLKGet(void); diff --git a/platform/Device/SiliconLabs/EFR32MG26/Source/startup_efr32mg26.c b/platform/Device/SiliconLabs/EFR32MG26/Source/startup_efr32mg26.c index 9584a4fcd3..be4c3e6135 100644 --- a/platform/Device/SiliconLabs/EFR32MG26/Source/startup_efr32mg26.c +++ b/platform/Device/SiliconLabs/EFR32MG26/Source/startup_efr32mg26.c @@ -85,12 +85,6 @@ extern int __START(void) __attribute__((noreturn)); /* main entry point */ void Copy_Table(); void Zero_Table(); #endif // __START -#if !defined(SL_LEGACY_LINKER) -#if defined (__GNUC__) -// Function to copy RAM functions from Flash to RAM at startup time -void CopyRamFuncs(); -#endif -#endif /*--------------------------------------------------------------------------- * Internal References @@ -399,15 +393,40 @@ void Zero_Table() #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) #if defined (__GNUC__) -void CopyRamFuncs() +__attribute__((optimize("no-tree-loop-distribute-patterns"))) +#endif +void CopyBlock(const uint32_t *from, uint32_t *to, uint32_t size) +{ + if (size != 0) { + while (size--) { + *to++ = *from++; + } + } +} +#if defined (__GNUC__) +void CopyToRam() { extern uint32_t __lma_ramfuncs_start__; extern uint32_t __lma_ramfuncs_end__; extern uint32_t __ramfuncs_start__; uint32_t size = &__lma_ramfuncs_end__ - &__lma_ramfuncs_start__; - FlashToRamCopy(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); + CopyBlock(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); +} +#elif defined (__ICCARM__) +#pragma language=save +#pragma language=extended +#pragma section="text_ram" +#pragma section="text_ram_init" +void CopyToRam(void) +{ + uint32_t size = __section_size("text_ram"); + uint32_t * from = __section_begin("text_ram_init"); + uint32_t * to = __section_begin("text_ram"); + + CopyBlock(from, to, size); } +#pragma language=restore #endif #endif @@ -432,9 +451,7 @@ __NO_RETURN void Reset_Handler(void) SystemInit2(); #endif // BOOTLOADER_ENABLE #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) -#if defined (__GNUC__) - CopyRamFuncs(); -#endif + CopyToRam(); #endif #if defined (__GNUC__) && defined (__START) Copy_Table(); diff --git a/platform/Device/SiliconLabs/EFR32MG26/Source/system_efr32mg26.c b/platform/Device/SiliconLabs/EFR32MG26/Source/system_efr32mg26.c index e8a364a432..1562291546 100644 --- a/platform/Device/SiliconLabs/EFR32MG26/Source/system_efr32mg26.c +++ b/platform/Device/SiliconLabs/EFR32MG26/Source/system_efr32mg26.c @@ -192,35 +192,6 @@ void SystemInit(void) #endif //SL_TRUSTZONE_SECURE } -#if !defined(SL_LEGACY_LINKER) -/**************************************************************************//** - * @brief - * Copy data. - * - * @details - * Used to copy data from Flash to Ram at startup and runtime. - * - * @param[in] from - * Pointer to the source address in Flash. - * - * @param[in] to - * Pointer to the destination address in Ram. - * - * @param[in] size - * Size of data to copy. - *****************************************************************************/ -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size) -{ - if (size != 0) { - while (size--) { - *to++ = *from++; - } - } -} -#endif - /**************************************************************************//** * @brief * Get current HFRCODPLL frequency. diff --git a/platform/Device/SiliconLabs/EFR32MG27/Include/system_efr32mg27.h b/platform/Device/SiliconLabs/EFR32MG27/Include/system_efr32mg27.h index 03955e651f..be5ea0a26b 100644 --- a/platform/Device/SiliconLabs/EFR32MG27/Include/system_efr32mg27.h +++ b/platform/Device/SiliconLabs/EFR32MG27/Include/system_efr32mg27.h @@ -209,11 +209,6 @@ static __INLINE void SystemCoreClockUpdate(void) } void SystemInit(void); -#if !defined(SL_LEGACY_LINKER) -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size); -#endif uint32_t SystemHFRCODPLLClockGet(void); void SystemHFRCODPLLClockSet(uint32_t freq); uint32_t SystemSYSCLKGet(void); diff --git a/platform/Device/SiliconLabs/EFR32MG27/Source/startup_efr32mg27.c b/platform/Device/SiliconLabs/EFR32MG27/Source/startup_efr32mg27.c index 7f84a17459..7dc82a4faf 100644 --- a/platform/Device/SiliconLabs/EFR32MG27/Source/startup_efr32mg27.c +++ b/platform/Device/SiliconLabs/EFR32MG27/Source/startup_efr32mg27.c @@ -85,12 +85,6 @@ extern int __START(void) __attribute__((noreturn)); /* main entry point */ void Copy_Table(); void Zero_Table(); #endif // __START -#if !defined(SL_LEGACY_LINKER) -#if defined (__GNUC__) -// Function to copy RAM functions from Flash to RAM at startup time -void CopyRamFuncs(); -#endif -#endif /*--------------------------------------------------------------------------- * Internal References @@ -347,15 +341,40 @@ void Zero_Table() #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) #if defined (__GNUC__) -void CopyRamFuncs() +__attribute__((optimize("no-tree-loop-distribute-patterns"))) +#endif +void CopyBlock(const uint32_t *from, uint32_t *to, uint32_t size) +{ + if (size != 0) { + while (size--) { + *to++ = *from++; + } + } +} +#if defined (__GNUC__) +void CopyToRam() { extern uint32_t __lma_ramfuncs_start__; extern uint32_t __lma_ramfuncs_end__; extern uint32_t __ramfuncs_start__; uint32_t size = &__lma_ramfuncs_end__ - &__lma_ramfuncs_start__; - FlashToRamCopy(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); + CopyBlock(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); +} +#elif defined (__ICCARM__) +#pragma language=save +#pragma language=extended +#pragma section="text_ram" +#pragma section="text_ram_init" +void CopyToRam(void) +{ + uint32_t size = __section_size("text_ram"); + uint32_t * from = __section_begin("text_ram_init"); + uint32_t * to = __section_begin("text_ram"); + + CopyBlock(from, to, size); } +#pragma language=restore #endif #endif @@ -380,9 +399,7 @@ __NO_RETURN void Reset_Handler(void) SystemInit2(); #endif // BOOTLOADER_ENABLE #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) -#if defined (__GNUC__) - CopyRamFuncs(); -#endif + CopyToRam(); #endif #if defined (__GNUC__) && defined (__START) Copy_Table(); diff --git a/platform/Device/SiliconLabs/EFR32MG27/Source/system_efr32mg27.c b/platform/Device/SiliconLabs/EFR32MG27/Source/system_efr32mg27.c index 0bc5690019..249afdde06 100644 --- a/platform/Device/SiliconLabs/EFR32MG27/Source/system_efr32mg27.c +++ b/platform/Device/SiliconLabs/EFR32MG27/Source/system_efr32mg27.c @@ -191,35 +191,6 @@ void SystemInit(void) #endif //SL_TRUSTZONE_SECURE } -#if !defined(SL_LEGACY_LINKER) -/**************************************************************************//** - * @brief - * Copy data. - * - * @details - * Used to copy data from Flash to Ram at startup and runtime. - * - * @param[in] from - * Pointer to the source address in Flash. - * - * @param[in] to - * Pointer to the destination address in Ram. - * - * @param[in] size - * Size of data to copy. - *****************************************************************************/ -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size) -{ - if (size != 0) { - while (size--) { - *to++ = *from++; - } - } -} -#endif - /**************************************************************************//** * @brief * Get current HFRCODPLL frequency. diff --git a/platform/Device/SiliconLabs/EFR32MR21/Include/system_efr32mr21.h b/platform/Device/SiliconLabs/EFR32MR21/Include/system_efr32mr21.h index 0bac0832e3..687d97780c 100644 --- a/platform/Device/SiliconLabs/EFR32MR21/Include/system_efr32mr21.h +++ b/platform/Device/SiliconLabs/EFR32MR21/Include/system_efr32mr21.h @@ -184,11 +184,6 @@ static __INLINE void SystemCoreClockUpdate(void) } void SystemInit(void); -#if !defined(SL_LEGACY_LINKER) -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size); -#endif uint32_t SystemHFRCODPLLClockGet(void); void SystemHFRCODPLLClockSet(uint32_t freq); uint32_t SystemSYSCLKGet(void); diff --git a/platform/Device/SiliconLabs/EFR32MR21/Source/startup_efr32mr21.c b/platform/Device/SiliconLabs/EFR32MR21/Source/startup_efr32mr21.c index db613daf45..9a84d62a79 100644 --- a/platform/Device/SiliconLabs/EFR32MR21/Source/startup_efr32mr21.c +++ b/platform/Device/SiliconLabs/EFR32MR21/Source/startup_efr32mr21.c @@ -85,12 +85,6 @@ extern int __START(void) __attribute__((noreturn)); /* main entry point */ void Copy_Table(); void Zero_Table(); #endif // __START -#if !defined(SL_LEGACY_LINKER) -#if defined (__GNUC__) -// Function to copy RAM functions from Flash to RAM at startup time -void CopyRamFuncs(); -#endif -#endif /*--------------------------------------------------------------------------- * Internal References @@ -330,15 +324,40 @@ void Zero_Table() #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) #if defined (__GNUC__) -void CopyRamFuncs() +__attribute__((optimize("no-tree-loop-distribute-patterns"))) +#endif +void CopyBlock(const uint32_t *from, uint32_t *to, uint32_t size) +{ + if (size != 0) { + while (size--) { + *to++ = *from++; + } + } +} +#if defined (__GNUC__) +void CopyToRam() { extern uint32_t __lma_ramfuncs_start__; extern uint32_t __lma_ramfuncs_end__; extern uint32_t __ramfuncs_start__; uint32_t size = &__lma_ramfuncs_end__ - &__lma_ramfuncs_start__; - FlashToRamCopy(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); + CopyBlock(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); +} +#elif defined (__ICCARM__) +#pragma language=save +#pragma language=extended +#pragma section="text_ram" +#pragma section="text_ram_init" +void CopyToRam(void) +{ + uint32_t size = __section_size("text_ram"); + uint32_t * from = __section_begin("text_ram_init"); + uint32_t * to = __section_begin("text_ram"); + + CopyBlock(from, to, size); } +#pragma language=restore #endif #endif @@ -363,9 +382,7 @@ __NO_RETURN void Reset_Handler(void) SystemInit2(); #endif // BOOTLOADER_ENABLE #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) -#if defined (__GNUC__) - CopyRamFuncs(); -#endif + CopyToRam(); #endif #if defined (__GNUC__) && defined (__START) Copy_Table(); diff --git a/platform/Device/SiliconLabs/EFR32MR21/Source/system_efr32mr21.c b/platform/Device/SiliconLabs/EFR32MR21/Source/system_efr32mr21.c index e036d12878..51039a82a5 100644 --- a/platform/Device/SiliconLabs/EFR32MR21/Source/system_efr32mr21.c +++ b/platform/Device/SiliconLabs/EFR32MR21/Source/system_efr32mr21.c @@ -190,35 +190,6 @@ void SystemInit(void) #endif //SL_TRUSTZONE_SECURE } -#if !defined(SL_LEGACY_LINKER) -/**************************************************************************//** - * @brief - * Copy data. - * - * @details - * Used to copy data from Flash to Ram at startup and runtime. - * - * @param[in] from - * Pointer to the source address in Flash. - * - * @param[in] to - * Pointer to the destination address in Ram. - * - * @param[in] size - * Size of data to copy. - *****************************************************************************/ -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size) -{ - if (size != 0) { - while (size--) { - *to++ = *from++; - } - } -} -#endif - /**************************************************************************//** * @brief * Get current HFRCODPLL frequency. diff --git a/platform/Device/SiliconLabs/EFR32SG23/Include/system_efr32sg23.h b/platform/Device/SiliconLabs/EFR32SG23/Include/system_efr32sg23.h index 8e00176386..6f314ab0f3 100644 --- a/platform/Device/SiliconLabs/EFR32SG23/Include/system_efr32sg23.h +++ b/platform/Device/SiliconLabs/EFR32SG23/Include/system_efr32sg23.h @@ -218,11 +218,6 @@ static __INLINE void SystemCoreClockUpdate(void) } void SystemInit(void); -#if !defined(SL_LEGACY_LINKER) -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size); -#endif uint32_t SystemHFRCODPLLClockGet(void); void SystemHFRCODPLLClockSet(uint32_t freq); uint32_t SystemSYSCLKGet(void); diff --git a/platform/Device/SiliconLabs/EFR32SG23/Source/startup_efr32sg23.c b/platform/Device/SiliconLabs/EFR32SG23/Source/startup_efr32sg23.c index 2f5beea51e..70556d6c92 100644 --- a/platform/Device/SiliconLabs/EFR32SG23/Source/startup_efr32sg23.c +++ b/platform/Device/SiliconLabs/EFR32SG23/Source/startup_efr32sg23.c @@ -85,12 +85,6 @@ extern int __START(void) __attribute__((noreturn)); /* main entry point */ void Copy_Table(); void Zero_Table(); #endif // __START -#if !defined(SL_LEGACY_LINKER) -#if defined (__GNUC__) -// Function to copy RAM functions from Flash to RAM at startup time -void CopyRamFuncs(); -#endif -#endif /*--------------------------------------------------------------------------- * Internal References @@ -365,15 +359,40 @@ void Zero_Table() #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) #if defined (__GNUC__) -void CopyRamFuncs() +__attribute__((optimize("no-tree-loop-distribute-patterns"))) +#endif +void CopyBlock(const uint32_t *from, uint32_t *to, uint32_t size) +{ + if (size != 0) { + while (size--) { + *to++ = *from++; + } + } +} +#if defined (__GNUC__) +void CopyToRam() { extern uint32_t __lma_ramfuncs_start__; extern uint32_t __lma_ramfuncs_end__; extern uint32_t __ramfuncs_start__; uint32_t size = &__lma_ramfuncs_end__ - &__lma_ramfuncs_start__; - FlashToRamCopy(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); + CopyBlock(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); +} +#elif defined (__ICCARM__) +#pragma language=save +#pragma language=extended +#pragma section="text_ram" +#pragma section="text_ram_init" +void CopyToRam(void) +{ + uint32_t size = __section_size("text_ram"); + uint32_t * from = __section_begin("text_ram_init"); + uint32_t * to = __section_begin("text_ram"); + + CopyBlock(from, to, size); } +#pragma language=restore #endif #endif @@ -398,9 +417,7 @@ __NO_RETURN void Reset_Handler(void) SystemInit2(); #endif // BOOTLOADER_ENABLE #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) -#if defined (__GNUC__) - CopyRamFuncs(); -#endif + CopyToRam(); #endif #if defined (__GNUC__) && defined (__START) Copy_Table(); diff --git a/platform/Device/SiliconLabs/EFR32SG23/Source/system_efr32sg23.c b/platform/Device/SiliconLabs/EFR32SG23/Source/system_efr32sg23.c index 4f46d3bef8..57f1973735 100644 --- a/platform/Device/SiliconLabs/EFR32SG23/Source/system_efr32sg23.c +++ b/platform/Device/SiliconLabs/EFR32SG23/Source/system_efr32sg23.c @@ -191,35 +191,6 @@ void SystemInit(void) #endif //SL_TRUSTZONE_SECURE } -#if !defined(SL_LEGACY_LINKER) -/**************************************************************************//** - * @brief - * Copy data. - * - * @details - * Used to copy data from Flash to Ram at startup and runtime. - * - * @param[in] from - * Pointer to the source address in Flash. - * - * @param[in] to - * Pointer to the destination address in Ram. - * - * @param[in] size - * Size of data to copy. - *****************************************************************************/ -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size) -{ - if (size != 0) { - while (size--) { - *to++ = *from++; - } - } -} -#endif - /**************************************************************************//** * @brief * Get current HFRCODPLL frequency. diff --git a/platform/Device/SiliconLabs/EFR32SG28/Include/system_efr32sg28.h b/platform/Device/SiliconLabs/EFR32SG28/Include/system_efr32sg28.h index 7a84636fa4..717a8e244f 100644 --- a/platform/Device/SiliconLabs/EFR32SG28/Include/system_efr32sg28.h +++ b/platform/Device/SiliconLabs/EFR32SG28/Include/system_efr32sg28.h @@ -220,11 +220,6 @@ static __INLINE void SystemCoreClockUpdate(void) } void SystemInit(void); -#if !defined(SL_LEGACY_LINKER) -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size); -#endif uint32_t SystemHFRCODPLLClockGet(void); void SystemHFRCODPLLClockSet(uint32_t freq); uint32_t SystemSYSCLKGet(void); diff --git a/platform/Device/SiliconLabs/EFR32SG28/Source/startup_efr32sg28.c b/platform/Device/SiliconLabs/EFR32SG28/Source/startup_efr32sg28.c index db8ea64353..172499a0c0 100644 --- a/platform/Device/SiliconLabs/EFR32SG28/Source/startup_efr32sg28.c +++ b/platform/Device/SiliconLabs/EFR32SG28/Source/startup_efr32sg28.c @@ -85,12 +85,6 @@ extern int __START(void) __attribute__((noreturn)); /* main entry point */ void Copy_Table(); void Zero_Table(); #endif // __START -#if !defined(SL_LEGACY_LINKER) -#if defined (__GNUC__) -// Function to copy RAM functions from Flash to RAM at startup time -void CopyRamFuncs(); -#endif -#endif /*--------------------------------------------------------------------------- * Internal References @@ -370,15 +364,40 @@ void Zero_Table() #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) #if defined (__GNUC__) -void CopyRamFuncs() +__attribute__((optimize("no-tree-loop-distribute-patterns"))) +#endif +void CopyBlock(const uint32_t *from, uint32_t *to, uint32_t size) +{ + if (size != 0) { + while (size--) { + *to++ = *from++; + } + } +} +#if defined (__GNUC__) +void CopyToRam() { extern uint32_t __lma_ramfuncs_start__; extern uint32_t __lma_ramfuncs_end__; extern uint32_t __ramfuncs_start__; uint32_t size = &__lma_ramfuncs_end__ - &__lma_ramfuncs_start__; - FlashToRamCopy(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); + CopyBlock(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); +} +#elif defined (__ICCARM__) +#pragma language=save +#pragma language=extended +#pragma section="text_ram" +#pragma section="text_ram_init" +void CopyToRam(void) +{ + uint32_t size = __section_size("text_ram"); + uint32_t * from = __section_begin("text_ram_init"); + uint32_t * to = __section_begin("text_ram"); + + CopyBlock(from, to, size); } +#pragma language=restore #endif #endif @@ -403,9 +422,7 @@ __NO_RETURN void Reset_Handler(void) SystemInit2(); #endif // BOOTLOADER_ENABLE #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) -#if defined (__GNUC__) - CopyRamFuncs(); -#endif + CopyToRam(); #endif #if defined (__GNUC__) && defined (__START) Copy_Table(); diff --git a/platform/Device/SiliconLabs/EFR32SG28/Source/system_efr32sg28.c b/platform/Device/SiliconLabs/EFR32SG28/Source/system_efr32sg28.c index ad0629a35a..687746302d 100644 --- a/platform/Device/SiliconLabs/EFR32SG28/Source/system_efr32sg28.c +++ b/platform/Device/SiliconLabs/EFR32SG28/Source/system_efr32sg28.c @@ -191,35 +191,6 @@ void SystemInit(void) #endif //SL_TRUSTZONE_SECURE } -#if !defined(SL_LEGACY_LINKER) -/**************************************************************************//** - * @brief - * Copy data. - * - * @details - * Used to copy data from Flash to Ram at startup and runtime. - * - * @param[in] from - * Pointer to the source address in Flash. - * - * @param[in] to - * Pointer to the destination address in Ram. - * - * @param[in] size - * Size of data to copy. - *****************************************************************************/ -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size) -{ - if (size != 0) { - while (size--) { - *to++ = *from++; - } - } -} -#endif - /**************************************************************************//** * @brief * Get current HFRCODPLL frequency. diff --git a/platform/Device/SiliconLabs/EFR32ZG23/Include/system_efr32zg23.h b/platform/Device/SiliconLabs/EFR32ZG23/Include/system_efr32zg23.h index f7c2695351..14ae559231 100644 --- a/platform/Device/SiliconLabs/EFR32ZG23/Include/system_efr32zg23.h +++ b/platform/Device/SiliconLabs/EFR32ZG23/Include/system_efr32zg23.h @@ -218,11 +218,6 @@ static __INLINE void SystemCoreClockUpdate(void) } void SystemInit(void); -#if !defined(SL_LEGACY_LINKER) -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size); -#endif uint32_t SystemHFRCODPLLClockGet(void); void SystemHFRCODPLLClockSet(uint32_t freq); uint32_t SystemSYSCLKGet(void); diff --git a/platform/Device/SiliconLabs/EFR32ZG23/Source/startup_efr32zg23.c b/platform/Device/SiliconLabs/EFR32ZG23/Source/startup_efr32zg23.c index f965a484f3..576117384c 100644 --- a/platform/Device/SiliconLabs/EFR32ZG23/Source/startup_efr32zg23.c +++ b/platform/Device/SiliconLabs/EFR32ZG23/Source/startup_efr32zg23.c @@ -85,12 +85,6 @@ extern int __START(void) __attribute__((noreturn)); /* main entry point */ void Copy_Table(); void Zero_Table(); #endif // __START -#if !defined(SL_LEGACY_LINKER) -#if defined (__GNUC__) -// Function to copy RAM functions from Flash to RAM at startup time -void CopyRamFuncs(); -#endif -#endif /*--------------------------------------------------------------------------- * Internal References @@ -365,15 +359,40 @@ void Zero_Table() #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) #if defined (__GNUC__) -void CopyRamFuncs() +__attribute__((optimize("no-tree-loop-distribute-patterns"))) +#endif +void CopyBlock(const uint32_t *from, uint32_t *to, uint32_t size) +{ + if (size != 0) { + while (size--) { + *to++ = *from++; + } + } +} +#if defined (__GNUC__) +void CopyToRam() { extern uint32_t __lma_ramfuncs_start__; extern uint32_t __lma_ramfuncs_end__; extern uint32_t __ramfuncs_start__; uint32_t size = &__lma_ramfuncs_end__ - &__lma_ramfuncs_start__; - FlashToRamCopy(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); + CopyBlock(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); +} +#elif defined (__ICCARM__) +#pragma language=save +#pragma language=extended +#pragma section="text_ram" +#pragma section="text_ram_init" +void CopyToRam(void) +{ + uint32_t size = __section_size("text_ram"); + uint32_t * from = __section_begin("text_ram_init"); + uint32_t * to = __section_begin("text_ram"); + + CopyBlock(from, to, size); } +#pragma language=restore #endif #endif @@ -398,9 +417,7 @@ __NO_RETURN void Reset_Handler(void) SystemInit2(); #endif // BOOTLOADER_ENABLE #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) -#if defined (__GNUC__) - CopyRamFuncs(); -#endif + CopyToRam(); #endif #if defined (__GNUC__) && defined (__START) Copy_Table(); diff --git a/platform/Device/SiliconLabs/EFR32ZG23/Source/system_efr32zg23.c b/platform/Device/SiliconLabs/EFR32ZG23/Source/system_efr32zg23.c index 63057506a3..7951491344 100644 --- a/platform/Device/SiliconLabs/EFR32ZG23/Source/system_efr32zg23.c +++ b/platform/Device/SiliconLabs/EFR32ZG23/Source/system_efr32zg23.c @@ -191,35 +191,6 @@ void SystemInit(void) #endif //SL_TRUSTZONE_SECURE } -#if !defined(SL_LEGACY_LINKER) -/**************************************************************************//** - * @brief - * Copy data. - * - * @details - * Used to copy data from Flash to Ram at startup and runtime. - * - * @param[in] from - * Pointer to the source address in Flash. - * - * @param[in] to - * Pointer to the destination address in Ram. - * - * @param[in] size - * Size of data to copy. - *****************************************************************************/ -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size) -{ - if (size != 0) { - while (size--) { - *to++ = *from++; - } - } -} -#endif - /**************************************************************************//** * @brief * Get current HFRCODPLL frequency. diff --git a/platform/Device/SiliconLabs/EFR32ZG28/Include/system_efr32zg28.h b/platform/Device/SiliconLabs/EFR32ZG28/Include/system_efr32zg28.h index 2d3806f7d4..cab09db24c 100644 --- a/platform/Device/SiliconLabs/EFR32ZG28/Include/system_efr32zg28.h +++ b/platform/Device/SiliconLabs/EFR32ZG28/Include/system_efr32zg28.h @@ -221,11 +221,6 @@ static __INLINE void SystemCoreClockUpdate(void) } void SystemInit(void); -#if !defined(SL_LEGACY_LINKER) -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size); -#endif uint32_t SystemHFRCODPLLClockGet(void); void SystemHFRCODPLLClockSet(uint32_t freq); uint32_t SystemSYSCLKGet(void); diff --git a/platform/Device/SiliconLabs/EFR32ZG28/Source/startup_efr32zg28.c b/platform/Device/SiliconLabs/EFR32ZG28/Source/startup_efr32zg28.c index 2887ad259d..8e4ae876fb 100644 --- a/platform/Device/SiliconLabs/EFR32ZG28/Source/startup_efr32zg28.c +++ b/platform/Device/SiliconLabs/EFR32ZG28/Source/startup_efr32zg28.c @@ -85,12 +85,6 @@ extern int __START(void) __attribute__((noreturn)); /* main entry point */ void Copy_Table(); void Zero_Table(); #endif // __START -#if !defined(SL_LEGACY_LINKER) -#if defined (__GNUC__) -// Function to copy RAM functions from Flash to RAM at startup time -void CopyRamFuncs(); -#endif -#endif /*--------------------------------------------------------------------------- * Internal References @@ -371,15 +365,40 @@ void Zero_Table() #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) #if defined (__GNUC__) -void CopyRamFuncs() +__attribute__((optimize("no-tree-loop-distribute-patterns"))) +#endif +void CopyBlock(const uint32_t *from, uint32_t *to, uint32_t size) +{ + if (size != 0) { + while (size--) { + *to++ = *from++; + } + } +} +#if defined (__GNUC__) +void CopyToRam() { extern uint32_t __lma_ramfuncs_start__; extern uint32_t __lma_ramfuncs_end__; extern uint32_t __ramfuncs_start__; uint32_t size = &__lma_ramfuncs_end__ - &__lma_ramfuncs_start__; - FlashToRamCopy(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); + CopyBlock(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); +} +#elif defined (__ICCARM__) +#pragma language=save +#pragma language=extended +#pragma section="text_ram" +#pragma section="text_ram_init" +void CopyToRam(void) +{ + uint32_t size = __section_size("text_ram"); + uint32_t * from = __section_begin("text_ram_init"); + uint32_t * to = __section_begin("text_ram"); + + CopyBlock(from, to, size); } +#pragma language=restore #endif #endif @@ -404,9 +423,7 @@ __NO_RETURN void Reset_Handler(void) SystemInit2(); #endif // BOOTLOADER_ENABLE #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) -#if defined (__GNUC__) - CopyRamFuncs(); -#endif + CopyToRam(); #endif #if defined (__GNUC__) && defined (__START) Copy_Table(); diff --git a/platform/Device/SiliconLabs/EFR32ZG28/Source/system_efr32zg28.c b/platform/Device/SiliconLabs/EFR32ZG28/Source/system_efr32zg28.c index 3020859135..1e562e9a2e 100644 --- a/platform/Device/SiliconLabs/EFR32ZG28/Source/system_efr32zg28.c +++ b/platform/Device/SiliconLabs/EFR32ZG28/Source/system_efr32zg28.c @@ -191,35 +191,6 @@ void SystemInit(void) #endif //SL_TRUSTZONE_SECURE } -#if !defined(SL_LEGACY_LINKER) -/**************************************************************************//** - * @brief - * Copy data. - * - * @details - * Used to copy data from Flash to Ram at startup and runtime. - * - * @param[in] from - * Pointer to the source address in Flash. - * - * @param[in] to - * Pointer to the destination address in Ram. - * - * @param[in] size - * Size of data to copy. - *****************************************************************************/ -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size) -{ - if (size != 0) { - while (size--) { - *to++ = *from++; - } - } -} -#endif - /**************************************************************************//** * @brief * Get current HFRCODPLL frequency. diff --git a/platform/Device/SiliconLabs/FGM23/Include/system_fgm23.h b/platform/Device/SiliconLabs/FGM23/Include/system_fgm23.h index a59bdf1cd2..becb00d3f8 100644 --- a/platform/Device/SiliconLabs/FGM23/Include/system_fgm23.h +++ b/platform/Device/SiliconLabs/FGM23/Include/system_fgm23.h @@ -218,11 +218,6 @@ static __INLINE void SystemCoreClockUpdate(void) } void SystemInit(void); -#if !defined(SL_LEGACY_LINKER) -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size); -#endif uint32_t SystemHFRCODPLLClockGet(void); void SystemHFRCODPLLClockSet(uint32_t freq); uint32_t SystemSYSCLKGet(void); diff --git a/platform/Device/SiliconLabs/FGM23/Source/startup_fgm23.c b/platform/Device/SiliconLabs/FGM23/Source/startup_fgm23.c index db4d69890f..c9b2d63a8c 100644 --- a/platform/Device/SiliconLabs/FGM23/Source/startup_fgm23.c +++ b/platform/Device/SiliconLabs/FGM23/Source/startup_fgm23.c @@ -85,12 +85,6 @@ extern int __START(void) __attribute__((noreturn)); /* main entry point */ void Copy_Table(); void Zero_Table(); #endif // __START -#if !defined(SL_LEGACY_LINKER) -#if defined (__GNUC__) -// Function to copy RAM functions from Flash to RAM at startup time -void CopyRamFuncs(); -#endif -#endif /*--------------------------------------------------------------------------- * Internal References @@ -365,15 +359,40 @@ void Zero_Table() #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) #if defined (__GNUC__) -void CopyRamFuncs() +__attribute__((optimize("no-tree-loop-distribute-patterns"))) +#endif +void CopyBlock(const uint32_t *from, uint32_t *to, uint32_t size) +{ + if (size != 0) { + while (size--) { + *to++ = *from++; + } + } +} +#if defined (__GNUC__) +void CopyToRam() { extern uint32_t __lma_ramfuncs_start__; extern uint32_t __lma_ramfuncs_end__; extern uint32_t __ramfuncs_start__; uint32_t size = &__lma_ramfuncs_end__ - &__lma_ramfuncs_start__; - FlashToRamCopy(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); + CopyBlock(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); +} +#elif defined (__ICCARM__) +#pragma language=save +#pragma language=extended +#pragma section="text_ram" +#pragma section="text_ram_init" +void CopyToRam(void) +{ + uint32_t size = __section_size("text_ram"); + uint32_t * from = __section_begin("text_ram_init"); + uint32_t * to = __section_begin("text_ram"); + + CopyBlock(from, to, size); } +#pragma language=restore #endif #endif @@ -398,9 +417,7 @@ __NO_RETURN void Reset_Handler(void) SystemInit2(); #endif // BOOTLOADER_ENABLE #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) -#if defined (__GNUC__) - CopyRamFuncs(); -#endif + CopyToRam(); #endif #if defined (__GNUC__) && defined (__START) Copy_Table(); diff --git a/platform/Device/SiliconLabs/FGM23/Source/system_fgm23.c b/platform/Device/SiliconLabs/FGM23/Source/system_fgm23.c index ee618a31c7..93052e3532 100644 --- a/platform/Device/SiliconLabs/FGM23/Source/system_fgm23.c +++ b/platform/Device/SiliconLabs/FGM23/Source/system_fgm23.c @@ -191,35 +191,6 @@ void SystemInit(void) #endif //SL_TRUSTZONE_SECURE } -#if !defined(SL_LEGACY_LINKER) -/**************************************************************************//** - * @brief - * Copy data. - * - * @details - * Used to copy data from Flash to Ram at startup and runtime. - * - * @param[in] from - * Pointer to the source address in Flash. - * - * @param[in] to - * Pointer to the destination address in Ram. - * - * @param[in] size - * Size of data to copy. - *****************************************************************************/ -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size) -{ - if (size != 0) { - while (size--) { - *to++ = *from++; - } - } -} -#endif - /**************************************************************************//** * @brief * Get current HFRCODPLL frequency. diff --git a/platform/Device/SiliconLabs/MGM21/Include/system_mgm21.h b/platform/Device/SiliconLabs/MGM21/Include/system_mgm21.h index 3f7e778b62..b5dba86a29 100644 --- a/platform/Device/SiliconLabs/MGM21/Include/system_mgm21.h +++ b/platform/Device/SiliconLabs/MGM21/Include/system_mgm21.h @@ -189,11 +189,6 @@ static __INLINE void SystemCoreClockUpdate(void) } void SystemInit(void); -#if !defined(SL_LEGACY_LINKER) -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size); -#endif uint32_t SystemHFRCODPLLClockGet(void); void SystemHFRCODPLLClockSet(uint32_t freq); uint32_t SystemSYSCLKGet(void); diff --git a/platform/Device/SiliconLabs/MGM21/Source/startup_mgm21.c b/platform/Device/SiliconLabs/MGM21/Source/startup_mgm21.c index d5a25320a0..41a3edf39d 100644 --- a/platform/Device/SiliconLabs/MGM21/Source/startup_mgm21.c +++ b/platform/Device/SiliconLabs/MGM21/Source/startup_mgm21.c @@ -85,12 +85,6 @@ extern int __START(void) __attribute__((noreturn)); /* main entry point */ void Copy_Table(); void Zero_Table(); #endif // __START -#if !defined(SL_LEGACY_LINKER) -#if defined (__GNUC__) -// Function to copy RAM functions from Flash to RAM at startup time -void CopyRamFuncs(); -#endif -#endif /*--------------------------------------------------------------------------- * Internal References @@ -335,15 +329,40 @@ void Zero_Table() #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) #if defined (__GNUC__) -void CopyRamFuncs() +__attribute__((optimize("no-tree-loop-distribute-patterns"))) +#endif +void CopyBlock(const uint32_t *from, uint32_t *to, uint32_t size) +{ + if (size != 0) { + while (size--) { + *to++ = *from++; + } + } +} +#if defined (__GNUC__) +void CopyToRam() { extern uint32_t __lma_ramfuncs_start__; extern uint32_t __lma_ramfuncs_end__; extern uint32_t __ramfuncs_start__; uint32_t size = &__lma_ramfuncs_end__ - &__lma_ramfuncs_start__; - FlashToRamCopy(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); + CopyBlock(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); +} +#elif defined (__ICCARM__) +#pragma language=save +#pragma language=extended +#pragma section="text_ram" +#pragma section="text_ram_init" +void CopyToRam(void) +{ + uint32_t size = __section_size("text_ram"); + uint32_t * from = __section_begin("text_ram_init"); + uint32_t * to = __section_begin("text_ram"); + + CopyBlock(from, to, size); } +#pragma language=restore #endif #endif @@ -368,9 +387,7 @@ __NO_RETURN void Reset_Handler(void) SystemInit2(); #endif // BOOTLOADER_ENABLE #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) -#if defined (__GNUC__) - CopyRamFuncs(); -#endif + CopyToRam(); #endif #if defined (__GNUC__) && defined (__START) Copy_Table(); diff --git a/platform/Device/SiliconLabs/MGM21/Source/system_mgm21.c b/platform/Device/SiliconLabs/MGM21/Source/system_mgm21.c index 7eb0a94332..251d6eda54 100644 --- a/platform/Device/SiliconLabs/MGM21/Source/system_mgm21.c +++ b/platform/Device/SiliconLabs/MGM21/Source/system_mgm21.c @@ -190,35 +190,6 @@ void SystemInit(void) #endif //SL_TRUSTZONE_SECURE } -#if !defined(SL_LEGACY_LINKER) -/**************************************************************************//** - * @brief - * Copy data. - * - * @details - * Used to copy data from Flash to Ram at startup and runtime. - * - * @param[in] from - * Pointer to the source address in Flash. - * - * @param[in] to - * Pointer to the destination address in Ram. - * - * @param[in] size - * Size of data to copy. - *****************************************************************************/ -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size) -{ - if (size != 0) { - while (size--) { - *to++ = *from++; - } - } -} -#endif - /**************************************************************************//** * @brief * Get current HFRCODPLL frequency. diff --git a/platform/Device/SiliconLabs/MGM22/Include/system_mgm22.h b/platform/Device/SiliconLabs/MGM22/Include/system_mgm22.h index 07a6d376b2..804479500e 100644 --- a/platform/Device/SiliconLabs/MGM22/Include/system_mgm22.h +++ b/platform/Device/SiliconLabs/MGM22/Include/system_mgm22.h @@ -206,11 +206,6 @@ static __INLINE void SystemCoreClockUpdate(void) } void SystemInit(void); -#if !defined(SL_LEGACY_LINKER) -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size); -#endif uint32_t SystemHFRCODPLLClockGet(void); void SystemHFRCODPLLClockSet(uint32_t freq); uint32_t SystemSYSCLKGet(void); diff --git a/platform/Device/SiliconLabs/MGM22/Source/startup_mgm22.c b/platform/Device/SiliconLabs/MGM22/Source/startup_mgm22.c index b59dc6bd62..e553b44a12 100644 --- a/platform/Device/SiliconLabs/MGM22/Source/startup_mgm22.c +++ b/platform/Device/SiliconLabs/MGM22/Source/startup_mgm22.c @@ -85,12 +85,6 @@ extern int __START(void) __attribute__((noreturn)); /* main entry point */ void Copy_Table(); void Zero_Table(); #endif // __START -#if !defined(SL_LEGACY_LINKER) -#if defined (__GNUC__) -// Function to copy RAM functions from Flash to RAM at startup time -void CopyRamFuncs(); -#endif -#endif /*--------------------------------------------------------------------------- * Internal References @@ -341,15 +335,40 @@ void Zero_Table() #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) #if defined (__GNUC__) -void CopyRamFuncs() +__attribute__((optimize("no-tree-loop-distribute-patterns"))) +#endif +void CopyBlock(const uint32_t *from, uint32_t *to, uint32_t size) +{ + if (size != 0) { + while (size--) { + *to++ = *from++; + } + } +} +#if defined (__GNUC__) +void CopyToRam() { extern uint32_t __lma_ramfuncs_start__; extern uint32_t __lma_ramfuncs_end__; extern uint32_t __ramfuncs_start__; uint32_t size = &__lma_ramfuncs_end__ - &__lma_ramfuncs_start__; - FlashToRamCopy(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); + CopyBlock(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); +} +#elif defined (__ICCARM__) +#pragma language=save +#pragma language=extended +#pragma section="text_ram" +#pragma section="text_ram_init" +void CopyToRam(void) +{ + uint32_t size = __section_size("text_ram"); + uint32_t * from = __section_begin("text_ram_init"); + uint32_t * to = __section_begin("text_ram"); + + CopyBlock(from, to, size); } +#pragma language=restore #endif #endif @@ -374,9 +393,7 @@ __NO_RETURN void Reset_Handler(void) SystemInit2(); #endif // BOOTLOADER_ENABLE #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) -#if defined (__GNUC__) - CopyRamFuncs(); -#endif + CopyToRam(); #endif #if defined (__GNUC__) && defined (__START) Copy_Table(); diff --git a/platform/Device/SiliconLabs/MGM22/Source/system_mgm22.c b/platform/Device/SiliconLabs/MGM22/Source/system_mgm22.c index 81a170f936..0f6dcddbd4 100644 --- a/platform/Device/SiliconLabs/MGM22/Source/system_mgm22.c +++ b/platform/Device/SiliconLabs/MGM22/Source/system_mgm22.c @@ -191,35 +191,6 @@ void SystemInit(void) #endif //SL_TRUSTZONE_SECURE } -#if !defined(SL_LEGACY_LINKER) -/**************************************************************************//** - * @brief - * Copy data. - * - * @details - * Used to copy data from Flash to Ram at startup and runtime. - * - * @param[in] from - * Pointer to the source address in Flash. - * - * @param[in] to - * Pointer to the destination address in Ram. - * - * @param[in] size - * Size of data to copy. - *****************************************************************************/ -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size) -{ - if (size != 0) { - while (size--) { - *to++ = *from++; - } - } -} -#endif - /**************************************************************************//** * @brief * Get current HFRCODPLL frequency. diff --git a/platform/Device/SiliconLabs/MGM24/Include/system_mgm24.h b/platform/Device/SiliconLabs/MGM24/Include/system_mgm24.h index bf4f418ad1..a321355e70 100644 --- a/platform/Device/SiliconLabs/MGM24/Include/system_mgm24.h +++ b/platform/Device/SiliconLabs/MGM24/Include/system_mgm24.h @@ -218,11 +218,6 @@ static __INLINE void SystemCoreClockUpdate(void) } void SystemInit(void); -#if !defined(SL_LEGACY_LINKER) -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size); -#endif uint32_t SystemHFRCODPLLClockGet(void); void SystemHFRCODPLLClockSet(uint32_t freq); uint32_t SystemSYSCLKGet(void); diff --git a/platform/Device/SiliconLabs/MGM24/Source/startup_mgm24.c b/platform/Device/SiliconLabs/MGM24/Source/startup_mgm24.c index ac6c23887e..9acc8c2581 100644 --- a/platform/Device/SiliconLabs/MGM24/Source/startup_mgm24.c +++ b/platform/Device/SiliconLabs/MGM24/Source/startup_mgm24.c @@ -85,12 +85,6 @@ extern int __START(void) __attribute__((noreturn)); /* main entry point */ void Copy_Table(); void Zero_Table(); #endif // __START -#if !defined(SL_LEGACY_LINKER) -#if defined (__GNUC__) -// Function to copy RAM functions from Flash to RAM at startup time -void CopyRamFuncs(); -#endif -#endif /*--------------------------------------------------------------------------- * Internal References @@ -365,15 +359,40 @@ void Zero_Table() #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) #if defined (__GNUC__) -void CopyRamFuncs() +__attribute__((optimize("no-tree-loop-distribute-patterns"))) +#endif +void CopyBlock(const uint32_t *from, uint32_t *to, uint32_t size) +{ + if (size != 0) { + while (size--) { + *to++ = *from++; + } + } +} +#if defined (__GNUC__) +void CopyToRam() { extern uint32_t __lma_ramfuncs_start__; extern uint32_t __lma_ramfuncs_end__; extern uint32_t __ramfuncs_start__; uint32_t size = &__lma_ramfuncs_end__ - &__lma_ramfuncs_start__; - FlashToRamCopy(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); + CopyBlock(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); +} +#elif defined (__ICCARM__) +#pragma language=save +#pragma language=extended +#pragma section="text_ram" +#pragma section="text_ram_init" +void CopyToRam(void) +{ + uint32_t size = __section_size("text_ram"); + uint32_t * from = __section_begin("text_ram_init"); + uint32_t * to = __section_begin("text_ram"); + + CopyBlock(from, to, size); } +#pragma language=restore #endif #endif @@ -398,9 +417,7 @@ __NO_RETURN void Reset_Handler(void) SystemInit2(); #endif // BOOTLOADER_ENABLE #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) -#if defined (__GNUC__) - CopyRamFuncs(); -#endif + CopyToRam(); #endif #if defined (__GNUC__) && defined (__START) Copy_Table(); diff --git a/platform/Device/SiliconLabs/MGM24/Source/system_mgm24.c b/platform/Device/SiliconLabs/MGM24/Source/system_mgm24.c index f56f617938..660530668e 100644 --- a/platform/Device/SiliconLabs/MGM24/Source/system_mgm24.c +++ b/platform/Device/SiliconLabs/MGM24/Source/system_mgm24.c @@ -191,35 +191,6 @@ void SystemInit(void) #endif //SL_TRUSTZONE_SECURE } -#if !defined(SL_LEGACY_LINKER) -/**************************************************************************//** - * @brief - * Copy data. - * - * @details - * Used to copy data from Flash to Ram at startup and runtime. - * - * @param[in] from - * Pointer to the source address in Flash. - * - * @param[in] to - * Pointer to the destination address in Ram. - * - * @param[in] size - * Size of data to copy. - *****************************************************************************/ -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size) -{ - if (size != 0) { - while (size--) { - *to++ = *from++; - } - } -} -#endif - /**************************************************************************//** * @brief * Get current HFRCODPLL frequency. diff --git a/platform/Device/SiliconLabs/ZGM23/Include/system_zgm23.h b/platform/Device/SiliconLabs/ZGM23/Include/system_zgm23.h index 50e46a3ddf..0567c90311 100644 --- a/platform/Device/SiliconLabs/ZGM23/Include/system_zgm23.h +++ b/platform/Device/SiliconLabs/ZGM23/Include/system_zgm23.h @@ -217,11 +217,6 @@ static __INLINE void SystemCoreClockUpdate(void) } void SystemInit(void); -#if !defined(SL_LEGACY_LINKER) -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size); -#endif uint32_t SystemHFRCODPLLClockGet(void); void SystemHFRCODPLLClockSet(uint32_t freq); uint32_t SystemSYSCLKGet(void); diff --git a/platform/Device/SiliconLabs/ZGM23/Source/startup_zgm23.c b/platform/Device/SiliconLabs/ZGM23/Source/startup_zgm23.c index 9ee8f69305..b65feb5fcf 100644 --- a/platform/Device/SiliconLabs/ZGM23/Source/startup_zgm23.c +++ b/platform/Device/SiliconLabs/ZGM23/Source/startup_zgm23.c @@ -85,12 +85,6 @@ extern int __START(void) __attribute__((noreturn)); /* main entry point */ void Copy_Table(); void Zero_Table(); #endif // __START -#if !defined(SL_LEGACY_LINKER) -#if defined (__GNUC__) -// Function to copy RAM functions from Flash to RAM at startup time -void CopyRamFuncs(); -#endif -#endif /*--------------------------------------------------------------------------- * Internal References @@ -364,15 +358,40 @@ void Zero_Table() #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) #if defined (__GNUC__) -void CopyRamFuncs() +__attribute__((optimize("no-tree-loop-distribute-patterns"))) +#endif +void CopyBlock(const uint32_t *from, uint32_t *to, uint32_t size) +{ + if (size != 0) { + while (size--) { + *to++ = *from++; + } + } +} +#if defined (__GNUC__) +void CopyToRam() { extern uint32_t __lma_ramfuncs_start__; extern uint32_t __lma_ramfuncs_end__; extern uint32_t __ramfuncs_start__; uint32_t size = &__lma_ramfuncs_end__ - &__lma_ramfuncs_start__; - FlashToRamCopy(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); + CopyBlock(&__lma_ramfuncs_start__, &__ramfuncs_start__, size); +} +#elif defined (__ICCARM__) +#pragma language=save +#pragma language=extended +#pragma section="text_ram" +#pragma section="text_ram_init" +void CopyToRam(void) +{ + uint32_t size = __section_size("text_ram"); + uint32_t * from = __section_begin("text_ram_init"); + uint32_t * to = __section_begin("text_ram"); + + CopyBlock(from, to, size); } +#pragma language=restore #endif #endif @@ -397,9 +416,7 @@ __NO_RETURN void Reset_Handler(void) SystemInit2(); #endif // BOOTLOADER_ENABLE #if !defined(SL_LEGACY_LINKER) && !defined(SL_RAM_LINKER) -#if defined (__GNUC__) - CopyRamFuncs(); -#endif + CopyToRam(); #endif #if defined (__GNUC__) && defined (__START) Copy_Table(); diff --git a/platform/Device/SiliconLabs/ZGM23/Source/system_zgm23.c b/platform/Device/SiliconLabs/ZGM23/Source/system_zgm23.c index 54df66f518..f0505a8b42 100644 --- a/platform/Device/SiliconLabs/ZGM23/Source/system_zgm23.c +++ b/platform/Device/SiliconLabs/ZGM23/Source/system_zgm23.c @@ -191,35 +191,6 @@ void SystemInit(void) #endif //SL_TRUSTZONE_SECURE } -#if !defined(SL_LEGACY_LINKER) -/**************************************************************************//** - * @brief - * Copy data. - * - * @details - * Used to copy data from Flash to Ram at startup and runtime. - * - * @param[in] from - * Pointer to the source address in Flash. - * - * @param[in] to - * Pointer to the destination address in Ram. - * - * @param[in] size - * Size of data to copy. - *****************************************************************************/ -void FlashToRamCopy(uint32_t *from, - uint32_t *to, - uint32_t size) -{ - if (size != 0) { - while (size--) { - *to++ = *from++; - } - } -} -#endif - /**************************************************************************//** * @brief * Get current HFRCODPLL frequency. diff --git a/platform/bootloader/api/btl_errorcode.h b/platform/bootloader/api/btl_errorcode.h index 4f5392059c..17c97b9050 100644 --- a/platform/bootloader/api/btl_errorcode.h +++ b/platform/bootloader/api/btl_errorcode.h @@ -296,6 +296,9 @@ /// A GBL tag occurred in an order forbidden by the GBL format spec #define BOOTLOADER_ERROR_PARSER_INVALID_TAG_ORDER \ (BOOTLOADER_ERROR_PARSER_BASE | 0x0EL) +/// OOB write in the storage slot while parsing the GBL file +#define BOOTLOADER_ERROR_PARSER_OOB_WRITE \ + (BOOTLOADER_ERROR_PARSER_BASE | 0x0FL) /** @} addtogroup ParserError */ diff --git a/platform/bootloader/api/btl_interface_storage.h b/platform/bootloader/api/btl_interface_storage.h index 669bc63f44..40bba045da 100644 --- a/platform/bootloader/api/btl_interface_storage.h +++ b/platform/bootloader/api/btl_interface_storage.h @@ -208,9 +208,9 @@ typedef struct BootloaderStorageFunctions { #if defined(_SILICON_LABS_32B_SERIES_2) #if defined(SEMAILBOX_PRESENT) /// Context size(701) includes counter(16) plus stream_block(16 (block size) * 8 (Maximum blocks)) -#define BOOTLOADER_STORAGE_VERIFICATION_CONTEXT_SIZE (701) +#define BOOTLOADER_STORAGE_VERIFICATION_CONTEXT_SIZE (705) #else -#define BOOTLOADER_STORAGE_VERIFICATION_CONTEXT_SIZE (589) +#define BOOTLOADER_STORAGE_VERIFICATION_CONTEXT_SIZE (593) #endif #else #define BOOTLOADER_STORAGE_VERIFICATION_CONTEXT_SIZE (384) diff --git a/platform/bootloader/api/btl_reset_info.h b/platform/bootloader/api/btl_reset_info.h index 3d7f868b81..06b680063d 100644 --- a/platform/bootloader/api/btl_reset_info.h +++ b/platform/bootloader/api/btl_reset_info.h @@ -85,6 +85,13 @@ typedef struct { /// Soft-reset was forced to handle a security fault #define BOOTLOADER_RESET_REASON_TZ_FAULT 0x020Cu +/// Insufficient slot space to re-create a new firmware +#define BOOTLOADER_RESET_REASON_NO_SLOT_SPACE 0x020Du +/// CRC mismatch of the newly re-constructed firmware +#define BOOTLOADER_RESET_REASON_BADCRC 0x020Eu +/// Re-creation of the new application using the DDFU library failed +#define BOOTLOADER_RESET_REASON_DDFU_FAIL 0x020Fu + /// Reset signature is valid #define BOOTLOADER_RESET_SIGNATURE_VALID 0xF00Fu /// Reset signature is invalid diff --git a/platform/bootloader/bootloader_production_templates.xml b/platform/bootloader/bootloader_production_templates.xml index f58bb0d5ac..e05a202584 100644 --- a/platform/bootloader/bootloader_production_templates.xml +++ b/platform/bootloader/bootloader_production_templates.xml @@ -38,7 +38,7 @@ - + @@ -54,7 +54,7 @@ - + @@ -100,7 +100,7 @@ - + @@ -115,7 +115,7 @@ - + @@ -160,7 +160,7 @@ - + @@ -175,7 +175,7 @@ - + @@ -190,7 +190,7 @@ - + @@ -205,7 +205,7 @@ - + @@ -220,7 +220,7 @@ - + @@ -235,7 +235,7 @@ - + @@ -250,7 +250,7 @@ - + @@ -265,7 +265,7 @@ - + @@ -280,7 +280,7 @@ - + @@ -295,7 +295,7 @@ - + @@ -310,7 +310,7 @@ - + diff --git a/platform/bootloader/config/btl_config.h b/platform/bootloader/config/btl_config.h index 4fc350bdd1..fee2170586 100644 --- a/platform/bootloader/config/btl_config.h +++ b/platform/bootloader/config/btl_config.h @@ -41,7 +41,7 @@ MISRAC_ENABLE #endif #ifndef BOOTLOADER_VERSION_MAIN_CUSTOMER -#define BOOTLOADER_VERSION_MAIN_CUSTOMER 1 +#define BOOTLOADER_VERSION_MAIN_CUSTOMER 2 #endif #define BOOTLOADER_VERSION_MAIN (BOOTLOADER_VERSION_MAIN_MAJOR << 24 \ diff --git a/platform/bootloader/config/device_sdid_205/apploader/btl_core_cfg.h b/platform/bootloader/config/device_sdid_205/apploader/btl_core_cfg.h index df88d592be..910fae87f0 100644 --- a/platform/bootloader/config/device_sdid_205/apploader/btl_core_cfg.h +++ b/platform/bootloader/config/device_sdid_205/apploader/btl_core_cfg.h @@ -103,7 +103,7 @@ // Bootloader Version Main Customer // Default: 0 // Bootloader Version Main Customer -#define BOOTLOADER_VERSION_MAIN_CUSTOMER 1 +#define BOOTLOADER_VERSION_MAIN_CUSTOMER 2 // Use custom Bootloader Application Size // Default: 0 diff --git a/platform/bootloader/config/device_sdid_205/apploader/btl_core_s_cfg.h b/platform/bootloader/config/device_sdid_205/apploader/btl_core_s_cfg.h index 9176b41972..1f0cee2ed4 100644 --- a/platform/bootloader/config/device_sdid_205/apploader/btl_core_s_cfg.h +++ b/platform/bootloader/config/device_sdid_205/apploader/btl_core_s_cfg.h @@ -93,7 +93,7 @@ // Bootloader Version Main Customer // Default: 0 // Bootloader Version Main Customer -#define BOOTLOADER_VERSION_MAIN_CUSTOMER 1 +#define BOOTLOADER_VERSION_MAIN_CUSTOMER 2 // Use custom Bootloader Application Size // Default: 0 diff --git a/platform/bootloader/config/device_sdid_205/btl_core_cfg.h b/platform/bootloader/config/device_sdid_205/btl_core_cfg.h index d11c411f4a..fe3f8505a9 100644 --- a/platform/bootloader/config/device_sdid_205/btl_core_cfg.h +++ b/platform/bootloader/config/device_sdid_205/btl_core_cfg.h @@ -114,7 +114,7 @@ // Bootloader Version Main Customer // Default: 0 // Bootloader Version Main Customer -#define BOOTLOADER_VERSION_MAIN_CUSTOMER 1 +#define BOOTLOADER_VERSION_MAIN_CUSTOMER 2 // Use custom Bootloader Application Size // Default: 0 diff --git a/platform/bootloader/config/device_sdid_205/btl_core_s_cfg.h b/platform/bootloader/config/device_sdid_205/btl_core_s_cfg.h index 389994e86d..5a7311f3e1 100644 --- a/platform/bootloader/config/device_sdid_205/btl_core_s_cfg.h +++ b/platform/bootloader/config/device_sdid_205/btl_core_s_cfg.h @@ -93,7 +93,7 @@ // Bootloader Version Main Customer // Default: 0 // Bootloader Version Main Customer -#define BOOTLOADER_VERSION_MAIN_CUSTOMER 1 +#define BOOTLOADER_VERSION_MAIN_CUSTOMER 2 // Use custom Bootloader Application Size // Default: 0 diff --git a/platform/bootloader/config/device_series_2/apploader/btl_core_cfg.h b/platform/bootloader/config/device_series_2/apploader/btl_core_cfg.h index 0803776055..fdbd9a983d 100644 --- a/platform/bootloader/config/device_series_2/apploader/btl_core_cfg.h +++ b/platform/bootloader/config/device_series_2/apploader/btl_core_cfg.h @@ -103,7 +103,7 @@ // Bootloader Version Main Customer // Default: 0 // Bootloader Version Main Customer -#define BOOTLOADER_VERSION_MAIN_CUSTOMER 1 +#define BOOTLOADER_VERSION_MAIN_CUSTOMER 2 // Use custom Bootloader Application Size // Default: 0 diff --git a/platform/bootloader/config/device_series_2/apploader/btl_core_s_cfg.h b/platform/bootloader/config/device_series_2/apploader/btl_core_s_cfg.h index 1c1af3994d..7d570e7d24 100644 --- a/platform/bootloader/config/device_series_2/apploader/btl_core_s_cfg.h +++ b/platform/bootloader/config/device_series_2/apploader/btl_core_s_cfg.h @@ -98,7 +98,7 @@ // Bootloader Version Main Customer // Default: 0 // Bootloader Version Main Customer -#define BOOTLOADER_VERSION_MAIN_CUSTOMER 1 +#define BOOTLOADER_VERSION_MAIN_CUSTOMER 2 // Use custom Bootloader Application Size // Default: 0 diff --git a/platform/bootloader/config/device_series_2/btl_core_cfg.h b/platform/bootloader/config/device_series_2/btl_core_cfg.h index 1d898da56d..e8006b701f 100644 --- a/platform/bootloader/config/device_series_2/btl_core_cfg.h +++ b/platform/bootloader/config/device_series_2/btl_core_cfg.h @@ -114,7 +114,7 @@ // Bootloader Version Main Customer // Default: 0 // Bootloader Version Main Customer -#define BOOTLOADER_VERSION_MAIN_CUSTOMER 1 +#define BOOTLOADER_VERSION_MAIN_CUSTOMER 2 // Use custom Bootloader Application Size // Default: 0 diff --git a/platform/bootloader/config/device_series_2/btl_core_s_cfg.h b/platform/bootloader/config/device_series_2/btl_core_s_cfg.h index 96bde852dd..25d50f2bb0 100644 --- a/platform/bootloader/config/device_series_2/btl_core_s_cfg.h +++ b/platform/bootloader/config/device_series_2/btl_core_s_cfg.h @@ -98,7 +98,7 @@ // Bootloader Version Main Customer // Default: 0 // Bootloader Version Main Customer -#define BOOTLOADER_VERSION_MAIN_CUSTOMER 1 +#define BOOTLOADER_VERSION_MAIN_CUSTOMER 2 // Use custom Bootloader Application Size // Default: 0 diff --git a/platform/bootloader/parser/compression/btl_decompress_lz4.c b/platform/bootloader/parser/compression/btl_decompress_lz4.c index 7e6639a7d6..d896891d43 100644 --- a/platform/bootloader/parser/compression/btl_decompress_lz4.c +++ b/platform/bootloader/parser/compression/btl_decompress_lz4.c @@ -21,7 +21,9 @@ #include "gbl/btl_gbl_format.h" +#ifdef BOOTLOADER_SUPPORT_STORAGE #include "storage/btl_storage.h" +#endif #include diff --git a/platform/bootloader/parser/delta_dfu/lib/gcc/cortex-m33/lib/libddfu-patch.a b/platform/bootloader/parser/delta_dfu/lib/gcc/cortex-m33/lib/libddfu-patch.a index 070efce303..8326ae9b25 100644 --- a/platform/bootloader/parser/delta_dfu/lib/gcc/cortex-m33/lib/libddfu-patch.a +++ b/platform/bootloader/parser/delta_dfu/lib/gcc/cortex-m33/lib/libddfu-patch.a @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:33ecc8060f90f4d20ab3096dd275e7133f3efe6f33ada3b7c4dc2c2f5136e035 +oid sha256:db4cc5812eb468675fe5b9d3ec2050ced5db05986fbb3b212bfc9df672c1a2ff size 4692 diff --git a/platform/bootloader/parser/delta_dfu/lib/iar/cortex-m33/lib/libddfu-patch.a b/platform/bootloader/parser/delta_dfu/lib/iar/cortex-m33/lib/libddfu-patch.a index c5b599acd6..cea8822292 100644 --- a/platform/bootloader/parser/delta_dfu/lib/iar/cortex-m33/lib/libddfu-patch.a +++ b/platform/bootloader/parser/delta_dfu/lib/iar/cortex-m33/lib/libddfu-patch.a @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9bce8af677c7d6c7c3896c3c866c6835b9c6678030d721c6e0963a6b6089dc2a +oid sha256:c4498259e82d0123842efee1dc9a00b161e128e9e9499e89fff675c2df923dc4 size 15228 diff --git a/platform/bootloader/parser/gbl/btl_gbl_parser.c b/platform/bootloader/parser/gbl/btl_gbl_parser.c index a21893a6a5..2d72eec3bd 100644 --- a/platform/bootloader/parser/gbl/btl_gbl_parser.c +++ b/platform/bootloader/parser/gbl/btl_gbl_parser.c @@ -375,7 +375,7 @@ static int32_t gbl_parseHeader(ParserContext_t *context, context->offsetInTag = 0UL; #if defined(BTL_PARSER_SUPPORT_DELTA_DFU) - if (context->enableDeltaGBLLenCount == true) { + if (context->enableGBLLengthCount == true) { if (BOOTLOADER_ENFORCE_ENCRYPTED_UPGRADE == 1U ) { //Take only the lenght of un-encrypted tags if ((gblTagHeader->tagId == GBL_TAG_ID_HEADER_V3) @@ -385,13 +385,13 @@ static int32_t gbl_parseHeader(ParserContext_t *context, || (gblTagHeader->tagId == GBL_TAG_ID_SIGNATURE_ECDSA_P256) || (gblTagHeader->tagId == GBL_TAG_ID_END)) { //If Encryption is enabled, count only the lenght of un-encrypted tags. - context->deltaGBLLength += context->lengthOfTag; //gblTagHeader->length; - context->deltaGBLLength += 8; // To account for tag id and length + context->gblLength += context->lengthOfTag; //gblTagHeader->length; + context->gblLength += 8; // To account for tag id and length } } else { //Encryption not enabled. - context->deltaGBLLength += context->lengthOfTag; - context->deltaGBLLength += 8; + context->gblLength += context->lengthOfTag; + context->gblLength += 8; } } #endif @@ -537,6 +537,17 @@ int32_t gbl_writeProgData(ParserContext_t *context, (void) memset(&buffer[withholdSrcOffset], 0xFF, 4U); } +#if BTL_PARSER_SUPPORT_DELTA_DFU + //Check if the delta patch extraction won't overstep the storage slot + //Check this only in case of a delta upgrade. Skip this in scenarios + //where the bootloader supports delta DFU but it's parsing a regular + //app upgrade. + if (context->newFwCRC != 0 && ((context->programmingAddress + length) > context->endOfStorageSlot)) { + //OOB write + return BOOTLOADER_ERROR_PARSER_OOB_WRITE; + } +#endif //BTL_PARSER_SUPPORT_DELTA_DFU + callbacks->applicationCallback(context->programmingAddress, buffer, length, @@ -584,10 +595,11 @@ int32_t parser_init(void *context, void *decryptContext, void *authContext, uint parserContext->currentTagOrder = GBL_TAG_ORDER_INIT; #if defined(BTL_PARSER_SUPPORT_DELTA_DFU) - parserContext->deltaGBLLength = 0U; + parserContext->gblLength = 0U; parserContext->lengthOfPatch = 0U; parserContext->newFwCRC = 0x0U; - parserContext->enableDeltaGBLLenCount = false; + parserContext->enableGBLLengthCount = false; + parserContext->endOfStorageSlot = 0U; #endif if ((PARSER_REQUIRE_CONFIDENTIALITY) && (decryptContext == NULL)) { @@ -624,7 +636,7 @@ int32_t parser_parse(void *context, #if defined (BTL_PARSER_SUPPORT_DELTA_DFU) if (callbacks->applicationCallback == NULL) { - parserContext->enableDeltaGBLLenCount = true; + parserContext->enableGBLLengthCount = true; } #endif @@ -751,7 +763,7 @@ int32_t parser_parse(void *context, case GblParserStateDelta: retval = parser_parseDelta(parserContext, &input, imageProperties); if (callbacks->applicationCallback != NULL) { - parserContext->deltaPatchAddress = parserContext->deltaPatchAddress + parserContext->deltaGBLLength; + parserContext->deltaPatchAddress = parserContext->deltaPatchAddress + parserContext->gblLength; if (parserContext->deltaPatchAddress & (FLASH_PAGE_SIZE - 1)) { parserContext->deltaPatchAddress = parserContext->deltaPatchAddress - (parserContext->deltaPatchAddress & (FLASH_PAGE_SIZE - 1)) + FLASH_PAGE_SIZE; parserContext->programmingAddress = parserContext->deltaPatchAddress; @@ -790,7 +802,7 @@ int32_t parser_parse(void *context, if ((parserContext->customTagId == GBL_TAG_ID_DELTA_LZ4) || (parserContext->customTagId == GBL_TAG_ID_DELTA_LZMA) ) { imageProperties->contents |= BTL_IMAGE_CONTENT_DELTA; if ((callbacks->applicationCallback != NULL) && (parserContext->programmingAddress == 0U)) { - parserContext->deltaPatchAddress = parserContext->deltaPatchAddress + parserContext->deltaGBLLength; + parserContext->deltaPatchAddress = parserContext->deltaPatchAddress + parserContext->gblLength; if (parserContext->deltaPatchAddress & (FLASH_PAGE_SIZE - 1)) { parserContext->deltaPatchAddress = parserContext->deltaPatchAddress - (parserContext->deltaPatchAddress & (FLASH_PAGE_SIZE - 1)) + FLASH_PAGE_SIZE; parserContext->programmingAddress = parserContext->deltaPatchAddress; diff --git a/platform/bootloader/parser/gbl/btl_gbl_parser.h b/platform/bootloader/parser/gbl/btl_gbl_parser.h index 38e8bac856..2930874ac8 100644 --- a/platform/bootloader/parser/gbl/btl_gbl_parser.h +++ b/platform/bootloader/parser/gbl/btl_gbl_parser.h @@ -257,8 +257,8 @@ typedef struct { /// Context for custom tag uint32_t customTagId; #if defined (BTL_PARSER_SUPPORT_DELTA_DFU) - /// Length of Delta patch GBl - uint32_t deltaGBLLength; + /// Length of GBl + uint32_t gblLength; /// Address where the GBL has to be extracted uint32_t deltaPatchAddress; /// Length of extracted data @@ -267,8 +267,10 @@ typedef struct { uint32_t newFwCRC; //Size of the newly created firmware uint32_t newFwSize; - /// Enable delta GBL length counting - bool enableDeltaGBLLenCount; + /// Enable GBL length counting + bool enableGBLLengthCount; + /// End address of the current storage slot that is being processed + uint32_t endOfStorageSlot; #endif #if defined(_SILICON_LABS_32B_SERIES_2) /// GBL Certificate diff --git a/platform/bootloader/storage/btl_storage.c b/platform/bootloader/storage/btl_storage.c index cfd996c173..f69e567562 100644 --- a/platform/bootloader/storage/btl_storage.c +++ b/platform/bootloader/storage/btl_storage.c @@ -122,7 +122,7 @@ static int32_t installImageFromSlot(int32_t slotId) return BOOTLOADER_ERROR_STORAGE_BOOTLOAD; } #if defined (BTL_PARSER_SUPPORT_DELTA_DFU) - deltaGBLLength = parseContext.parserContext.deltaGBLLength; + deltaGBLLength = parseContext.parserContext.gblLength; if ((parseContext.imageProperties.contents & BTL_IMAGE_CONTENT_DELTA) && ((parseContext.imageProperties.contents & BTL_IMAGE_CONTENT_SE) || (parseContext.imageProperties.contents & BTL_IMAGE_CONTENT_BOOTLOADER))) { diff --git a/platform/bootloader/storage/btl_storage_library.c b/platform/bootloader/storage/btl_storage_library.c index 6b6ff4cc5b..4a338351b6 100644 --- a/platform/bootloader/storage/btl_storage_library.c +++ b/platform/bootloader/storage/btl_storage_library.c @@ -34,6 +34,8 @@ #include "btl_crc32.h" #include "common.h" #include "patch.h" +#include "core/btl_reset.h" +#include "btl_reset_info.h" #endif #if defined(__GNUC__) @@ -273,6 +275,7 @@ int32_t storage_initParseSlot(uint32_t slotId, #if defined (BTL_PARSER_SUPPORT_DELTA_DFU) context->parserContext.deltaPatchAddress = slot.address; + context->parserContext.endOfStorageSlot = slot.address + slot.length; #endif return BOOTLOADER_OK; @@ -619,7 +622,8 @@ static bool bootloadFromSlot(BootloaderParserContext_t *context, is_end_of_patch }; - uint32_t temp_deltaLength = context->parserContext.deltaGBLLength; + uint32_t gblLength = context->parserContext.gblLength; + uint32_t endOfSlot = context->parserContext.endOfStorageSlot; #endif //BTL_PARSER_SUPPORT_DELTA_DFU parser_init(&(context->parserContext), @@ -628,9 +632,10 @@ static bool bootloadFromSlot(BootloaderParserContext_t *context, PARSER_FLAG_PARSE_CUSTOM_TAGS); #if defined(BTL_PARSER_SUPPORT_DELTA_DFU) - if (temp_deltaLength != 0x00) { - context->parserContext.deltaGBLLength = temp_deltaLength; - } + //Restore the value of deltaGBLLength in the parser context + context->parserContext.gblLength = gblLength; + //Restore the value of end of storage slot + context->parserContext.endOfStorageSlot = endOfSlot; #endif //BTL_PARSER_SUPPORT_DELTA_DFU // Run through the image and flash it while ((0 == context->errorCode) @@ -670,9 +675,10 @@ static bool bootloadFromSlot(BootloaderParserContext_t *context, //Valid app present. Reconstruct-image. uint32_t slot_space = (user_ctx.slotInfo.address + user_ctx.slotInfo.length) - user_ctx.new_fw_base_addr; + if (user_ctx.new_fw_size > slot_space) { - //Not enough space in slot. - return false; + //Not enough space in slot. Reset with appropriate reset reason + reset_resetWithReason(BOOTLOADER_RESET_REASON_NO_SLOT_SPACE); } ddfu_stat = ddfu_patch_apply(&io, &ddfuBuff, &user_ctx); } @@ -685,7 +691,7 @@ static bool bootloadFromSlot(BootloaderParserContext_t *context, } } else { //CRC Calculation has failed. - return false; + reset_resetWithReason(BOOTLOADER_RESET_REASON_DDFU_FAIL); } } else { BTL_DEBUG_PRINTLN("Re-construction complete."); @@ -703,13 +709,22 @@ static bool bootloadFromSlot(BootloaderParserContext_t *context, } } else { //CRC calculation has failed. - return false; + BTL_DEBUG_PRINTLN("CRC calculation failed."); + reset_resetWithReason(BOOTLOADER_RESET_REASON_BADCRC); } } } #endif //BTL_PARSER_SUPPORT_DELTA_DFU return true; } else { + #if defined(BTL_PARSER_SUPPORT_DELTA_DFU) + // Parsing did not complete. Check if we ran out of slot space. + if (context->errorCode == BOOTLOADER_ERROR_PARSER_OOB_WRITE) { + //Reset with BOOTLOADER_RESET_REASON_NO_SLOT_SPACE + BTL_DEBUG_PRINTLN("BOOTLOADER_ERROR_PARSER_OOB_WRITE. Reset device!"); + reset_resetWithReason(BOOTLOADER_RESET_REASON_NO_SLOT_SPACE); + } + #endif //BTL_PARSER_SUPPORT_DELTA_DFU return false; } } @@ -777,7 +792,7 @@ bool storage_bootloadApplicationFromSlot(uint32_t slotId, uint32_t version, uint &parseCtx, sizeof(BootloaderParserContext_t)); #if defined (BTL_PARSER_SUPPORT_DELTA_DFU) - parseCtx.parserContext.deltaGBLLength = deltaGBLLen; + parseCtx.parserContext.gblLength = deltaGBLLen; #else (void)deltaGBLLen; #endif//BTL_PARSER_SUPPORT_DELTA_DFU diff --git a/platform/common/inc/sl_code_classification.h b/platform/common/inc/sl_code_classification.h index a5bcc7694f..04e9d218d4 100644 --- a/platform/common/inc/sl_code_classification.h +++ b/platform/common/inc/sl_code_classification.h @@ -60,7 +60,7 @@ /// Prepend a function definition with this macro to place it in RAM. #define SL_CODE_RAM \ - __ramfunc + _Pragma("location =\"text_application_ram\"") #elif defined(__llvm__) diff --git a/platform/common/inc/sl_platform_version.h b/platform/common/inc/sl_platform_version.h index 879a16fe69..d68064885f 100644 --- a/platform/common/inc/sl_platform_version.h +++ b/platform/common/inc/sl_platform_version.h @@ -32,7 +32,7 @@ #define SL_PLATFORM_MAJOR_VERSION 5 #define SL_PLATFORM_MINOR_VERSION 0 -#define SL_PLATFORM_PATCH_VERSION 1 +#define SL_PLATFORM_PATCH_VERSION 2 #define SL_PLATFORM_VERSION ((SL_PLATFORM_MAJOR_VERSION << 8) \ | (SL_PLATFORM_MINOR_VERSION << 4) \ diff --git a/platform/common/toolchain/gcc/s2/linkerfile.ld.jinja b/platform/common/toolchain/gcc/s2/linkerfile.ld.jinja index e88d43bc2f..77ab11a30c 100644 --- a/platform/common/toolchain/gcc/s2/linkerfile.ld.jinja +++ b/platform/common/toolchain/gcc/s2/linkerfile.ld.jinja @@ -37,6 +37,11 @@ {%- set flash_size = device_flash_size | first %} {%- set flash_page_size = device_flash_page_size | first %} {%- set bootloader_reset_cause_size = 4 %} +{%- if linker_mpu is defined %} + {%- set ram_code_alignment = 32 %} +{%- else %} + {%- set ram_code_alignment = 4 %} +{%- endif %} {%- if bootloader_enable %} {%- if memory_flash_start is defined %} @@ -189,19 +194,19 @@ SECTIONS __bss_start__ = .; *(SORT_BY_ALIGNMENT(.bss*)) *(COMMON) - . = ALIGN(4); + . = ALIGN({{ram_code_alignment}}); __bss_end__ = .; } > RAM text_application_ram : { - . = ALIGN(4); + . = ALIGN({{ram_code_alignment}}); __vma_ramfuncs_start__ = .; __text_application_ram_start__ = .; *(text_application_ram) - . = ALIGN(4); + . = ALIGN({{ram_code_alignment}}); __vma_ramfuncs_end__ = .; __text_application_ram_end__ = .; } > RAM AT > FLASH diff --git a/platform/common/toolchain/gcc/s30/linkerfile.ld.jinja b/platform/common/toolchain/gcc/s30/linkerfile.ld.jinja index 0284aed428..d4660c14aa 100644 --- a/platform/common/toolchain/gcc/s30/linkerfile.ld.jinja +++ b/platform/common/toolchain/gcc/s30/linkerfile.ld.jinja @@ -36,6 +36,11 @@ {%- set flash_page_size = device_flash_page_size | first %} {%- set bootloader_reset_cause_size = 4 %} {%- set secure_flash_size = 0 %} +{%- if linker_mpu is defined %} + {%- set ram_code_alignment = 32 %} +{%- else %} + {%- set ram_code_alignment = 4 %} +{%- endif %} {#- Use Secure aliases #} {% if trustzone_secure is defined %} @@ -197,7 +202,7 @@ SECTIONS text_ram : { - . = ALIGN(4); + . = ALIGN({{ram_code_alignment}}); __vma_ramfuncs_start__ = .; /* text_application_ram */ __text_application_ram_start__ = .; @@ -279,7 +284,7 @@ SECTIONS __text_ccv_end__ = .; {%- endif %} - . = ALIGN(4); + . = ALIGN({{ram_code_alignment}}); __vma_ramfuncs_end__ = .; } > RAM_ALIAS AT > FLASH diff --git a/platform/common/toolchain/iar/s2/linkerfile.icf.jinja b/platform/common/toolchain/iar/s2/linkerfile.icf.jinja index abe170586e..66a3d771e6 100644 --- a/platform/common/toolchain/iar/s2/linkerfile.icf.jinja +++ b/platform/common/toolchain/iar/s2/linkerfile.icf.jinja @@ -7,6 +7,11 @@ {%- set flash_addr = device_flash_addr | first | default(0, true) %} {%- set flash_size = device_flash_size | first %} {%- set flash_page_size = device_flash_page_size | first %} +{%- if linker_mpu is defined %} + {%- set ram_code_alignment = 32 %} +{%- else %} + {%- set ram_code_alignment = 8 %} +{%- endif %} {%- if bootloader_enable %} {%- if memory_flash_start is defined %} @@ -171,19 +176,37 @@ define block application with fixed order readonly }; -define block text_application_ram with alignment = 8 +define block text_application_ram with alignment = {{ram_code_alignment}} { readwrite code section text_application_ram, }; -define block text_application_ram_init with alignment = 8 +define block text_application_ram_init with alignment = {{ram_code_alignment}} { readonly code section text_application_ram_init, }; -initialize by copy +{%- if linker_mpu is defined %} +define block ram_alignment_padding with alignment = {{ram_code_alignment}} {}; +keep { block ram_alignment_padding }; +{%- endif %} + +define block text_ram with alignment = {{ram_code_alignment}}, fixed order +{ + block text_application_ram, +{%- if linker_mpu is defined %} + block ram_alignment_padding, +{%- endif %} +}; + +define block text_ram_init with alignment = {{ram_code_alignment}} +{ + block text_application_ram_init, +}; + +initialize manually { - section text_application_ram, + readonly section text_application_ram, }; {%- endif %} @@ -240,14 +263,14 @@ place at start of ROM_region { block apploader }; place in ROM_region { block application, - block text_application_ram_init, + block text_ram_init, }; {%- else %} "application": place at start of ROM_region { block application, - block text_application_ram_init, + block text_ram_init, }; {%- endif %} {%- endif %} @@ -274,7 +297,7 @@ place at start of RAM_region { {%- if not bootloader_enable %} "ram_code": place in RAM_region { - block text_application_ram, + block text_ram, }; {%- endif %} diff --git a/platform/common/toolchain/iar/s30/linkerfile.icf.jinja b/platform/common/toolchain/iar/s30/linkerfile.icf.jinja index 0afba0b28c..f1dbc72ce5 100644 --- a/platform/common/toolchain/iar/s30/linkerfile.icf.jinja +++ b/platform/common/toolchain/iar/s30/linkerfile.icf.jinja @@ -8,6 +8,11 @@ {%- set flash_size = device_flash_size | first %} {%- set flash_page_size = device_flash_page_size | first %} {%- set secure_flash_size = 0 %} +{%- if linker_mpu is defined %} + {%- set ram_code_alignment = 32 %} +{%- else %} + {%- set ram_code_alignment = 8 %} +{%- endif %} {#- Use Secure aliases #} {%- if trustzone_secure is defined %} @@ -219,7 +224,7 @@ define block application with fixed order {%- for component in code_classification_components %} -define block text_{{component}}_ram with alignment = 8 +define block text_{{component}}_ram with alignment = {{ram_code_alignment}} { {%- for selection in code_classification_selections %} {%- if selection['component'] == component %} @@ -231,7 +236,7 @@ define block text_{{component}}_ram with alignment = 8 {%- endif %} }; -define block text_{{component}}_ram_init with alignment = 8 +define block text_{{component}}_ram_init with alignment = {{ram_code_alignment}} { {%- for selection in code_classification_selections %} {%- if selection['component'] == component %} @@ -243,21 +248,21 @@ define block text_{{component}}_ram_init with alignment = 8 {%- endif %} }; -initialize by copy +initialize manually { {%- for selection in code_classification_selections %} {%- if selection['component'] == component %} - section text_{{selection['component']}}_*{{selection['class']}}*, + readonly section text_{{selection['component']}}_*{{selection['class']}}*, {%- endif %} {%- endfor %} {%- if "timecritical" in code_classification_standard_selections %} - section text_{{component}}_*timecritical*, + readonly section text_{{component}}_*timecritical*, {%- endif %} }; {%- endfor %} -define block text_ram_objects with alignment = 8 +define block text_ram_objects with alignment = {{ram_code_alignment}} { {%- for lib in ram_libraries %} readwrite code object {{lib}}.a, @@ -273,7 +278,7 @@ define block text_ram_objects with alignment = 8 {%- endfor %} }; -define block text_ram_objects_init with alignment = 8 +define block text_ram_objects_init with alignment = {{ram_code_alignment}} { {%- for lib in ram_libraries %} readonly code section *_init object {{lib}}.a, @@ -289,39 +294,61 @@ define block text_ram_objects_init with alignment = 8 {%- endfor %} }; -initialize by copy +initialize manually { {%- for lib in ram_libraries %} - object {{lib}}.a, + readonly object {{lib}}.a, {%- endfor %} {%- for object in iar_ram_objects %} - object {{object}}.o, + readonly object {{object}}.o, {%- endfor %} {%- for object in silabs_ram_objects %} - object {{object}}.o, + readonly object {{object}}.o, {%- endfor %} {%- for object in third_party_ram_objects %} - object {{object}}.o, + readonly object {{object}}.o, {%- endfor %} }; -{%- if linker_mpu is defined %} -define block text_application_ram with alignment = 32 -{%- else %} -define block text_application_ram with alignment = 8 -{%- endif %} +define block text_application_ram with alignment = {{ram_code_alignment}} { readwrite code section text_application_ram, }; -define block text_application_ram_init with alignment = 8 +define block text_application_ram_init with alignment = {{ram_code_alignment}} { readonly code section text_application_ram_init, }; -initialize by copy +{%- if linker_mpu is defined %} +define block ram_alignment_padding with alignment = 32 {}; +keep { block ram_alignment_padding }; +{%- endif %} + +initialize manually +{ + readonly section text_application_ram, +}; + +define block text_ram with alignment = {{ram_code_alignment}}, fixed order +{ + {%- for component in code_classification_components %} + block text_{{component}}_ram, + {%- endfor %} + block text_ram_objects, + block text_application_ram, +{%- if linker_mpu is defined %} + block ram_alignment_padding, +{%- endif %} +}; + +define block text_ram_init with alignment = {{ram_code_alignment}} { - section text_application_ram, + {%- for component in code_classification_components %} + block text_{{component}}_ram_init, + {%- endfor %} + block text_ram_objects_init, + block text_application_ram_init, }; {%- endif %} @@ -391,22 +418,14 @@ place at start of ROM_region { block apploader }; place in ROM_region { block application, -{%- for component in code_classification_components %} - block text_{{component}}_ram_init, -{%- endfor %} - block text_ram_objects_init, - block text_application_ram_init, + block text_ram_init, }; {%- else %} "application": place at start of ROM_region { block application, -{%- for component in code_classification_components %} - block text_{{component}}_ram_init, -{%- endfor %} - block text_ram_objects_init, - block text_application_ram_init, + block text_ram_init, }; {%- endif %} {%- endif %} @@ -433,11 +452,7 @@ place at start of RAM_region { {%- if not bootloader_enable %} "ram_code": place in RAM_region { -{%- for component in code_classification_components %} - block text_{{component}}_ram, -{%- endfor %} - block text_ram_objects, - block text_application_ram, + block text_ram, }; {%- endif %} diff --git a/platform/documentation/release-highlights.txt b/platform/documentation/release-highlights.txt index 7058e93f61..330112b60b 100644 --- a/platform/documentation/release-highlights.txt +++ b/platform/documentation/release-highlights.txt @@ -1,8 +1,2 @@ -Platform 5.0.1 -- Added missing EFR32xG26 devices to pintool. -- Added support for EFR32BG27C320F768IJ39. -- Gecko Bootloader - - Added Delta DFU for Application upgrade. -- RAIL 5.0.1 - - Added support of automatic LNA bypass on the EFR32xG25 parts. - +Platform 5.0.2 +- Targeted quality improvements and bug fixes. diff --git a/platform/emdrv/nvm3/lib/libnvm3_CM33_gcc.a b/platform/emdrv/nvm3/lib/libnvm3_CM33_gcc.a index 6326549197..ac3acd03b3 100644 --- a/platform/emdrv/nvm3/lib/libnvm3_CM33_gcc.a +++ b/platform/emdrv/nvm3/lib/libnvm3_CM33_gcc.a @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5c84902f15e5d50676c788e36fb77ba6c31e13c9e9958eb3807492d76aea84fc +oid sha256:816f7b43d4f9b2da6572b8cf5e7ec9f05b55f45d87485acc33c7ebce79f8b6b3 size 33522 diff --git a/platform/emdrv/nvm3/lib/libnvm3_CM33_iar.a b/platform/emdrv/nvm3/lib/libnvm3_CM33_iar.a index bcc8b32ac0..ad69a4e6c6 100644 --- a/platform/emdrv/nvm3/lib/libnvm3_CM33_iar.a +++ b/platform/emdrv/nvm3/lib/libnvm3_CM33_iar.a @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b3c71bef5259468357416504cee9ff4830cd6616b21283a94cf24e4a963a67aa +oid sha256:a5006ee823e53dd7dcf87885392a4c788195e96891858dd8b98bee71f9f0d1bf size 113084 diff --git a/platform/emdrv/nvm3/lib/libnvm3_CM4_gcc.a b/platform/emdrv/nvm3/lib/libnvm3_CM4_gcc.a index c6b3e22bd0..66708873bc 100644 --- a/platform/emdrv/nvm3/lib/libnvm3_CM4_gcc.a +++ b/platform/emdrv/nvm3/lib/libnvm3_CM4_gcc.a @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cf0bef79823ac7ddb6649ca0606fd3103b0cfc83191d32529391abaa4f059b13 +oid sha256:00503857fc1ed5b2c544592553547fd2728a2510a3ff18e21b10ab516cf97e34 size 33698 diff --git a/platform/emdrv/nvm3/lib/libnvm3_CM4_iar.a b/platform/emdrv/nvm3/lib/libnvm3_CM4_iar.a index b961947788..4b6b2900e6 100644 --- a/platform/emdrv/nvm3/lib/libnvm3_CM4_iar.a +++ b/platform/emdrv/nvm3/lib/libnvm3_CM4_iar.a @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:54153cf401b6d77260c7b59c9c40dea8e047894eb8dcf6e0f6ea7e31de151940 +oid sha256:fc651d46c9ca8123e2431b5cfdb058c924d640ee688355b322de72bfdb3fccd4 size 113814 diff --git a/platform/emdrv/spidrv/src/spidrv.c b/platform/emdrv/spidrv/src/spidrv.c index 4c2d627bdc..fecc96b5f4 100644 --- a/platform/emdrv/spidrv/src/spidrv.c +++ b/platform/emdrv/spidrv/src/spidrv.c @@ -384,11 +384,6 @@ static Ecode_t SPIDRV_InitUsart(SPIDRV_Handle_t handle, SPIDRV_Init_t *initData) | USART_ROUTEPEN_CLKPEN | USART_ROUTEPEN_CSPEN; #elif defined (_GPIO_USART_ROUTEEN_MASK) - GPIO->USARTROUTE[spiPortNum].ROUTEEN = GPIO_USART_ROUTEEN_TXPEN - | GPIO_USART_ROUTEEN_RXPEN - | GPIO_USART_ROUTEEN_CLKPEN - | GPIO_USART_ROUTEEN_CSPEN; - GPIO->USARTROUTE[spiPortNum].TXROUTE = ((uint32_t)initData->portTx << _GPIO_USART_TXROUTE_PORT_SHIFT) | ((uint32_t)initData->pinTx @@ -408,6 +403,11 @@ static Ecode_t SPIDRV_InitUsart(SPIDRV_Handle_t handle, SPIDRV_Init_t *initData) << _GPIO_USART_CSROUTE_PORT_SHIFT) | ((uint32_t)initData->pinCs << _GPIO_USART_CSROUTE_PIN_SHIFT); + + GPIO->USARTROUTE[spiPortNum].ROUTEEN = GPIO_USART_ROUTEEN_TXPEN + | GPIO_USART_ROUTEEN_RXPEN + | GPIO_USART_ROUTEEN_CLKPEN + | GPIO_USART_ROUTEEN_CSPEN; #else handle->peripheral.usartPort->ROUTE = USART_ROUTE_TXPEN | USART_ROUTE_RXPEN @@ -431,10 +431,6 @@ static Ecode_t SPIDRV_InitUsart(SPIDRV_Handle_t handle, SPIDRV_Init_t *initData) | USART_ROUTEPEN_RXPEN | USART_ROUTEPEN_CLKPEN; #elif defined (GPIO_USART_ROUTEEN_TXPEN) - GPIO->USARTROUTE[spiPortNum].ROUTEEN = GPIO_USART_ROUTEEN_TXPEN - | GPIO_USART_ROUTEEN_RXPEN - | GPIO_USART_ROUTEEN_CLKPEN; - GPIO->USARTROUTE[spiPortNum].TXROUTE = ((uint32_t)initData->portTx << _GPIO_USART_TXROUTE_PORT_SHIFT) | ((uint32_t)initData->pinTx @@ -449,6 +445,10 @@ static Ecode_t SPIDRV_InitUsart(SPIDRV_Handle_t handle, SPIDRV_Init_t *initData) << _GPIO_USART_CLKROUTE_PORT_SHIFT) | ((uint32_t)initData->pinClk << _GPIO_USART_CLKROUTE_PIN_SHIFT); + + GPIO->USARTROUTE[spiPortNum].ROUTEEN = GPIO_USART_ROUTEEN_TXPEN + | GPIO_USART_ROUTEEN_RXPEN + | GPIO_USART_ROUTEEN_CLKPEN; #else handle->peripheral.usartPort->ROUTE = USART_ROUTE_TXPEN | USART_ROUTE_RXPEN diff --git a/platform/emlib/inc/em_ldma.h b/platform/emlib/inc/em_ldma.h index 5a9bc5f95b..7b81b756c8 100644 --- a/platform/emlib/inc/em_ldma.h +++ b/platform/emlib/inc/em_ldma.h @@ -948,8 +948,13 @@ typedef union { uint32_t syncSet : 8; /**< Set bits in LDMA_CTRL.SYNCTRIG register. */ uint32_t syncClr : 8; /**< Clear bits in LDMA_CTRL.SYNCTRIG register. */ uint32_t reserved1 : 16; /**< Reserved. */ +#if defined(_LDMA_CH_CTRL_EXTEND_MASK) + uint32_t matchEn : 8; /**< Sync trigger match enable. */ + uint32_t matchVal : 8; /**< Sync trigger match value. */ +#else uint32_t matchVal : 8; /**< Sync trigger match value. */ uint32_t matchEn : 8; /**< Sync trigger match enable. */ +#endif uint32_t reserved2 : 16; /**< Reserved. */ uint32_t linkMode : 1; /**< Select absolute or relative link address. */ diff --git a/platform/hwconf_data/hwconfig.hwdata b/platform/hwconf_data/hwconfig.hwdata index f2f7bb7328..0ac665cbef 100644 --- a/platform/hwconf_data/hwconfig.hwdata +++ b/platform/hwconf_data/hwconfig.hwdata @@ -1,159 +1,139 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - diff --git a/platform/peripheral/component/hal_dcdc_coulomb_counter.slcc b/platform/peripheral/component/hal_dcdc_coulomb_counter.slcc index 980d47332c..06666304c0 100644 --- a/platform/peripheral/component/hal_dcdc_coulomb_counter.slcc +++ b/platform/peripheral/component/hal_dcdc_coulomb_counter.slcc @@ -16,6 +16,8 @@ include: file_list: - path: "sl_hal_dcdc_coulomb_counter.h" - path: "sl_hal_dcdc_coulomb_counter_compat.h" + - path: "peripheral_dcdc_coulomb_counter.h" + - path: "peripheral_dcdc_coulomb_counter_compat.h" provides: - name: hal_dcdc_coulomb_counter requires: diff --git a/platform/peripheral/component/hal_etampdet.slcc b/platform/peripheral/component/hal_etampdet.slcc index 0ca6086c01..bee65e89ac 100644 --- a/platform/peripheral/component/hal_etampdet.slcc +++ b/platform/peripheral/component/hal_etampdet.slcc @@ -16,6 +16,8 @@ include: file_list: - path: "sl_hal_etampdet.h" - path: "sl_hal_etampdet_compat.h" + - path: "peripheral_etampdet.h" + - path: "peripheral_etampdet_compat.h" provides: - name: hal_etampdet requires: diff --git a/platform/peripheral/component/hal_keyscan.slcc b/platform/peripheral/component/hal_keyscan.slcc index 8c3cd0f910..b7ae173671 100644 --- a/platform/peripheral/component/hal_keyscan.slcc +++ b/platform/peripheral/component/hal_keyscan.slcc @@ -16,6 +16,8 @@ include: file_list: - path: "sl_hal_keyscan.h" - path: "sl_hal_keyscan_compat.h" + - path: "peripheral_keyscan.h" + - path: "peripheral_keyscan_compat.h" provides: - name: hal_keyscan requires: diff --git a/platform/peripheral/component/hal_sysrtc.slcc b/platform/peripheral/component/hal_sysrtc.slcc index ed98cd6cdc..b07b024c13 100644 --- a/platform/peripheral/component/hal_sysrtc.slcc +++ b/platform/peripheral/component/hal_sysrtc.slcc @@ -16,6 +16,8 @@ include: file_list: - path: "sl_hal_sysrtc.h" - path: "sl_hal_sysrtc_compat.h" + - path: "peripheral_sysrtc.h" + - path: "peripheral_sysrtc_compat.h" provides: - name: hal_sysrtc requires: diff --git a/platform/peripheral/inc/peripheral_dcdc_coulomb_counter.h b/platform/peripheral/inc/peripheral_dcdc_coulomb_counter.h new file mode 100644 index 0000000000..2fa6c35e7a --- /dev/null +++ b/platform/peripheral/inc/peripheral_dcdc_coulomb_counter.h @@ -0,0 +1,31 @@ +/***************************************************************************//** + * @file + * @brief DCDC Coulomb Counter (DCDC_COULOMB_COUNTER) peripheral API + ******************************************************************************* + * # License + * Copyright 2022 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#include "sl_hal_dcdc_coulomb_counter.h" diff --git a/platform/peripheral/inc/peripheral_dcdc_coulomb_counter_compat.h b/platform/peripheral/inc/peripheral_dcdc_coulomb_counter_compat.h new file mode 100644 index 0000000000..0148e96fa7 --- /dev/null +++ b/platform/peripheral/inc/peripheral_dcdc_coulomb_counter_compat.h @@ -0,0 +1,31 @@ +/***************************************************************************//** + * @file + * @brief DCDC_COULOMB_COUNTER Compatibility Layer. + ******************************************************************************* + * # License + * Copyright 2023 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#include "sl_hal_dcdc_coulomb_counter_compat.h" diff --git a/platform/peripheral/inc/peripheral_etampdet.h b/platform/peripheral/inc/peripheral_etampdet.h new file mode 100644 index 0000000000..e3f79873dd --- /dev/null +++ b/platform/peripheral/inc/peripheral_etampdet.h @@ -0,0 +1,31 @@ +/***************************************************************************//** + * @file + * @brief ETAMPDET (External Tamper Detection) peripheral API + ******************************************************************************* + * # License + * Copyright 2022 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#include "sl_hal_etampdet.h" diff --git a/platform/peripheral/inc/peripheral_etampdet_compat.h b/platform/peripheral/inc/peripheral_etampdet_compat.h new file mode 100644 index 0000000000..8e84ad3021 --- /dev/null +++ b/platform/peripheral/inc/peripheral_etampdet_compat.h @@ -0,0 +1,31 @@ +/***************************************************************************//** + * @file + * @brief ETAMPDET Compatibility Layer. + ******************************************************************************* + * # License + * Copyright 2023 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#include "sl_hal_etampdet_compat.h" diff --git a/platform/peripheral/inc/peripheral_keyscan.h b/platform/peripheral/inc/peripheral_keyscan.h new file mode 100644 index 0000000000..bb0e837e89 --- /dev/null +++ b/platform/peripheral/inc/peripheral_keyscan.h @@ -0,0 +1,31 @@ +/***************************************************************************//** + * @file + * @brief Keyscan (KEYSCAN) peripheral API + ******************************************************************************* + * # License + * Copyright 2020 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#include "sl_hal_keyscan.h" diff --git a/platform/peripheral/inc/peripheral_keyscan_compat.h b/platform/peripheral/inc/peripheral_keyscan_compat.h new file mode 100644 index 0000000000..2bef4c1be2 --- /dev/null +++ b/platform/peripheral/inc/peripheral_keyscan_compat.h @@ -0,0 +1,31 @@ +/***************************************************************************//** + * @file + * @brief KEYSCAN Compatibility Layer. + ******************************************************************************* + * # License + * Copyright 2023 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#include "sl_hal_keyscan_compat.h" diff --git a/platform/peripheral/inc/peripheral_sysrtc.h b/platform/peripheral/inc/peripheral_sysrtc.h new file mode 100644 index 0000000000..ba70253b14 --- /dev/null +++ b/platform/peripheral/inc/peripheral_sysrtc.h @@ -0,0 +1,31 @@ +/***************************************************************************//** + * @file + * @brief System Real Time Counter (SYSRTC) peripheral API + ******************************************************************************* + * # License + * Copyright 2020 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#include "sl_hal_sysrtc.h" diff --git a/platform/peripheral/inc/peripheral_sysrtc_compat.h b/platform/peripheral/inc/peripheral_sysrtc_compat.h new file mode 100644 index 0000000000..04bf8ab81a --- /dev/null +++ b/platform/peripheral/inc/peripheral_sysrtc_compat.h @@ -0,0 +1,31 @@ +/***************************************************************************//** + * @file + * @brief SYSRTC Compatibility Layer. + ******************************************************************************* + * # License + * Copyright 2023 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +#include "sl_hal_sysrtc_compat.h" diff --git a/platform/radio/efr32_multiphy_configurator/__pycache__/ConfigurationWrapper.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/__pycache__/ConfigurationWrapper.cpython-310.pyc index c417ddc1af023004171695fa6a5fe5f3291ac0c0..acab8366e25547de6a452455eb290db669f79394 100644 GIT binary patch delta 20 acmey*@t=b`pO=@50SE$|&Tr%{VF3U;t_4B> delta 20 acmey*@t=b`pO=@50SGMDxNqbxVF3U-;ROu< diff --git a/platform/radio/efr32_multiphy_configurator/__pycache__/set_pymath_paths.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/__pycache__/set_pymath_paths.cpython-310.pyc index c073a4837e1c6e82048873e38783b3c4ffc0df5a..64ad98b17a2b930e0934d4c0a8258da7d523c96d 100644 GIT binary patch delta 20 acmZ3)vxtW~pO=@50SE$}&Tr%vX9EB&zXUb_ delta 20 acmZ3)vxtW~pO=@50SK(txNqbZX9EB%@&o|@ diff --git a/platform/radio/efr32_multiphy_configurator/common/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/common/__pycache__/__init__.cpython-310.pyc index f7ca881368a01c033535ec5fb818c912efa84c26..72160baa81a131144a8d99e99b4401ec0fddb7d0 100644 GIT binary patch delta 20 acmX@ie3+R#pO=@50SE$|&Tr)2!3Y2{mjwX; delta 20 acmX@ie3+R#pO=@50SGMDxNqd%!3Y2`$^^^+ diff --git a/platform/radio/efr32_multiphy_configurator/common/__pycache__/categoryinterface.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/common/__pycache__/categoryinterface.cpython-310.pyc index da151dcc8d6b46a0681588c11ad514aebf38ddb1..7cd770e5c0f9be1066d13be1182697c1c7891a2f 100644 GIT binary patch delta 20 acmca1ctemopO=@50SE$|&Tr&C%K-p4-UVX- delta 20 acmca1ctemopO=@50SGMDxNqb>%K-p45d|&) diff --git a/platform/radio/efr32_multiphy_configurator/common/__pycache__/chipconfiguratorinterface.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/common/__pycache__/chipconfiguratorinterface.cpython-310.pyc index bc3264afd44b4e8ad25da75be5a97d245b9c4d53..dca3b354b4ccbce9dc292ed13dd4992fecda68e3 100644 GIT binary patch delta 20 acmca5aZ7?bpO=@50SE$|&Tr)Q=K%mXE(H4k delta 20 acmca5aZ7?bpO=@50SGMDxNqe4=K%mWVFbni diff --git a/platform/radio/efr32_multiphy_configurator/common/__pycache__/inputinterface.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/common/__pycache__/inputinterface.cpython-310.pyc index 09a7de6acab142bb7e761e2534a966082a979781..4aa6ebf358c1f7891af0962a5fc315f09ff71b7c 100644 GIT binary patch delta 20 acmey&`I(bDpO=@50SE$|&Tr&?!2$p}@&%v( delta 20 acmey&`I(bDpO=@50SGMDxNqcs!2$p}B?W5$ diff --git a/platform/radio/efr32_multiphy_configurator/common/__pycache__/pyjavaproperties.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/common/__pycache__/pyjavaproperties.cpython-310.pyc index 9b8f8f1d539189b124a4d29a974d0f8092d7eeb7..0deb52b7046a7a453196370504b8f79afbb9afe2 100644 GIT binary patch delta 20 acmexp_R)+xpO=@50SE$|&Tr&SlLi1l4F!t; delta 20 acmexp_R)+xpO=@50SGMDxNqc6lLi1kKm}F+ diff --git a/platform/radio/efr32_multiphy_configurator/efr32multiphyconfig/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/efr32multiphyconfig/__pycache__/__init__.cpython-310.pyc index 92f32af43bce554376f9c7ad4d2b35b37dcb6565..1d5fbd34aa41f051e446ba3c5db1d8ae48f26e20 100644 GIT binary patch delta 20 acmaFB`hb-?pO=@50SE$|&Tr(t$^-y6Xa!vW delta 20 acmaFB`hb-?pO=@50SGMDxNqdX$^-y5n*}HU diff --git a/platform/radio/efr32_multiphy_configurator/efr32multiphyconfig/__pycache__/_version.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/efr32multiphyconfig/__pycache__/_version.cpython-310.pyc index ff57c9034c4dabf973321a9db5a2b320a50f26ea..7e694843814ad5d971c7bc4429e1fd83cdae49d4 100644 GIT binary patch delta 26 gcmeyx_=}M{pO=@50SInfc{!2WgxO5baH7)=0BU3i9RL6T delta 26 gcmeyx_=}M{pO=@50SGMDxKHFZVK&h-n&`9x09kVevj6}9 diff --git a/platform/radio/efr32_multiphy_configurator/efr32multiphyconfig/__pycache__/efr32multiphycategory.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/efr32multiphyconfig/__pycache__/efr32multiphycategory.cpython-310.pyc index 13635f4fd6980f4066f5504532ea52cba110dbd0..0c7fbdafac0598dfc86404f46c8622a419693b7a 100644 GIT binary patch delta 20 acmZqRXyD+^=jG*M0D=Ig^BcLpG6Mi9)da)< delta 20 acmZqRXyD+^=jG*M00PT3?i;zkG6Mi92n3G+ diff --git a/platform/radio/efr32_multiphy_configurator/efr32multiphyconfig/__pycache__/efr32multiphycfginput.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/efr32multiphyconfig/__pycache__/efr32multiphycfginput.cpython-310.pyc index d4a2d68dda3f1e01c0d7edd7dea6e0972d43bb7d..347f9fcfdfe2f713b544cb2b0c05c6187cff8fd6 100644 GIT binary patch delta 20 acmZ3%v4Vp;pO=@50SE$|&Tr(FWdQLd&2 delta 20 acmZ3%v4Vp;pO=@50SGMDxNqc^WdQ&!NdyQ0 diff --git a/platform/radio/efr32_multiphy_configurator/efr32multiphyconfig/__pycache__/efr32multiphyconfigurator.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/efr32multiphyconfig/__pycache__/efr32multiphyconfigurator.cpython-310.pyc index 6c5dcb6f847cdaf2f9c2bb4c857153783f1551ac..feac7c73f73ecdfc90807f13c5ab8ea15edf7781 100644 GIT binary patch delta 20 acmX>iengx*pO=@50SE$|&Tr)2$qfKCnFTfg delta 20 acmX>iengx*pO=@50SGMDxNqd%$qfKB%mo1e diff --git a/platform/radio/efr32_multiphy_configurator/efr32multiphyconfig/_version.py b/platform/radio/efr32_multiphy_configurator/efr32multiphyconfig/_version.py index db643e97d2..502ff26cab 100644 --- a/platform/radio/efr32_multiphy_configurator/efr32multiphyconfig/_version.py +++ b/platform/radio/efr32_multiphy_configurator/efr32multiphyconfig/_version.py @@ -1,5 +1,5 @@ -__version__ = '2402.4.2' +__version__ = '2402.6.1' diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/__pycache__/__init__.cpython-310.pyc index 5ea556c4b0e790b10321956ed878998df26a313d..f57079faf458f35f52776b368ae741fca3645075 100644 GIT binary patch delta 20 acmbQtG?|GzpO=@50SE$|&Tr)AU<3du^8@by delta 20 acmbQtG?|GzpO=@50SGMDxNqdD=UT);Bs delta 20 ZcmZpXZjt8B=jG*M00PT3?i;x)c>yb41WNz_ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/__pycache__/__init__.cpython-310.pyc index 7fc2cdcf599f118dbfa27437f5636ae021cba30a..d1a77747666a80fc90002be67af102b751c076c6 100644 GIT binary patch delta 19 ZcmaFI_>Pe~pO=@50SNZJc{!2$F#tJt29E#$ delta 19 ZcmaFI_>Pe~pO=@50SKzk&zs2o7yvdX1>^t# diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/__pycache__/__init__.cpython-310.pyc index 0f4c15ab6a1518e289ecb8b0b1e915eb2664af52..61226597f3b8d6bdda8d5b9c4020107987398ad2 100644 GIT binary patch delta 20 acmbQvG@Xe%pO=@50SE$|&Tr)AVFUmwlLPwz delta 20 acmbQvG@Xe%pO=@50SGMDxNqdlEY8=jG*M0D=Ig^BcMUaRC4=JOu&( delta 20 acmeAa>lEY8=jG*M00PT3?i;!PaRC4(i}~a%X6}4mUM>b82yi;Tk=yPp08J?dlK=n! delta 22 ccmX>(i}~a%X6}4mUM>b8uw3K5k=yPp08Cs4UH||9 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/__pycache__/AGC_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/__pycache__/AGC_register.cpython-310.pyc index 153e79b85abc575d037c42cae53cf79937f766f6..b3d9486ed6a0fc11608537e4009e3a43cd6298f2 100644 GIT binary patch delta 22 ccmdlwi*f5LM(%uGUM>b82yi;Tkz30b07(M{(*OVf delta 22 ccmdlwi*f5LM(%uGUM>b8uw3K5kz30b07y0ko&W#< diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/__pycache__/CRC.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/__pycache__/CRC.cpython-310.pyc index 258110c93e8cf0a710a695b1a5be919ac51483ca..4676cd941bdd1ed1576fa39e810ae4f2218ce429 100644 GIT binary patch delta 20 acmZqSYT@F}=jG*M0D=Ig^BcK;vH$=oz68|( delta 20 acmZqSYT@F}=jG*M00PT3?i;y(vH$=n@dTg% diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/__pycache__/CRC_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/__pycache__/CRC_field.cpython-310.pyc index a06a733f319b3ee8d26901a0f2257fc9e9630ca4..17ff8d147e5237ba0690f0469cde693584441ad1 100644 GIT binary patch delta 20 acmZ3jwpxulpO=@50SE$|&Tr&a5C#A;)dZ0M delta 20 acmZ3jwpxulpO=@50SGMDxNqcE5C#A;2n1XJ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/__pycache__/CRC_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/__pycache__/CRC_register.cpython-310.pyc index e88c85f4ac0fdcd71cc984a97d1e751d1c412c93..ac7dc5d316023adc4f0fec2b8dedf76297d8873b 100644 GIT binary patch delta 20 acmX>sb6AEupO=@50SE$|&Tr(l-~#|PCsb6AEupO=@50SGMDxNqdP-~#|OTLg;$ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/__pycache__/FRC.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/__pycache__/FRC.cpython-310.pyc index 96340fa787621979ab7474556a9b9c561de3c3de..f4eef284e02a1978d0ad6985740fce2595dd2171 100644 GIT binary patch delta 20 acmdm~xl@xnpO=@50SE$|&Tr&iCjtOAas@&F delta 20 acmdm~xl@xnpO=@50SGMDxNqcMCjtO9r3DQD diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/__pycache__/FRC_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/__pycache__/FRC_field.cpython-310.pyc index 07b7bdf53fdf892fe65bb40b1b540e269f50dcf6..602fe3d0400933d3a11f05516af8dd2fcbb1a6ec 100644 GIT binary patch delta 25 fcmccK&w9O|l{=r8mx}=i0-Vk_a&P5kJmU@kVYml2 delta 25 fcmccK&w9O|l{=r8mx}=iEZ4Xb82yi;Tk^4+H08gg|^8f$< delta 22 ccmcaUo$2~?ChmM*UM>b8uw3K5k^4+H08ZKlz5oCK diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/__pycache__/MODEM.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/__pycache__/MODEM.cpython-310.pyc index d42d3360de275a890271b6bbf59bdf6696a81828..26acb734fba1c29c89e6ab57c4b078ea94192b6d 100644 GIT binary patch delta 22 ccmbPtk#XKdM(%uGUM>b82yi;Tk$Z9m08XL?mjD0& delta 22 ccmbPtk#XKdM(%uGUM>b8uw3K5k$Z9m08P~fVgLXD diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/__pycache__/MODEM_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/__pycache__/MODEM_field.cpython-310.pyc index 7793526b7f07aff0f52390ed25780521ec26fa66..56dc6225fa5d16a9a9b44908115a380662be9c26 100644 GIT binary patch delta 28 icmaE}m-EeDPVRhOUM>b82yi;z$lc1#xRsmfVH^O2b8uw3Kb$lc1#xRsmfVH^O0*$7Pl diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/__pycache__/MODEM_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/__pycache__/MODEM_register.cpython-310.pyc index b9a5070fee87e2eef56466f1827dad176d150dab..f2a0f6853ffa57bcde5986b44d0e7a9e294a521b 100644 GIT binary patch delta 25 fcmbPmmwm!rcJ6#$UM>b82yi;z$i0=DvGpAQV$=ty delta 25 fcmbPmmwm!rcJ6#$UM>b8uw3Kb$i0=DvGpAQVQ2?) diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/__pycache__/RAC.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/__pycache__/RAC.cpython-310.pyc index bac5e75625d3c4a722bbb7eb5910a8a7fd1ea1d3..abbc534fb559a866371821033870d2d3cf22f594 100644 GIT binary patch delta 20 acmaE>|5l$npO=@50SE$|&Tr&?Bn|*SZ3XQB delta 20 acmaE>|5l$npO=@50SGMDxNqcsBn|*Rpar-9 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/__pycache__/RAC_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/__pycache__/RAC_field.cpython-310.pyc index 64169c303ca59e52802a89f875349ba536d0f5ea..d20addfe4061e4d37345beeb7685fb9f78116f5e 100644 GIT binary patch delta 28 icmexAo#X#>4(@zjUM>b82yi;z$lc1#xRsmf3pW6O;|Ll6 delta 28 icmexAo#X#>4(@zjUM>b8uw3Kb$lc1#xRsmf3pW6M*azhR diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/__pycache__/RAC_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/__pycache__/RAC_register.cpython-310.pyc index 43b099976962925e688c9777326f18697f4d9f8e..8affd8f5972f0ae2ec692e11eb3474b072bf30fd 100644 GIT binary patch delta 21 bcmeDF!qokRi94T{mx}=i0-Vk-2u8 delta 21 bcmeDF!qokRi94T{mx}=iEZ4X%$|pO=@50SE$|&Tr&C!vz31NCj#D delta 20 acmcaEdR>$|pO=@50SGMDxNqb>!vz30dj&NB diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/__pycache__/SYNTH.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/__pycache__/SYNTH.cpython-310.pyc index beb7ed552c0ef03b232fbd8091c12dcae792ba24..89655f9d379d63c8d0cf7ab8f6e7ca30e63914a7 100644 GIT binary patch delta 20 acmdldyib@rpO=@50SE$|&Tr)2%n1NA7X=ys delta 20 acmdldyib@rpO=@50SGMDxNqd%%n1N9N(AKq diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/__pycache__/SYNTH_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/__pycache__/SYNTH_field.cpython-310.pyc index 71221e65efac1b168f2f94e7e23ffdf5d53b6424..26c9a6c44368e93fe4f3601dcc8ec4a871ecdb8e 100644 GIT binary patch delta 22 ccmcaRkLm6_ChmM*UM>b82yi;Tkvpg#08qXLmjD0& delta 22 ccmcaRkLm6_ChmM*UM>b8uw3K5kvpg#08jA-VgLXD diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/__pycache__/SYNTH_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/__pycache__/SYNTH_register.cpython-310.pyc index 49c2778db13cd19eeff09e726dfad3e92788a867..423b0b8391d96e71d50be4e0b41ef73583feb853 100644 GIT binary patch delta 20 acmdm9wY`cvpO=@50SE$|&Tr(_u>}A?uLXwy delta 20 acmdm9wY`cvpO=@50SGMDxNqdvu>}A>;ssIw diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/__pycache__/__init__.cpython-310.pyc index 4e5b46826581595a77d5b8c3a6ba444cfdd345da..968b1de6d10be9acc626641dd0abe20da8f62430 100644 GIT binary patch delta 20 acmdm}xlxllpO=@50SE$|&Tr&iCISF8G6gCC delta 20 acmdm}xlxllpO=@50SGMDxNqcMCISF7Wd!vA diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/__pycache__/_version.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/__pycache__/_version.cpython-310.pyc index f27b4a71fe093e1a77717a59fb1bd8a7568e8feb..984782ab270f02fdc2eddc904144794854ef7426 100644 GIT binary patch delta 20 acmbQlG>M5jpO=@50SE$|&Tr&qX9NH#%LD8H delta 20 acmbQlG>M5jpO=@50SGMDxNqcUX9NH!{sXrF diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/__pycache__/device.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/__pycache__/device.cpython-310.pyc index 4cd85cab086198105777a06e9aa9a1539ec38bd9..88d52bc6b01a95b239bb1f7fe82a05d618fdd994 100644 GIT binary patch delta 20 acmeyO{Y9HQpO=@50SE$|&Tr&?DGC5T^9A?- delta 20 acmeyO{Y9HQpO=@50SGMDxNqcsDGC5TCI!O) diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/static/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/static/__pycache__/__init__.cpython-310.pyc index e8ef23124148ebd08c4c0734d19afc3b4984a0d4..ab5e6ecd6bb8e1b8ed90193baa730ccdbf3e95b6 100644 GIT binary patch delta 20 acmbQjI)#-xpO=@50SE$|&Tr)IWC8#yhy-~6 delta 20 acmbQjI)#-xpO=@50SGMDxNqd{WC8#xy97i4 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/static/base/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/static/base/__pycache__/__init__.cpython-310.pyc index 7af49b54c32f00608aabae5b34cf3bbd52b2e172..9dfd9524fe0ea79222b8359d66ee25dcd3924926 100644 GIT binary patch delta 20 acmbQsGM9xrpO=@50SE$|&Tr%vVgdjw%mfku delta 20 acmbQsGM9xrpO=@50SGMDxNqbZVgdjv{{!6s diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/static/base/__pycache__/device.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/static/base/__pycache__/device.cpython-310.pyc index a98dcde8d91b76556aadb0c991fcd7cbecf11d85..8d73b4b8d4478e0e342126d7be5fdb60d3cd4535 100644 GIT binary patch delta 20 acmeyH{x_XFpO=@50SE$|&Tr)YWDEdF=?19) delta 20 acmeyH{x_XFpO=@50SGMDxNqeCWDEdF90qg% diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/static/base/__pycache__/enumeration.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/static/base/__pycache__/enumeration.cpython-310.pyc index bd2d0abda3789e675aede2caff859aa9cbfc356b..39230f614aa5469ffe4d0bdbad16253150e7a86c 100644 GIT binary patch delta 20 acmdlkyj_?(pO=@50SE$|&Tr&i!wCQ~{{;mA delta 20 acmdlkyj_?(pO=@50SGMDxNqcM!wCQ~G6c{7 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/static/base/__pycache__/field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/static/base/__pycache__/field.cpython-310.pyc index af60ee7ba6402ed16f81d3e1b82d7ab3f53b43e3..7b86d179530500a0bb2bd47c85c03864e8ec1935 100644 GIT binary patch delta 20 acmX@Cdsvq{pO=@50SE$|&Tr)2AqD_Alm%)4 delta 20 acmX@Cdsvq{pO=@50SGMDxNqd%AqD_9#|1S2 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/static/base/__pycache__/peripheral.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/static/base/__pycache__/peripheral.cpython-310.pyc index 26afeac3368bc104ec402c1a226b26d90df33f42..084c88f89c4741c7cea4c07d8881c5ace774777a 100644 GIT binary patch delta 20 acmcbtbyLlgi(O$J8* delta 20 acmcbtbyp= delta 20 acmdnSyN#DSpO=@50SGMDxNqcM%?1E5F9f~- diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/static/common/__pycache__/regmapio.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/static/common/__pycache__/regmapio.cpython-310.pyc index 3f42348949e5bc39ab49600acf3d331ef6fc19f4..6d59a74384694d3dab1e074648f13824e7664a44 100644 GIT binary patch delta 22 ccmX>yf$_)$M(%uGUM>b82yi;Tk=xP(07?A?=Kufz delta 22 ccmX>yf$_)$M(%uGUM>b8uw3K5k=xP(07)b82yi;Tky|(g08Bpy0RR91 delta 22 ccmbPtf^psnM(%uGUM>b8uw3K5ky|(g084TO%m4rY diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/static/interface/__pycache__/iregmapenum.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/static/interface/__pycache__/iregmapenum.cpython-310.pyc index 09a15c62d939a7303008508ed4a7eb21eaf169e8..8e252bfba193e5ee1fd1eba4269683c02fd3fafa 100644 GIT binary patch delta 20 acmca7a!-UipO=@50SE$|&Tr%n<^ljXJOup! delta 20 acmca7a!-UipO=@50SGMDxNqbR<^ljWZv@By diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/static/interface/__pycache__/iregmapfield.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/static/interface/__pycache__/iregmapfield.cpython-310.pyc index 5fca9c1e1b17e23ab312b55938e1c7e55d75dc86..5033263783ae6f9d880dc68470858d67fd55d356 100644 GIT binary patch delta 20 acmbR5FyDbYpO=@50SE$|&Tr%vQ2+omssye8 delta 20 acmbR5FyDbYpO=@50SGMDxNqbZQ2+ol-2{06 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/static/interface/__pycache__/iregmapio.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/static/interface/__pycache__/iregmapio.cpython-310.pyc index c8df75b76660ae6037f1edd8916fff63e44606a5..f50bee561a635806a5b8db333373f23be1d887f9 100644 GIT binary patch delta 20 acmdm$uq%N(pO=@50SE$|&Tr(_Hvj-Vas^KS delta 20 acmdm$uq%N(pO=@50SGMDxNqdvHvj-Ur3D%Q diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/static/interface/__pycache__/iregmapperipheral.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/static/interface/__pycache__/iregmapperipheral.cpython-310.pyc index b7143760a355d08596cc105b4ca1ab6fd0898b45..23ea1fa657e373fc091db9de8cd5a8f7f02305f5 100644 GIT binary patch delta 20 acmez9{Lz^^pO=@50SE$|&Tr&?rU(E+=LRbP delta 20 acmez9{Lz^^pO=@50SGMDxNqcsrU(E+8U^+M diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/static/interface/__pycache__/iregmapregister.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg1/revA2/static/interface/__pycache__/iregmapregister.cpython-310.pyc index 3fb835bd8a50be44a1529e6cc13a55ff6276ef12..ec0f165f92b3b388dac1718c3abc77a8b0baf3a2 100644 GIT binary patch delta 20 acmbQ@I>nVcpO=@50SE$|&Tr)IR004rs0A4S delta 20 acmbQ@I>nVcpO=@50SGMDxNqd{R004q+XUnQ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/__pycache__/__init__.cpython-310.pyc index 87ad7481df759bf9a829a5f791bfd092565d68aa..73c58033e80835813a6932ede051bb4b1ce08ab3 100644 GIT binary patch delta 20 acmbQiG=qsdpO=@50SE$|&Tr)AWdr~!y953J delta 20 acmbQiG=qsdpO=@50SK(txNqd|V? delta 20 acmZ22zFM3+pO=@50SK(txNqcMzzqN}>jbv| diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/AGC_NS_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/AGC_NS_field.cpython-310.pyc index 0bd3096cf366d1a2c6a572a9826d8d26a40994e7..d67e8cbd9810f26f6f52873a68e7c990735398c9 100644 GIT binary patch delta 22 ccmZ25n|Z-(X6}4mUM>b82yi;Tk$dV{07q>Gng9R* delta 22 ccmZ25n|Z-(X6}4mUM>b8uv+83k$dV{07j<@M(%uGUM>b82yi;Tky|$y083s4`Tzg` delta 22 ccmdn7jB&>@M(%uGUM>b8uv+83ky|$y07{qz#sB~S diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/AGC_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/AGC_S.cpython-310.pyc index 4e0c3b8f11c64e04ce43cb005ce603db81b67c49..cfbb5ac44d184ea43311d47d1a795388aa88971b 100644 GIT binary patch delta 20 ZcmeAa?-b|G=jG*M0D=Ig^BcMAxB)C-1cd+q delta 20 ZcmeAa?-b|G=jG*M00OHu?i;!5xB)Ah1W^D0 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/AGC_S_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/AGC_S_field.cpython-310.pyc index ea4f6cadd4fec5a51b669c269b478601c88f80a3..61bde85524d3f09e1118f780bc07377cc1283a3c 100644 GIT binary patch delta 22 ccmX>%o%!5!X6}4mUM>b82yi;Tk^Asz08WVq8UO$Q delta 22 ccmX>%o%!5!X6}4mUM>b8uv+83k^Asz08PUN<^TWy diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/AGC_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/AGC_S_register.cpython-310.pyc index b106ff905b06df0257871b7d03b22b02a9f968fc..52d318d181d102aaa75e0ae656919a23235ca604 100644 GIT binary patch delta 22 ccmX@Igz?A{M(%uGUM>b82yi;Tk=rr|08JAH82|tP delta 22 ccmX@Igz?A{M(%uGUM>b8uv+83k=rr|08C8<b82yi;Tk^AZl097pqPXGV_ delta 22 ccmaE`k?FxkChmM*UM>b8uv+83k^AZl090oO8vpb82yi;Tkz0B?07>}<8UO$Q delta 22 ccmZ3sj%nFCChmM*UM>b8uv+83kz0B?07)|i<^TWy diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/MODEM_NS.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/MODEM_NS.cpython-310.pyc index 58377c11c1dcf1c2534486c247cd5c5d8c616dfa..6f9f6b92e2b0c8c141ac40af0a0aa969b6b26cd6 100644 GIT binary patch delta 20 acmdmNx!ICCpO=@50SE$|&Tr&iAp-z6$^}>e delta 20 acmdmNx!ICCpO=@50SK(txNqcMAp-z61O+4j diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/MODEM_NS_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/MODEM_NS_field.cpython-310.pyc index 6276389a89931c7a1dafaa72febf8a8c5d576eac..39ce6492c09fba3ea4d3dd93e13eba494182daba 100644 GIT binary patch delta 28 icmbQz#Wkgii#wl}mx}=i0-Vk_a<_6bZslg;Yy|*kD+av) delta 28 icmbQz#Wkgii#wl}mx}=itk$?Ua<_6bZslg;Yy|*iEe44I diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/MODEM_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/MODEM_NS_register.cpython-310.pyc index 0ea99ff6cc821f4149f05c32f96d3aec6c8601a0..8e709fcd8a8d5084c6a2147bbd058c5fa65bf7eb 100644 GIT binary patch delta 22 ccmdmVhk4T-X6}4mUM>b82yi;Tkz4&808@Jg^8f$< delta 22 ccmdmVhk4T-X6}4mUM>b8uv+83kz4&808+IEzW@LL diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/MODEM_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/MODEM_S.cpython-310.pyc index 6a5e525f8796e5c6b7cdbf36499412d7286bedc2..c930a57c266e595c03be425defbf33aa8936b2b6 100644 GIT binary patch delta 20 acmcab82yi;z$lc1#xRskJyB+|O9tgt# delta 28 icmezNkMr9b8uv+8Z$lc1#xRskJyB+|MAPA2D diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/MODEM_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/MODEM_S_register.cpython-310.pyc index 101fe65c600858ba5353db13b518ef56d9ed9b74..95f8a4a5cdd56eb5476dec15d45b3e2ac533fc95 100644 GIT binary patch delta 22 ccmca~jrr0wX6}4mUM>b82yi;Tk=y+>09Wn@L;wH) delta 22 ccmca~jrr0wX6}4mUM>b8uv+83k=y+>09Pmn5C8xG diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/RAC_NS.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/RAC_NS.cpython-310.pyc index 6fa8d8b7b1ed107210a2f78a62ce7adde6dd6cc4..108d0f685565c326385a4002ad4814a9375290b7 100644 GIT binary patch delta 20 ZcmeBo>UZMK=jG*M0D=Ig^BcKY6ag}G1cLwo delta 20 ZcmeBo>UZMK=jG*M00OHu?i;yT6ag`<1Wy0} diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/RAC_NS_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/RAC_NS_field.cpython-310.pyc index 1b9e94ef08d1b89e948c3f42af6634eae7dd3da5..7ad512c5dae3db11f0f187bfa4dfe8e1218219ab 100644 GIT binary patch delta 28 icmZ4XfNR+UF7A9@UM>b82yi;z$lc1#xRskpdIJD_RtL%e delta 28 icmZ4XfNR+UF7A9@UM>b8uv+8Z$lc1#xRskpdIJD@SO=B> diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/RAC_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/RAC_NS_register.cpython-310.pyc index 02256a8fd451433ad53d1e03f13b41cb8b340372..b17b796e643c992013a007a66bc835d48d7d5d5f 100644 GIT binary patch delta 25 fcmaF5jOFPv7VdmrUM>b82yi;z$i0=DF-jN!XA%b3 delta 25 fcmaF5jOFPv7VdmrUM>b8uv+8Z$i0=DF-jN!Wv~XM diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/RAC_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/RAC_S.cpython-310.pyc index b4be6e51a34af54f70f0416ec82503293d6aba8c..50057147363b0a489694fd6bbf3d78eaf829eca6 100644 GIT binary patch delta 20 acmZ4DxWth=pO=@50SE$|&Tr(NsQ>^rmIXfm delta 20 acmZ4DxWth=pO=@50SK(txNqd1sQ>^q&;<(s diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/RAC_S_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/RAC_S_field.cpython-310.pyc index cab97d16dd2a1838ad1980e090c915d788995789..30c10c0315eb91d6dbe044e421beef85bd1dbc43 100644 GIT binary patch delta 28 icmX?kh3n)MF7A9@UM>b82yi;z$lc1#xRsm9ZWRE5aR?Ov delta 28 icmX?kh3n)MF7A9@UM>b8uv+8Z$lc1#xRsm9ZWRE3a|hu7 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/RAC_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/RAC_S_register.cpython-310.pyc index 83f2a9f929bba16030dd27192d458fbfd1def58c..0ad3744fbf7f4ae5cae03f5bbd45d30b4e54354b 100644 GIT binary patch delta 25 fcmdnHfMxFj7VdmrUM>b82yi;z$i0=D(MSLQURefF delta 25 fcmdnHfMxFj7VdmrUM>b8uv+8Z$i0=D(MSLQT=xbY diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/RFCRC_NS.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/RFCRC_NS.cpython-310.pyc index 568f90a49b21e1495db4a42e0e692d6e559b3034..9ac4d0a452648b2f38572745939104ee2424a7dd 100644 GIT binary patch delta 20 acmcb~eUqCzpO=@50SE$|&Tr&C#|i*9D+N~o delta 20 acmcb~eUqCzpO=@50SK(txNqb>#|i*8Wd$Pu diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/RFCRC_NS_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/RFCRC_NS_field.cpython-310.pyc index 4765d30e09fa0d5e5c796c0c3813ffda19a54f11..4966163e6250d970d0bf5958b8410aef5828949a 100644 GIT binary patch delta 20 ZcmZqBZP4Y;=jG*M0D=Ig^BcKK#Q-iG1fc)` delta 20 ZcmZqBZP4Y;=jG*M00OHu?i;yF#Q-f<1Z@BS diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/RFCRC_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/RFCRC_NS_register.cpython-310.pyc index 0bd911215f9b76790dcde6c3828b1d768c852aa2..d87458670a405b5b68facdc375f9a54fa411f505 100644 GIT binary patch delta 20 acmdn5x?hz$pO=@50SE$|&Tr)2A_M?7&;?2W delta 20 acmdn5x?hz$pO=@50SK(txNqd%A_M?73I!Gb diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/RFCRC_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/RFCRC_S.cpython-310.pyc index afb4ea4e9e1ad5eaa0fffcc57e821fe1ee5394ad..14bc5d258cf0468cd62081f58a23dddb280a729b 100644 GIT binary patch delta 20 acmX@jeVUs)pO=@50SE$|&Tr&CzzP5~`volk delta 20 acmX@jeVUs)pO=@50SK(txNqb>zzP5~H3azp diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/RFCRC_S_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/RFCRC_S_field.cpython-310.pyc index 2641e7845e63ede26fdf60226aad5066b4131280..7a14a68037dbf07fc71838225ad8e870db20a9b6 100644 GIT binary patch delta 20 acmX@Fb6$r#pO=@50SE$|&Tr&)5d#1@Pz4MC delta 20 acmX@Fb6$r#pO=@50SK(txNqck5d#1?iUimI diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/RFCRC_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/RFCRC_S_register.cpython-310.pyc index 47d7fc5ea7a84c75527aa712be4348398ba6b00c..fe56997d148bbee06667d6217896eab983d8ad4c 100644 GIT binary patch delta 20 acmbQFI!To~pO=@50SE$|&Tr&y7Xkn;$OOXx delta 20 acmbQFI!To~pO=@50SK(txNqcc7Xkn;0tAl$ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/SEQ.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/SEQ.cpython-310.pyc index b563d45ef9a5050ec42345166318354aabfc6e57..4a99e47ca33c31fd202c989c2fd71f831b8057b8 100644 GIT binary patch delta 20 acmaFF^@xi*pO=@50SE$|&Tr%nX9WN^Zv^lF delta 20 acmaFF^@xi*pO=@50SK(txNqbRX9WN@sRX{=5 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/SYNTH_NS.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/SYNTH_NS.cpython-310.pyc index f21c2f35185cddf6610777073a10f01443f2a5aa..a6255780a490337aa9a321d00755de3ec5e54af0 100644 GIT binary patch delta 20 acmcaEbzO=(pO=@50SE$|&Tr)Q;ROIU{{;5{ delta 20 acmcaEbzO=(pO=@50SK(txNqe4;ROIUIRwK1 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/SYNTH_NS_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/SYNTH_NS_field.cpython-310.pyc index bece0ae757ee4898517d2202a5ee9682668f14b6..b8bb9d2017ff52e86a4e3a5242af48a851eb4c50 100644 GIT binary patch delta 22 ccmZpi$lN%QnLD4Cmx}=i0-Vlob82yi;Tk=s2I08y3(W&i*H delta 22 ccmcb#iSg1VM(%uGUM>b8uv+83k=s2I08r2dG5`Po diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/SYNTH_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/SYNTH_S.cpython-310.pyc index cdee14a071ac0c6daeb0d18d434d6a7dc17ed448..d8a75805fe23f164e554dc9efdb90624d290bdb2 100644 GIT binary patch delta 20 acmdlewNZ*YpO=@50SE$|&Tr&a;{^aR4+Mn( delta 20 acmdlewNZ*YpO=@50SK(txNqcE;{^aQNd!>< diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/SYNTH_S_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/SYNTH_S_field.cpython-310.pyc index c54c0ff4226184e40ce9f4c407453c34555a5a45..41b81a8677a35073c6a97998bc0b61d218e6bacf 100644 GIT binary patch delta 22 ccmX@u%Y3kxnLD4Cmx}=i0-Vlob82yi;Tk=r){08&W?a{vGU delta 22 ccmcbyf$_!$M(%uGUM>b8uv+83k=r){08xVmKL7v# diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/__init__.cpython-310.pyc index 3e429dff4485345498d5f08858fe7fa9ae681ff4..516dfcd9ebf067bc0ec7e6fafb20c2d2dd0dfee1 100644 GIT binary patch delta 20 acmdn2xmlAtpO=@50SE$|&Tr&iAp!t3f(0-D delta 20 acmdn2xmlAtpO=@50SK(txNqcMAp!t2yafCJ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/_version.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/__pycache__/_version.cpython-310.pyc index 1800de9f6601b32b84ee5f42b8023899a9ba81d1..ffb005fd5c48da1308834fcbeb00d10e2c3bfcd2 100644 GIT binary patch delta 20 acmbQtG?|GzpO=@50SE$|&Tr)AU<3du^8@by delta 20 acmbQtG?|GzpO=@50SK(txNqdpO=@50SE$|&Tr)IVgdjwumpSn delta 20 acmbQrI+c|>pO=@50SK(txNqd{Vgdjv>I6st diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/static/base/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/static/base/__pycache__/__init__.cpython-310.pyc index d554d22f9a9908fbbf5ce7794155b81a12fe3feb..c5d864f3132b32ad989b6e8630497ed2e07c6a8e 100644 GIT binary patch delta 20 acmbQoGLMBjpO=@50SE$|&Tr%vW&!{!^aK?E delta 20 acmbQoGLMBjpO=@50SK(txNqbZW&!{!E(75J diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/static/base/__pycache__/device.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/static/base/__pycache__/device.cpython-310.pyc index 719d6066acaba6eb8eaabeca36ab9b53a533b9f4..b93e4ec387adee8ced82332a60451e4dac10e677 100644 GIT binary patch delta 20 acmeyD{x6+7pO=@50SE$|&Tr)YYzzQO5eBRP delta 20 acmeyD{x6+7pO=@50SK(txNqeCYzzQNO9prV diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/static/base/__pycache__/enumeration.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/static/base/__pycache__/enumeration.cpython-310.pyc index e2ccadbbbe9e90080440c18ed2e6e228ac22907e..a557684108f1c01c8dbbd5eea945fc4df53c7cc1 100644 GIT binary patch delta 20 acmdlXyhE5fpO=@50SE$|&Tr&i%LxE8Cj|%q delta 20 acmdlXyhE5fpO=@50SK(txNqcM%LxE7VFc6w diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/static/base/__pycache__/field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/static/base/__pycache__/field.cpython-310.pyc index eafa35861719cfa1690f00d3ace97807bc6a48f3..da1c228d8af2ec787ea66d045c7314abc03079fd 100644 GIT binary patch delta 20 acmX@2dqkHzpO=@50SE$|&Tr)2DFy&IyajCl delta 20 acmX@2dqkHzpO=@50SK(txNqd%DFy&H_60cr diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/static/base/__pycache__/peripheral.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/static/base/__pycache__/peripheral.cpython-310.pyc index 0c76048815ba7491443b5179b74f9989d28d3069..f6dbe7ab026a6e6c3b07ee1a2cd4f364360bfa39 100644 GIT binary patch delta 20 acmcbjbw!IipO=@50SInfdAX6>QxpI}bp}cR delta 20 acmcbjbw!IipO=@50SK(txNqe46a@e|2?XK* diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/static/base/__pycache__/register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/static/base/__pycache__/register.cpython-310.pyc index b41662493b9328cd66c4e8c85c0768bb11c585ab..a47caa5bf0410befbd81773ea13270492891d33b 100644 GIT binary patch delta 20 acmdn(y4#gIpO=@50SE$|&Tr)2pacLqzy*!~ delta 20 acmdn(y4#gIpO=@50SK(txNqd%pacLp`UP45 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/static/common/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/static/common/__pycache__/__init__.cpython-310.pyc index 3264b8eae08a9a50f8d0cd41a6dbec8530143914..5f738482711b7f7225b9bf29cdc61ecc96e797c0 100644 GIT binary patch delta 20 acmZ3>vX+HApO=@50SE$|&Tr&aVgdjzOawvz delta 20 acmZ3>vX+HApO=@50SK(txNqcEVgdjyh6D}( diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/static/common/__pycache__/accessmgr.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/static/common/__pycache__/accessmgr.cpython-310.pyc index 4a1d8566a7c6713ee88db795986655b8a61980a4..a86e48e3cfd9c44ebbece8e90bcdbb48cb1e3b56 100644 GIT binary patch delta 20 acmaDO`bLyHpO=@50SE$|&Tr&?$OQm9kOip# delta 20 acmaDO`bLyHpO=@50SK(txNqcs$OQm8$^~@* diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/static/common/__pycache__/errors.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/static/common/__pycache__/errors.cpython-310.pyc index 183da738b75328306b13dc2d2a211ad81466cda6..ea9febd24bde8eae89d7c9762b0dc57ef42f7bc6 100644 GIT binary patch delta 20 acmdnayPcOipO=@50SE$|&Tr&i!v+8{Bn0*V delta 20 acmdnayPcOipO=@50SK(txNqcM!v+8`UIfAb diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/static/common/__pycache__/regmapio.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/static/common/__pycache__/regmapio.cpython-310.pyc index debe0cc877b3654a9a1c026ce68f4e12afbe0981..ce731003513aedf51489462c235b5e63fab43825 100644 GIT binary patch delta 22 ccmX>)f$``BM(%uGUM>b82yi;Tk=x1x07@tY>Hq)$ delta 22 ccmX>)f$``BM(%uGUM>b8uv+83k=x1x07+s6wg3PC diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/static/common/__pycache__/svdinfo.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/static/common/__pycache__/svdinfo.cpython-310.pyc index 8b06e095f605515ddfc28d11765c09e8c06802ad..a0b23941f976e0f14fb27d7eb1d4c2df3d02ac4e 100644 GIT binary patch delta 20 acmbO(IbD)FpO=@50SE$|&Tr)I;Q;_H+61%! delta 20 acmbO(IbD)FpO=@50SK(txNqd{;Q;_H6a;_( diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/static/interface/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/static/interface/__pycache__/__init__.cpython-310.pyc index b98b02b71995372504929585b9d389412120d870..a08766c72cf40853f2f5a8c082c9405e2b0c45da 100644 GIT binary patch delta 20 acmX@YeuSMnpO=@50SE$|&Tr)2$qWE9Q3VbF delta 20 acmX@YeuSMnpO=@50SK(txNqd%$qWE8iv-#L diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/static/interface/__pycache__/iregmapdevice.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/static/interface/__pycache__/iregmapdevice.cpython-310.pyc index e67b4d2d0c88d8cdc8f5c130598dbdf074e7c918..0831ece179ea1cc220534c0eb932709fceaeeb63 100644 GIT binary patch delta 22 ccmbP#f^q%{M(%uGUM>b82yi;Tky|7M08DBI1ONa4 delta 22 ccmbP#f^q%{M(%uGUM>b8uv+83ky|7M0869=&;S4c diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/static/interface/__pycache__/iregmapenum.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/static/interface/__pycache__/iregmapenum.cpython-310.pyc index 12479553f8c2e143e993fae55d3c6ad03cea2616..3011f4a2109faaedce0096ad2184e838d5eddc46 100644 GIT binary patch delta 20 acmcaFa$kfypO=@50SE$|&Tr%n;Q|0SWCZ{K delta 20 acmcaFa$kfypO=@50SK(txNqbR;Q|0Ro&?MQ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/static/interface/__pycache__/iregmapfield.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/static/interface/__pycache__/iregmapfield.cpython-310.pyc index ddca8b35da8a66c0336788896b0b41e17a991087..0c551c5f5332ec5735d4b18941c552f2c621f242 100644 GIT binary patch delta 20 acmZ4Bu)u*kpO=@50SE$|&Tr%vRR91q(gd*p delta 20 acmZ4Bu)u*kpO=@50SK(txNqbZRR91q3@ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/static/interface/__pycache__/iregmapperipheral.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/static/interface/__pycache__/iregmapperipheral.cpython-310.pyc index 0af9d887d148f5f5fd8a888888284f53af192d34..4c238f2354a9eb076bc1ca6037be1f5a17213e07 100644 GIT binary patch delta 20 acmez5{K=U+pO=@50SE$|&Tr&?t_T1_4+bs( delta 20 acmez5{K=U+pO=@50SK(txNqcst_T1^Nd@`< diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/static/interface/__pycache__/iregmapregister.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg21/revA0/static/interface/__pycache__/iregmapregister.cpython-310.pyc index 8d8a7f12c7c6fa69b199d7e64c124073a1f3240c..dd4494e061d34387da9c510f73305e3a641c0b31 100644 GIT binary patch delta 20 acmbR0I@OgspO=@50SE$|&Tr)IQUU-p&;=X- delta 20 acmbR0I@OgspO=@50SK(txNqd{QUU-p3Iyl? diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/__pycache__/__init__.cpython-310.pyc index 4a4f2b24886f4fba7e33bcbc60fc343b35a5d2c1..d8cd0be7126635e1900ecc628170e11c391958ec 100644 GIT binary patch delta 20 acmbQiG=qsdpO=@50SE$|&Tr)AWdr~!y953J delta 20 acmbQiG=qsdpO=@50SK(txNqdb82yi;Tk^AFc0A;ZVo&W#< delta 22 ccmezKoB7XgX6}4mUM>b8uv+83k^AFc0A%Y3Y5)KL diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/AGC_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/AGC_NS_register.cpython-310.pyc index f181d53e38354e468edaef3638ff54296093da2c..0e97855a851ff73e50e50e3cc9b1c73d4b225be1 100644 GIT binary patch delta 22 ccmdmWm~q!(M(%uGUM>b82yi;Tk$Zh208uRl$N&HU delta 22 ccmdmWm~q!(M(%uGUM>b8uv+83k$Zh208nQJlmGw# diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/AGC_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/AGC_S.cpython-310.pyc index 221e61e517619e9c0976771789b9ef3393cd02e9..5f22b54587b8522fedb6bc918186ae693066cc46 100644 GIT binary patch delta 20 acmew%^+Sp~pO=@50SE$|&Tr(-b82yi;Tk$b~$09q&q(EtDd delta 22 ccmdn}oq6|nX6}4mUM>b8uv+83k$b~$09j%Ood5s; diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/AGC_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/AGC_S_register.cpython-310.pyc index 8969326228d7094886c0c08660e9fb1245efc14b..cc2edde976c949cbbb55d679ef897db286761c3a 100644 GIT binary patch delta 22 ccmeA<$k=m`kvpH4mx}=i0-Vlob82yi;z$i0=Danla~ZvO~j delta 25 fcmdn{k$vw+cJ6#$UM>b8uv+8Z$i0=Danla~ZJh`$ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/FRC_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/FRC_NS_register.cpython-310.pyc index d159f1e9dc931f6aa8b9fe8f71403d2992300bb5..ec9a38137ed987ae799d1ef5b6b9833265aa2dcb 100644 GIT binary patch delta 22 ccmeC0$lNuNnLD4Cmx}=i0-Vlob82yi;z$i0=D(c}vNY{&=E delta 25 fcmdo0f_?uBcJ6#$UM>b8uv+8Z$i0=D(c}vNYi0+X diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/FRC_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/FRC_S_register.cpython-310.pyc index 828e282a27c643248a100ab9f7e00834a05c3a61..20c2a5120e3300ee7111f1347882e9793792a474 100644 GIT binary patch delta 22 ccmbQ%!#u5rnLD4Cmx}=i0-Vlo(MEmx}=i0-Vk_a<_6bZslg$dJq6`rw8!> delta 28 icmX@m%zdDln>(MEmx}=itk$?Ua<_6bZslg$dJq6^sRz9P diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/MODEM_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/MODEM_NS_register.cpython-310.pyc index d114770f11ef474a98f2ece30e7f730fbad6580b..a8b4702f0ee025e6c5888e71924ec64ae40e45d5 100644 GIT binary patch delta 25 fcmdltk!9aR7VdmrUM>b82yi;z$i0=DaWe-1T;B$+ delta 25 fcmdltk!9aR7VdmrUM>b8uv+8Z$i0=DaWe-1TYUz4 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/MODEM_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/MODEM_S.cpython-310.pyc index cd3910c32ff59ae3761008b42422bf868d3cbe93..e2f65df3237e8bf7754a872e380087f15c082e80 100644 GIT binary patch delta 20 acmZ4Bw7`iwpO=@50SE$|&Tr%vRRjPv8w9oh delta 20 acmZ4Bw7`iwpO=@50SK(txNqbZRRjPuRRn?n diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/MODEM_S_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/MODEM_S_field.cpython-310.pyc index d010416d80685cef1df76d422cc0b138b7d6942f..fee039e4dc32f757188dbe303905978577da80e4 100644 GIT binary patch delta 28 icmbR7oomK-F7A9@UM>b82yi;z$lc1#xRsl!cQ*ij^axo1 delta 28 icmbR7oomK-F7A9@UM>b8uv+8Z$lc1#xRsl!cQ*ih_6Q{a diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/MODEM_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/MODEM_S_register.cpython-310.pyc index 8858c64216151284cc4034393b9d31683e6d7449..0988423287e00dcb1746be28a9c15b614e888c16 100644 GIT binary patch delta 25 ecmZqfW@+wb;m+sfb82yi;z$lc1#xRskpZ36&)vj^({ delta 28 icmdn^fNSFeF7A9@UM>b8uv+8Z$lc1#xRskpZ36&&wFkEV diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/RAC_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/RAC_NS_register.cpython-310.pyc index 4a771b71e3c643ea71ddc228b82b1bc3832e260f..1bba5ecdbbad6313169145cd12573fadde43cb8c 100644 GIT binary patch delta 25 fcmZ2ClV#mZ7VdmrUM>b82yi;z$i0=DaWM}7TRR4l delta 25 fcmZ2ClV#mZ7VdmrUM>b8uv+8Z$i0=DaWM}7S=k0& diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/RAC_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/RAC_S.cpython-310.pyc index 83f1950855ed2853fa024c39f0e65012adc7470e..62ce826b07af47152c6ecb95e58a6648ae33fcd4 100644 GIT binary patch delta 20 acmZ2%zu2BTpO=@50SE$|&Tr(NArAmHB?UJC delta 20 acmZ2%zu2BTpO=@50SK(txNqd1ArAmGUj+jI diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/RAC_S_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/RAC_S_field.cpython-310.pyc index 0bf1ad367c19e46cec17c6123c55999ea45cf5b3..903221bc5da1d8f97f23e1f6b69ce99ce0dedb3a 100644 GIT binary patch delta 28 icmcb0h3nQ8F7A9@UM>b82yi;z$lc1#xRsm9e-!|Q7zjuJ delta 28 icmcb0h3nQ8F7A9@UM>b8uv+8Z$lc1#xRsm9e-!|O8VD2s diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/RAC_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/RAC_S_register.cpython-310.pyc index 223f65ccf5d0907b2062d04e3e7c96464f27262b..f3c2988295bcc5d28dca3dec66037a15828eda3c 100644 GIT binary patch delta 25 fcmbO}nPvK97VdmrUM>b82yi;z$i0=Dv4;}?Rl^28 delta 25 fcmbO}nPvK97VdmrUM>b8uv+8Z$i0=Dv4;}?RAB}R diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/RFCRC_NS.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/RFCRC_NS.cpython-310.pyc index 61e7939d34e2976eebc5857fff69b2668d536ba4..bae613017d39260fba39a32ecd3e4d320afe83dc 100644 GIT binary patch delta 20 acmcb~eUqCzpO=@50SE$|&Tr&C#|i*9D+N~o delta 20 acmcb~eUqCzpO=@50SK(txNqb>#|i*8Wd$Pu diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/RFCRC_NS_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/RFCRC_NS_field.cpython-310.pyc index ac4e682fb7e3d0868de0e359424d5558b59dbd04..99a5a43722636c38cc3318261d3f87a73e79dc7c 100644 GIT binary patch delta 20 ZcmZqBZP4Y;=jG*M0D=Ig^BcKK#Q-iG1fc)` delta 20 ZcmZqBZP4Y;=jG*M00OHu?i;yF#Q-f<1Z@BS diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/RFCRC_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/RFCRC_NS_register.cpython-310.pyc index e8beef08e7fd1f5d85f7144c7da63e647441db80..4923f486fa812d407e896adda1a5b9aa4eda17ea 100644 GIT binary patch delta 20 acmdn5x?hz$pO=@50SE$|&Tr)2A_M?7&;?2W delta 20 acmdn5x?hz$pO=@50SK(txNqd%A_M?73I!Gb diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/RFCRC_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/RFCRC_S.cpython-310.pyc index 1dd91bd534d7e1e427b6fce81eb64bc18e3a8f03..7a226fd9182166e5762661a889ca9819cdbcd449 100644 GIT binary patch delta 20 acmX@jeVUs)pO=@50SE$|&Tr&CzzP5~`volk delta 20 acmX@jeVUs)pO=@50SK(txNqb>zzP5~H3azp diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/RFCRC_S_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/RFCRC_S_field.cpython-310.pyc index 1a7b2c4ba6c9a93260e7c3dbc1181fabf3f28e73..110f566e7c1142eae0c4233f4aa7132c02f8eb35 100644 GIT binary patch delta 20 acmX@Fb6$r#pO=@50SE$|&Tr&)5d#1@Pz4MC delta 20 acmX@Fb6$r#pO=@50SK(txNqck5d#1?iUimI diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/RFCRC_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/RFCRC_S_register.cpython-310.pyc index fe3def4e2768b45bd9eaba52d5cc2f581104fb0e..a1bebccddd0675abadc6e0e8a87f5fa3bafe305b 100644 GIT binary patch delta 20 acmbQFI!To~pO=@50SE$|&Tr&y7Xkn;$OOXx delta 20 acmbQFI!To~pO=@50SK(txNqcc7Xkn;0tAl$ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/SEQ.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/SEQ.cpython-310.pyc index 8c56e5c5044f9930a33a580b5e4fc2b388608b62..d7a0e0c02dd21e9f5cf8d3312fd6c6da5e4a2e1d 100644 GIT binary patch delta 20 acmcb|b&rcXpO=@50SE$|&Tr%nW(5E?&jjQE delta 20 acmcb|b&rcXpO=@50SK(txNqbRW(5E?2?VeJ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/SEQ_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/SEQ_field.cpython-310.pyc index 6545e89400645423f06242d8c701a37fe4c83b9d..501cca587897722c15d0938622e3862b9ce24e49 100644 GIT binary patch delta 20 acmcbla!G|dpO=@50SE$|&Tr&)7Xkn{qy+&0 delta 20 acmcbla!G|dpO=@50SK(txNqck7Xkn`-UQ76 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/SEQ_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/SEQ_register.cpython-310.pyc index 90f26439d18311a0bc104043b23f3e59596540c3..6072c0955b7657d616f27d943e73acdfa68e9ff4 100644 GIT binary patch delta 20 acmew(|3{uXpO=@50SE$|&Tr)Y$PWNNeFgFW delta 20 acmew(|3{uXpO=@50SK(txNqeC$PWNMw*|fc diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/SYNTH_NS.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/SYNTH_NS.cpython-310.pyc index 80ec5588146c0facc9363ee7503e3b092ce2d815..715db6386860acd2227805f2d0a6361896661d4b 100644 GIT binary patch delta 20 acmaDU{Zg7cpO=@50SE$|&Tr(t#|r>E^98Q} delta 20 acmaDU{Zg7cpO=@50SK(txNqdX#|r>EEd_f3 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/SYNTH_NS_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/SYNTH_NS_field.cpython-310.pyc index 3bc47146d7603bcd06ad3df83499551112d26e01..a719100f549a93b2b182a1e8bb1765f1d7966373 100644 GIT binary patch delta 22 ccmcb;h57atX6}4mUM>b82yi;TkvrfP08}yu3IG5A delta 22 ccmcb;h57atX6}4mUM>b8uv+83kvrfP08?xR)&Kwi diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/SYNTH_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/SYNTH_NS_register.cpython-310.pyc index 97bb689376e496213d4c0f94d3cc5effc764ead9..38b12adc5cf8ca7082a6e5f1edf9ed41c7bbf490 100644 GIT binary patch delta 21 bcmeC)!`QutkvpH4mx}=i0-Vk-oeNdV^pO=@50SE$|&Tr)2#tQ&7vjsN* delta 20 acmX>oeNdV^pO=@50SK(txNqd%#tQ&6?F9n> diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/SYNTH_S_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/SYNTH_S_field.cpython-310.pyc index 940b5ebe3ab9dbb15f3673a4c1e860728896a689..0e0a7564c863e67c78ec85fc4df8ad7f9e70090f 100644 GIT binary patch delta 22 ccmeykf%)SGX6}4mUM>b82yi;Tkvr`M09Qr_LI3~& delta 22 ccmeykf%)SGX6}4mUM>b8uv+83kvr`M09Jqp4gdfE diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/SYNTH_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/SYNTH_S_register.cpython-310.pyc index 08de8e5ceab4e027ef42bc310a4e2a0dbf4b3009..0342deea082028a5685d0c0de18ee00adb097521 100644 GIT binary patch delta 22 ccmeynlkx9PM(%uGUM>b82yi;Tk^55&09xY*cmMzZ delta 22 ccmeynlkx9PM(%uGUM>b8uv+83k^55&09qXfL;wH) diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/__init__.cpython-310.pyc index 4754e2e5a72f35fcc21138651265d57eca799a51..aa5a340950bcfabd8928fa5b4f1376775f25ea15 100644 GIT binary patch delta 20 acmdn2xmlAtpO=@50SE$|&Tr&iAp!t3f(0-D delta 20 acmdn2xmlAtpO=@50SK(txNqcMAp!t2yafCJ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/_version.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/__pycache__/_version.cpython-310.pyc index b142c468b754d44c5188d509cc0362d662d37d96..dbc11ae51460ad7ef9222156777cf2f5149c363a 100644 GIT binary patch delta 20 acmbQtG?|GzpO=@50SE$|&Tr)AU<3du^8@by delta 20 acmbQtG?|GzpO=@50SK(txNqdpO=@50SE$|&Tr)IVgdjwumpSn delta 20 acmbQrI+c|>pO=@50SK(txNqd{Vgdjv>I6st diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/static/base/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/static/base/__pycache__/__init__.cpython-310.pyc index 757037cd75a2c1a3ce24e551b61e05e64599d23d..be888bafd7db2cc976587a8c75585e7882f13038 100644 GIT binary patch delta 20 acmbQoGLMBjpO=@50SE$|&Tr%vW&!{!^aK?E delta 20 acmbQoGLMBjpO=@50SK(txNqbZW&!{!E(75J diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/static/base/__pycache__/device.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/static/base/__pycache__/device.cpython-310.pyc index 831f354276edbbfd7d3a800ee88731b2b64d6397..b63afcb0279e33a6e545255355312c274f69015a 100644 GIT binary patch delta 20 acmeyD{x6+7pO=@50SE$|&Tr)YYzzQO5eBRP delta 20 acmeyD{x6+7pO=@50SK(txNqeCYzzQNO9prV diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/static/base/__pycache__/enumeration.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/static/base/__pycache__/enumeration.cpython-310.pyc index ebe1dc807beed14940d70449230695849d3bccdd..c7aeebe342b698ce38eb8315edc1ad5a2d496594 100644 GIT binary patch delta 20 acmdlXyhE5fpO=@50SE$|&Tr&i%LxE8Cj|%q delta 20 acmdlXyhE5fpO=@50SK(txNqcM%LxE7VFc6w diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/static/base/__pycache__/field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/static/base/__pycache__/field.cpython-310.pyc index 9c1e57b972e6b05202f783c9471cf04595779071..5877b146c6e6da5d1f4fb1cfe02c66a91708e39c 100644 GIT binary patch delta 20 acmX@2dqkHzpO=@50SE$|&Tr)2DFy&IyajCl delta 20 acmX@2dqkHzpO=@50SK(txNqd%DFy&H_60cr diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/static/base/__pycache__/peripheral.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/static/base/__pycache__/peripheral.cpython-310.pyc index abc8b6f126378428d30bfea6cb69091ce8f1dfc1..8d5b6bc9c834b40b5d41e479b63bb097d0aa3c78 100644 GIT binary patch delta 20 acmcbjbw!IipO=@50SInfdAX6>QxpI}bp}cR delta 20 acmcbjbw!IipO=@50SK(txNqe46a@e|2?XK* diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/static/base/__pycache__/register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/static/base/__pycache__/register.cpython-310.pyc index 63c7c2f74f9312bfce1d52be02d8764949c33e3c..d60de25c9ec608644a77ba7312ffca67d37c6735 100644 GIT binary patch delta 20 acmdn(y4#gIpO=@50SE$|&Tr)2pacLqzy*!~ delta 20 acmdn(y4#gIpO=@50SK(txNqd%pacLp`UP45 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/static/common/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/static/common/__pycache__/__init__.cpython-310.pyc index 1e7392d7fbcb91e8c52283b64d6f042bf891b60b..8e5f7415fbc5a6429ab0fbadeecbfdf9284170da 100644 GIT binary patch delta 20 acmZ3>vX+HApO=@50SE$|&Tr&aVgdjzOawvz delta 20 acmZ3>vX+HApO=@50SK(txNqcEVgdjyh6D}( diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/static/common/__pycache__/accessmgr.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/static/common/__pycache__/accessmgr.cpython-310.pyc index 8001e67e1495e5d84f1ec8f55ab2c7dca5ad9213..344bdf79c3372f6d84d4af13f45ecd81e92d303b 100644 GIT binary patch delta 20 acmaDO`bLyHpO=@50SE$|&Tr&?$OQm9kOip# delta 20 acmaDO`bLyHpO=@50SK(txNqcs$OQm8$^~@* diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/static/common/__pycache__/errors.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/static/common/__pycache__/errors.cpython-310.pyc index 99518084d5928ea62d8ad9004f4f8fed90f66666..1b8592a6f005436af8bca38ed24b84eb01de3860 100644 GIT binary patch delta 20 acmdnayPcOipO=@50SE$|&Tr&i!v+8{Bn0*V delta 20 acmdnayPcOipO=@50SK(txNqcM!v+8`UIfAb diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/static/common/__pycache__/regmapio.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/static/common/__pycache__/regmapio.cpython-310.pyc index c88ba340ea8dc1acb0aea8a5006079d5691c5400..257474e581378ea42a9bce4bfadd44634ddc8720 100644 GIT binary patch delta 22 ccmX>)f$``BM(%uGUM>b82yi;Tk=x1x07@tY>Hq)$ delta 22 ccmX>)f$``BM(%uGUM>b8uv+83k=x1x07+s6wg3PC diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/static/common/__pycache__/svdinfo.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/static/common/__pycache__/svdinfo.cpython-310.pyc index 183208d88c4559594174ab1c8547199d1fe3f223..ef0299781c5e11744dd33d1ce9e98761419ae07c 100644 GIT binary patch delta 20 acmbO(IbD)FpO=@50SE$|&Tr)I;Q;_H+61%! delta 20 acmbO(IbD)FpO=@50SK(txNqd{;Q;_H6a;_( diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/static/interface/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/static/interface/__pycache__/__init__.cpython-310.pyc index 188db041af18444d04b7641ee6b6fc99818932fd..9bab6637c96f5fb92556dad95d985b0266196d6d 100644 GIT binary patch delta 20 acmX@YeuSMnpO=@50SE$|&Tr)2$qWE9Q3VbF delta 20 acmX@YeuSMnpO=@50SK(txNqd%$qWE8iv-#L diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/static/interface/__pycache__/iregmapdevice.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/static/interface/__pycache__/iregmapdevice.cpython-310.pyc index f40fedbf39ff5a4852a4c45e4964966c6bbb15dc..55d2411c6dc027ed15c2751697937d0ac16fcac1 100644 GIT binary patch delta 22 ccmbP#f^q%{M(%uGUM>b82yi;Tky|7M08DBI1ONa4 delta 22 ccmbP#f^q%{M(%uGUM>b8uv+83ky|7M0869=&;S4c diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/static/interface/__pycache__/iregmapenum.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/static/interface/__pycache__/iregmapenum.cpython-310.pyc index f7fd2df5d568a79d4af61422cbc0821f8319825a..29a8c70cb206f21b0eb4f0837a2ac278887baa29 100644 GIT binary patch delta 20 acmcaFa$kfypO=@50SE$|&Tr%n;Q|0SWCZ{K delta 20 acmcaFa$kfypO=@50SK(txNqbR;Q|0Ro&?MQ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/static/interface/__pycache__/iregmapfield.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/static/interface/__pycache__/iregmapfield.cpython-310.pyc index 1a72b89026a0753ca982512bb2b37fbada51c2bc..5b387396655c8b7713c8f3a185abd6420f986269 100644 GIT binary patch delta 20 acmZ4Bu)u*kpO=@50SE$|&Tr%vRR91q(gd*p delta 20 acmZ4Bu)u*kpO=@50SK(txNqbZRR91q3@ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/static/interface/__pycache__/iregmapperipheral.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/static/interface/__pycache__/iregmapperipheral.cpython-310.pyc index 1b2c5b81eb318b214f379209aace305c40b2cb80..8518aa6379664aafbe30ac58d92d3950780c7190 100644 GIT binary patch delta 20 acmez5{K=U+pO=@50SE$|&Tr&?t_T1_4+bs( delta 20 acmez5{K=U+pO=@50SK(txNqcst_T1^Nd@`< diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/static/interface/__pycache__/iregmapregister.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg22/revB1/static/interface/__pycache__/iregmapregister.cpython-310.pyc index bb18e72222d304cb5bd01c9a4a49d891f94fa138..1544c61c3d4906f103aa2984c5dd6d81698d565c 100644 GIT binary patch delta 20 acmbR0I@OgspO=@50SE$|&Tr)IQUU-p&;=X- delta 20 acmbR0I@OgspO=@50SK(txNqd{QUU-p3Iyl? diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/__pycache__/__init__.cpython-310.pyc index bc78ca88058f2703dbeeba92b2d4eddf4447c1d8..f238265c42a56238b6266fb2895682af2b4259bb 100644 GIT binary patch delta 20 acmbQiG=qsdpO=@50SE$|&Tr)AWdr~!y953J delta 20 acmbQiG=qsdpO=@50SK(txNqd4j delta 20 acmaE__Fj!UpO=@50SK(txNqc65e5J}uLUUp diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/AGC_NS_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/AGC_NS_field.cpython-310.pyc index 4aa9294af953d85fc94f6e01b74ef621ef400b22..78ca963438c5633740ae6b28c70c8f533f48c058 100644 GIT binary patch delta 25 fcmezShvn}d7VdmrUM>b82yi;z$i0=DvB(Ypdh-YO delta 25 fcmezShvn}d7VdmrUM>b8uv+8Z$i0=DvB(Ypd65Uh diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/AGC_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/AGC_NS_register.cpython-310.pyc index de6ff2319e7332be60993131889af89c381c7c85..f7fd66020e382403b329bc2012f6bff2556d8ad1 100644 GIT binary patch delta 22 ccmey_&-AmOi94T{mx}=i0-Vlob82yi;z$i0=DaiKK;YmNtZ delta 25 fcmZ4Uon_5;7VdmrUM>b8uv+8Z$i0=DaiKK;YAgps diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/AGC_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/AGC_S_register.cpython-310.pyc index 5109d38d396bf7d90d642897b7c9209c94d1e925..97140d01963e5dc01cd1b323cfe6f13ee08297f9 100644 GIT binary patch delta 22 ccmaFV!}O?!i94T{mx}=i0-Vlon+a delta 22 ccmaFV!}O?!i94T{mx}=itk$@1b82yi;z$lc1#xRsl!KnMVVr3bG7 delta 28 icmeypgyZ)T4(@zjUM>b8uv+8Z$lc1#xRsl!KnMVTrw4lg diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/FRC_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/FRC_NS_register.cpython-310.pyc index 375af12a5ae70892248216d42a76bd880c142920..3409d4532dc37b1fccc5a72b1ade3239600cfe62 100644 GIT binary patch delta 22 ccmZo!!rZcinLD4Cmx}=i0-Vlor~m)} diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/FRC_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/FRC_S.cpython-310.pyc index f15ef15606fbe39cfe0e631c3ad0b506443cb09c..2da68f894c8ed0b8218bd95fc05a52455f6b9502 100644 GIT binary patch delta 20 acmZ2rzQCM2pO=@50SE$|&Tr(NDh&WMi3J(} delta 20 acmZ2rzQCM2pO=@50SK(txNqd1Dh&WL!vy94 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/FRC_S_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/FRC_S_field.cpython-310.pyc index 974c5dcc635e16dfbce98560aeef3daa01153f6f..3da227f3ee828219fe9e5c34b42e04aafc38e425 100644 GIT binary patch delta 28 icmX>yo8!oA4(@zjUM>b82yi;z$lc1#xRsk}CoceX1P5~f delta 28 icmX>yo8!oA4(@zjUM>b8uv+8Z$lc1#xRsk}CoceV1_wU? diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/FRC_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/FRC_S_register.cpython-310.pyc index 5c4abed5e919bb6625da11a3fddb54502f8b1da3..a980b42546adbdf8599234ff9f97ab9b73d5396a 100644 GIT binary patch delta 22 ccmex0kNMX;X6}4mUM>b82yi;Tkvso909FDAFaQ7m delta 22 ccmex0kNMX;X6}4mUM>b8uv+83kvso9098B&`~Uy| diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/MODEM_NS.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/MODEM_NS.cpython-310.pyc index bc4792b7ffe7fd84e9d950ab03dee1e2208d79fe..011a987b4e7fd2ab283cc5f1e1af9e1998602db6 100644 GIT binary patch delta 22 ccmX@m!FZs9kvpH4mx}=i0-Vlob82yi;z$lc1#*vie+%FW!$&9ar7^-2Z+*9{6` delta 37 rcmcbAQS|;rQSN+RUM>b8uv+8Z$lc1#*vie+%FW!$&9ar7^-2Z+(>n?+ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/MODEM_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/MODEM_NS_register.cpython-310.pyc index de118a5d4ca73b029d99862c8bbce576f54e828f..08eca32c20014931dc853d811ad6de1cc4f120a4 100644 GIT binary patch delta 28 icmaF3faBo;4(@zjUM>b82yi;z$lc1#xRskJOaK6TK?hd= delta 28 icmaF3faBo;4(@zjUM>b8uv+8Z$lc1#xRskJOaK6RLkA-O diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/MODEM_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/MODEM_S.cpython-310.pyc index bc79793584776af6e8dd8a475f2513979af102bd..e7553b96d5bff8e6c6f86217dc978a7dcf7052f7 100644 GIT binary patch delta 22 ccmaFe#`wC8kvpH4mx}=i0-Vlob82yi;z$lc1#*vie+%FW!$&9ar7^=S+M)nW=* delta 37 rcmeycQ}n}5QSN+RUM>b8uv+8Z$lc1#*vie+%FW!$&9ar7^=S+M(U1xx diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/MODEM_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/MODEM_S_register.cpython-310.pyc index 183d7c284d7626812c1864a608ad1bd6203992be..f935ca0098fe7c964ffdb6d833706db109a7c774 100644 GIT binary patch delta 28 icmex5nd9qZ4(@zjUM>b82yi;z$lc1#xRsmf6(<0F?+5Y# delta 28 icmex5nd9qZ4(@zjUM>b8uv+8Z$lc1#xRsmf6(<0D@dv&D diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/RAC_NS.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/RAC_NS.cpython-310.pyc index b092d7bf0830fb4547e58439f95135351cbcd491..4dafadf78a37851a93de6dcd6842c5c8de0311e8 100644 GIT binary patch delta 20 acmccbb>E9SpO=@50SE$|&Tr%nQ3U`%7X^m^ delta 20 acmccbb>E9SpO=@50SK(txNqbRQ3U`$Q3X=~ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/RAC_NS_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/RAC_NS_field.cpython-310.pyc index 0bfa197a45581e21cb3fb07d1d086f79f8cef808..45225899716e1e233dded6f8e95b9ce9f9e672c0 100644 GIT binary patch delta 31 lcmex1f%n@4UhaHeUM>b82yi;z$lc1#*viecm76)+0|1o{2ulC} delta 31 lcmex1f%n@4UhaHeUM>b8uv+8Z$lc1#*viecm76)+0|1hA2p0eV diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/RAC_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/RAC_NS_register.cpython-310.pyc index 510ef45cb46ade2b458b55a6f7d0aba6056ca4f3..831bb7939311f6ebbec625a095a72dc1f3bed5b1 100644 GIT binary patch delta 25 fcmX@y#(KDol{=r8mx}=i0-Vk_a&P5kv~UIhTT2FH delta 25 fcmX@y#(KDol{=r8mx}=itk$?Ua&P5kv~UIhS?LBa diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/RAC_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/RAC_S.cpython-310.pyc index 1ecff2d60f73257ed62fe323afe0aaf485ad5054..f3754318e71ed85fda95841336b305473d829cf3 100644 GIT binary patch delta 20 acmaFi`NESspO=@50SE$|&Tr(ts{#N*S_U5g delta 20 acmaFi`NESspO=@50SK(txNqdXs{#N)lm+Vm diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/RAC_S_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/RAC_S_field.cpython-310.pyc index 36c2b9f3781199cbf553607380f45c95f9227867..32b7f9f40517b6e712d2a45373e61902ac80295a 100644 GIT binary patch delta 31 lcmccD#Cxxamph-Amx}=i0-Vk_a<_6bwsJFV#|i*8Wd$Pu diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/RFCRC_NS_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/RFCRC_NS_field.cpython-310.pyc index a2a94c0f8131aead9d5f56daf0c31900dac3f930..9d7c8197c4f0c8798dcb15ef847cbf68ea5bf2b0 100644 GIT binary patch delta 20 ZcmZqBZP4Y;=jG*M0D=Ig^BcKK#Q-iG1fc)` delta 20 ZcmZqBZP4Y;=jG*M00OHu?i;yF#Q-f<1Z@BS diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/RFCRC_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/RFCRC_NS_register.cpython-310.pyc index 3ac778d3c338f3eb21f2efab3546e13dca7c9d29..c478acf2359d993196c30c77f44285463b36f737 100644 GIT binary patch delta 20 acmdn5x?hz$pO=@50SE$|&Tr)2A_M?7&;?2W delta 20 acmdn5x?hz$pO=@50SK(txNqd%A_M?73I!Gb diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/RFCRC_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/RFCRC_S.cpython-310.pyc index 28b886e0a1e8f27ea645a92f567bedc3bfd55ed4..01eb4ede0ed42d9983a9875eb7133626bd7b1937 100644 GIT binary patch delta 20 acmX@jeVUs)pO=@50SE$|&Tr&CzzP5~`volk delta 20 acmX@jeVUs)pO=@50SK(txNqb>zzP5~H3azp diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/RFCRC_S_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/RFCRC_S_field.cpython-310.pyc index 98d6fc3b9d9e571ea97f7f2b937ea3481c09a281..ca90be764462b3ca2bb5d8a986b580c4c1c06603 100644 GIT binary patch delta 20 acmX@Fb6$r#pO=@50SE$|&Tr&)5d#1@Pz4MC delta 20 acmX@Fb6$r#pO=@50SK(txNqck5d#1?iUimI diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/RFCRC_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/RFCRC_S_register.cpython-310.pyc index a87e9aadb9b4a25d15acd9673cc82c281193c57d..f097c1f64c4bdc9dc1d7b8dc96e3a4427f859e23 100644 GIT binary patch delta 20 acmbQFI!To~pO=@50SE$|&Tr&y7Xkn;$OOXx delta 20 acmbQFI!To~pO=@50SK(txNqcc7Xkn;0tAl$ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/SEQ.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/SEQ.cpython-310.pyc index 02455979186a2ca2f03ae2cec5074b6a37fb4e2b..05fdbc2454579a4a2ecb35f523d3dcfc25474416 100644 GIT binary patch delta 20 acmcb|b&rcXpO=@50SE$|&Tr%nW(5E?&jjQE delta 20 acmcb|b&rcXpO=@50SK(txNqbRW(5E?2?VeJ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/SEQ_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/SEQ_field.cpython-310.pyc index 8ee908bd33d15e313e5060f5fea88d52ff1dcbea..92ad64a495c099bbb7f8cc828df7473d869bb8d8 100644 GIT binary patch delta 20 acmcbic|(&spO=@50SE$|&Tr&CD*^yJN(G+) delta 20 acmcbic|(&spO=@50SK(txNqb>D*^yIgavB= diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/SEQ_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/SEQ_register.cpython-310.pyc index abdb8ff7527becdddb4766899c5a274c20db5d37..5867329837a39ae000d3b85835f957d0c81deebe 100644 GIT binary patch delta 20 acmbQDI7N{=pO=@50SE$|&Tr)I6aWA(h6KL= delta 20 acmbQDI7N{=pO=@50SK(txNqd{6aWA&zyyl` diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/SYNTH_NS.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/SYNTH_NS.cpython-310.pyc index 23136399a9f3710dfdd0c71c3af6d2937801ce2e..7f5dc85396026c9084b6f5666eddc552f934893f 100644 GIT binary patch delta 20 acmaDU{Zg7cpO=@50SE$|&Tr(t#|r>E^98Q} delta 20 acmaDU{Zg7cpO=@50SK(txNqdX#|r>EEd_f3 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/SYNTH_NS_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/SYNTH_NS_field.cpython-310.pyc index 9aff8f139031353b5f3d8d5e14e5c280d38f9a59..42b7b9aa71e815c06485f2f5c1efa147dff3fc45 100644 GIT binary patch delta 22 ccmdnEoq6MSX6}4mUM>b82yi;Tk$c%~08W|*6951J delta 22 ccmdnEoq6MSX6}4mUM>b8uv+83k$c%~08P{e-v9sr diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/SYNTH_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/SYNTH_NS_register.cpython-310.pyc index 1f0a1ddaf064609db55bcb57ecc159c070727609..ad0c420283860edf3aa069a70ba210ae912bfd8a 100644 GIT binary patch delta 22 ccmX@Ohwb82yi;Tk=rZ|08mB-OaK4? delta 22 ccmX@Ohwb8uv+83k=rZ|08fAh7ytkO diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/SYNTH_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/SYNTH_S.cpython-310.pyc index 26ba4ad8c0c5020f1dfb1c46993e48380caea4cf..7de75c926b70ed00e2fc58c835dfb63df7c5a7e9 100644 GIT binary patch delta 20 acmX>oeNdV^pO=@50SE$|&Tr)2#tQ&7vjsN* delta 20 acmX>oeNdV^pO=@50SK(txNqd%#tQ&6?F9n> diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/SYNTH_S_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/SYNTH_S_field.cpython-310.pyc index 57e59726f7c5ff08b58b5a86a1344e2e0bcd846b..d858894d8289ac47eca45e288b470b170afd0cf6 100644 GIT binary patch delta 22 ccmX@Infb_OX6}4mUM>b82yi;Tk$dM&08uRmLI3~& delta 22 ccmX@Infb_OX6}4mUM>b8uv+83k$dM&08nQK4gdfE diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/SYNTH_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/SYNTH_S_register.cpython-310.pyc index 03721dd21afdbf1ea385c42710c0191c2a647eae..ae9497df86f691308ae01da27f143d1cab62a4b7 100644 GIT binary patch delta 22 ccmdnAi*eH~M(%uGUM>b82yi;Tky||$08MfR8UO$Q delta 22 ccmdnAi*eH~M(%uGUM>b8uv+83ky||$08Fd}<^TWy diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/__init__.cpython-310.pyc index de558a12f7dadac1cd04bb3c04655c5bd8a805d9..d2da9043b5a18c2532f81627005458451ee80535 100644 GIT binary patch delta 20 acmdn2xmlAtpO=@50SE$|&Tr&iAp!t3f(0-D delta 20 acmdn2xmlAtpO=@50SK(txNqcMAp!t2yafCJ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/_version.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/_version.cpython-310.pyc index 4d495144869ed55d39ae28e4133c54ecf7a24006..3713b8c632820f2e03306802a88372cea23d9b4e 100644 GIT binary patch delta 20 acmbQlG>M5jpO=@50SE$|&Tr&qX9NH#%LD8H delta 20 acmbQlG>M5jpO=@50SK(txNqcUX9NH#1p~MM diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/device.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/__pycache__/device.cpython-310.pyc index 8949dc22db11041fc98c9fc5a60befd10c702247..8a5bb7e0f6b06c73743f52fa027a15530afd52d6 100644 GIT binary patch delta 20 acmaEC_}Gv;pO=@50SInfdAX7Mh6Dgb%m)Yn delta 20 acmaEC_}Gv;pO=@50SK(txNqdXAprnAUpO=@50SE$|&Tr)IVgdjwumpSn delta 20 acmbQrI+c|>pO=@50SK(txNqd{Vgdjv>I6st diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/static/base/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/static/base/__pycache__/__init__.cpython-310.pyc index 8f3a1da05fb7c81c9cf6ae6faa1f0ba1ed1d2464..c5da125ad51843b94eabcab00db4b8c8007f9d3d 100644 GIT binary patch delta 20 acmbQoGLMBjpO=@50SE$|&Tr%vW&!{!^aK?E delta 20 acmbQoGLMBjpO=@50SK(txNqbZW&!{!E(75J diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/static/base/__pycache__/device.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/static/base/__pycache__/device.cpython-310.pyc index 7c381cd397053014fd0870f8eaaedc7d1faebde0..9740ba7f3e94d49ea4933e4208b2f189357a2b3a 100644 GIT binary patch delta 20 acmeyD{x6+7pO=@50SE$|&Tr)YYzzQO5eBRP delta 20 acmeyD{x6+7pO=@50SK(txNqeCYzzQNO9prV diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/static/base/__pycache__/enumeration.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/static/base/__pycache__/enumeration.cpython-310.pyc index 13a3fc1da92978a9afe44cac6f377205f02e52e7..a1f5c1ed33637faa904747be1e293999da0c6402 100644 GIT binary patch delta 20 acmdlXyhE5fpO=@50SE$|&Tr&i%LxE8Cj|%q delta 20 acmdlXyhE5fpO=@50SK(txNqcM%LxE7VFc6w diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/static/base/__pycache__/field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/static/base/__pycache__/field.cpython-310.pyc index 1b05d766341895b68f894b7447567d72c3efeaa5..e35ff14933cadf27fbb4bad1e4cbb01c023f9e3f 100644 GIT binary patch delta 20 acmX@2dqkHzpO=@50SE$|&Tr)2DFy&IyajCl delta 20 acmX@2dqkHzpO=@50SK(txNqd%DFy&H_60cr diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/static/base/__pycache__/peripheral.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/static/base/__pycache__/peripheral.cpython-310.pyc index 652e29f9e83ab290454a76b53e579d4b0fb0d8bc..38d7adf661fdac4018f10a9169dad579273d4226 100644 GIT binary patch delta 20 acmcbjbw!IipO=@50SInfdAX6>QxpI}bp}cR delta 20 acmcbjbw!IipO=@50SK(txNqe46a@e|2?XK* diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/static/base/__pycache__/register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/static/base/__pycache__/register.cpython-310.pyc index c70d31943c4ae2a9540cf4ed2f5f534320ef6a87..0395e84695db4295783d7ba64f17784e716f1d5d 100644 GIT binary patch delta 20 acmdn(y4#gIpO=@50SE$|&Tr)2pacLqzy*!~ delta 20 acmdn(y4#gIpO=@50SK(txNqd%pacLp`UP45 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/static/common/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/static/common/__pycache__/__init__.cpython-310.pyc index a68cde77c033b10f5a455b3733e5e1dcceb9486a..4a5a6d3972d86ab0b01c705a2782298f7b24e24e 100644 GIT binary patch delta 20 acmZ3>vX+HApO=@50SE$|&Tr&aVgdjzOawvz delta 20 acmZ3>vX+HApO=@50SK(txNqcEVgdjyh6D}( diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/static/common/__pycache__/accessmgr.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/static/common/__pycache__/accessmgr.cpython-310.pyc index 61215d92379d6cc093c9f91e4f3d245e43d686be..777225c6c25615fa7104b306d5493a06c4a27c70 100644 GIT binary patch delta 20 acmaDO`bLyHpO=@50SE$|&Tr&?$OQm9kOip# delta 20 acmaDO`bLyHpO=@50SK(txNqcs$OQm8$^~@* diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/static/common/__pycache__/errors.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/static/common/__pycache__/errors.cpython-310.pyc index 7d13a42cdf6f886fbd4b76f8faa8b62359dd7bc5..4e418c8e988a9779c54a4ed0073443632e80de00 100644 GIT binary patch delta 20 acmdnayPcOipO=@50SE$|&Tr&i!v+8{Bn0*V delta 20 acmdnayPcOipO=@50SK(txNqcM!v+8`UIfAb diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/static/common/__pycache__/regmapio.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/static/common/__pycache__/regmapio.cpython-310.pyc index 86821e459c808d38c2e3d8a694bc5a26e3aabdda..473d2b975ee258925ed96592b87ffe9ea38b1731 100644 GIT binary patch delta 22 ccmX>)f$``BM(%uGUM>b82yi;Tk=x1x07@tY>Hq)$ delta 22 ccmX>)f$``BM(%uGUM>b8uv+83k=x1x07+s6wg3PC diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/static/common/__pycache__/svdinfo.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/static/common/__pycache__/svdinfo.cpython-310.pyc index 59ecc3fdce38238daab0750a777d3f6f7d7c0f2f..837d62ec05b7a4898fd48d7947da773873921092 100644 GIT binary patch delta 20 acmbO(IbD)FpO=@50SE$|&Tr)I;Q;_H+61%! delta 20 acmbO(IbD)FpO=@50SK(txNqd{;Q;_H6a;_( diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/static/interface/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/static/interface/__pycache__/__init__.cpython-310.pyc index 4714744bca4d99afb299550fcfab16e508d52e6b..d05ca803d229aa6923df9763dcce152721d7ce72 100644 GIT binary patch delta 20 acmX@YeuSMnpO=@50SE$|&Tr)2$qWE9Q3VbF delta 20 acmX@YeuSMnpO=@50SK(txNqd%$qWE8iv-#L diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/static/interface/__pycache__/iregmapdevice.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/static/interface/__pycache__/iregmapdevice.cpython-310.pyc index 92b486f6a53c1dc2a268ba2d4e1944beeb739364..c5d5a70fc3e0d3b10db730b6c3286df4e00bafee 100644 GIT binary patch delta 22 ccmbP#f^q%{M(%uGUM>b82yi;Tky|7M08DBI1ONa4 delta 22 ccmbP#f^q%{M(%uGUM>b8uv+83ky|7M0869=&;S4c diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/static/interface/__pycache__/iregmapenum.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/static/interface/__pycache__/iregmapenum.cpython-310.pyc index e7cfd423a2f0b06f9354e592d17f98f960761611..a32fc4d65dfbf9cb61141d85e4d60e12d74c94f2 100644 GIT binary patch delta 20 acmcaFa$kfypO=@50SE$|&Tr%n;Q|0SWCZ{K delta 20 acmcaFa$kfypO=@50SK(txNqbR;Q|0Ro&?MQ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/static/interface/__pycache__/iregmapfield.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/static/interface/__pycache__/iregmapfield.cpython-310.pyc index 48df94db0b0e54ba142db65e36b245dfe665601e..9bfced14d301c4cf843c65647b1054162be20ddd 100644 GIT binary patch delta 20 acmZ4Bu)u*kpO=@50SE$|&Tr%vRR91q(gd*p delta 20 acmZ4Bu)u*kpO=@50SK(txNqbZRR91q3@ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/static/interface/__pycache__/iregmapperipheral.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/static/interface/__pycache__/iregmapperipheral.cpython-310.pyc index 8bff97142410534d00f291b5b8083899ca6f50e1..ee86a1bcf4896cf55318609f566ea1acafc8dd1b 100644 GIT binary patch delta 20 acmez5{K=U+pO=@50SE$|&Tr&?t_T1_4+bs( delta 20 acmez5{K=U+pO=@50SK(txNqcst_T1^Nd@`< diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/static/interface/__pycache__/iregmapregister.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg23/revA2/static/interface/__pycache__/iregmapregister.cpython-310.pyc index edb1b9bd270076f59fdd92e26fec2b1ff1ec15d2..287e99a3f83c0efc5ce0c161f61cdba903dd1294 100644 GIT binary patch delta 20 acmbR0I@OgspO=@50SE$|&Tr)IQUU-p&;=X- delta 20 acmbR0I@OgspO=@50SK(txNqd{QUU-p3Iyl? diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/__pycache__/__init__.cpython-310.pyc index 026ef8d74f63eb4e5748e6246b6feac1e5afac4a..cadaf6dfcceb9c8a3e16688dcbc1cdb3cba4b90c 100644 GIT binary patch delta 20 acmbQiG=qsdpO=@50SE$|&Tr)AWdr~!y953J delta 20 acmbQiG=qsdpO=@50SK(txNqdIIYl delta 20 acmX?ZdEAmapO=@50SK(txNqd%BLe_BBn4mq diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/AGC_NS_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/AGC_NS_field.cpython-310.pyc index c7f2857ea7d89609c8041f586cfac03f5ffdc074..37c715b46ca7fd30f5c07af52210e3210260b432 100644 GIT binary patch delta 28 icmaDoiTm{=Zti?uUM>b82yi;z$lc1#xRskJ;UoZi=?EAA delta 28 icmaDoiTm{=Zti?uUM>b8uv+8Z$lc1#xRskJ;UoZg>j&fj diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/AGC_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/AGC_NS_register.cpython-310.pyc index 042d693190faf78c2bb7a1726e6af79d0e05cd7d..d107a25ba7cc65d1d64f7da884e04f0ccbb43b29 100644 GIT binary patch delta 22 ccmZ4en0fVMX6}4mUM>b82yi;Tk$b^M090ZJZvX%Q delta 22 ccmZ4en0fVMX6}4mUM>b8uv+83k$b^M08^X?I{*Lx diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/AGC_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/AGC_S.cpython-310.pyc index 6142200e23762b78e7c68e5fc0fefc5c1cd83483..204d137833b52d33a36c2991a162d42245fe0baf 100644 GIT binary patch delta 20 acmaE7@y>!fpO=@50SE$|&Tr&SmH_}i-UWvM delta 20 acmaE7@y>!fpO=@50SK(txNqc6mH_}i7zI-R diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/AGC_S_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/AGC_S_field.cpython-310.pyc index 2e679706337f513540969ce1c84ab83e942df3bf..5dc16d44e12b81c9fca148e1d959f7c79556aaed 100644 GIT binary patch delta 28 icmccD#(l4in>(MEmx}=i0-Vk_a<_6bZsleQJ`4bMv(MEmx}=itk$?Ua<_6bZsleQJ`4bKwg;a8 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/AGC_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/AGC_S_register.cpython-310.pyc index 135f474cfa0b441228436b34a9129a37574c84be..2380201282aa074562df6498e01e29c299f57c38 100644 GIT binary patch delta 22 ccmZ2^mwDw~X6}4mUM>b82yi;Tk$c`d08<|aS^xk5 delta 22 ccmZ2^mwDw~X6}4mUM>b8uv+83k$c`d08&{8CIA2c diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/FRC_NS.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/FRC_NS.cpython-310.pyc index 8d2b0b29727df3e1a8495e9938abd80e1472da58..d5c9f04eecd1247666379757b98cbfad68b3b1dd 100644 GIT binary patch delta 20 acmX?Vanyo4pO=@50SE$|&Tr(lk^ulYb_EOo delta 20 acmX?Vanyo4pO=@50SK(txNqdPk^ulXumsou diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/FRC_NS_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/FRC_NS_field.cpython-310.pyc index eee32a07ea777502dedb28b308a9cc76f5f43293..96ffaf8a9102225627b4561417f50d78d105b2d8 100644 GIT binary patch delta 28 icmeygisREN4(@zjUM>b82yi;z$lc1#xRskJT@(O->j$F% delta 28 icmeygisREN4(@zjUM>b8uv+8Z$lc1#xRskJT@(O*?FVlF diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/FRC_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/FRC_NS_register.cpython-310.pyc index b2176f2d9e8e72467d20cafbb808465de0b2d375..f7ba15d1039a564d4b8478cf62f8dcca7e82564e 100644 GIT binary patch delta 22 ccmcb*g8AwSX6}4mUM>b82yi;Tk=yGE08v&3+5i9m delta 22 ccmcb*g8AwSX6}4mUM>b8uv+83k=yGE08o$yrT_o{ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/FRC_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/FRC_S.cpython-310.pyc index 022352050b688a119bb2402d5800c61ab4015384..c5257ea65f258e4109d74c93a6cf74e07ae71a26 100644 GIT binary patch delta 20 acmaEB{??p3pO=@50SE$|&Tr&?Bn<#Skp=+( delta 20 acmaEB{??p3pO=@50SK(txNqcsBn<#R%LUB< diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/FRC_S_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/FRC_S_field.cpython-310.pyc index 99b7bd3767491b926e472eddbe9c078b1d351cc3..88dfce7e0670175241be3bb8775009ba93968507 100644 GIT binary patch delta 28 icmdnGkYnpY4(@zjUM>b82yi;z$lc1#xRsk}l>h*900&h7 delta 28 icmdnGkYnpY4(@zjUM>b8uv+8Z$lc1#xRsk}l>h*70tX=g diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/FRC_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/FRC_S_register.cpython-310.pyc index f1a497e024586a156ab847044e96ad466f281293..cc16747c61b883a1aaa3e6d2084c5b8364ac6abc 100644 GIT binary patch delta 22 ccmX@MnEBXZX6}4mUM>b82yi;Tk$d+=08a}CAOHXW delta 22 ccmX@MnEBXZX6}4mUM>b8uv+83k$d+=08T{)>;M1& diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/MODEM_NS.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/MODEM_NS.cpython-310.pyc index 621db528c125324ba392f8ec96606e819e9c88ca..6b223312d82a8a13cca3824d07d8191bbacffc56 100644 GIT binary patch delta 22 ccmZ3}!MLV_kvpH4mx}=i0-Vlob82yi;z$i0=D@yLGwbnXbc delta 25 fcmX^ApZ)xQcJ6#$UM>b8uv+8Z$i0=D@yLGwbBqXv diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/MODEM_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/MODEM_S.cpython-310.pyc index de074bd82e46b6d296fdd3062c2edb5de702bf93..f55a87eb4430d17c6f3369d85111623808c96ed2 100644 GIT binary patch delta 22 ccmccC#(1rbkvpH4mx}=i0-VloyLFC8;5$=3mUM>b82yi;z$lc1#*vie+%FW!$&9ar7)sh1MyfO%^ delta 37 rcmX>yLFC8;5$=3mUM>b8uv+8Z$lc1#*vie+%FW!$&9ar7)sh1MxL^o) diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/MODEM_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/MODEM_S_register.cpython-310.pyc index eb8e08b3789ad704a8be50d1688b52f7791fd6c6..054b7bf35e40f7608b794e153b93537534794404 100644 GIT binary patch delta 25 fcmbRJnSJ(WcJ6#$UM>b82yi;z$i0=Dal%gkXxIn< delta 25 fcmbRJnSJ(WcJ6#$UM>b8uv+8Z$i0=Dal%gkXLbk7 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/RAC_NS.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/RAC_NS.cpython-310.pyc index 2dd386702c62ce4a16ff32c4461f4bce5e0a2caa..5a886e9cb417a7add0e71395ffd83b52b066b260 100644 GIT binary patch delta 20 acmaFp_Rx(xpO=@50SE$|&Tr%nQw9J()dhn9 delta 20 acmaFp_Rx(xpO=@50SK(txNqbRQw9J(4+T#E diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/RAC_NS_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/RAC_NS_field.cpython-310.pyc index a1648479f20ddb826e58680d3af5e4e9de836bd4..aaa198984e3a32bcee677e4b9a661b82b827929c 100644 GIT binary patch delta 31 lcmZ3!n`ilM9`1ZzUM>b82yi;z$lc1#*viecm795vEC7sb2nPTF delta 31 lcmZ3!n`ilM9`1ZzUM>b8uv+8Z$lc1#*viecm795vEC7kp2h#um diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/RAC_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/RAC_NS_register.cpython-310.pyc index df208ddebad40771f45f289575ebd58a6f4404d9..2c04468469ced809d0342757e85f3fc8e6ad306b 100644 GIT binary patch delta 25 fcmccnjOFe#7VdmrUM>b82yi;z$i0=DF~}GIaOwwO delta 25 fcmccnjOFe#7VdmrUM>b8uv+8Z$i0=DF~}GIZ-@sh diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/RAC_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/RAC_S.cpython-310.pyc index 313a271cee7512816944720ce82873e3a24f35ee..5370c68aa1307c55b333a883e2396d4facc87a9a 100644 GIT binary patch delta 20 acmez1`oWbupO=@50SE$|&Tr&?sssQ-2nHb82yi;z$lc1#*viecm7DpY7yy~L2(thH delta 31 lcmaE}mgmh{9`1ZzUM>b8uv+8Z$lc1#*viecm7DpY7yy?Z2!8+o diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/RAC_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/RAC_S_register.cpython-310.pyc index 07baa15b23be21e03a0b26fd75aad4f57dba86b7..5135952e3cfaf52b81abc5edd6cc1bfc93fd1526 100644 GIT binary patch delta 25 fcmcb4pXKI#7VdmrUM>b82yi;z$i0=D@ti&YZ|4WX delta 25 fcmcb4pXKI#7VdmrUM>b8uv+8Z$i0=D@ti&YZiNSq diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/RFCRC_NS.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/RFCRC_NS.cpython-310.pyc index a6e11ea0fa00dff96966c8cca780d50dc700ef04..a255fa37569c1e7f86f1296081b94cefd8eb3034 100644 GIT binary patch delta 20 acmcb~eUqCzpO=@50SE$|&Tr&C#|i*9D+N~o delta 20 acmcb~eUqCzpO=@50SK(txNqb>#|i*8Wd$Pu diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/RFCRC_NS_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/RFCRC_NS_field.cpython-310.pyc index b060dd2829f03ce5632c2534528318d2cc0b0a40..272f16cc33ddaa389cb199f7ac2a238927e178f9 100644 GIT binary patch delta 20 ZcmZqBZP4Y;=jG*M0D=Ig^BcKK#Q-iG1fc)` delta 20 ZcmZqBZP4Y;=jG*M00OHu?i;yF#Q-f<1Z@BS diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/RFCRC_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/RFCRC_NS_register.cpython-310.pyc index 93270b93ca1894f9774abf3259dd7dcf6f7ecb28..e632217b77592192d25dab54e19ff001db9dd710 100644 GIT binary patch delta 20 acmdn5x?hz$pO=@50SE$|&Tr)2A_M?7&;?2W delta 20 acmdn5x?hz$pO=@50SK(txNqd%A_M?73I!Gb diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/RFCRC_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/RFCRC_S.cpython-310.pyc index 3e8ee3ee5c1c7d5099bcae2cf8bce54890e4b1c2..b5646f1219eb9ffc2c4575c66f3daecbcd57121d 100644 GIT binary patch delta 20 acmX@jeVUs)pO=@50SE$|&Tr&CzzP5~`volk delta 20 acmX@jeVUs)pO=@50SK(txNqb>zzP5~H3azp diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/RFCRC_S_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/RFCRC_S_field.cpython-310.pyc index 0511b99b38603d58e9ec65399463e8c9acd48a5a..958e6dfc33509fd240de1ebabe2301417b1f295f 100644 GIT binary patch delta 20 acmX@Fb6$r#pO=@50SE$|&Tr&)5d#1@Pz4MC delta 20 acmX@Fb6$r#pO=@50SK(txNqck5d#1?iUimI diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/RFCRC_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/RFCRC_S_register.cpython-310.pyc index c6c5b0b10f0dbf7c4403dfecee4705454bd9489e..8275738785eb64b0445962daccc5688fa8a9da4f 100644 GIT binary patch delta 20 acmbQFI!To~pO=@50SE$|&Tr&y7Xkn;$OOXx delta 20 acmbQFI!To~pO=@50SK(txNqcc7Xkn;0tAl$ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/SEQ.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/SEQ.cpython-310.pyc index 49a3462303a50ceb972262795cfedaacfe6f6094..9afa381a0b0d1561910796376a3a55b1ab55c13f 100644 GIT binary patch delta 20 acmcb|b&rcXpO=@50SE$|&Tr%nW(5E?&jjQE delta 20 acmcb|b&rcXpO=@50SK(txNqbRW(5E?2?VeJ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/SEQ_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/SEQ_field.cpython-310.pyc index 1468ebeb34d73c0b6b7747581a8c05ef59eb7d6f..efb78451a863faea1a493bb5800476682a2b1116 100644 GIT binary patch delta 20 acmcbla!G|dpO=@50SE$|&Tr&)7Xkn{qy+&0 delta 20 acmcbla!G|dpO=@50SK(txNqck7Xkn`-UQ76 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/SEQ_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/SEQ_register.cpython-310.pyc index 4cbd98ce11b366c79ac202737d3cfd99374d157f..ff070e49fa84b3e0d97e7ccfe3196a7cc409df98 100644 GIT binary patch delta 20 acmew(|3{uXpO=@50SE$|&Tr)Y$PWNNeFgFW delta 20 acmew(|3{uXpO=@50SK(txNqeC$PWNMw*|fc diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/SYNTH_NS.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/SYNTH_NS.cpython-310.pyc index a6ff59cb8967bf830ac450ad4bcf1d61fc357263..da11534245f1fdfff28897ec7f4fde259173cd87 100644 GIT binary patch delta 20 acmaDU{Zg7cpO=@50SE$|&Tr(t#|r>E^98Q} delta 20 acmaDU{Zg7cpO=@50SK(txNqdX#|r>EEd_f3 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/SYNTH_NS_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/SYNTH_NS_field.cpython-310.pyc index 2b82c674c55eb65c0aa4ed785462d2452fa951ff..9e6a2212fefdccfa47215e730828f92cc7e7e9f9 100644 GIT binary patch delta 22 ccmdnEoq6MSX6}4mUM>b82yi;Tk$c%~08W|*6951J delta 22 ccmdnEoq6MSX6}4mUM>b8uv+83k$c%~08P{e-v9sr diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/SYNTH_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/SYNTH_NS_register.cpython-310.pyc index 55f0aa68378dbfac848a12b615665d1806cc82b4..008b59cfa8eb57153646aae845be5b66d0c7347d 100644 GIT binary patch delta 22 ccmX@Ohwb82yi;Tk=rZ|08mB-OaK4? delta 22 ccmX@Ohwb8uv+83k=rZ|08fAh7ytkO diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/SYNTH_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/SYNTH_S.cpython-310.pyc index 644b77a273e933bc32920c044b8d5c5ce6fcdda1..bb4c6d84a0ef41de1d057d1b037ed054e61cc6e8 100644 GIT binary patch delta 20 acmX>oeNdV^pO=@50SE$|&Tr)2#tQ&7vjsN* delta 20 acmX>oeNdV^pO=@50SK(txNqd%#tQ&6?F9n> diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/SYNTH_S_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/SYNTH_S_field.cpython-310.pyc index f0f39c2614d2a871f63a93af1d162afc6129d8eb..3db8b3d02506b08992774e3d5badeaa0ea5e934e 100644 GIT binary patch delta 22 ccmX@Infb_OX6}4mUM>b82yi;Tk$dM&08uRmLI3~& delta 22 ccmX@Infb_OX6}4mUM>b8uv+83k$dM&08nQK4gdfE diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/SYNTH_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/SYNTH_S_register.cpython-310.pyc index 7b691796598bd7a9a9c5741372fbcb786115f3cb..ff5f5ee82935feff9e899a17c7a7c98665a85106 100644 GIT binary patch delta 22 ccmdnAi*eH~M(%uGUM>b82yi;Tky||$08MfR8UO$Q delta 22 ccmdnAi*eH~M(%uGUM>b8uv+83ky||$08Fd}<^TWy diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/__init__.cpython-310.pyc index e83f5ae253c35a5e636f8d48508bbf7c9ea55b90..4fd1db6d21e179569d632544ea209f548b4510bb 100644 GIT binary patch delta 20 acmdn2xmlAtpO=@50SE$|&Tr&iAp!t3f(0-D delta 20 acmdn2xmlAtpO=@50SK(txNqcMAp!t2yafCJ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/_version.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/_version.cpython-310.pyc index f48b034df138c1970d7b800067e138c1f1a74faf..e3287630bb81afadd314c7047b58e22c24f1e2ad 100644 GIT binary patch delta 20 ZcmeBY>SyB4=jG*M0D=Ig^BcKY7y&6$1LFVy delta 20 ZcmeBY>SyB4=jG*M00OHu?i;yT7y&4a1Frx8 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/device.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/device.cpython-310.pyc index 915a72f127508f01ce22205038a17bf46131134e..2f0d78eddf27c5cd25fadcdf593b65ab5122e372 100644 GIT binary patch delta 20 acmdmKxYLk3pO=@50SInfdAX5$odf_sJO+vY delta 20 acmdmKxYLk3pO=@50SK(txNqcMCjkI9&;=p@ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/excluded_regs.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/__pycache__/excluded_regs.cpython-310.pyc index a00ed71b1acac3bd78a23b938c6a0b101667c4b7..b4d9c9243cc08f14fd45d6e46a5a5d526cf0e9e9 100644 GIT binary patch delta 20 acmdnYwV8`MpO=@50SE$|&Tr(_UpO=@50SE$|&Tr)IVgdjwumpSn delta 20 acmbQrI+c|>pO=@50SK(txNqd{Vgdjv>I6st diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/static/base/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/static/base/__pycache__/__init__.cpython-310.pyc index b9d7b27596482bc3612846e9126cafbc2b6ca279..346fe18a747aab89816dab927afd40236886b8f5 100644 GIT binary patch delta 20 acmbQoGLMBjpO=@50SE$|&Tr%vW&!{!^aK?E delta 20 acmbQoGLMBjpO=@50SK(txNqbZW&!{!E(75J diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/static/base/__pycache__/device.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/static/base/__pycache__/device.cpython-310.pyc index ba28602f93303fa92a5d0845d6775b76a5e49f92..2961b876265049807f34925307e04933097adcaf 100644 GIT binary patch delta 20 acmeyD{x6+7pO=@50SE$|&Tr)YYzzQO5eBRP delta 20 acmeyD{x6+7pO=@50SK(txNqeCYzzQNO9prV diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/static/base/__pycache__/enumeration.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/static/base/__pycache__/enumeration.cpython-310.pyc index 059dd6fb1afe801117f0ee6eb4d63182b7f249a3..25c3f75241447980a62d0cfa5e64435e352f1b21 100644 GIT binary patch delta 20 acmdlXyhE5fpO=@50SE$|&Tr&i%LxE8Cj|%q delta 20 acmdlXyhE5fpO=@50SK(txNqcM%LxE7VFc6w diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/static/base/__pycache__/field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/static/base/__pycache__/field.cpython-310.pyc index 15485a73fb1f3723a1ef0ed013609052a7b6a5e4..ed7d396c52a5a4486b53e99c66e75f03b4f90f89 100644 GIT binary patch delta 20 acmX@2dqkHzpO=@50SE$|&Tr)2DFy&IyajCl delta 20 acmX@2dqkHzpO=@50SK(txNqd%DFy&H_60cr diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/static/base/__pycache__/peripheral.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/static/base/__pycache__/peripheral.cpython-310.pyc index 26a536b17fd7a4f3b0a1e9f6e88ccfa99f4555aa..fc12d887a72581bba51043abb3e15ae608507e2b 100644 GIT binary patch delta 20 acmcbjbw!IipO=@50SInfdAX6>QxpI}bp}cR delta 20 acmcbjbw!IipO=@50SK(txNqe46a@e|2?XK* diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/static/base/__pycache__/register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/static/base/__pycache__/register.cpython-310.pyc index 4d7acb19497816f624ddb007eccb0062b4a485bb..f238e0ea9b42ef8969c931d8979dc562e2515bb2 100644 GIT binary patch delta 20 acmdn(y4#gIpO=@50SE$|&Tr)2pacLqzy*!~ delta 20 acmdn(y4#gIpO=@50SK(txNqd%pacLp`UP45 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/static/common/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/static/common/__pycache__/__init__.cpython-310.pyc index c52f0e49337ccc647a92341ec32e30d5ab2de35d..68e30671beb22b75c0d715989522924a5699db4f 100644 GIT binary patch delta 20 acmZ3>vX+HApO=@50SE$|&Tr&aVgdjzOawvz delta 20 acmZ3>vX+HApO=@50SK(txNqcEVgdjyh6D}( diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/static/common/__pycache__/accessmgr.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/static/common/__pycache__/accessmgr.cpython-310.pyc index 138e0edfd447b603689767a6b6aa2505c476b65f..f3b8a29fb6a4669e8eb2c22fe2c4a43856e92597 100644 GIT binary patch delta 20 acmaDO`bLyHpO=@50SE$|&Tr&?$OQm9kOip# delta 20 acmaDO`bLyHpO=@50SK(txNqcs$OQm8$^~@* diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/static/common/__pycache__/errors.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/static/common/__pycache__/errors.cpython-310.pyc index 735d0b3f82c90b13186f854dd2c217c8c90e7beb..7461bf45277b9294502a98886d92a6c3c8eeb29f 100644 GIT binary patch delta 20 acmdnayPcOipO=@50SE$|&Tr&i!v+8{Bn0*V delta 20 acmdnayPcOipO=@50SK(txNqcM!v+8`UIfAb diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/static/common/__pycache__/regmapio.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/static/common/__pycache__/regmapio.cpython-310.pyc index 93f5db2839a9a2b97bb81e449f24cf9d1eae1e93..3521da3ce0f825e747138b50303e101320d20104 100644 GIT binary patch delta 22 ccmX>)f$``BM(%uGUM>b82yi;Tk=x1x07@tY>Hq)$ delta 22 ccmX>)f$``BM(%uGUM>b8uv+83k=x1x07+s6wg3PC diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/static/common/__pycache__/svdinfo.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/static/common/__pycache__/svdinfo.cpython-310.pyc index 622ec83f25e82585fdd2881968ebec8e84666470..407cdfb2f39a04b1bd843bb419ac96eb3f283962 100644 GIT binary patch delta 20 acmbO(IbD)FpO=@50SE$|&Tr)I;Q;_H+61%! delta 20 acmbO(IbD)FpO=@50SK(txNqd{;Q;_H6a;_( diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/static/interface/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/static/interface/__pycache__/__init__.cpython-310.pyc index a747f9214490e77a3164f4098cbcef3ddc69e421..df978a1e789167cf58bdb60365f6e12cd784d155 100644 GIT binary patch delta 20 acmX@YeuSMnpO=@50SE$|&Tr)2$qWE9Q3VbF delta 20 acmX@YeuSMnpO=@50SK(txNqd%$qWE8iv-#L diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/static/interface/__pycache__/iregmapdevice.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/static/interface/__pycache__/iregmapdevice.cpython-310.pyc index 3320493992093d218169fd0231fcc8c9cdfe060b..b0eb92c16fe04efcd51909bc70bfd3ef6b49b26b 100644 GIT binary patch delta 22 ccmbP#f^q%{M(%uGUM>b82yi;Tky|7M08DBI1ONa4 delta 22 ccmbP#f^q%{M(%uGUM>b8uv+83ky|7M0869=&;S4c diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/static/interface/__pycache__/iregmapenum.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/static/interface/__pycache__/iregmapenum.cpython-310.pyc index 2fe9c34d000cf097668e4b1720fcb1228b963dda..66687898bf6f70882ef62cfae74755f5a319cbed 100644 GIT binary patch delta 20 acmcaFa$kfypO=@50SE$|&Tr%n;Q|0SWCZ{K delta 20 acmcaFa$kfypO=@50SK(txNqbR;Q|0Ro&?MQ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/static/interface/__pycache__/iregmapfield.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/static/interface/__pycache__/iregmapfield.cpython-310.pyc index c9532641c232a91eeb51ca7dbd3b7891782999b0..c7ddfd8f78e59bb6a92723a6925025fada63fde1 100644 GIT binary patch delta 20 acmZ4Bu)u*kpO=@50SE$|&Tr%vRR91q(gd*p delta 20 acmZ4Bu)u*kpO=@50SK(txNqbZRR91q3@ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/static/interface/__pycache__/iregmapperipheral.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/static/interface/__pycache__/iregmapperipheral.cpython-310.pyc index d5567ec5bdd60f2adb1cdc7f4573f878d4648ada..ebc012f1c68d94dfa8a83e0ed1b46ccdf56ef420 100644 GIT binary patch delta 20 acmez5{K=U+pO=@50SE$|&Tr&?t_T1_4+bs( delta 20 acmez5{K=U+pO=@50SK(txNqcst_T1^Nd@`< diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/static/interface/__pycache__/iregmapregister.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg24/revA1/static/interface/__pycache__/iregmapregister.cpython-310.pyc index 02d866eaf3809259f2adf89bf5f28524e70fd83c..a3a3753eeb35faf59b8c58d6bb916135227a44bb 100644 GIT binary patch delta 20 acmbR0I@OgspO=@50SE$|&Tr)IQUU-p&;=X- delta 20 acmbR0I@OgspO=@50SK(txNqd{QUU-p3Iyl? diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/__pycache__/__init__.cpython-310.pyc index b2e4e5ea55dab78a8a5957ea4fa6b76027ea8e67..781dec24c8ece144336bf3a0083eb3ff3a1f9e89 100644 GIT binary patch delta 20 acmbQiG=qsdpO=@50SE$|&Tr)AWdr~!y953J delta 20 acmbQiG=qsdpO=@50SK(txNqdb82yi;z$i0=Dapy7sX@v*c delta 25 fcmX?dmhH${Htu|0UM>b8uv+8Z$i0=Dapy7sXd?%v diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/AGC_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/AGC_NS_register.cpython-310.pyc index 7252057eb09f34674d5439bde5da818cc9777bb1..c0003f395eeaa516a458b134ec49d22a90a3b8c2 100644 GIT binary patch delta 22 ccmbPoj%ms{ChmM*UM>b82yi;Tk(+Zl088TrGynhq delta 22 ccmbPoj%ms{ChmM*UM>b8uv+83k(+Zl081SP00000 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/AGC_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/AGC_S.cpython-310.pyc index e22d7bc1a13b5baa5bb1eda87afd6c7ab1931649..d8a4a602c1b32fa22f0637906987ce3bb8f46c25 100644 GIT binary patch delta 20 acmeyR{Y#rWpO=@50SE$|&Tr&?FA4xa;|2-< delta 20 acmeyR{Y#rWpO=@50SK(txNqcsFA4xa9R=0^ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/AGC_S_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/AGC_S_field.cpython-310.pyc index bb1962f224a4c9ed10d9a12558d9dc1a16993732..9d61c9417c9c0ad9f3a5cfe147d3ab2597b53bf0 100644 GIT binary patch delta 25 fcmbPqjBU~}Htu|0UM>b82yi;z$i0=Dk$o`$U9|?Y delta 25 fcmbPqjBU~}Htu|0UM>b8uv+8Z$i0=Dk$o`$TvG;r diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/AGC_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/AGC_S_register.cpython-310.pyc index 370c49cafc6aab3935eeeef4b539e351cdb5aa2c..f25ad2d6feeb95e585979834bffcf56c3646db56 100644 GIT binary patch delta 22 ccmbP!ifQ^OChmM*UM>b82yi;Tk(*~J087ROGXMYp delta 22 ccmbP!ifQ^OChmM*UM>b8uv+83k(*~J080P`{{R30 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/CW.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/CW.cpython-310.pyc index 1934bdcba7b5e0f338634b48652fa2dd9edb0073..beacc3b8ed85997aadc9f51ffb9a1eb75384c838 100644 GIT binary patch delta 20 acmaFO@tT7>pO=@50SE$|&Tr&SU;zL)js*q) delta 20 acmaFO@tT7>pO=@50SK(txNqc6U;zL($OO^= diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/CW_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/CW_field.cpython-310.pyc index 4af36d7487beb94ff6f96c79eb90ff3f5a654e0a..b6c85aa2c3abf466c22259dbcc005301a2f0986a 100644 GIT binary patch delta 20 acmbOsGed?upO=@50SE$|&Tr)Ab82yi;Tk$c?~08L~D#sB~S delta 22 ccmdnFl4<8kChmM*UM>b8uv+83k$c?~08E|+k^lez diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/FEFILT0_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/FEFILT0_NS_register.cpython-310.pyc index b0f62590e9b1dd1d6bc1d5b3c7dd8d7408a60c28..f67a666afcf7c1487cdf553b39f5c6211cb8f94c 100644 GIT binary patch delta 22 ccmcb&i1FScM(%uGUM>b82yi;TkvljL08t_aVgLXD delta 22 ccmcb&i1FScM(%uGUM>b8uv+83kvljL08m^8E&u=k diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/FEFILT0_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/FEFILT0_S.cpython-310.pyc index 14e5b90883c592eca9460d8c2ebaae0e8d75e398..12203708f9df2799d4cf55c7973a652cb556fbfa 100644 GIT binary patch delta 20 acmdldvrmRQpO=@50SE$|&Tr&4<^upUU<9!M delta 20 acmdldvrmRQpO=@50SK(txNqb(<^upTngo3S diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/FEFILT0_S_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/FEFILT0_S_field.cpython-310.pyc index 715fd9f666fc7122fac2e09ce119bc93006c8859..01268b2b8c111c0856c0714ea23f2691eb391f6c 100644 GIT binary patch delta 22 ccmeyejOoiVChmM*UM>b82yi;TkvnrT09Drp@Bjb+ delta 22 ccmeyejOoiVChmM*UM>b8uv+83kvnrT096qNyZ`_I diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/FEFILT0_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/FEFILT0_S_register.cpython-310.pyc index 589b663c228a213491516202adad84bde38e4345..06783c19affbe8fa221b225eddfec5f304480290 100644 GIT binary patch delta 22 ccmZo!$k?)wkvpH4mx}=i0-Vlob82yi;Tk$c?~08L~D#sB~S delta 22 ccmdnFl4<8kChmM*UM>b8uv+83k$c?~08E|+k^lez diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/FEFILT1_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/FEFILT1_NS_register.cpython-310.pyc index 75ab72dfb21208d540c41bd8e8b5839db9f4654a..cd1902052d4e0681b9a1745615971c84c879fa88 100644 GIT binary patch delta 22 ccmcb&i1FScM(%uGUM>b82yi;TkvljL08t_aVgLXD delta 22 ccmcb&i1FScM(%uGUM>b8uv+83kvljL08m^8E&u=k diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/FEFILT1_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/FEFILT1_S.cpython-310.pyc index 598ecfe97b8d2a0835d91ead78969c38356ca9e1..0bc23b55cf82e540b6bbf0890e69ae6dbb782226 100644 GIT binary patch delta 20 acmdldvrmRQpO=@50SE$|&Tr&4<^upUU<9!M delta 20 acmdldvrmRQpO=@50SK(txNqb(<^upTngo3S diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/FEFILT1_S_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/FEFILT1_S_field.cpython-310.pyc index 5de9323fb44f03da85231aa5ee59aa5cce742ef5..cb98d8b250d66757df5378955ec4cd5b9789ae37 100644 GIT binary patch delta 22 ccmeyejOoiVChmM*UM>b82yi;TkvnrT09Drp@Bjb+ delta 22 ccmeyejOoiVChmM*UM>b8uv+83kvnrT096qNyZ`_I diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/FEFILT1_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/FEFILT1_S_register.cpython-310.pyc index dfc9396bb9e17004057b86eeb8926b464b017ec5..a55484ddb6b5bfb1fcc1df09ed6f4e0f8408e147 100644 GIT binary patch delta 22 ccmZo!$k?)wkvpH4mx}=i0-Vlob82yi;z$lc1#xRskJOcDTo;0J^N delta 28 icmaF3iR0lW4(@zjUM>b8uv+8Z$lc1#xRskJOcDTm;s;Ow diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/FRC_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/FRC_NS_register.cpython-310.pyc index 790454b1444d136baceb643f3754f0bf5e5fdf71..f6e6b42e7a02c7d710948750f8a9704b5285c103 100644 GIT binary patch delta 22 ccmX@MhWXeUX6}4mUM>b82yi;Tk=yzj08eiQw*UYD delta 22 ccmX@MhWXeUX6}4mUM>b8uv+83k=yzj08Xg}g8%>k diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/FRC_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/FRC_S.cpython-310.pyc index ed61fdf6a2b854aaa944bd055dc75bd69ec9da3b..395f94cad6a11ffd3e46dec0ca7a0784ba0e9a55 100644 GIT binary patch delta 20 acmdmFvB`ovpO=@50SE$|&Tr&amjM7aegxA1 delta 20 acmdmFvB`ovpO=@50SK(txNqcEmjM7ZxCEa7 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/FRC_S_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/FRC_S_field.cpython-310.pyc index f2d647507a2138b34dbe6934ac920d2fed4bc4fb..f5c540407eefefc3d79a88eb69418c2c1046e6b7 100644 GIT binary patch delta 28 icmbQel4JHt4(@zjUM>b82yi;z$lc1#xRsk}f(QU_1_v7e delta 28 icmbQel4JHt4(@zjUM>b8uv+8Z$lc1#xRsk}f(QU@2nOc> diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/FRC_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/FRC_S_register.cpython-310.pyc index 3993be134546414e3ed901e66ddc0515724fab8d..c59876bf883ebeae8e3f86f59b25e18c744b9a2e 100644 GIT binary patch delta 22 ccmdnEoO$DNX6}4mUM>b82yi;Tk$c%?08AnV>i_@% delta 22 ccmdnEoO$DNX6}4mUM>b8uv+83k$c%?083m3w*UYD diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/LEGOQPSK.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/LEGOQPSK.cpython-310.pyc index 299a2b7eeca7eea225e811b2b9274e8678b79740..18f0248e3fcfd44d584fbbd2d0728ee4b287a3c0 100644 GIT binary patch delta 20 acmZqVY2@L~=jG*M0D=Ig^BcLpu>t@pj|9;G delta 20 acmZqVY2@L~=jG*M00OHu?i;zku>t@o$poDM diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/LEGOQPSK_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/LEGOQPSK_field.cpython-310.pyc index f5c6056977d3f07023566fa66680cbd8e5e956f7..7ba51d0ca007158fdabd38b03f1a4181619a13aa 100644 GIT binary patch delta 20 acmX?Yf7+fqpO=@50SE$|&Tr&CAP)dMWd*MQ delta 20 acmX?Yf7+fqpO=@50SK(txNqb>AP)dLp9OmW diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/LEGOQPSK_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/LEGOQPSK_register.cpython-310.pyc index 69fd7d43e92946484a1fd0972fceb4b5e8299899..6d54322d5c213b67db9727996f3ecae62d8ca3ca 100644 GIT binary patch delta 20 acmZqHYS!Y;=jG*M0D=Ig^BcK;hyVaDCIun@ delta 20 acmZqHYS!Y;=jG*M00OHu?i;y(hyVaCU} diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/LRSWKOFDM.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/LRSWKOFDM.cpython-310.pyc index 3eee52127818eb0bf992674ea26a83b6efe6f91f..26e6b690946ade3fe36b878089f8c28b6fec1e47 100644 GIT binary patch delta 20 acmdnawVjJQpO=@50SE$|&Tr(_VFds%w*+qh delta 20 acmdnawVjJQpO=@50SK(txNqdvVFds$@dP^n diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/LRSWKOFDM_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/LRSWKOFDM_field.cpython-310.pyc index e5078f70e702e014b6611f9c29e17afc0cc0b7bb..e53b332c6e59158be67b3356925e729797230284 100644 GIT binary patch delta 20 acmZ2&xZ03ApO=@50SE$|&Tr&iAOQe1W(6z& delta 20 acmZ2&xZ03ApO=@50SK(txNqcMAOQe0pal2; diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/LRSWKOFDM_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/LRSWKOFDM_register.cpython-310.pyc index 6e3f6d0efee16d00ecd0d9c1c46fe2007c2237c6..048202c7dc7be6ed938d638088d7cff283d3631c 100644 GIT binary patch delta 20 acmca0e?gu*pO=@50SE$|&Tr&C$`1fIods?H delta 20 acmca0e?gu*pO=@50SK(txNqb>$`1fH*9AHN diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/MODEM_NS.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/MODEM_NS.cpython-310.pyc index b966c6966f88a38347365f2c718376691fa270a9..6792219cb96b63bfd0b84c5ed51773745603e959 100644 GIT binary patch delta 20 acmcana-)PhpO=@50SE$|&Tr)QwE_S{`~}+p delta 20 acmcana-)PhpO=@50SK(txNqe4wE_S{HU*~u diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/MODEM_NS_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/MODEM_NS_field.cpython-310.pyc index 7abecca862051939394b4c977ce29181c94a6202..11c0204f12a704fb7dfb895714dce9c982b192e9 100644 GIT binary patch delta 34 ocmexyT=>UvVeWihUM>b82yi;z$lc1#*vie+%FVo$o8|3e0KYE^dH?_b delta 34 ocmexyT=>UvVeWihUM>b8uv+8Z$lc1#*vie+%FVo$o8|3e0K54LMgRZ+ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/MODEM_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/MODEM_NS_register.cpython-310.pyc index efa6c5878025d2b1e834682ad1c27f22101e5dc3..6df15d2a4e300a5f1d402dd7ea6099b8f438c54e 100644 GIT binary patch delta 25 fcmX@Moc-8xcJ6#$UM>b82yi;z$i0=Darb2aW042L delta 25 fcmX@Moc-8xcJ6#$UM>b8uv+8Z$i0=Darb2aVlM}e diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/MODEM_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/MODEM_S.cpython-310.pyc index f45aec148ee6f04aaba94be6c59aa10c4bc98fc0..7c8cc1ee508673120bb0d551f54e3b79dfaf49c0 100644 GIT binary patch delta 20 acmZ2jys(%%pO=@50SE$|&Tr(NW(fd2KLxV@ delta 20 acmZ2jys(%%pO=@50SK(txNqd1W(fd1c?Ev} diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/MODEM_S_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/MODEM_S_field.cpython-310.pyc index 850eb0119995fc57664f65c3ee90108cb365769d..bc13e72ea798b61baa9316d3d361c6f9811a4b23 100644 GIT binary patch delta 34 ocmZ3pNqEgBVeWihUM>b82yi;z$lc1#*vie+%FVo$n?>;^0HqcP;s5{u delta 34 ocmZ3pNqEgBVeWihUM>b8uv+8Z$lc1#*vie+%FVo$n?>;^0HNRrt^fc4 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/MODEM_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/MODEM_S_register.cpython-310.pyc index 816761767c65424490f2f757df4313cd6ea65df9..25e2da74b7d5a79be84af71f230932fdbdfef49e 100644 GIT binary patch delta 25 fcmbO_hkfcCcJ6#$UM>b82yi;z$i0=Dk?R})S3Cxl delta 25 fcmbO_hkfcCcJ6#$UM>b8uv+8Z$i0=Dk?R})RoVt& diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/RAC_NS.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/RAC_NS.cpython-310.pyc index 4938425243d00b04494cad78e56a52a50d3479bf..8878047f2df19c6ee1cdf39ba993fe8416209561 100644 GIT binary patch delta 20 acmZ1%vMz)>pO=@50SE$|&Tr&a)&c-I+yxB) delta 20 acmZ1%vMz)>pO=@50SK(txNqcE)&c-I76jP< diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/RAC_NS_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/RAC_NS_field.cpython-310.pyc index 4de00b5a750142cdcd14461e0e1a5c8a35e628ee..ca826a7c12d3ffe31ee26b93c923e84d474a3895 100644 GIT binary patch delta 31 lcmeCV%inXCpF5wImx}=i0-Vk_a<_6bwsJFVb82yi;z$i0=Dac>y_Z;l7_ delta 25 fcmX@{mi5G2R_=UWUM>b8uv+8Z$i0=Dac>y_ZY&4D diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/RAC_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/RAC_S.cpython-310.pyc index 9f6be89d7f4170f5c68ca15f12cd2d1082062699..83fbe4cb6ec716005e0ed873987cd6698a398142 100644 GIT binary patch delta 20 acmZ1;ygZmYpO=@50SE$|&Tr(NqX_^xp9OUQ delta 20 acmZ1;ygZmYpO=@50SK(txNqd1qX_^w*#$uW diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/RAC_S_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/RAC_S_field.cpython-310.pyc index 915f2a453e2836f2f89d4433ae689467c9e51af8..766d20b857e439c80dac96be9a0afefc5548606f 100644 GIT binary patch delta 31 lcmZoW!{2s>pF5wImx}=i0-Vk_a<_6bwsJFVpF5wImx}=itk$?Ua<_6bwsJFVb82yi;z$i0=DF|G&zb4CZj delta 25 fcmaF)g!SbUR_=UWUM>b8uv+8Z$i0=DF|G&zapVV$ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/RFCRC_NS.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/RFCRC_NS.cpython-310.pyc index da315d1e65563c40a40949ba016f55c91e8d7466..d734fcdb8db67020a71a2a0dfd668eaddd75eb43 100644 GIT binary patch delta 20 acmcb~eUqCzpO=@50SE$|&Tr&C#|i*9D+N~o delta 20 acmcb~eUqCzpO=@50SK(txNqb>#|i*8Wd$Pu diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/RFCRC_NS_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/RFCRC_NS_field.cpython-310.pyc index c39eb505e8cc248079989240de0132464f436557..d319ce1d900b82aac32f8f67d9641099dd5c83e9 100644 GIT binary patch delta 20 ZcmZqBZP4Y;=jG*M0D=Ig^BcKK#Q-iG1fc)` delta 20 ZcmZqBZP4Y;=jG*M00OHu?i;yF#Q-f<1Z@BS diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/RFCRC_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/RFCRC_NS_register.cpython-310.pyc index 14e3d626e3bf440f9318d6ddf231bc1326d7ffa5..84109f700248f2b5d662b975bc84bd60de558242 100644 GIT binary patch delta 20 acmdn5x?hz$pO=@50SE$|&Tr)2A_M?7&;?2W delta 20 acmdn5x?hz$pO=@50SK(txNqd%A_M?73I!Gb diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/RFCRC_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/RFCRC_S.cpython-310.pyc index 1ccf1362849c17433848d07cfc44032220502bfb..63e00ebb0213b0e5aa67f802d05575e0debba2b5 100644 GIT binary patch delta 20 acmX@jeVUs)pO=@50SE$|&Tr&CzzP5~`volk delta 20 acmX@jeVUs)pO=@50SK(txNqb>zzP5~H3azp diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/RFCRC_S_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/RFCRC_S_field.cpython-310.pyc index 4f999147715b298446e53dd0ddb775e70ae02cb3..10b8251478d59b96cb95fd223309641af8896da9 100644 GIT binary patch delta 20 acmX@Fb6$r#pO=@50SE$|&Tr&)5d#1@Pz4MC delta 20 acmX@Fb6$r#pO=@50SK(txNqck5d#1?iUimI diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/RFCRC_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/RFCRC_S_register.cpython-310.pyc index 04c6348d4a40265875eb8562e12059f8d8bee84f..15c45f7b5537658830c8077fe8e7a718ec2a88ab 100644 GIT binary patch delta 20 acmbQFI!To~pO=@50SE$|&Tr&y7Xkn;$OOXx delta 20 acmbQFI!To~pO=@50SK(txNqcc7Xkn;0tAl$ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/RFFPLL0_NS.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/RFFPLL0_NS.cpython-310.pyc index 1e24fa95ed04825e9304ed07c588eabff29ac9f8..9d55478ee36cbbce3a2ac49cf28f17940b6d25aa 100644 GIT binary patch delta 20 acmZ1~xKxlkpO=@50SE$|&Tr(N#Q^{><^;+B delta 20 acmZ1~xKxlkpO=@50SK(txNqd1#Q^{>AOw~G diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/RFFPLL0_NS_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/RFFPLL0_NS_field.cpython-310.pyc index 2d74ce372493688197cead8921e68c19554c42aa..894a19bcf4bc22b86daf79a13b702c723a79fe13 100644 GIT binary patch delta 22 ccmbPpl5x&SM(%uGUM>b82yi;Tk$Yka08J1EeEb8uv+83k$Yka08B~-NdN!< diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/RFFPLL0_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/RFFPLL0_NS_register.cpython-310.pyc index e44502adb961bc539249e9cfade3253dec82b455..454c023a3519e5d5b0e1fa0ac2119fa32eb2712b 100644 GIT binary patch delta 20 acmeyE`Z1L|pO=@50SE$|&Tr&?W&{97zy^Q- delta 20 acmeyE`Z1L|pO=@50SK(txNqcsW&{96`UXq@ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/RFFPLL0_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/RFFPLL0_S.cpython-310.pyc index 00f523c2a4763e352af330c95720666294de654c..4567313e5d7de6ca64bd88b113b9e5171f1cbb41 100644 GIT binary patch delta 20 ZcmeAd>=)$D=jG*M0D=Ig^BcKaH~=hm1c(3t delta 20 ZcmeAd>=)$D=jG*M00OHu?i;yVH~=fK1XKV3 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/RFFPLL0_S_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/RFFPLL0_S_field.cpython-310.pyc index fb284221fac1ce76537a34cf5d7eec434072089e..eecfdf4de79171319f4c0a0dc7e4915c8c4a21c1 100644 GIT binary patch delta 22 ccmX?bobkYMM(%uGUM>b82yi;Tk$Y=008-5cb8uv+83k$Y=008$4AumAu6 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/RFFPLL0_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/RFFPLL0_S_register.cpython-310.pyc index da96f631292dc5102753dc20ad3537a4f92c3e61..4ade9658eb34930604662e0025b8fd79243e2b45 100644 GIT binary patch delta 20 acmeyI@;QY&pO=@50SE$|&Tr(-FaiKZ>;?n? delta 20 acmeyI@;QY&pO=@50SK(txNqdnFaiKZCI!#{ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/SEQ.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/SEQ.cpython-310.pyc index 739a247392712a17ab8a5e572076d437ba0fd9c9..20a547d746252751d5f386742c8c0f713f42c194 100644 GIT binary patch delta 20 acmaFD^@NK%pO=@50SE$|&Tr(7WCZ{>zXbLG delta 20 acmaFD^@NK%pO=@50SK(txNqc+WCZ{=`2@lM diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/SEQ_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/SEQ_field.cpython-310.pyc index 6761ba8d7bc7d77faa37eb5d7fd76e04681a4fcc..e4de5911d76239db468f34fae04a8a1707a5c1af 100644 GIT binary patch delta 20 acmbPdHP4DWpO=@50SE$|&Tr%vmIVMarv#h; delta 20 acmbPdHP4DWpO=@50SK(txNqbZmIVMZ;RI*^ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/SEQ_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/SEQ_register.cpython-310.pyc index 1817cd37c037c9c713048f00d4affc8e8e40aa51..213e0b07f03ca20bb654b95f1d724916e4b54351 100644 GIT binary patch delta 20 acmZ3gwp5KfpO=@50SE$|&Tr(F5(WS<b82yi;z$i0=DacMjNV#xb8uv+8Z$i0=DacMjNVP^*g diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/SMCTRL_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/SMCTRL_NS_register.cpython-310.pyc index 89c72488ba76abc00f2a3b34ee97205ec43411a2..c2e8ea8d0b3a3aaefa64554b66584d9bd73d2eee 100644 GIT binary patch delta 22 ccmexzkMYYrM(%uGUM>b82yi;TkvlUV0A3acIsgCw delta 22 ccmexzkMYYrM(%uGUM>b8uv+83kvlUV09{ZA1^@s6 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/SMCTRL_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/SMCTRL_S.cpython-310.pyc index fbcfae1fcb10fea9df631dc5117ba9cfd1bb9575..5e03f6bf46a43cfac91cf484d73eeb340357e8fd 100644 GIT binary patch delta 20 acmaDV@l=94pO=@50SE$|&Tr(7;sF3T<^>!8 delta 20 acmaDV@l=94pO=@50SK(txNqc+;sF3TAOz?D diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/SMCTRL_S_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/SMCTRL_S_field.cpython-310.pyc index 1ae4b65b37ee56264ac200212e37911f511ec738..b96915f31540c835d309b6c1674ac297ad9ff498 100644 GIT binary patch delta 25 fcmeC)$=bb>l{=r8mx}=i0-Vk_a&P5kY={8>TB8QL delta 25 fcmeC)$=bb>l{=r8mx}=itk$?Ua&P5kY={8>SwRMe diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/SMCTRL_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/SMCTRL_S_register.cpython-310.pyc index 972ac389020b362b8070b8e38b272df305598de6..557d8bb8b8040be963e5a083c3a082ab0db44d3e 100644 GIT binary patch delta 22 ccmeCY!`OL;kvpH4mx}=i0-VloddODOlpO=@50SE$|&Tr&CpalRwhy~^V delta 20 acmX>ddODOlpO=@50SK(txNqb>palRv!UeJb diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/SUNOFDM.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/SUNOFDM.cpython-310.pyc index e9536961c4eddfbc7f12c120daf810bcb8b1d475..1fd0c58eb64280fa530aa8910ce48a00ea2f41a2 100644 GIT binary patch delta 20 acmdm@wMC0NpO=@50SE$|&Tr(_6a@e@&jhvr delta 20 acmdm@wMC0NpO=@50SK(txNqdv6a@e@2?T-w diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/SUNOFDM_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/SUNOFDM_field.cpython-310.pyc index e3a59f3af5d3b145d26ab0bb46a863c1ffb8c484..28f140cdbd1130f269873152d68e55b9702c36c1 100644 GIT binary patch delta 22 ccmdn7hk3^yX6}4mUM>b82yi;Tkz4m308fnuwEzGB delta 22 ccmdn7hk3^yX6}4mUM>b8uv+83kz4m308YmSfdBvi diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/SUNOFDM_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/SUNOFDM_register.cpython-310.pyc index 85d387dc853b10de04a275924989397b46ffd333..694f8564acda56ad0dc163c13787345a61e1a4f5 100644 GIT binary patch delta 22 ccmX^4lJVqAM(%uGUM>b82yi;Tk$YbW09lU*Q~&?~ delta 22 ccmX^4lJVqAM(%uGUM>b8uv+83k$YbW09eTfAOHXW diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/SUNOQPSK.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/SUNOQPSK.cpython-310.pyc index 8f46547d67b1b0e3e9c2d8ff0fbed28c678f95c1..061ed6373fd509669778513fb43f4333ef397b73 100644 GIT binary patch delta 20 acmZqVY2@L~=jG*M0D=Ig^BcLpu>t@pj|9;G delta 20 acmZqVY2@L~=jG*M00OHu?i;zku>t@o$poDM diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/SUNOQPSK_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/SUNOQPSK_field.cpython-310.pyc index f4c9d5c3e92b464f1ec4bd53b9f7a053ee8fcc4c..3f8b8a27fe1ec17a6e5147f75243790687ec62cf 100644 GIT binary patch delta 20 acmX?Yf7+fqpO=@50SE$|&Tr&CAP)dMWd*MQ delta 20 acmX?Yf7+fqpO=@50SK(txNqb>AP)dLp9OmW diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/SUNOQPSK_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/SUNOQPSK_register.cpython-310.pyc index 3638085f6d62ef8e0a72456ae22b70dae83e6b5f..d454ed212489ada3dcc185574da5361bae0f448b 100644 GIT binary patch delta 20 acmZqHYS!Y;=jG*M0D=Ig^BcK;hyVaDCIun@ delta 20 acmZqHYS!Y;=jG*M00OHu?i;y(hyVaCU} diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/SYNTH_NS.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/SYNTH_NS.cpython-310.pyc index 149a6e067781ecd8c988e0eb11a26a61c8b35905..95549bf2fa6070b11d12b2733e8ee268d3151967 100644 GIT binary patch delta 20 acmew@^IL{HpO=@50SE$|&Tr%{-~#|X=mls1 delta 20 acmew@^IL{HpO=@50SK(txNqbx-~#|XA_X)6 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/SYNTH_NS_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/SYNTH_NS_field.cpython-310.pyc index 74cdf6590028927caa4eba7dcd01e6c1f6ca79fe..950cd80b8dc24af49af8c71ee2d6c4664bee48d7 100644 GIT binary patch delta 22 ccmZ2_gL&xb82yi;Tkz48w08p+5!Tb8uv+83kz48w08i)!jsO4v diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/SYNTH_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/SYNTH_NS_register.cpython-310.pyc index 0081a92c9242194e0dc40405526f50b11645067c..713adf45a3dcd5339e605a900fcd65c9b3d8fdc1 100644 GIT binary patch delta 22 ccmbPvoN?xHM(%uGUM>b82yi;Tk-IM$08BszZvX%Q delta 22 ccmbPvoN?xHM(%uGUM>b8uv+83k-IM$084rXI{*Lx diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/SYNTH_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/SYNTH_S.cpython-310.pyc index 4e9aa51af108d9d5f9d843e0588e4539329108a7..40ee96a2f0e8f38cedc3f463ac5887302a7c5a46 100644 GIT binary patch delta 20 acmca8b5VvnpO=@50SE$|&Tr&);{yOUSOn?- delta 20 acmca8b5VvnpO=@50SK(txNqck;{yOTk_5H@ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/SYNTH_S_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/SYNTH_S_field.cpython-310.pyc index 9fdaf461283e5dba57335d118aeb14021fb1ca38..87c1913febb00e9b82e71e12f63ccd6459763adb 100644 GIT binary patch delta 22 ccmbPog?Y*qX6}4mUM>b82yi;Tk(=`s08KRpg#Z8m delta 22 ccmbPog?Y*qX6}4mUM>b8uv+83k(=`s08DQNQ2+n{ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/SYNTH_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/SYNTH_S_register.cpython-310.pyc index 91f2acc2214607dd1b419cbb269c3ca627b24c91..fcba4999a6a00e48743b261d3620a4d10497250e 100644 GIT binary patch delta 22 ccmexygz?7_M(%uGUM>b82yi;TkvlgD09wBX1poj5 delta 22 ccmexygz?7_M(%uGUM>b8uv+83kvlgD09pA4(EtDd diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/TXFRONT_NS.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/TXFRONT_NS.cpython-310.pyc index 0ddf3fdab5980b67af7b9e8e51839ebdc46a4ba3..3762471f388bfdc4856ff35262e9eccd20cacbaf 100644 GIT binary patch delta 20 acmbOzI#HB6pO=@50SE$|&Tr&y;{pIJSOk~= delta 20 acmbOzI#HB6pO=@50SK(txNqcc;{pIIk_2P` diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/TXFRONT_NS_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/TXFRONT_NS_field.cpython-310.pyc index 433b9c3cd6063d81179d19e4f0648a4aa4b93770..db0e16263685b2b0da3703ad46caf4f586fad1ad 100644 GIT binary patch delta 20 acmexa{nj3=jG*M0D=Ig^BcLVbO1Ff1s(tZ delta 20 ZcmZpTY>nj3=jG*M00OHu?i;zQbO1DD1nK|) diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/TXFRONT_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/TXFRONT_S.cpython-310.pyc index b660003905ef65f5181e4dcce4a6ff8972edfcd6..c7f73be01bb9d0eaf19e91af3a073f1a9b53dd37 100644 GIT binary patch delta 20 acmew=@>PU8pO=@50SE$|&Tr(-;sO9W)CEES delta 20 acmew=@>PU8pO=@50SK(txNqdn;sO9W4h0SX diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/TXFRONT_S_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/TXFRONT_S_field.cpython-310.pyc index ae651b5c08e2ab14022205661dda579aa2c5a970..2c4c8d52bd59d3333bc63e1b64956287f57ff546 100644 GIT binary patch delta 20 acmexT_N9zFpO=@50SE$|&Tr(-v<3i4r3N$r delta 20 acmexT_N9zFpO=@50SK(txNqdnv<3i3-v$5x diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/TXFRONT_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/TXFRONT_S_register.cpython-310.pyc index 11036d773f33154911da0c165b9fb89af7d835db..6a07268ee6e5a1a9b037eb750b8afadbbd1571f5 100644 GIT binary patch delta 20 acmbOfF)4yOpO=@50SE$|&Tr&q*8u=F4g|vh delta 20 acmbOfF)4yOpO=@50SK(txNqcU*8u=ENCb}n diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/__init__.cpython-310.pyc index d9dff56838eca2fb6bcc0c125212ac57226b3b04..30123cfeb4cd3cd9251ff3cf7a5402c0a3d23279 100644 GIT binary patch delta 20 acmdn2xmlAtpO=@50SE$|&Tr&iAp!t3f(0-D delta 20 acmdn2xmlAtpO=@50SK(txNqcMAp!t2yafCJ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/_version.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/_version.cpython-310.pyc index 060a8e663649525fb0feaf5bcac5a15604a9df56..eb750537490ffbf3f690a8a7e0da1582f28bd4c7 100644 GIT binary patch delta 20 ZcmeBY>SyB4=jG*M0D=Ig^BcKY7y&6$1LFVy delta 20 ZcmeBY>SyB4=jG*M00OHu?i;yT7y&4a1Frx8 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/device.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/device.cpython-310.pyc index 329e1a665c70ee38879f64048f2487b9272fff96..146a4af8237658da70cc66a618a5d1b1577f7e83 100644 GIT binary patch delta 20 acmdmLyVaIEpO=@50SInfdAX5$l^g&-QU;s= delta 20 acmdmLyVaIEpO=@50SK(txNqcMB?kaE<^?nW diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/excluded_regs.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/__pycache__/excluded_regs.cpython-310.pyc index 5fb692c446d803cbfb8a62a766352b90bfd9f39c..0bb394772b60f68bc916321d7053b6bcb94d9423 100644 GIT binary patch delta 20 acmdnYwV8`MpO=@50SE$|&Tr(_UpO=@50SE$|&Tr)IVgdjwumpSn delta 20 acmbQrI+c|>pO=@50SK(txNqd{Vgdjv>I6st diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/static/base/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/static/base/__pycache__/__init__.cpython-310.pyc index ef9961642b8af05e3ab2b4e12d8d99c2b4c06999..c60b528fc43e8e1d9be184c417780cebe7df6d5b 100644 GIT binary patch delta 20 acmbQoGLMBjpO=@50SE$|&Tr%vW&!{!^aK?E delta 20 acmbQoGLMBjpO=@50SK(txNqbZW&!{!E(75J diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/static/base/__pycache__/device.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/static/base/__pycache__/device.cpython-310.pyc index 4240832be2c54d8cde22c9e2c195f75af9b86fbc..e8a04a759f70785c02c0ef98404c25fe565b0b81 100644 GIT binary patch delta 20 acmeyD{x6+7pO=@50SE$|&Tr)YYzzQO5eBRP delta 20 acmeyD{x6+7pO=@50SK(txNqeCYzzQNO9prV diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/static/base/__pycache__/enumeration.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/static/base/__pycache__/enumeration.cpython-310.pyc index 54891116fda61bd927200d241246c3fe2ff0851e..18abb22123b39031d6eeee0e5275706a44e364b3 100644 GIT binary patch delta 20 acmdlXyhE5fpO=@50SE$|&Tr&i%LxE8Cj|%q delta 20 acmdlXyhE5fpO=@50SK(txNqcM%LxE7VFc6w diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/static/base/__pycache__/field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/static/base/__pycache__/field.cpython-310.pyc index c07ae62cf2748c9f473dffd921cb6075a30b99de..585e7754b8adeb25b78dafa8fa02e5c2d76b9cde 100644 GIT binary patch delta 20 acmX@2dqkHzpO=@50SE$|&Tr)2DFy&IyajCl delta 20 acmX@2dqkHzpO=@50SK(txNqd%DFy&H_60cr diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/static/base/__pycache__/peripheral.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/static/base/__pycache__/peripheral.cpython-310.pyc index b1587aa5cc28110ef3d418a3e40b34ed1b594878..ffb2c56530f9ca5643d408b2ab55cae911654702 100644 GIT binary patch delta 20 acmcbjbw!IipO=@50SInfdAX6>QxpI}bp}cR delta 20 acmcbjbw!IipO=@50SK(txNqe46a@e|2?XK* diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/static/base/__pycache__/register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/static/base/__pycache__/register.cpython-310.pyc index b5f531aef0942845fcb08bd33c364ff4096d5a79..feef90ccc1d55aea9ca4b5da900ecdd520d0a42f 100644 GIT binary patch delta 20 acmdn(y4#gIpO=@50SE$|&Tr)2pacLqzy*!~ delta 20 acmdn(y4#gIpO=@50SK(txNqd%pacLp`UP45 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/static/common/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/static/common/__pycache__/__init__.cpython-310.pyc index f02f07a20f8a0529778886cb4644060137e76ee0..33e40ba103455e47eb317e9c5853bbd488e70173 100644 GIT binary patch delta 20 acmZ3>vX+HApO=@50SE$|&Tr&aVgdjzOawvz delta 20 acmZ3>vX+HApO=@50SK(txNqcEVgdjyh6D}( diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/static/common/__pycache__/accessmgr.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/static/common/__pycache__/accessmgr.cpython-310.pyc index 73c026b379d8e3f7f280b8f33f0682fe6d570fa4..ee11759200873138ed0bb8cfa7f71259b382621e 100644 GIT binary patch delta 20 acmaDO`bLyHpO=@50SE$|&Tr&?$OQm9kOip# delta 20 acmaDO`bLyHpO=@50SK(txNqcs$OQm8$^~@* diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/static/common/__pycache__/errors.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/static/common/__pycache__/errors.cpython-310.pyc index 4deb0ccaf87fc843cdcb6e382c62370ee15f4c6c..46a2e0cd6f9285032b926fc0795460ca15533699 100644 GIT binary patch delta 20 acmdnayPcOipO=@50SE$|&Tr&i!v+8{Bn0*V delta 20 acmdnayPcOipO=@50SK(txNqcM!v+8`UIfAb diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/static/common/__pycache__/regmapio.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/static/common/__pycache__/regmapio.cpython-310.pyc index e7137d5ad31ef29982a7a06cbb4d4d91599c86cf..883ab7ab015830858f4a70a1777f11382cb76521 100644 GIT binary patch delta 22 ccmX>)f$``BM(%uGUM>b82yi;Tk=x1x07@tY>Hq)$ delta 22 ccmX>)f$``BM(%uGUM>b8uv+83k=x1x07+s6wg3PC diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/static/common/__pycache__/svdinfo.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/static/common/__pycache__/svdinfo.cpython-310.pyc index b33c537763d945a23bcaf94a028fa4ff513e27c3..0ff0b449ced5604f9693ed6c1866fe2d84a9166c 100644 GIT binary patch delta 20 acmbO(IbD)FpO=@50SE$|&Tr)I;Q;_H+61%! delta 20 acmbO(IbD)FpO=@50SK(txNqd{;Q;_H6a;_( diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/static/interface/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/static/interface/__pycache__/__init__.cpython-310.pyc index 23a2d94505bb053ca6d9c857c10415ca1f189817..e6e01f26eb37a35d4a718368b85770969444bb68 100644 GIT binary patch delta 20 acmX@YeuSMnpO=@50SE$|&Tr)2$qWE9Q3VbF delta 20 acmX@YeuSMnpO=@50SK(txNqd%$qWE8iv-#L diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/static/interface/__pycache__/iregmapdevice.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/static/interface/__pycache__/iregmapdevice.cpython-310.pyc index 68290f0cf05831da1426b4be76c85a860d8f0513..af0b04a45fdbb2cd0e38f5b6efdcf978ff5cbfb9 100644 GIT binary patch delta 22 ccmbP#f^q%{M(%uGUM>b82yi;Tky|7M08DBI1ONa4 delta 22 ccmbP#f^q%{M(%uGUM>b8uv+83ky|7M0869=&;S4c diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/static/interface/__pycache__/iregmapenum.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/static/interface/__pycache__/iregmapenum.cpython-310.pyc index bbeaa840cd5a2af0df86862010bf10cced50b083..95f4610b5315d9529123141545c3fbf248ac71d8 100644 GIT binary patch delta 20 acmcaFa$kfypO=@50SE$|&Tr%n;Q|0SWCZ{K delta 20 acmcaFa$kfypO=@50SK(txNqbR;Q|0Ro&?MQ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/static/interface/__pycache__/iregmapfield.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/static/interface/__pycache__/iregmapfield.cpython-310.pyc index ed55213e7296272d68177a7a4c7e88f7f06a0e18..fe5da308d5d1cb0df435cc49fc6b10e7a0b859fd 100644 GIT binary patch delta 20 acmZ4Bu)u*kpO=@50SE$|&Tr%vRR91q(gd*p delta 20 acmZ4Bu)u*kpO=@50SK(txNqbZRR91q3@ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/static/interface/__pycache__/iregmapperipheral.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/static/interface/__pycache__/iregmapperipheral.cpython-310.pyc index 97186fc5154eed85921c22be7303cc6d3e2e2a4c..d45e1d9ea1684cad1befc64ee421a15ef41c10cc 100644 GIT binary patch delta 20 acmez5{K=U+pO=@50SE$|&Tr&?t_T1_4+bs( delta 20 acmez5{K=U+pO=@50SK(txNqcst_T1^Nd@`< diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/static/interface/__pycache__/iregmapregister.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg25/revA1/static/interface/__pycache__/iregmapregister.cpython-310.pyc index 9b30734d7e5f2eb2512c00ebd5e6f51404999162..38eeeacd2d005fa9caef2dafa844e524bb811ccc 100644 GIT binary patch delta 20 acmbR0I@OgspO=@50SE$|&Tr)IQUU-p&;=X- delta 20 acmbR0I@OgspO=@50SK(txNqd{QUU-p3Iyl? diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/__pycache__/__init__.cpython-310.pyc index b8dff9ecce50c4e36a3cfa514993a57470361e1b..460578d222538c826f95e87d8f9e144c9fd98cdc 100644 GIT binary patch delta 20 acmbQiG=qsdpO=@50SE$|&Tr)AWdr~!y953J delta 20 acmbQiG=qsdpO=@50SK(txNqdIIYl delta 20 acmX?ZdEAmapO=@50SK(txNqd%BLe_BBn4mq diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/AGC_NS_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/AGC_NS_field.cpython-310.pyc index a1ac18dc1c3781c9116d21d59cdb2309832888e7..eae6c3374e29b757d6781788a3b46f588eb5bd62 100644 GIT binary patch delta 28 icmaDoiTm{=Zti?uUM>b82yi;z$lc1#xRskJ;UoZi=?EAA delta 28 icmaDoiTm{=Zti?uUM>b8uv+8Z$lc1#xRskJ;UoZg>j&fj diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/AGC_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/AGC_NS_register.cpython-310.pyc index 1084c23f79b257bc6749d9cff6b8d32bfb34d959..fc1323a29e535d63b78a7fab433996c20cca7746 100644 GIT binary patch delta 22 ccmZ4en0fVMX6}4mUM>b82yi;Tk$b^M090ZJZvX%Q delta 22 ccmZ4en0fVMX6}4mUM>b8uv+83k$b^M08^X?I{*Lx diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/AGC_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/AGC_S.cpython-310.pyc index aa6849b848479156c0feefb97a20154cf4469ae4..40a322271f659ead87c61b5353b7565abca74c50 100644 GIT binary patch delta 20 acmaE7@y>!fpO=@50SE$|&Tr&SmH_}i-UWvM delta 20 acmaE7@y>!fpO=@50SK(txNqc6mH_}i7zI-R diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/AGC_S_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/AGC_S_field.cpython-310.pyc index b41ac2900aa33f2cabdb16b4ac5aadab1ad3842b..ef15d361e8ed9bd634212143f5bb97ae20aa51e4 100644 GIT binary patch delta 28 icmccD#(l4in>(MEmx}=i0-Vk_a<_6bZsleQJ`4bMv(MEmx}=itk$?Ua<_6bZsleQJ`4bKwg;a8 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/AGC_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/AGC_S_register.cpython-310.pyc index b8526487dc1019277f994bfa724c317a4e443456..327a6e3f961ce7747cfaa2e06daf4f37062726ce 100644 GIT binary patch delta 22 ccmZ2^mwDw~X6}4mUM>b82yi;Tk$c`d08<|aS^xk5 delta 22 ccmZ2^mwDw~X6}4mUM>b8uv+83k$c`d08&{8CIA2c diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/FRC_NS.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/FRC_NS.cpython-310.pyc index 94b775bd59195a19d7254e15ceb1478e57e037fd..c6b1f10ccc8c8fade4b41e721743a1196b3f9cae 100644 GIT binary patch delta 20 acmX?Vanyo4pO=@50SE$|&Tr(lk^ulYb_EOo delta 20 acmX?Vanyo4pO=@50SK(txNqdPk^ulXumsou diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/FRC_NS_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/FRC_NS_field.cpython-310.pyc index 592a306bd7ec5a782c380263d00733487fd5c706..428c11b981fa8dd5fef0366c492b35a9631b1b5a 100644 GIT binary patch delta 28 icmeygisREN4(@zjUM>b82yi;z$lc1#xRskJT@(O->j$F% delta 28 icmeygisREN4(@zjUM>b8uv+8Z$lc1#xRskJT@(O*?FVlF diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/FRC_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/FRC_NS_register.cpython-310.pyc index 1436b1ed3a74257c22edcc567bfc760a440235c1..44c4b47c0e3e6922d133ef9126c2fc0e517b97fe 100644 GIT binary patch delta 22 ccmcb*g8AwSX6}4mUM>b82yi;Tk=yGE08v&3+5i9m delta 22 ccmcb*g8AwSX6}4mUM>b8uv+83k=yGE08o$yrT_o{ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/FRC_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/FRC_S.cpython-310.pyc index 19fd20482f914f003838df8559483e1f04c95e74..e8c8c5d6641b28f642fc0bfd3a178c7df8fdaa8f 100644 GIT binary patch delta 20 acmaEB{??p3pO=@50SE$|&Tr&?Bn<#Skp=+( delta 20 acmaEB{??p3pO=@50SK(txNqcsBn<#R%LUB< diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/FRC_S_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/FRC_S_field.cpython-310.pyc index 2026357c835e64ae37393819a6429c84ecdad688..fd7f7bb56eaba92b4fefc2155b5a688bac4d6327 100644 GIT binary patch delta 28 icmdnGkYnpY4(@zjUM>b82yi;z$lc1#xRsk}l>h*900&h7 delta 28 icmdnGkYnpY4(@zjUM>b8uv+8Z$lc1#xRsk}l>h*70tX=g diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/FRC_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/FRC_S_register.cpython-310.pyc index 088bd946c50afbe38b642c28d05cc7a0d7e29a12..4497c4528c4e4c830375a0632f87ea7a3dfcdcd2 100644 GIT binary patch delta 22 ccmX@MnEBXZX6}4mUM>b82yi;Tk$d+=08a}CAOHXW delta 22 ccmX@MnEBXZX6}4mUM>b8uv+83k$d+=08T{)>;M1& diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/MODEM_NS.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/MODEM_NS.cpython-310.pyc index 52a18e5967823c5258e8b95e62166cb604a6c68a..9c41c06acca99df82915add455a7d4113375f371 100644 GIT binary patch delta 22 ccmZ3}!MLV_kvpH4mx}=i0-Vlob82yi;z$i0=D@yLGwbnXbc delta 25 fcmX^ApZ)xQcJ6#$UM>b8uv+8Z$i0=D@yLGwbBqXv diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/MODEM_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/MODEM_S.cpython-310.pyc index d14f554097046c63034352e4ba9c8310aeb15a46..3149a477bab1b983ea3c50a00f9766b724a34a86 100644 GIT binary patch delta 22 ccmccC#(1rbkvpH4mx}=i0-VloyLFC8;5$=3mUM>b82yi;z$lc1#*vie+%FW!$&9ar7)sh1MyfO%^ delta 37 rcmX>yLFC8;5$=3mUM>b8uv+8Z$lc1#*vie+%FW!$&9ar7)sh1MxL^o) diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/MODEM_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/MODEM_S_register.cpython-310.pyc index 92621312ffdae4a8fd5b327a91f072c8475c01f1..7d89f0a1724ac46a69682d27d2f23330d152cfa8 100644 GIT binary patch delta 25 fcmbRJnSJ(WcJ6#$UM>b82yi;z$i0=Dal%gkXxIn< delta 25 fcmbRJnSJ(WcJ6#$UM>b8uv+8Z$i0=Dal%gkXLbk7 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/RAC_NS.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/RAC_NS.cpython-310.pyc index ce1f0880b2343594ff15c76b2155b4c83cf8ca98..a3652d821ef4a7690f3bac7545b3877c69ebce7a 100644 GIT binary patch delta 20 acmaFp_Rx(xpO=@50SE$|&Tr%nQw9J()dhn9 delta 20 acmaFp_Rx(xpO=@50SK(txNqbRQw9J(4+T#E diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/RAC_NS_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/RAC_NS_field.cpython-310.pyc index 006749e241a787a86cb15f84cf3a98656a4f4396..c8ecad62ce1e6b5abbe9b666e3d8c533b523cea2 100644 GIT binary patch delta 31 lcmZ3!n`ilM9`1ZzUM>b82yi;z$lc1#*viecm795vEC7sb2nPTF delta 31 lcmZ3!n`ilM9`1ZzUM>b8uv+8Z$lc1#*viecm795vEC7kp2h#um diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/RAC_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/RAC_NS_register.cpython-310.pyc index 6786022dbc36cd7b3e1db6bc066aa2977d57d96b..46f13143949bb5608c43b40b9cff69435f3717d2 100644 GIT binary patch delta 25 fcmccnjOFe#7VdmrUM>b82yi;z$i0=DF~}GIaOwwO delta 25 fcmccnjOFe#7VdmrUM>b8uv+8Z$i0=DF~}GIZ-@sh diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/RAC_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/RAC_S.cpython-310.pyc index e32da7f27853005f0136b991611a96e3ffefff17..114229a7883db730502bab70bcb475eda3638c20 100644 GIT binary patch delta 20 acmez1`oWbupO=@50SE$|&Tr&?sssQ-2nHb82yi;z$lc1#*viecm7DpY7yy~L2(thH delta 31 lcmaE}mgmh{9`1ZzUM>b8uv+8Z$lc1#*viecm7DpY7yy?Z2!8+o diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/RAC_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/RAC_S_register.cpython-310.pyc index e28a44766afde8af749fb75359d900bc05627bf0..89e6465a766fb22ca87831c3929e7290140ed978 100644 GIT binary patch delta 25 fcmcb4pXKI#7VdmrUM>b82yi;z$i0=D@ti&YZ|4WX delta 25 fcmcb4pXKI#7VdmrUM>b8uv+8Z$i0=D@ti&YZiNSq diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/RFCRC_NS.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/RFCRC_NS.cpython-310.pyc index 8a8df0a456cbe16583bbf41316a0cd90dd8bdcae..36ecc0dc9953915cddbb60c6413be02d9747ed0d 100644 GIT binary patch delta 20 acmcb~eUqCzpO=@50SE$|&Tr&C#|i*9D+N~o delta 20 acmcb~eUqCzpO=@50SK(txNqb>#|i*8Wd$Pu diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/RFCRC_NS_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/RFCRC_NS_field.cpython-310.pyc index fce0c7aa6f235e730c6ed3d25aaed5f72420a2db..2a287fc7b21200c07bba332ae37fee9a7e02f720 100644 GIT binary patch delta 20 ZcmZqBZP4Y;=jG*M0D=Ig^BcKK#Q-iG1fc)` delta 20 ZcmZqBZP4Y;=jG*M00OHu?i;yF#Q-f<1Z@BS diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/RFCRC_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/RFCRC_NS_register.cpython-310.pyc index 41a01e54d5491485ed2559cc7b8ac8b33bf09655..05e5d853cd860cfd295b4f22e0a34faf965deeac 100644 GIT binary patch delta 20 acmdn5x?hz$pO=@50SE$|&Tr)2A_M?7&;?2W delta 20 acmdn5x?hz$pO=@50SK(txNqd%A_M?73I!Gb diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/RFCRC_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/RFCRC_S.cpython-310.pyc index a355870acd054824fd9b62bb3831765b8b609fa2..a284eb6e701847ac659b4e2d60144fbe74208a9b 100644 GIT binary patch delta 20 acmX@jeVUs)pO=@50SE$|&Tr&CzzP5~`volk delta 20 acmX@jeVUs)pO=@50SK(txNqb>zzP5~H3azp diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/RFCRC_S_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/RFCRC_S_field.cpython-310.pyc index 62abb9f1bb37c7939c7c9afe4177296b5e6f4c54..5a23764bcf6ee775b157b0356356759755daf1b8 100644 GIT binary patch delta 20 acmX@Fb6$r#pO=@50SE$|&Tr&)5d#1@Pz4MC delta 20 acmX@Fb6$r#pO=@50SK(txNqck5d#1?iUimI diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/RFCRC_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/RFCRC_S_register.cpython-310.pyc index fb4958de431cd95c6d7dcccaa939329053ecb8d8..757589d5d2ee508b33c7b54b2fc50d2efd2b5a48 100644 GIT binary patch delta 20 acmbQFI!To~pO=@50SE$|&Tr&y7Xkn;$OOXx delta 20 acmbQFI!To~pO=@50SK(txNqcc7Xkn;0tAl$ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/SEQ.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/SEQ.cpython-310.pyc index dcfbfa25c2b28edfb39707228cdd2741f52ea340..2744aca6b3235cb350ccb643b1a56a0cc2373249 100644 GIT binary patch delta 20 acmcb|b&rcXpO=@50SE$|&Tr%nW(5E?&jjQE delta 20 acmcb|b&rcXpO=@50SK(txNqbRW(5E?2?VeJ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/SEQ_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/SEQ_field.cpython-310.pyc index 40478530fc8726ebdad5454fd0be414b0524a13a..8b84ba9de4915e81dff31bda9bb2c8aa72393637 100644 GIT binary patch delta 20 acmcbla!G|dpO=@50SE$|&Tr&)7Xkn{qy+&0 delta 20 acmcbla!G|dpO=@50SK(txNqck7Xkn`-UQ76 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/SEQ_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/SEQ_register.cpython-310.pyc index eaf4d300adfc1fd6ebeefb4d9890e9d17c92afb3..bc177a67b70d976a42f0cc038e5962baadc62459 100644 GIT binary patch delta 20 acmew(|3{uXpO=@50SE$|&Tr)Y$PWNNeFgFW delta 20 acmew(|3{uXpO=@50SK(txNqeC$PWNMw*|fc diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/SYNTH_NS.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/SYNTH_NS.cpython-310.pyc index ff3f17eee2ed6c27712d3bf249094ca295a88e18..6cb543de62d99f625bfd23a1959bbd59c871f5d1 100644 GIT binary patch delta 20 acmaDU{Zg7cpO=@50SE$|&Tr(t#|r>E^98Q} delta 20 acmaDU{Zg7cpO=@50SK(txNqdX#|r>EEd_f3 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/SYNTH_NS_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/SYNTH_NS_field.cpython-310.pyc index cad9feb62d8c9f776028d8564cdc19b9702c0fad..dc8223633fa9127158e6711fa8668c00eb352524 100644 GIT binary patch delta 22 ccmdnEoq6MSX6}4mUM>b82yi;Tk$c%~08W|*6951J delta 22 ccmdnEoq6MSX6}4mUM>b8uv+83k$c%~08P{e-v9sr diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/SYNTH_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/SYNTH_NS_register.cpython-310.pyc index 28a6705fe31db8fe4561f8fb698647ee16924c3d..d48651de5570659e2cc36656b664915f43c331c6 100644 GIT binary patch delta 22 ccmX@Ohwb82yi;Tk=rZ|08mB-OaK4? delta 22 ccmX@Ohwb8uv+83k=rZ|08fAh7ytkO diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/SYNTH_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/SYNTH_S.cpython-310.pyc index 53a02a8dd7fd3b25a01b5449739006fd79b8e6eb..53fce6269a605e113f2127da8878e3e7dacf1033 100644 GIT binary patch delta 20 acmX>oeNdV^pO=@50SE$|&Tr)2#tQ&7vjsN* delta 20 acmX>oeNdV^pO=@50SK(txNqd%#tQ&6?F9n> diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/SYNTH_S_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/SYNTH_S_field.cpython-310.pyc index 863811d601701a5aea504256df5f7574bfaca9d6..1d1b4f375ca9612397e28c1097429aeb43e1b503 100644 GIT binary patch delta 22 ccmX@Infb_OX6}4mUM>b82yi;Tk$dM&08uRmLI3~& delta 22 ccmX@Infb_OX6}4mUM>b8uv+83k$dM&08nQK4gdfE diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/SYNTH_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/SYNTH_S_register.cpython-310.pyc index 4828866c9a06e8b44c66754da317c41dca91fb35..4300c20a417da7e794f7f402b6a088768ec8033d 100644 GIT binary patch delta 22 ccmdnAi*eH~M(%uGUM>b82yi;Tky||$08MfR8UO$Q delta 22 ccmdnAi*eH~M(%uGUM>b8uv+83ky||$08Fd}<^TWy diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/__init__.cpython-310.pyc index 1244750225d23c7a62d0fb0db1545e60553e3dc5..b3f98f16aaef8a83d09315e9153a9ef6cb48b6cf 100644 GIT binary patch delta 20 acmdn2xmlAtpO=@50SE$|&Tr&iAp!t3f(0-D delta 20 acmdn2xmlAtpO=@50SK(txNqcMAp!t2yafCJ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/_version.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/_version.cpython-310.pyc index 3b33e65082ba00f2b63a0d4ed9901a627cec9e19..9ed578247a05729f8b3d537d25959b28392edacd 100644 GIT binary patch delta 20 ZcmeBY>SyB4=jG*M0D=Ig^BcKY7y&6$1LFVy delta 20 ZcmeBY>SyB4=jG*M00OHu?i;yT7y&4a1Frx8 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/device.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/device.cpython-310.pyc index ed243dd136fc3732ef1cec7a63f736f4ccde08cc..0198e8e15223476975cc0b97c8c43a201e9fcdfe 100644 GIT binary patch delta 20 acmdmKxYLk3pO=@50SE$|&Tr&iCjkIAmIYP- delta 20 acmdmKxYLk3pO=@50SK(txNqcMCjkI9&;=p@ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/excluded_regs.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/__pycache__/excluded_regs.cpython-310.pyc index 3de9c03b62a4bfc44166d3a9fb896895d059212d..cee79c6b51527aca9a8aad35406f5f34882037c1 100644 GIT binary patch delta 20 acmdnYwV8`MpO=@50SE$|&Tr(_UpO=@50SE$|&Tr)IVgdjwumpSn delta 20 acmbQrI+c|>pO=@50SK(txNqd{Vgdjv>I6st diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/static/base/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/static/base/__pycache__/__init__.cpython-310.pyc index 8af4a8efc9d0d040df362814c090f899c0387174..3f1983c3535e9d6c4e7888e5af59b972f0c72083 100644 GIT binary patch delta 20 acmbQoGLMBjpO=@50SE$|&Tr%vW&!{!^aK?E delta 20 acmbQoGLMBjpO=@50SK(txNqbZW&!{!E(75J diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/static/base/__pycache__/device.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/static/base/__pycache__/device.cpython-310.pyc index ae590dabf59bfc19ef2ff7c9413ce6fab1a03dc0..2d24b6a1f2ed8191e795b32164af91b153532735 100644 GIT binary patch delta 20 acmeyD{x6+7pO=@50SE$|&Tr)YYzzQO5eBRP delta 20 acmeyD{x6+7pO=@50SK(txNqeCYzzQNO9prV diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/static/base/__pycache__/enumeration.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/static/base/__pycache__/enumeration.cpython-310.pyc index 1a6b11d9ae3d166fe67ee6cbd2b4478be8873e67..979a051fdc098c38785ff41e4c9f94fe192cba8d 100644 GIT binary patch delta 20 acmdlXyhE5fpO=@50SE$|&Tr&i%LxE8Cj|%q delta 20 acmdlXyhE5fpO=@50SK(txNqcM%LxE7VFc6w diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/static/base/__pycache__/field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/static/base/__pycache__/field.cpython-310.pyc index b2e356880260dc8bbcc0b34f555055beab5b3dce..60f5b2229f3b99dde35035ad0826b06d94d7fa34 100644 GIT binary patch delta 20 acmX@2dqkHzpO=@50SE$|&Tr)2DFy&IyajCl delta 20 acmX@2dqkHzpO=@50SK(txNqd%DFy&H_60cr diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/static/base/__pycache__/peripheral.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/static/base/__pycache__/peripheral.cpython-310.pyc index ac0a9be47636d3cb42f2ce9adb663b0dd4edf3ba..bb079ee90daf80c26ebea03cd4b4178888cd0a10 100644 GIT binary patch delta 20 acmcbjbw!IipO=@50SInfdAX6>QxpI}bp}cR delta 20 acmcbjbw!IipO=@50SK(txNqe46a@e|2?XK* diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/static/base/__pycache__/register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/static/base/__pycache__/register.cpython-310.pyc index 5e12bed9cb6f2959d5bae9079b4947e0aa8f8ca1..6c38e9a86ddeb1d9e87d8610f6c2dc2b04d9ca5c 100644 GIT binary patch delta 20 acmdn(y4#gIpO=@50SE$|&Tr)2pacLqzy*!~ delta 20 acmdn(y4#gIpO=@50SK(txNqd%pacLp`UP45 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/static/common/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/static/common/__pycache__/__init__.cpython-310.pyc index 765701adfb5a2ca156142c4272847a286d953e9c..0eedee617b79af08f7b05271bb1835b90f591a29 100644 GIT binary patch delta 20 acmZ3>vX+HApO=@50SE$|&Tr&aVgdjzOawvz delta 20 acmZ3>vX+HApO=@50SK(txNqcEVgdjyh6D}( diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/static/common/__pycache__/accessmgr.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/static/common/__pycache__/accessmgr.cpython-310.pyc index 16b69c8369447214bd32ccd28007eb5daecdf23c..75468527ce70e729dffff8e131e4157b2b11bafe 100644 GIT binary patch delta 20 acmaDO`bLyHpO=@50SE$|&Tr&?$OQm9kOip# delta 20 acmaDO`bLyHpO=@50SK(txNqcs$OQm8$^~@* diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/static/common/__pycache__/errors.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/static/common/__pycache__/errors.cpython-310.pyc index 6111e399b8476b752076cc9045d771998070850c..4b9d93e5d3184d7d2e6292eb3f0279e9eeca2686 100644 GIT binary patch delta 20 acmdnayPcOipO=@50SE$|&Tr&i!v+8{Bn0*V delta 20 acmdnayPcOipO=@50SK(txNqcM!v+8`UIfAb diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/static/common/__pycache__/regmapio.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/static/common/__pycache__/regmapio.cpython-310.pyc index 0e58e7d5a4c52d87d8cd7e81fe38dc6f87113285..6990fd8d350435bfbe1bc2fc01e2739821370f06 100644 GIT binary patch delta 22 ccmX>)f$``BM(%uGUM>b82yi;Tk=x1x07@tY>Hq)$ delta 22 ccmX>)f$``BM(%uGUM>b8uv+83k=x1x07+s6wg3PC diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/static/common/__pycache__/svdinfo.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/static/common/__pycache__/svdinfo.cpython-310.pyc index f36d734348c07ed2dc4d77eac57e9a4e1b3894cb..25828734d2350a030ec5ed684ef7af3a41fd0914 100644 GIT binary patch delta 20 acmbO(IbD)FpO=@50SE$|&Tr)I;Q;_H+61%! delta 20 acmbO(IbD)FpO=@50SK(txNqd{;Q;_H6a;_( diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/static/interface/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/static/interface/__pycache__/__init__.cpython-310.pyc index 775515e13a7c9dc447b76a63cb51e90b4fa1133b..f5fec8520378109f00fe6414ea9e60dfaa587fb0 100644 GIT binary patch delta 20 acmX@YeuSMnpO=@50SE$|&Tr)2$qWE9Q3VbF delta 20 acmX@YeuSMnpO=@50SK(txNqd%$qWE8iv-#L diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/static/interface/__pycache__/iregmapdevice.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/static/interface/__pycache__/iregmapdevice.cpython-310.pyc index da695b2422ca6a6314bc6c7ab39624e750761b97..f98e6e68e7ce4972c1a2d67b49e28a028bbc39ae 100644 GIT binary patch delta 22 ccmbP#f^q%{M(%uGUM>b82yi;Tky|7M08DBI1ONa4 delta 22 ccmbP#f^q%{M(%uGUM>b8uv+83ky|7M0869=&;S4c diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/static/interface/__pycache__/iregmapenum.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/static/interface/__pycache__/iregmapenum.cpython-310.pyc index 3762d681824fb6f42f77b09db01d625c915929ee..78f60620f4144f6f9b7e7871b626811858dff9d1 100644 GIT binary patch delta 20 acmcaFa$kfypO=@50SE$|&Tr%n;Q|0SWCZ{K delta 20 acmcaFa$kfypO=@50SK(txNqbR;Q|0Ro&?MQ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/static/interface/__pycache__/iregmapfield.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/static/interface/__pycache__/iregmapfield.cpython-310.pyc index 047260069eba8f2e1e2edff9b9a8d7a670939a26..018cdc9ce668473df1f85cf4cf75749026c5f354 100644 GIT binary patch delta 20 acmZ4Bu)u*kpO=@50SE$|&Tr%vRR91q(gd*p delta 20 acmZ4Bu)u*kpO=@50SK(txNqbZRR91q3@ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/static/interface/__pycache__/iregmapperipheral.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/static/interface/__pycache__/iregmapperipheral.cpython-310.pyc index 3802c3f4c6832b3eac91743f916e9cea376d17ad..d42956fed6cda45c03f55e772221db2eb583243b 100644 GIT binary patch delta 20 acmez5{K=U+pO=@50SE$|&Tr&?t_T1_4+bs( delta 20 acmez5{K=U+pO=@50SK(txNqcst_T1^Nd@`< diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/static/interface/__pycache__/iregmapregister.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg26/revA0/static/interface/__pycache__/iregmapregister.cpython-310.pyc index 150f99c5ae7f4cddd81faa09ad88158459716e25..6a53099d43b072559b1f33826e5f4a9be0448fa5 100644 GIT binary patch delta 20 acmbR0I@OgspO=@50SE$|&Tr)IQUU-p&;=X- delta 20 acmbR0I@OgspO=@50SK(txNqd{QUU-p3Iyl? diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/__pycache__/__init__.cpython-310.pyc index f348273464bad88bc28aa10a05b5391caefc5f73..a52e1c0b5d7bad63aea06c32e631b4e8b116705e 100644 GIT binary patch delta 20 acmbQiG=qsdpO=@50SE$|&Tr)AWdr~!y953J delta 20 acmbQiG=qsdpO=@50SK(txNqd diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/AGC_NS.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/AGC_NS.cpython-310.pyc index 612fb3ff5ac2765a8da1178dd86a53a9a3b63770..8d36a9f67722d80e3bafa024be716082970dd864 100644 GIT binary patch delta 20 acmZ1|y-=DvpO=@50SE$|&Tr(N#tQ&2vjo=w delta 20 acmZ1|y-=DvpO=@50SK(txNqd1#tQ&1?F6F$ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/AGC_NS_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/AGC_NS_field.cpython-310.pyc index de25fa7d79244cfd2aa9e9ef32fb81f1b49c3b43..7fd6c5c477f70e42e26da9eb37cf589e9b016b7c 100644 GIT binary patch delta 22 ccmaF-kNNRGX6}4mUM>b82yi;Tkvrl)0ATe8+W-In delta 22 ccmaF-kNNRGX6}4mUM>b8uv+83kvrl)0AMc%rvLx| diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/AGC_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/AGC_NS_register.cpython-310.pyc index f6171ac439ddd92c031cfa50d5819acdbdf4f087..3ea6de22d5a066b61526e1551151d42bde6a6b73 100644 GIT binary patch delta 22 ccmbPygmLl_M(%uGUM>b82yi;Tk((n407=LN)&Kwi delta 22 ccmbPygmLl_M(%uGUM>b8uv+83k((n407(J`q5uE@ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/AGC_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/AGC_S.cpython-310.pyc index 6e4c035957e66d9bc150dd933c7f42b100bacd15..59944921fc6092402920cd6ea9e24c3d89cd6bc1 100644 GIT binary patch delta 20 acmew%^+Sp~pO=@50SE$|&Tr(-b82yi;Tkz3?1095M-1poj5 delta 22 ccmbRLi+TPpX6}4mUM>b8uv+83kz3?108}Lg(EtDd diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/AGC_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/AGC_S_register.cpython-310.pyc index 1bbf4cf4c82b36d53d666c956944f84efd25c286..146e9bc7e177d661bad7f89e7754bde2dcdea9f0 100644 GIT binary patch delta 22 ccmaEIknzbuM(%uGUM>b82yi;Tk^5!>09Wh>K>z>% delta 22 ccmaEIknzbuM(%uGUM>b8uv+83k^5!>09Pgl4FCWD diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/FRC_NS.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/FRC_NS.cpython-310.pyc index 3f831520d4db07b6be71176d53c3570b9015cb8c..792e13fb41feb6803165f13380cdd069cefac366 100644 GIT binary patch delta 20 acmZ2&zS^8SpO=@50SE$|&Tr&iAPoREK?OSi delta 20 acmZ2&zS^8SpO=@50SK(txNqcMAPoRDdj$so diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/FRC_NS_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/FRC_NS_field.cpython-310.pyc index 8e09a61cdbc55af327995eaae18cfa31adcf78c6..2c993a2cfb748c8c10595fd1762777dc56a737e0 100644 GIT binary patch delta 25 fcmezLhyBwZcJ6#$UM>b82yi;z$i0=DG5sF^dKn0u delta 25 fcmezLhyBwZcJ6#$UM>b8uv+8Z$i0=DG5sF^c(({> diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/FRC_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/FRC_NS_register.cpython-310.pyc index e1324217185b923d6ca48e48954076f903491b9d..1df9caae6d080972b7e80a816550690448e12a5f 100644 GIT binary patch delta 22 ccmX>)i}~m*X6}4mUM>b82yi;Tk=yDl08D)bhX4Qo delta 22 ccmX>)i}~m*X6}4mUM>b8uv+83k=yDl086(9Qvd(} diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/FRC_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/FRC_S.cpython-310.pyc index a6f84f8cd74c4c792310c4652766c72b6ca35fec..bca95db0edd8b4c56ea2ba789359dc52f59f57a1 100644 GIT binary patch delta 20 acmca=cGZkKpO=@50SE$|&Tr)Qk_G@ftpzs# delta 20 acmca=cGZkKpO=@50SK(txNqe4k_G@e=LG`* diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/FRC_S_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/FRC_S_field.cpython-310.pyc index d7b89be61c74e5624b9a001ef31bd0572c98cf3a..8fa228b7fdcbabdc8fce902097456960b03de725 100644 GIT binary patch delta 25 fcmaFynf=9QcJ6#$UM>b82yi;z$i0=D@$OFmca;d| delta 25 fcmaFynf=9QcJ6#$UM>b8uv+8Z$i0=D@$OFmb~6aG diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/FRC_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/FRC_S_register.cpython-310.pyc index 7083fe57fa6ddda3f038f644d43eb5754d9b164a..402f24fb2b856f37db29b692b1a9524d85fc3021 100644 GIT binary patch delta 22 ccmX>*mHF&cX6}4mUM>b82yi;Tk^9go08S4F5&!@I delta 22 ccmX>*mHF&cX6}4mUM>b8uv+83k^9go08L2--T(jq diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/MODEM_NS.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/MODEM_NS.cpython-310.pyc index 450684c2c1d48866cb4adcca6e686619dc13496d..7796527f7c1bdb35b9184160123c934aebb926e7 100644 GIT binary patch delta 20 ZcmeBl?sVqP=jG*M0D=Ig^BcMA6ag})1oHp@ delta 20 ZcmeBl?sVqP=jG*M00OHu?i;!56ag{e1it_P diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/MODEM_NS_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/MODEM_NS_field.cpython-310.pyc index f914d4677a46688085c15358c27186f12f3805c5..f3d4e014eb94d2b23e629a8e975748ed2739a10c 100644 GIT binary patch delta 28 icmX@m%zdDln>(MEmx}=i0-Vk_a<_6bZslg$dJq6`rw8!> delta 28 icmX@m%zdDln>(MEmx}=itk$?Ua<_6bZslg$dJq6^sRz9P diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/MODEM_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/MODEM_NS_register.cpython-310.pyc index 4b347e7bc9b7f73600292e93a3fb7020985e7c35..58c0e5944c0fc8980eb3436339e2eb27b1d73222 100644 GIT binary patch delta 25 fcmdltk!9aR7VdmrUM>b82yi;z$i0=DaWe-1T;B$+ delta 25 fcmdltk!9aR7VdmrUM>b8uv+8Z$i0=DaWe-1TYUz4 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/MODEM_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/MODEM_S.cpython-310.pyc index ed903388ecda4a951bc7d06da6703bdb00a4e484..0325c958889bb08429ad59ddda7da378b90ee075 100644 GIT binary patch delta 20 acmZ4Bw7`iwpO=@50SE$|&Tr%vRRjPv8w9oh delta 20 acmZ4Bw7`iwpO=@50SK(txNqbZRRjPuRRn?n diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/MODEM_S_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/MODEM_S_field.cpython-310.pyc index 5540a818aba687ce8856debfbfc389988b3cc2b0..d526954e1c3b587c5eea5c24fef24f86c7b117f0 100644 GIT binary patch delta 28 icmbR7oomK-F7A9@UM>b82y{B%$lc1#xRsl!cQ*ik0SHb8uv+8Z$lc1#xRsl!cQ*ih_6Q{a diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/MODEM_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/MODEM_S_register.cpython-310.pyc index ea210427bf9d3fd8d250e6219f1f61c52b3b0bd0..4beeb5db11b2d340a5d69d5778ba206db71f597c 100644 GIT binary patch delta 25 ecmZqfW@+wb;m+sfb82y{B%$lc1#xRskpZ36&)zz6IA delta 28 icmdn^fNSFeF7A9@UM>b8uv+8Z$lc1#xRskpZ36&&wFkEV diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/RAC_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/RAC_NS_register.cpython-310.pyc index b383f7b6041d9676a5f1958034dd5d37242746a3..d444e4106a8f66984d9b78e6dadebcf4a0aa6298 100644 GIT binary patch delta 25 fcmZ2ClV#mZ7VdmrUM>b82y{B%$i0=DaWM}7TSW$w delta 25 fcmZ2ClV#mZ7VdmrUM>b8uv+8Z$i0=DaWM}7S=k0& diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/RAC_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/RAC_S.cpython-310.pyc index e637471acad5b0e9fe6f3a726059f8ae0720fabf..a0e8d13432963b5c77501493b098147678989cda 100644 GIT binary patch delta 20 acmZ2%zu2BTpO=@50SE$}&Tr(NArAmHECo0K delta 20 acmZ2%zu2BTpO=@50SK(txNqd1ArAmGUj+jI diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/RAC_S_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/RAC_S_field.cpython-310.pyc index 824e1e5245dc8f3d14e4d212dc3194997a5f54a3..7e875f4df7ea939b774798f85aa85bc63e2b4f4e 100644 GIT binary patch delta 28 icmcb0h3nQ8F7A9@UM>b82y{B%$lc1#xRsm9e-!|QB?w6X delta 28 icmcb0h3nQ8F7A9@UM>b8uv+8Z$lc1#xRsm9e-!|O8VD2s diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/RAC_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/RAC_S_register.cpython-310.pyc index ea1b0cb8e00f014200f7efc1ef391e52efb57e50..a3a43e4c0608cd2e24aed67d369563e7cdfb8b62 100644 GIT binary patch delta 25 fcmbO}nPvK97VdmrUM>b82y{B%$i0=Dv4;}?Rm}!J delta 25 fcmbO}nPvK97VdmrUM>b8uv+8Z$i0=Dv4;}?RAB}R diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/RFCRC_NS.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/RFCRC_NS.cpython-310.pyc index 5c35553a695a30761ca6953fcd1aa9fa73c102ab..1ea668be974a8b85bcfaa5422c8dd9c173ab0dfe 100644 GIT binary patch delta 20 acmcb~eUqCzpO=@50SE$}&Tr&C#|i*9G6h%w delta 20 acmcb~eUqCzpO=@50SK(txNqb>#|i*8Wd$Pu diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/RFCRC_NS_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/RFCRC_NS_field.cpython-310.pyc index 50a433a9d8f737aa2158f286cfd42585e7e56890..a8832971edc9f713fa51ec48b622ba3a4a5b50e3 100644 GIT binary patch delta 20 ZcmZqBZP4Y;=jG*M0D?fL^BcKK#Q-iN1fl={ delta 20 ZcmZqBZP4Y;=jG*M00OHu?i;yF#Q-f<1Z@BS diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/RFCRC_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/RFCRC_NS_register.cpython-310.pyc index 48e98d1da990bef64a80ea0c7804ad22f8d53b72..cde3f394707ab03c5bc4b0406f9d5014d47bb64d 100644 GIT binary patch delta 20 acmdn5x?hz$pO=@50SE$}&Tr)2A_M?7*9A)e delta 20 acmdn5x?hz$pO=@50SK(txNqd%A_M?73I!Gb diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/RFCRC_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/RFCRC_S.cpython-310.pyc index ce4e3ffc8343cf0c5c8fddbc4a648fa9d920b1ba..e46a6a54f5d500f69b754d091fa75d479e89ec16 100644 GIT binary patch delta 20 acmX@jeVUs)pO=@50SE$}&Tr&CzzP600tGGr delta 20 acmX@jeVUs)pO=@50SK(txNqb>zzP5~H3azp diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/RFCRC_S_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/RFCRC_S_field.cpython-310.pyc index 5903c29b53d108a0479c565459087e3d02ba9fb0..d6889922d1c4fe990da55aadd874fb06952a394a 100644 GIT binary patch delta 20 acmX@Fb6$r#pO=@50SE$}&Tr&)5d#1@R|O3K delta 20 acmX@Fb6$r#pO=@50SK(txNqck5d#1?iUimI diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/RFCRC_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/RFCRC_S_register.cpython-310.pyc index dd5f47785c9d9a11076bbca09cd33068278cf077..e8a42a162f9250c2eedf19f961742bdaf235d3c6 100644 GIT binary patch delta 20 acmbQFI!To~pO=@50SE$}&Tr&y7Xkn;&jiE( delta 20 acmbQFI!To~pO=@50SK(txNqcc7Xkn;0tAl$ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/SEQ.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/SEQ.cpython-310.pyc index 400c142f66488aa007626f4f694413154c8f21d3..4ef6b71e7991a00233f23d0b9897d65a8729b160 100644 GIT binary patch delta 20 acmcb|b&rcXpO=@50SE$}&Tr%nW(5E?)&%7M delta 20 acmcb|b&rcXpO=@50SK(txNqbRW(5E?2?VeJ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/SEQ_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/SEQ_field.cpython-310.pyc index 39e1a8c6a399bcc83b9ac3e9772eed1bcd0cac45..1fa237cb5dec5d69bde2b33ea62161be02765f6e 100644 GIT binary patch delta 20 acmcbla!G|dpO=@50SE$}&Tr&)7Xkn{s|5l8 delta 20 acmcbla!G|dpO=@50SK(txNqck7Xkn`-UQ76 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/SEQ_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/SEQ_register.cpython-310.pyc index 046fa1c88dca29b582eead88f1058abb8f3ec422..7d6626b80a0207bfb840bc3bdd852e023461b7fc 100644 GIT binary patch delta 20 acmew(|3{uXpO=@50SE$}&Tr)Y$PWNNgaz{e delta 20 acmew(|3{uXpO=@50SK(txNqeC$PWNMw*|fc diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/SYNTH_NS.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/SYNTH_NS.cpython-310.pyc index c1ec972371632ced8176261b987f820269cb9539..300b847cadf2b87d08cb564313bae8c4b1f7dbd2 100644 GIT binary patch delta 20 acmaDU{Zg7cpO=@50SE$}&Tr(t#|r>E`US86 delta 20 acmaDU{Zg7cpO=@50SK(txNqdX#|r>EEd_f3 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/SYNTH_NS_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/SYNTH_NS_field.cpython-310.pyc index da779cfa0a21fa256c95089b4e91f55828738d34..ae169272b7b1d8f5bdece6e7d9258b5f3e20748e 100644 GIT binary patch delta 22 ccmcb;h57atX6}4mUM>b82y{BXkvrfP08}{#3jhEB delta 22 ccmcb;h57atX6}4mUM>b8uv+83kvrfP08?xR)&Kwi diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/SYNTH_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/SYNTH_NS_register.cpython-310.pyc index 207debfa3e64a87a79a7f7e5fe477d7ba3936e64..cf3cd6089915d7dabf0fefc97070d3ec36d8b45a 100644 GIT binary patch delta 21 bcmeC)!`QutkvpH4mx}=i0-eq; delta 21 bcmeC)!`QutkvpH4mx}=itk$?MoeNdV^pO=@50SE$}&Tr)2#tQ&7x&=4@ delta 20 acmX>oeNdV^pO=@50SK(txNqd%#tQ&6?F9n> diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/SYNTH_S_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/SYNTH_S_field.cpython-310.pyc index 27876978dde32ac049119ddb1f6ee0bc93d5b89e..f2e3e013047cb82e8e5b11edbd3a028e6ed3f576 100644 GIT binary patch delta 22 ccmeykf%)SGX6}4mUM>b82y{BXkvr`M09Q>1LjV8( delta 22 ccmeykf%)SGX6}4mUM>b8uv+83kvr`M09Jqp4gdfE diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/SYNTH_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/SYNTH_S_register.cpython-310.pyc index 73087acb98064b9c0a1fba421d060c8a0057ccc1..9a1f3259322cda76033b8e567b6d5ca1d9708064 100644 GIT binary patch delta 22 ccmeynlkx9PM(%uGUM>b82y{BXk^55&09xt?c>n+a delta 22 ccmeynlkx9PM(%uGUM>b8uv+83k^55&09qXfL;wH) diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/__init__.cpython-310.pyc index cd50f63efc7e067ab62d417a0c6810009c0d5463..1505911fa8e0c8ef78371c256238b875daa56adb 100644 GIT binary patch delta 20 acmdn2xmlAtpO=@50SE$}&Tr&iAp!t3i3KqL delta 20 acmdn2xmlAtpO=@50SK(txNqcMAp!t2yafCJ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/_version.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/_version.cpython-310.pyc index f1f3ab1355940baa24a6d779429f33e3944eb4da..f04e3dd11c6e5b0b3ba897ad163c03c692c946f0 100644 GIT binary patch delta 20 ZcmeBY>SyB4=jG*M0D?fL^BcKY7y&6-1LObz delta 20 ZcmeBY>SyB4=jG*M00OHu?i;yT7y&4a1Frx8 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/device.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/device.cpython-310.pyc index a4d102a1e1e043e60dcdaedf83b1892278becd46..bbded20317287a3e6871fc4bb55da0a356bacd8c 100644 GIT binary patch delta 20 acmdmKxYLk3pO=@50SInfdAX5$odf_sJO+vY delta 20 acmdmKxYLk3pO=@50SK(txNqcMCjkI9&;=p@ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/excluded_regs.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/__pycache__/excluded_regs.cpython-310.pyc index 00b107f60f2d04b361a39ef21550f28d5d1e50b1..0b541a2c454ee8e4757a0659a00f03892474e8b5 100644 GIT binary patch delta 20 acmdnYwV8`MpO=@50SE$}&Tr(_UpO=@50SE$}&Tr)IVgdjww*-9v delta 20 acmbQrI+c|>pO=@50SK(txNqd{Vgdjv>I6st diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/static/base/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/static/base/__pycache__/__init__.cpython-310.pyc index 524915adb36cf2f45ae5463fb9f18cb32e43131d..64b99a279467f59817ee81f8e3902cbf52d1e6fe 100644 GIT binary patch delta 20 acmbQoGLMBjpO=@50SE$}&Tr%vW&!{!`vevM delta 20 acmbQoGLMBjpO=@50SK(txNqbZW&!{!E(75J diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/static/base/__pycache__/device.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/static/base/__pycache__/device.cpython-310.pyc index 64fcd0f0f6274e2480254d8db3c256bebb110c18..8f3fb2ff965056e1e2f787f08dcf6ddf429180ca 100644 GIT binary patch delta 20 acmeyD{x6+7pO=@50SE$}&Tr)YYzzQO7zV8X delta 20 acmeyD{x6+7pO=@50SK(txNqeCYzzQNO9prV diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/static/base/__pycache__/enumeration.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/static/base/__pycache__/enumeration.cpython-310.pyc index a9706a627a7c227f2462797a4898856d80c2213d..92936ebe32e253a1236035c3275b18dc1c6fa036 100644 GIT binary patch delta 20 acmdlXyhE5fpO=@50SE$}&Tr&i%LxE8E(Hky delta 20 acmdlXyhE5fpO=@50SK(txNqcM%LxE7VFc6w diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/static/base/__pycache__/field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/static/base/__pycache__/field.cpython-310.pyc index 5681c6914a79aa83a27a4b4d6d9d2ebf496fd470..42b67988708b85db2f69beb0ee62ee5ce6e64854 100644 GIT binary patch delta 20 acmX@2dqkHzpO=@50SE$}&Tr)2DFy&I!v$^t delta 20 acmX@2dqkHzpO=@50SK(txNqd%DFy&H_60cr diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/static/base/__pycache__/peripheral.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/static/base/__pycache__/peripheral.cpython-310.pyc index 6a61cf73da9dcf055612859b39ec1eadf44d8e35..fece2a38029c7c4ae71708a2c8eb4eadaaff71ce 100644 GIT binary patch delta 20 acmcbjbw!IipO=@50SInfdAX6>QxpI}bp}cR delta 20 acmcbjbw!IipO=@50SK(txNqe46a@e|2?XK* diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/static/base/__pycache__/register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/static/base/__pycache__/register.cpython-310.pyc index 77d55841be42369c169fe0852f3a66d62bee671a..8be966e423da0460ef9a3e297c3fcea2ded12fb8 100644 GIT binary patch delta 20 acmdn(y4#gIpO=@50SE$}&Tr)2pacLq#|4i7 delta 20 acmdn(y4#gIpO=@50SK(txNqd%pacLp`UP45 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/static/common/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/static/common/__pycache__/__init__.cpython-310.pyc index c16e76f17c8ce21dacad4bcd46318ff108ea5765..d2318ac62bc86137f9170cd954a03893eabe9498 100644 GIT binary patch delta 20 acmZ3>vX+HApO=@50SE$}&Tr&aVgdjzQv^c* delta 20 acmZ3>vX+HApO=@50SK(txNqcEVgdjyh6D}( diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/static/common/__pycache__/accessmgr.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/static/common/__pycache__/accessmgr.cpython-310.pyc index ebfb03372e04a88a9a554bf9f3dada7c6d3249db..749bf611f70238d96be1299b953ab73b370fa57b 100644 GIT binary patch delta 20 acmaDO`bLyHpO=@50SE$}&Tr&?$OQm9mj$W- delta 20 acmaDO`bLyHpO=@50SK(txNqcs$OQm8$^~@* diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/static/common/__pycache__/errors.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/static/common/__pycache__/errors.cpython-310.pyc index 3e99e6735ad8a5a441ae99e1a0e9f24b176278d9..614c757cfd1169c256a452ecd0d0e7db482ce41d 100644 GIT binary patch delta 20 acmdnayPcOipO=@50SE$}&Tr&i!v+8{D+Kod delta 20 acmdnayPcOipO=@50SK(txNqcM!v+8`UIfAb diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/static/common/__pycache__/regmapio.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/static/common/__pycache__/regmapio.cpython-310.pyc index 15fd5f617edc4824244697339445cd8407c37a00..0fecbed91f6cb5c8f179fe4b38a648e701acde95 100644 GIT binary patch delta 22 ccmX>)f$``BM(%uGUM>b82y{BXk=x1x07@?f>i_@% delta 22 ccmX>)f$``BM(%uGUM>b8uv+83k=x1x07+s6wg3PC diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/static/common/__pycache__/svdinfo.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/static/common/__pycache__/svdinfo.cpython-310.pyc index 2d630a5132fdd96c6f085717c9e70654dd11c5a7..07ece406ad007d10d9f4d86d18785185a573d616 100644 GIT binary patch delta 20 acmbO(IbD)FpO=@50SE$}&Tr)I;Q;_H;RLk+ delta 20 acmbO(IbD)FpO=@50SK(txNqd{;Q;_H6a;_( diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/static/interface/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/static/interface/__pycache__/__init__.cpython-310.pyc index 1b9997f3b4fb74912becefc531c1f7a35bf146d5..752f1e76df46fe4b379d4b092ae1704c54942538 100644 GIT binary patch delta 20 acmX@YeuSMnpO=@50SE$}&Tr)2$qWE9SOpIN delta 20 acmX@YeuSMnpO=@50SK(txNqd%$qWE8iv-#L diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/static/interface/__pycache__/iregmapdevice.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/static/interface/__pycache__/iregmapdevice.cpython-310.pyc index c1b82dd92d5188b42fc3cad4532fad40dd5bbeac..902714cbc37d37d6b826d86b5277302409ad2f90 100644 GIT binary patch delta 22 ccmbP#f^q%{M(%uGUM>b82y{BXky|7M08DWP1poj5 delta 22 ccmbP#f^q%{M(%uGUM>b8uv+83ky|7M0869=&;S4c diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/static/interface/__pycache__/iregmapenum.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/static/interface/__pycache__/iregmapenum.cpython-310.pyc index e2c5ba9d5a5b6186c0b5573ab6ab4cb07c9080f7..7446c4902b1d151be26081f0e8a1d95d4bbbd330 100644 GIT binary patch delta 20 acmcaFa$kfypO=@50SE$}&Tr%n;Q|0SYXt!S delta 20 acmcaFa$kfypO=@50SK(txNqbR;Q|0Ro&?MQ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/static/interface/__pycache__/iregmapfield.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/static/interface/__pycache__/iregmapfield.cpython-310.pyc index cbfcf692d53a8a1f094449836a7c2beea64db706..91d139f4cc0e934ba9c33d46035d2ddd2e1391f3 100644 GIT binary patch delta 20 acmZ4Bu)u*kpO=@50SE$}&Tr%vRR91q*#xox delta 20 acmZ4Bu)u*kpO=@50SK(txNqbZRR91q3@ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/static/interface/__pycache__/iregmapperipheral.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/static/interface/__pycache__/iregmapperipheral.cpython-310.pyc index 13d8d0e5db66801c07940337234c47d64a864940..524d425c2f596906b6d45ab28d3fb1c1c439a873 100644 GIT binary patch delta 20 acmez5{K=U+pO=@50SE$}&Tr&?t_T1_76vZ> delta 20 acmez5{K=U+pO=@50SK(txNqcst_T1^Nd@`< diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/static/interface/__pycache__/iregmapregister.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg27/revA1/static/interface/__pycache__/iregmapregister.cpython-310.pyc index f7f33c3474df84354dd27749581936895d90c6e1..6d20637d4859ee15f46d08f97fe3c9f210674af9 100644 GIT binary patch delta 20 acmbR0I@OgspO=@50SE$}&Tr)IQUU-p*99E_ delta 20 acmbR0I@OgspO=@50SK(txNqd{QUU-p3Iyl? diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/__pycache__/__init__.cpython-310.pyc index 3f44f9fce741168cb257ab56c9efd240c3a02f92..b85828ef827ffb8f471bf576469ad60f13da54d4 100644 GIT binary patch delta 20 acmbQiG=qsdpO=@50SE$}&Tr)AWdr~!!UO*R delta 20 acmbQiG=qsdpO=@50SK(txNqdjf?V diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/AGC_NS.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/AGC_NS.cpython-310.pyc index 32de9ddb54b43d09cb195924313ce76635bda216..d736453fe194a4ff10f7f447bba4f7d53e40ea2f 100644 GIT binary patch delta 20 acmaE__Fj!UpO=@50SE$}&Tr&S5e5J~d<9+r delta 20 acmaE__Fj!UpO=@50SK(txNqc65e5J}uLUUp diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/AGC_NS_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/AGC_NS_field.cpython-310.pyc index f2aadd22a7fe20499e4e62e0f9d7ef18f3474d4a..8cd68cde739adbfca5c6d2dbff0b7be5aeee60f0 100644 GIT binary patch delta 25 fcmezShvn}d7VdmrUM>b82y{B%$i0=DvB(Ypdi@9Z delta 25 fcmezShvn}d7VdmrUM>b8uv+8Z$i0=DvB(Ypd65Uh diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/AGC_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/AGC_NS_register.cpython-310.pyc index 8348604f05eaefceff7aa354906c54cbcd76e39a..443bff2536a0f0fdbaf868bdb5ba73f8c69ec7bc 100644 GIT binary patch delta 22 ccmey_&-AmOi94T{mx}=i0-erpb82y{B%$i0=DaiKK;YnTUk delta 25 fcmZ4Uon_5;7VdmrUM>b8uv+8Z$i0=DaiKK;YAgps diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/AGC_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/AGC_S_register.cpython-310.pyc index d7ac3162f6bfb357806cb32b8c90a17176f09a10..d83d17bd3b3964c9a911071b6faad5b470f4a751 100644 GIT binary patch delta 22 ccmaFV!}O?!i94T{mx}=i0-erpb82y{B%$lc1#xRskJKokIc2M1pO delta 28 icmcb;isSYw4(@zjUM>b8uv+8Z$lc1#xRskJKokIZ{0Axk diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/FRC_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/FRC_NS_register.cpython-310.pyc index 55111bb9983fc0346f502aa94b6ea6073e187edd..42a9e4da1adcc636f9fceaf0d42ab54d4335f8ca 100644 GIT binary patch delta 22 ccmdnDlzHD$X6}4mUM>b82y{BXk$dwc08R-94gdfE delta 22 ccmdnDlzHD$X6}4mUM>b8uv+83k$dwc08Kmw*#H0l diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/FRC_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/FRC_S.cpython-310.pyc index ab8353d94fdc9b2d842121f8a3f6dd23aec2888b..8d7626f794ed04306d2631bb6602b6922da70a85 100644 GIT binary patch delta 20 acmZ2rzQCM2pO=@50SE$}&Tr(NDh&WMkOdn6 delta 20 acmZ2rzQCM2pO=@50SK(txNqd1Dh&WL!vy94 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/FRC_S_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/FRC_S_field.cpython-310.pyc index 0398ffe67d6f79520400470ed30541157aae92f4..39751e444a3b9a68d8e7c70b509ded2983c0afd6 100644 GIT binary patch delta 28 icmbQYkYnCL4(@zjUM>b82y{B%$lc1#xRsk}vH$>X90w5q delta 28 icmbQYkYnCL4(@zjUM>b8uv+8Z$lc1#xRsk}vH$>V5eD1< diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/FRC_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/FRC_S_register.cpython-310.pyc index 0a766d2dfe09cc8cb2948b350c9ea5a838e0e5cc..bf57cace140b6e72ba8db09b6575f4a19c5bf517 100644 GIT binary patch delta 22 ccmdnAfO*pbX6}4mUM>b82y{BXkz4%&07^gxUH||9 delta 22 ccmdnAfO*pbX6}4mUM>b8uv+83kz4%&07-KODF6Tf diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/MODEM_NS.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/MODEM_NS.cpython-310.pyc index 384b99a56258f79583aadb3430feeebb316154c9..31664c27e956e91d0474061c0f72ae34d29ab25e 100644 GIT binary patch delta 22 ccmaFW$@r?1kvpH4mx}=i0-erpb82y{B%$lc1#*vie+%FW!$&9ar7b$LDj&Kn8- delta 37 rcmdmVUv$%bQSN+RUM>b8uv+8Z$lc1#*vie+%FW!$&9ar7b$LDj$}b82y{B%$lc1#xRsk}xd;Gs1P5UN delta 28 icmdnAl4H|K4(@zjUM>b8uv+8Z$lc1#xRsk}xd;Gp`3Ecj diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/MODEM_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/MODEM_S.cpython-310.pyc index 3561deca8400511f091d4a7f1b1edd0b637327c0..25c3b727abf0a7dd4c4e2d17ef00d83800a70db0 100644 GIT binary patch delta 22 ccmbQ-!8o~tkvpH4mx}=i0-erpieK>z>% delta 22 ccmbQ-!8o~tkvpH4mx}=itk$@1b82y{B%$lc1#*vie+%FW!$&9ar7b!9RD$SDcP delta 37 rcmdmTTy)EEQSN+RUM>b8uv+8Z$lc1#*vie+%FW!$&9ar7b!9RD#6by@ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/MODEM_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/MODEM_S_register.cpython-310.pyc index 1f78c1a7a120478d8191edd3e7f009b67383c421..492332b636a200192c0aa94bc8fec172d9b1b66e 100644 GIT binary patch delta 28 icmdlzhhz5~4(@zjUM>b82y{B%$lc1#xRsm9fDZt2RtDSv delta 28 icmdlzhhz5~4(@zjUM>b8uv+8Z$lc1#xRsm9fDZt0O9rO^ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/RAC_NS.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/RAC_NS.cpython-310.pyc index 23149f19b9753be25fe01dbf4504f1c9636cae78..476c3560945b4e14442af4f01807703c1c116db1 100644 GIT binary patch delta 20 acmccbb>E9SpO=@50SE$}&Tr%nQ3U`%9tDU1 delta 20 acmccbb>E9SpO=@50SK(txNqbRQ3U`$Q3X=~ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/RAC_NS_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/RAC_NS_field.cpython-310.pyc index 877a6209e05987f9a6620ca9dd82a78fca298e97..df85c38d9bcb93bbcf3ac3ca9982c35e9bc5a0dd 100644 GIT binary patch delta 31 lcmex1f%n@4UhaHeUM>b82y{B%$lc1#*viecm76)+0|1pC2uuI~ delta 31 lcmex1f%n@4UhaHeUM>b8uv+8Z$lc1#*viecm76)+0|1hA2p0eV diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/RAC_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/RAC_NS_register.cpython-310.pyc index dde30dc58eefbeac4130798d14c9001f86c54d00..746fd5139c9c0a4f2f37f937f0fcfbe12e2a756b 100644 GIT binary patch delta 25 fcmX@y#(KDol{=r8mx}=i0-eq`a&P5kv~UIhTU7>S delta 25 fcmX@y#(KDol{=r8mx}=itk$?Ua&P5kv~UIhS?LBa diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/RAC_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/RAC_S.cpython-310.pyc index 66f652b6a0445906dc721b5d92953ecb70637089..528e5280684e08ada2a4b92990373b1b50f38cec 100644 GIT binary patch delta 20 acmaFi`NESspO=@50SE$}&Tr(ts{#N*VFn-o delta 20 acmaFi`NESspO=@50SK(txNqdXs{#N)lm+Vm diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/RAC_S_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/RAC_S_field.cpython-310.pyc index 59f2c232d3b753ebae000c045aced9ffbb674188..aadfad5c597cfb318e8067aec0ad1573c9db1633 100644 GIT binary patch delta 31 lcmccD#Cxxamph-Amx}=i0-eq`a<_6bwsJFV#|i*8Wd$Pu diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/RFCRC_NS_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/RFCRC_NS_field.cpython-310.pyc index fd23d9d2d0ead54455297e13deff4783f4b53f34..c2b0607c45df2c057b9977d01e9ee82dcf46f642 100644 GIT binary patch delta 20 ZcmZqBZP4Y;=jG*M0D?fL^BcKK#Q-iN1fl={ delta 20 ZcmZqBZP4Y;=jG*M00OHu?i;yF#Q-f<1Z@BS diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/RFCRC_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/RFCRC_NS_register.cpython-310.pyc index 8ed17ce0ff12c85d488cc03d4833d01dc5fa0d74..064295858f6a4fcf562d6ef1354cdc7d10068503 100644 GIT binary patch delta 20 acmdn5x?hz$pO=@50SE$}&Tr)2A_M?7*9A)e delta 20 acmdn5x?hz$pO=@50SK(txNqd%A_M?73I!Gb diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/RFCRC_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/RFCRC_S.cpython-310.pyc index 2f7c46e63048721b69ddf7c54751dc0c56c5104a..43b2a31b0399d1f3e1ba47a3e5a438b0edd9cf78 100644 GIT binary patch delta 20 acmX@jeVUs)pO=@50SE$}&Tr&CzzP600tGGr delta 20 acmX@jeVUs)pO=@50SK(txNqb>zzP5~H3azp diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/RFCRC_S_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/RFCRC_S_field.cpython-310.pyc index 0b156934366ef0977347fdd25b590637f4fd9980..b74114345d78cc91114eb9f930481d5e91beea78 100644 GIT binary patch delta 20 acmX@Fb6$r#pO=@50SE$}&Tr&)5d#1@R|O3K delta 20 acmX@Fb6$r#pO=@50SK(txNqck5d#1?iUimI diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/RFCRC_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/RFCRC_S_register.cpython-310.pyc index 5e2c27c0e5c11f7ede96238b158b274e281f3d96..aa765c979e400d5426f5237240c9bcfc3f06090a 100644 GIT binary patch delta 20 acmbQFI!To~pO=@50SE$}&Tr&y7Xkn;&jiE( delta 20 acmbQFI!To~pO=@50SK(txNqcc7Xkn;0tAl$ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/SEQ.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/SEQ.cpython-310.pyc index 4e548f429138bc3f149f2d57038e22015a291e8a..b7667c1bbb6c47bcdfa7739c8e6f3e3bf84b04a0 100644 GIT binary patch delta 20 acmcb|b&rcXpO=@50SE$}&Tr%nW(5E?)&%7M delta 20 acmcb|b&rcXpO=@50SK(txNqbRW(5E?2?VeJ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/SEQ_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/SEQ_field.cpython-310.pyc index 492b7b5ebcd041f641d97bde14051ffec7e0aac6..b87fda50ce9b1957f0c0d79b4a8185566af7af8c 100644 GIT binary patch delta 20 acmcbic|(&spO=@50SE$}&Tr&CD*^yJQ3ap? delta 20 acmcbic|(&spO=@50SK(txNqb>D*^yIgavB= diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/SEQ_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/SEQ_register.cpython-310.pyc index 2a51f29c45aea61eabe38ce954699e29f5667327..5edd8874561dfdcb3ad9e47222f11ee58864f208 100644 GIT binary patch delta 20 acmbQDI7N{=pO=@50SE$}&Tr)I6aWA(jRe2| delta 20 acmbQDI7N{=pO=@50SK(txNqd{6aWA&zyyl` diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/SYNTH_NS.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/SYNTH_NS.cpython-310.pyc index d3a20fc60536c6c8376494fef2b652a203065107..4215b1fe7841cbeb54233c4e7f0ec0d14e79f13a 100644 GIT binary patch delta 20 acmaDU{Zg7cpO=@50SE$}&Tr(t#|r>E`US86 delta 20 acmaDU{Zg7cpO=@50SK(txNqdX#|r>EEd_f3 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/SYNTH_NS_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/SYNTH_NS_field.cpython-310.pyc index 4985acc98df9ed0aee50a584fb90038858fe6ce9..8f25ecc70bd34c091647fa78415edaeccc8b4c80 100644 GIT binary patch delta 22 ccmdnEoq6MSX6}4mUM>b82y{BXk$c%~08XI?6aWAK delta 22 ccmdnEoq6MSX6}4mUM>b8uv+83k$c%~08P{e-v9sr diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/SYNTH_NS_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/SYNTH_NS_register.cpython-310.pyc index d4c9bf3b1e77a7b4e16f522b88089c0ad30164a6..e3e6a88ca0345a8ed1397b084bd16cd6e40a93c8 100644 GIT binary patch delta 22 ccmX@Ohwb82y{BXk=rZ|08mW^O#lD@ delta 22 ccmX@Ohwb8uv+83k=rZ|08fAh7ytkO diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/SYNTH_S.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/SYNTH_S.cpython-310.pyc index aac8b8d878ba22010a65fe05bbd2c61196a5994b..83e7745807bf170e8a2fb0782f43b3e7cb757096 100644 GIT binary patch delta 20 acmX>oeNdV^pO=@50SE$}&Tr)2#tQ&7x&=4@ delta 20 acmX>oeNdV^pO=@50SK(txNqd%#tQ&6?F9n> diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/SYNTH_S_field.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/SYNTH_S_field.cpython-310.pyc index a4dc154744b42cf6fe05f27147bf476c6fd09b01..a9be387357f56c93d8b504253cc108e06384a8b2 100644 GIT binary patch delta 22 ccmX@Infb_OX6}4mUM>b82y{BXk$dM&08umtLjV8( delta 22 ccmX@Infb_OX6}4mUM>b8uv+83k$dM&08nQK4gdfE diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/SYNTH_S_register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/SYNTH_S_register.cpython-310.pyc index 877f662c32e3fdc93ab7bb47c4caca7c86ea5bdc..4c998740d9916b9ee0be20a0fa343f92d2cfa7d7 100644 GIT binary patch delta 22 ccmdnAi*eH~M(%uGUM>b82y{BXky||$08M!Y8vpb8uv+83ky||$08Fd}<^TWy diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/__init__.cpython-310.pyc index 4e4b38263bb28d17cedb92b834061dc4bc127253..bb67330cc7257fecd668b149bd6db3bcc6d3e902 100644 GIT binary patch delta 20 acmdn2xmlAtpO=@50SE$}&Tr&iAp!t3i3KqL delta 20 acmdn2xmlAtpO=@50SK(txNqcMAp!t2yafCJ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/_version.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/_version.cpython-310.pyc index 1bf058d59a5afdbdf446bb542bf981cad6eefbe5..bba143aa64b5fd5f9d447168bf0a13d1002b2a57 100644 GIT binary patch delta 20 ZcmeBY>SyB4=jG*M0D?fL^BcKY7y&6-1LObz delta 20 ZcmeBY>SyB4=jG*M00OHu?i;yT7y&4a1Frx8 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/device.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/device.cpython-310.pyc index 775225aa694375232ed945f7de45cfa560604f8f..57fc6572e604f1d47783a64f618e1d73403d73ba 100644 GIT binary patch delta 20 acmdmKxYLk3pO=@50SInfdAX5$odf_sJO+vY delta 20 acmdmKxYLk3pO=@50SK(txNqcMCjkI9&;=p@ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/excluded_regs.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/__pycache__/excluded_regs.cpython-310.pyc index 3bdd220a300cd336801f1715bac61c0d3269bc34..cbe4171ae1b61813f327781492da127450ff57b0 100644 GIT binary patch delta 20 acmdnYwV8`MpO=@50SE$}&Tr(_UpO=@50SE$}&Tr)IVgdjww*-9v delta 20 acmbQrI+c|>pO=@50SK(txNqd{Vgdjv>I6st diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/static/base/__pycache__/.nfs000000002ed7bc600002bfa7 b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/static/base/__pycache__/.nfs000000002ed7bc600002bfa7 deleted file mode 100644 index 03063d5e5a6804f48c571613bd2b41ae9075967e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 542 zcmYk3%}T>S5XY0Y>6fjFZ_$e@dJz#(@dH6c^dRK2#AFiJ?njv2RQpJRzEH281fRf@ zv(ZR5Wb*(2n4Q_on(=rT(As-D&%fyV;mz`DkvXK-UQ)<{ER=x?<1qBPC0nW;w`<*& z9TmkQxpI}bp}cR delta 20 acmcbjbw!IipO=@50SK(txNqe46a@e|2?XK* diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/static/base/__pycache__/register.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/static/base/__pycache__/register.cpython-310.pyc index ffec67eaad953b2efa970523e31b1ffc8d45024d..5aa0d1dc4fc82c4d5963557d86284e51a604795b 100644 GIT binary patch delta 20 acmdn(y4#gIpO=@50SE$}&Tr)2pacLq#|4i7 delta 20 acmdn(y4#gIpO=@50SK(txNqd%pacLp`UP45 diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/static/common/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/static/common/__pycache__/__init__.cpython-310.pyc index e692cc8f84493c31834cebb2924f4d01ab0333ba..a89cf09076bc7fd3c7f3c978d90ea759c7f2ab5b 100644 GIT binary patch delta 20 acmZ3>vX+HApO=@50SE$}&Tr&aVgdjzQv^c* delta 20 acmZ3>vX+HApO=@50SK(txNqcEVgdjyh6D}( diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/static/common/__pycache__/accessmgr.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/static/common/__pycache__/accessmgr.cpython-310.pyc index ec931649d27a15a22502a20c10c878a740fe36cc..28aff936a1524c6d0024b792f94c9f4a483548c4 100644 GIT binary patch delta 20 acmaDO`bLyHpO=@50SE$}&Tr&?$OQm9mj$W- delta 20 acmaDO`bLyHpO=@50SK(txNqcs$OQm8$^~@* diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/static/common/__pycache__/errors.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/static/common/__pycache__/errors.cpython-310.pyc index 61a755460c3c9844644483c6f825ffba582d9eb5..624e8421a5e80374e3a66888d2bc48f460f5995a 100644 GIT binary patch delta 20 acmdnayPcOipO=@50SE$}&Tr&i!v+8{D+Kod delta 20 acmdnayPcOipO=@50SK(txNqcM!v+8`UIfAb diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/static/common/__pycache__/regmapio.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/static/common/__pycache__/regmapio.cpython-310.pyc index f536af7256a8ca51693545e3a8933f0463df210e..f51c9bb7868f9ecb007a228891fd2b3cdf71b17b 100644 GIT binary patch delta 22 ccmX>)f$``BM(%uGUM>b82y{BXk=x1x07@?f>i_@% delta 22 ccmX>)f$``BM(%uGUM>b8uv+83k=x1x07+s6wg3PC diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/static/common/__pycache__/svdinfo.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/static/common/__pycache__/svdinfo.cpython-310.pyc index e7e2310e04f07708a6eee73be5122cdd969e1733..31f24f62f1d8d5c9708e596c99bf026f4dfc1c74 100644 GIT binary patch delta 20 acmbO(IbD)FpO=@50SE$}&Tr)I;Q;_H;RLk+ delta 20 acmbO(IbD)FpO=@50SK(txNqd{;Q;_H6a;_( diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/static/interface/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/static/interface/__pycache__/__init__.cpython-310.pyc index b8e04a15abe038e9937ecd04863969a96a1a49e8..990370920f8361d8644fb8db9d4008c08a42c956 100644 GIT binary patch delta 20 acmX@YeuSMnpO=@50SE$}&Tr)2$qWE9SOpIN delta 20 acmX@YeuSMnpO=@50SK(txNqd%$qWE8iv-#L diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/static/interface/__pycache__/iregmapdevice.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/static/interface/__pycache__/iregmapdevice.cpython-310.pyc index 7f1a59cef60dcf4da6803e8e16a8c0ed7668c8a5..0c9212dde2df5ce56dfda33faed25cdd73c3a5b9 100644 GIT binary patch delta 22 ccmbP#f^q%{M(%uGUM>b82y{BXky|7M08DWP1poj5 delta 22 ccmbP#f^q%{M(%uGUM>b8uv+83ky|7M0869=&;S4c diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/static/interface/__pycache__/iregmapenum.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/static/interface/__pycache__/iregmapenum.cpython-310.pyc index 140806e4288d6e7f28acad8bd5a93118cb3911f4..b424bca2aefbc81382de1aadab201240be2f28e5 100644 GIT binary patch delta 20 acmcaFa$kfypO=@50SE$}&Tr%n;Q|0SYXt!S delta 20 acmcaFa$kfypO=@50SK(txNqbR;Q|0Ro&?MQ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/static/interface/__pycache__/iregmapfield.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/static/interface/__pycache__/iregmapfield.cpython-310.pyc index bbec096b55f985d18bd16443a6dd108f00630677..c0b1ecf43e31c5f3dd69adefaef1913a680ee8a8 100644 GIT binary patch delta 20 acmZ4Bu)u*kpO=@50SE$}&Tr%vRR91q*#xox delta 20 acmZ4Bu)u*kpO=@50SK(txNqbZRR91q3@ diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/static/interface/__pycache__/iregmapperipheral.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/static/interface/__pycache__/iregmapperipheral.cpython-310.pyc index b817ff79a036e4ea379b7346b3476063890fe5c0..87b1bbafa61033c23372a3880dbe338b8f5e227a 100644 GIT binary patch delta 20 acmez5{K=U+pO=@50SE$}&Tr&?t_T1_76vZ> delta 20 acmez5{K=U+pO=@50SK(txNqcst_T1^Nd@`< diff --git a/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/static/interface/__pycache__/iregmapregister.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/host_py_rm_studio_internal/full/efr32xg28/revA0/static/interface/__pycache__/iregmapregister.cpython-310.pyc index 1d747db2569692e9808fb3069b12cff095f87dd9..ddf4d5df2429aa013ae4fecc27cfc80ab20cadc5 100644 GIT binary patch delta 20 acmbR0I@OgspO=@50SE$}&Tr)IQUU-p*99E_ delta 20 acmbR0I@OgspO=@50SK(txNqd{QUU-p3Iyl? diff --git a/platform/radio/efr32_multiphy_configurator/pro2_chip_configurator/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pro2_chip_configurator/__pycache__/__init__.cpython-310.pyc index 8d3b54e990514b5b7933cd41f762d6e791db68a4..b4ad0cc25c8476763f10063b34160612d5301baa 100644 GIT binary patch delta 19 ZcmaFL_>_@5pO=@50SE$}&QIjN1pqPP1w#M; delta 19 ZcmaFL_>_@5pO=@50SK(txKHH11pqNh1r7iJ diff --git a/platform/radio/efr32_multiphy_configurator/pro2_chip_configurator/src/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pro2_chip_configurator/src/__pycache__/__init__.cpython-310.pyc index 542bad8a23a1aa966590684c542b157392a7b177..ed29b47df92ed4015557a497f54eec533abf4faa 100644 GIT binary patch delta 19 ZcmaFK_>z%3pO=@50SNZJc{!2$9soGL27mwn delta 19 ZcmaFK_>z%3pO=@50SKzk&zs174*)f91=Rom diff --git a/platform/radio/efr32_multiphy_configurator/pro2_chip_configurator/src/common/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pro2_chip_configurator/src/common/__pycache__/__init__.cpython-310.pyc index 6c8ca3a9f17bec9b07e3271a9daacd833d3456eb..f954e911837541413d3cddeeecb2fcd058381894 100644 GIT binary patch delta 20 acmcb|e2f_?h=jG*M0D?fL^BcLDSph0m1N8s^ delta 20 ZcmeC<>f_?h=jG*M00OHu?i;z8Spg}D1Hb?P diff --git a/platform/radio/efr32_multiphy_configurator/pro2_chip_configurator/src/common/__pycache__/pyjavaproperties.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pro2_chip_configurator/src/common/__pycache__/pyjavaproperties.cpython-310.pyc index 20403462dee5f13259f4f3c8132da78dda34fcb9..ac78d4295b40400be22d801120b0ac1f011279d8 100644 GIT binary patch delta 20 ZcmeA%?=k1j=jG*M0D?fL^BcJvr2#Q;1m6Gv delta 20 ZcmeA%?=k1j=jG*M00OHu?i;xqr2#Ob1gZc4 diff --git a/platform/radio/efr32_multiphy_configurator/pro2_chip_configurator/src/si4440_modem_calc/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pro2_chip_configurator/src/si4440_modem_calc/__pycache__/__init__.cpython-310.pyc index 5c5ed293d286445841c2e9ed615f8c4d6e85b09f..6f89c6834f053fd379b88b9c1dda57c26d25ad32 100644 GIT binary patch delta 20 acmcc0a+QTUpO=@50SE$}&Tr)QVgdj(lLWf} delta 20 acmcc0a+QTUpO=@50SK(txNqe4Vgdj&#sr1{ diff --git a/platform/radio/efr32_multiphy_configurator/pro2_chip_configurator/src/si4440_modem_calc/__pycache__/calc_log.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pro2_chip_configurator/src/si4440_modem_calc/__pycache__/calc_log.cpython-310.pyc index 72a1f81a16d0d25070ff0ab160e4fd30e66938a4..7b519a5240745ef7126a2f271cd80cc1661cd611 100644 GIT binary patch delta 20 acmeyQ`bm{LpO=@50SE$}&Tr&?E(8ER&jsWF delta 20 acmeyQ`bm{LpO=@50SK(txNqcsE(8ER0tK%C diff --git a/platform/radio/efr32_multiphy_configurator/pro2_chip_configurator/src/si4440_modem_calc/__pycache__/ch_flt.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pro2_chip_configurator/src/si4440_modem_calc/__pycache__/ch_flt.cpython-310.pyc index fb68cce9a9de5c2331ea138a71f346f66ff15571..ed31295c78214b0d3fdfbe5bc6063d9067c8b000 100644 GIT binary patch delta 20 acmeyt_k)i+pO=@50SE$}&Tr(-Wd{H|cm+KG delta 20 acmeyt_k)i+pO=@50SK(txNqdnWd{H{s|5%E diff --git a/platform/radio/efr32_multiphy_configurator/pro2_chip_configurator/src/si4440_modem_calc/__pycache__/decode_api.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pro2_chip_configurator/src/si4440_modem_calc/__pycache__/decode_api.cpython-310.pyc index 76fd469985297d013744c78dc429a322c983eea0..cd4d99be6bf5b902983dddec1ce36db60b933283 100644 GIT binary patch delta 20 acmdnUw~>!KpO=@50SE$}&Tr&aV+Q~*U<7CY delta 20 acmdnUw~>!KpO=@50SK(txNqcEV+Q~)lLRvW diff --git a/platform/radio/efr32_multiphy_configurator/pro2_chip_configurator/src/si4440_modem_calc/__pycache__/dict2xml.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pro2_chip_configurator/src/si4440_modem_calc/__pycache__/dict2xml.cpython-310.pyc index 107269d8a88992f442400fcb60904f83fbd3024b..262440268a29e367a0af4e6040a7e66640fa6a9b 100644 GIT binary patch delta 20 acmZ3&vxJ8`pO=@50SE$}&Tr(FWCH*$4+J~_ delta 20 acmZ3&vxJ8`pO=@50SK(txNqc^WCH*#LIei@ diff --git a/platform/radio/efr32_multiphy_configurator/pro2_chip_configurator/src/si4440_modem_calc/__pycache__/filter_chain_lu.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pro2_chip_configurator/src/si4440_modem_calc/__pycache__/filter_chain_lu.cpython-310.pyc index 493955c2492fd245aaa84c12426ac63dcc31998e..2df5be36dc72d0868c0ec5fb7c7971ffc54becff 100644 GIT binary patch delta 20 acmaDa_FjxTpO=@50SE$}&Tr&S;RXOZGzB&Q delta 20 acmaDa_FjxTpO=@50SK(txNqc6;RXOYX9WQO diff --git a/platform/radio/efr32_multiphy_configurator/pro2_chip_configurator/src/si4440_modem_calc/__pycache__/filter_chain_lu_plus.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pro2_chip_configurator/src/si4440_modem_calc/__pycache__/filter_chain_lu_plus.cpython-310.pyc index 334cc686ee2308d17c28b1b34f9162bd792fd014..3c7d899a4b8bb5f30310b0cd3e90ed088abd71d1 100644 GIT binary patch delta 20 acmaDL_CSm~pO=@50SE$}&Tr%nna87_bpO=@50SE$}&Tr&)<^TXSF$BZ_ delta 20 acmX>na87_bpO=@50SK(txNqck<^TXRWCV`@ diff --git a/platform/radio/efr32_multiphy_configurator/pro2_chip_configurator/src/si4440_modem_calc/__pycache__/pll_setting_LUT.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pro2_chip_configurator/src/si4440_modem_calc/__pycache__/pll_setting_LUT.cpython-310.pyc index 1476d61c3d1401323b0acab74a51997a4c852649..53b0adf0680c7f261d43890921b0e36862b5dff6 100644 GIT binary patch delta 20 acmey)^_`15pO=@50SE$}&Tr(-VFds>z6CG< delta 20 acmey)^_`15pO=@50SK(txNqdnVFds=@dWz- diff --git a/platform/radio/efr32_multiphy_configurator/pro2_chip_configurator/src/si4440_modem_calc/__pycache__/pro2_ocelotdemodulatorcore.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pro2_chip_configurator/src/si4440_modem_calc/__pycache__/pro2_ocelotdemodulatorcore.cpython-310.pyc index 892eb4f2faa5697d055f0746b6f4a3436c508434..37b8eb20646942d46705a880028e2b92ff7bed69 100644 GIT binary patch delta 20 acmX@_e%_rspO=@50SE$}&Tr&Cq6`2&Fa^*6 delta 20 acmX@_e%_rspO=@50SK(txNqb>q6`2%V+ET4 diff --git a/platform/radio/efr32_multiphy_configurator/pro2_chip_configurator/src/si4440_modem_calc/__pycache__/pro2_ocelotmodemcalc.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pro2_chip_configurator/src/si4440_modem_calc/__pycache__/pro2_ocelotmodemcalc.cpython-310.pyc index 978c28398cdf7e450620c975063d617f65621bbf..6287e68e5adb2889e59db9a44a1291e9a35796f7 100644 GIT binary patch delta 20 acmcb@eTADlpO=@50SE$}&Tr&C$qE2AY6VFE delta 20 acmcb@eTADlpO=@50SK(txNqb>$qE29odpyC diff --git a/platform/radio/efr32_multiphy_configurator/pro2_chip_configurator/src/si4440_modem_calc/__pycache__/pro2_ocelotmodemcalcinputs.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pro2_chip_configurator/src/si4440_modem_calc/__pycache__/pro2_ocelotmodemcalcinputs.cpython-310.pyc index 4621681b76f841293c352cf69a663f0087ecb8c9..e71d5b320a88790750395a01e30ec84c1f1478aa 100644 GIT binary patch delta 20 acmbQtJ(-(3pO=@50SE$}&Tr)IU@(!f=jG*M0D?fL^BcLFB>*tx1l9lm delta 20 ZcmeA(>@(!f=jG*M00OHu?i;zAB>*rO1fc)` diff --git a/platform/radio/efr32_multiphy_configurator/pro2_chip_configurator/src/si4440_modem_calc/__pycache__/pro2modemcalcinputs.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pro2_chip_configurator/src/si4440_modem_calc/__pycache__/pro2modemcalcinputs.cpython-310.pyc index dd37e42757180925a61a9d3916660c36d7e06c35..9925095a0543340856940263bf579441e5bd0ff3 100644 GIT binary patch delta 20 acmZpWYLMd2=jG*M0D?fL^BcLp@&EuVZ3OZF delta 20 acmZpWYLMd2=jG*M00OHu?i;zk@&EuUpai`D diff --git a/platform/radio/efr32_multiphy_configurator/pro2_chip_configurator/src/si4440_modem_calc/__pycache__/pro2modemfields.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pro2_chip_configurator/src/si4440_modem_calc/__pycache__/pro2modemfields.cpython-310.pyc index e548aca5dcb349c51b985d906f9656f3f24bab56..7ff42fdd39b9967a43aea5a421374ec7d8a0778f 100644 GIT binary patch delta 20 acmaDM_d?pO=@50SE$}&Tr(tp#lIwnFbL6 delta 20 acmaFt`Ph>?pO=@50SK(txNqdXp#lIv%mv&4 diff --git a/platform/radio/efr32_multiphy_configurator/pro2_chip_configurator/src/si4440_modem_calc/__pycache__/rxchflt_rtl.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pro2_chip_configurator/src/si4440_modem_calc/__pycache__/rxchflt_rtl.cpython-310.pyc index c9a8a617f5e367b2dc9a3cf3f8a88e2384a7eac9..0659bf0b7dd383786429b14e7984e55e112223d1 100644 GIT binary patch delta 20 acmcc2d6|!2$p^ECmbz diff --git a/platform/radio/efr32_multiphy_configurator/pro2_chip_configurator/src/si4440_modem_calc/__pycache__/trueround.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pro2_chip_configurator/src/si4440_modem_calc/__pycache__/trueround.cpython-310.pyc index f049aa086399fb936a49894c8c59357792a5bd18..7f3bc5994ae8cf7834ad81bb078fc3ff380b02ac 100644 GIT binary patch delta 20 acmaFN^O%P_pO=@50SE$}&Tr(7U;_X*=LGox delta 20 acmaFN^O%P_pO=@50SK(txNqc+U;_X*8U(}u diff --git a/platform/radio/efr32_multiphy_configurator/pro2_chip_configurator/src/version_info/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pro2_chip_configurator/src/version_info/__pycache__/__init__.cpython-310.pyc index df5223108dfcc102ad4b568356a52f6ae993c967..fcc93f367483bd7f45d82562ef20c86d5c8f0061 100644 GIT binary patch delta 19 Zcmeyy_>GY}pO=@50SNZJc{!2$H2^xF2B!c3 delta 19 Zcmeyy_>GY}pO=@50SKzk&zs2o8UQy?1^fU2 diff --git a/platform/radio/efr32_multiphy_configurator/pro2_chip_configurator/src/version_info/__pycache__/version_info.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pro2_chip_configurator/src/version_info/__pycache__/version_info.cpython-310.pyc index 6a35689abc42e5a7c096597b37995518af6b2d48..31a442fdd7af312c5904551c3b7988ed4a9d9166 100644 GIT binary patch delta 20 acmdnZznh;spO=@50SE$}&Tr)2zzzU26a@$X delta 20 acmdnZznh;spO=@50SK(txNqd%zzzU1M+DOV diff --git a/platform/radio/efr32_multiphy_configurator/py_2_and_3_compatibility/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/py_2_and_3_compatibility/__pycache__/__init__.cpython-310.pyc index 86e5e015cc0c2815fbfc6b429dc84511f623615f..ec6fe2da0a888b2571274a265db845695fe9b0b9 100644 GIT binary patch delta 20 acmaFE`-Yc0pO=@50SE$}&Tr&?$OZs9a|MM5jpO=@50SE$}&Tr&qX9NH#(gW=P delta 20 acmbQlG>M5jpO=@50SK(txNqcUX9NH#1p~MM diff --git a/platform/radio/efr32_multiphy_configurator/pycalcmodel/__pycache__/_version.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pycalcmodel/__pycache__/_version.cpython-310.pyc index e346eb10557a49ca461f7d0d49fd686bb713f002..764ee4056c3745a40203d4e8f5ac4b4caffcccc5 100644 GIT binary patch delta 19 ZcmaFQ_@0qFpO=@50SE$}&QIii0su2q1z`XH delta 19 ZcmaFQ_@0qFpO=@50SK(txKHGM0su0+1uOsn diff --git a/platform/radio/efr32_multiphy_configurator/pycalcmodel/__pycache__/py2_and_3_compatibility.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pycalcmodel/__pycache__/py2_and_3_compatibility.cpython-310.pyc index 1ecc474c17ecf0aa4673b2aea0bf71519ae07e4a..f702c11f37012158a3e3d1955ae6a8a6b89431f3 100644 GIT binary patch delta 20 acmey)@|}e{pO=@50SE$}&Tr(-VFCa-;{_oA delta 20 acmey)@|}e{pO=@50SK(txNqdnVFCa-76j}7 diff --git a/platform/radio/efr32_multiphy_configurator/pycalcmodel/core/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pycalcmodel/core/__pycache__/__init__.cpython-310.pyc index 810c27e7353144577b5f92576677f0b918ea4a7e..5636eb2ef9ae16ec0e1c22774cbbf579742792e5 100644 GIT binary patch delta 19 Zcmcc5c%P9wpO=@50SE$}&QIjN0st`t1u*~s delta 19 Zcmcc5c%P9wpO=@50SK(txKHH10st^<1pEL1 diff --git a/platform/radio/efr32_multiphy_configurator/pycalcmodel/core/__pycache__/common.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pycalcmodel/core/__pycache__/common.cpython-310.pyc index 6ac906f57ad04eb88b6cc0c7416622eb33747344..242d8e3a24383c745e063637b37cfc8f4a7a7f65 100644 GIT binary patch delta 20 acmew+_)U;IpO=@50SInfdAX7MH3tAhGzRei delta 20 acmew+_)U;IpO=@50SK(txNqcs%>e*A$OVZ2 diff --git a/platform/radio/efr32_multiphy_configurator/pycalcmodel/core/__pycache__/default_phy.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pycalcmodel/core/__pycache__/default_phy.cpython-310.pyc index dd726446e4eb21e61a4579860f8fd6bb06728322..438e816b5e03446920447e8d1d15399e66520d95 100644 GIT binary patch delta 20 acmcbvdR>(}pO=@50SE$}&Tr&CBLo0Cmj#mm delta 20 acmcbvdR>(}pO=@50SK(txNqb>BLo0B$^~8k diff --git a/platform/radio/efr32_multiphy_configurator/pycalcmodel/core/__pycache__/feature.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pycalcmodel/core/__pycache__/feature.cpython-310.pyc index 8cfc8f9a4fbbd8f423df0b5143238ce6ecf0b0d9..d79b085cd404fd9b3fd646bbbabf2f27b16503f3 100644 GIT binary patch delta 20 acmeyb{a>3qpO=@50SE$}&Tr)YA_@ROvIZIe delta 20 acmeyb{a>3qpO=@50SK(txNqeCA_@RNjX&v diff --git a/platform/radio/efr32_multiphy_configurator/pycalcmodel/core/__pycache__/input.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pycalcmodel/core/__pycache__/input.cpython-310.pyc index e44602ee6c335aaeaf3891238858cb94019f76fb..e3508c7c282ff0c9dc706d116fcf4c9a17b79e96 100644 GIT binary patch delta 20 acmcZ?cQ1}RpO=@50SInfdAX50SRVjNZwBfB delta 20 acmcZ?cQ1}RpO=@50SK(txNqbR)&~GW0|kNr diff --git a/platform/radio/efr32_multiphy_configurator/pycalcmodel/core/__pycache__/log.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pycalcmodel/core/__pycache__/log.cpython-310.pyc index 354ba5bbca8b56fff1546b4701ef109190757198..2fb64f990759732f4de90db1d7e51458a24da86c 100644 GIT binary patch delta 20 acmbQrHkFM#pO=@50SE$}&Tr)AVg>*z+ynps delta 20 acmbQrHkFM#pO=@50SK(txNqd*z4+F~p diff --git a/platform/radio/efr32_multiphy_configurator/pycalcmodel/core/__pycache__/model.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pycalcmodel/core/__pycache__/model.cpython-310.pyc index e9b6c88bd4af32aaadc6477830e9a1fb3a02c3f9..86bd1fa8fcb7095449a3e2e61cd490e507bd9054 100644 GIT binary patch delta 20 acmX>Ra3X*^pO=@50SE$}&Tr(l)c^oJVFgkE delta 20 acmX>Ra3X*^pO=@50SK(txNqdP)c^oIlm#6C diff --git a/platform/radio/efr32_multiphy_configurator/pycalcmodel/core/__pycache__/output.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pycalcmodel/core/__pycache__/output.cpython-310.pyc index 309ca3331a34a28eb4e320857e322190821bf9d0..1a4ce8d0b9cb82a651e26244aca3a3e7f951f7f5 100644 GIT binary patch delta 20 ZcmZn(YzgGf=jG*M0D?fL^BcJt@qHU!=P delta 20 acmZqWY31S0=jG*M00OHu?i;y(u>t@pX#}YN diff --git a/platform/radio/efr32_multiphy_configurator/pycalcmodel/core/__pycache__/phy.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pycalcmodel/core/__pycache__/phy.cpython-310.pyc index c64d026f21fa3cadf6b6e1d446daf728711f95f5..7bb47ff5a11428b7b0f13f1932d5b93fe22d5417 100644 GIT binary patch delta 20 acmZ1(urh! delta 20 acmewu^)ZS&pO=@50SK(txNqc6(**!TX$7$W diff --git a/platform/radio/efr32_multiphy_configurator/pycalcmodel/core/__pycache__/reg_model.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pycalcmodel/core/__pycache__/reg_model.cpython-310.pyc index 36f1848615445a99b7b68b70107860e9c8a5f8d6..31b42f4ccb5d874eaa13ff8a84dc3d494736cc78 100644 GIT binary patch delta 20 acmX@Wc7TmLpO=@50SE$}&Tr&4Wd;B-lmvkQ delta 20 acmX@Wc7TmLpO=@50SK(txNqb(Wd;B+#{^6O diff --git a/platform/radio/efr32_multiphy_configurator/pycalcmodel/core/__pycache__/variable.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pycalcmodel/core/__pycache__/variable.cpython-310.pyc index 72ccae8b2dcc39abf2eb632df3efed393bee0827..4bd9d17691f8b908a8c18301145365b0ea5ee100 100644 GIT binary patch delta 22 ccmaFV!}zF&kvpH4mx}=i0-erpI4D+ delta 20 acmbQqG?R%tpO=@50SK(txNqdb82y{B%$lc1#xRsk}e*ge@0SDIr delta 28 icmX@Lkn_|+PVRhOUM>b8uv+8Z$lc1#xRsk}e*ge=_6MQ> diff --git a/platform/radio/efr32_multiphy_configurator/pycalcmodel/model_instance/base/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pycalcmodel/model_instance/base/__pycache__/__init__.cpython-310.pyc index bb2f0a8867fd41366ea8a89456ed2f56601a3726..d6d685c3d7057f899b02c03d38398417a78e73f8 100644 GIT binary patch delta 20 acmX@ibeM@dpO=@50SE$}&Tr(lU<3d$dIW#~ delta 20 acmX@ibeM@dpO=@50SK(txNqdPU<3d#tprN| diff --git a/platform/radio/efr32_multiphy_configurator/pycalcmodel/model_type/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pycalcmodel/model_type/__pycache__/__init__.cpython-310.pyc index feb98716c44b1cbaf952925f4a77ebad3a316cd4..7fa59c8818cc06c892514033b9df0b1fdd9c8a2e 100644 GIT binary patch delta 20 acmbQpG?9rrpO=@50SE$}&Tr&qV*~&xssri( delta 20 acmbQpG?9rrpO=@50SK(txNqcUV*~&w-2=4% diff --git a/platform/radio/efr32_multiphy_configurator/pycalcmodel/model_type/base/__pycache__/Bindings.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pycalcmodel/model_type/base/__pycache__/Bindings.cpython-310.pyc index 73ef395d69d49fb96af355ae71ca45cfd81c30a0..063b06380fe5f9089f53a5c3ba08c76ad5f6726f 100644 GIT binary patch delta 25 fcmZqK&)%}1ojaeGmx}=i0-eq`a&P5kth^5ZTRjIl delta 25 fcmZqK&)%}1ojaeGmx}=itk$?Ua&P5kth^5ZSb82y{B%$lc1#xRskJy%YeBNeG4j delta 28 icmezLiu2PePVRhOUM>b8uv+8Z$lc1#xRskJy%Ye9J_u0& diff --git a/platform/radio/efr32_multiphy_configurator/pylib_multi_phy_model/multi_phy_configuration_model/__pycache__/MultiPHYConfig.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pylib_multi_phy_model/multi_phy_configuration_model/__pycache__/MultiPHYConfig.cpython-310.pyc index dcdb189e0ee3f587430899c44896b56d83e30239..e7e1d12de8bf36d511ffa1cc937c4cccdd34408f 100644 GIT binary patch delta 20 acmdmGwabb-pO=@50SE$}&Tr(_mjwVg4g~Q4 delta 20 acmdmGwabb-pO=@50SK(txNqdvmjwVfK?J-2 diff --git a/platform/radio/efr32_multiphy_configurator/pylib_multi_phy_model/multi_phy_configuration_model/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pylib_multi_phy_model/multi_phy_configuration_model/__pycache__/__init__.cpython-310.pyc index 23ccf0a51c7d95a943d536ef16bbaa9c9949f93b..b2a5d710b9d2c9993eb72a9437dacd1e6909b395 100644 GIT binary patch delta 20 acmdnNyn~rLpO=@50SE$}&Tr&i%Lo84<^3^hpO=@50SE$}&Tr%vWCQ>!Vgw5S delta 20 acmbQkG>3^hpO=@50SK(txNqbZWCQ>zl>^oQ diff --git a/platform/radio/efr32_multiphy_configurator/pylib_multi_phy_model/multi_phy_configuration_model/__pycache__/rail_scripts_wrapper.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pylib_multi_phy_model/multi_phy_configuration_model/__pycache__/rail_scripts_wrapper.cpython-310.pyc index be55dfa0be378ab09f6bb1fa57c63c96b8a9af56..0e137dac62f84be841644f0fd429ad543668a2b3 100644 GIT binary patch delta 20 acmaDV`c#xVpO=@50SE$}&Tr(t#RUL5e+88Q delta 20 acmaDV`c#xVpO=@50SK(txNqdX#RUL4vISrO diff --git a/platform/radio/efr32_multiphy_configurator/pylib_multi_phy_model/register_diff_tool/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pylib_multi_phy_model/register_diff_tool/__pycache__/__init__.cpython-310.pyc index 5751811c67547d1a9172e760a30ec312d476fe75..98d601b1030aa7445fd4ad8b6fc4dd89f9dc50cb 100644 GIT binary patch delta 19 Zcmey)_??kEpO=@50SNZJc{!2$4FEdC2C4u6 delta 19 Zcmey)_??kEpO=@50SKzk&zs2o1^_p81^)m5 diff --git a/platform/radio/efr32_multiphy_configurator/pylib_multi_phy_model/register_diff_tool/__pycache__/model_diff.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pylib_multi_phy_model/register_diff_tool/__pycache__/model_diff.cpython-310.pyc index 2b0261f8487b2adebe85534fcf0f0b695e990147..4685487fc96b855347c3ec217723b3d16072b055 100644 GIT binary patch delta 20 acmZn+Xbj-a=jG*M0D?fL^BcLpsRIBsNCkWV delta 20 acmZn+Xbj-a=jG*M00OHu?i;zksRIBrdj&@T diff --git a/platform/radio/efr32_multiphy_configurator/pylib_multi_phy_model/register_diff_tool/__pycache__/model_diff_codes.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pylib_multi_phy_model/register_diff_tool/__pycache__/model_diff_codes.cpython-310.pyc index 2b13ab57433ba3dc04997f2f05064b119a818398..29be625aee0e00b14976bf9482d2777be108ebbf 100644 GIT binary patch delta 20 acmaFN@|cA?pO=@50SE$}&Tr(7U;+R(!vy63 delta 20 acmaFN@|cA?pO=@50SK(txNqc+U;+R&_5`p1 diff --git a/platform/radio/efr32_multiphy_configurator/pylib_multi_phy_model/register_model_to_xml/__pycache__/Bindings.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pylib_multi_phy_model/register_model_to_xml/__pycache__/Bindings.cpython-310.pyc index 31c5211464c0bb1da62de9da224d1955d77a5305..2393e9d7a3cd582df23611fbfd2d5432a9d6091d 100644 GIT binary patch delta 25 fcmZ2Dk!|5bHtu|0UM>b82y{B%$i0=DaasoeSTY9O delta 25 fcmZ2Dk!|5bHtu|0UM>b8uv+8Z$i0=DaasoeR>lUW diff --git a/platform/radio/efr32_multiphy_configurator/pylib_multi_phy_model/register_model_to_xml/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pylib_multi_phy_model/register_model_to_xml/__pycache__/__init__.cpython-310.pyc index 5af23772a16b641025b6fcf801a79034642d3613..8c887da153832a75746798bff27a3a20db529e97 100644 GIT binary patch delta 19 Zcmeyx_=}M{pO=@50SNZJc{!2$Jpem12D1PF delta 19 Zcmeyx_=}M{pO=@50SKzk&zs2o9soDw1_%HE diff --git a/platform/radio/efr32_multiphy_configurator/pylib_multi_phy_model/register_model_to_xml/__pycache__/rm_to_xml.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pylib_multi_phy_model/register_model_to_xml/__pycache__/rm_to_xml.cpython-310.pyc index 72877c6d84df8f56cee561010c0880951f940b81..2da8e7dd5a38dabd45de60b0ca63276ecbdb2b47 100644 GIT binary patch delta 20 acmZ3bvPy+JpO=@50SE$}&Tr(F7Xkn>YXph_ delta 20 acmZ3bvPy+JpO=@50SK(txNqc^7Xkn=o&;3@ diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/__pycache__/__init__.cpython-310.pyc index 2e19224587877af3d8c2c065832ecec42973745b..f8232dbe00c8bda1c642ad1531fa077798a8db53 100644 GIT binary patch delta 20 acmdnMzJZ-PpO=@50SE$}&Tr&i$_xN7I0VxG delta 20 acmdnMzJZ-PpO=@50SK(txNqcM$_xN6YXqJE diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/__pycache__/_version.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/__pycache__/_version.cpython-310.pyc index 248def5bb0b45bc09b3121ae7bea1daca1d6df0e..1cb0fe267210f7e902110451b7c94eab925250d3 100644 GIT binary patch delta 26 gcmeyu_=S->pO=@50SInfc{!2WgxO5baH7*D0BJG^3jhEB delta 26 gcmeyu_=S->pO=@50SK(txKHFZVK&h-n&`9%09Z~2q5uE@ diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/_version.py b/platform/radio/efr32_multiphy_configurator/pyradioconfig/_version.py index 9a4142804e..14571a1880 100644 --- a/platform/radio/efr32_multiphy_configurator/pyradioconfig/_version.py +++ b/platform/radio/efr32_multiphy_configurator/pyradioconfig/_version.py @@ -1,4 +1,4 @@ -__version__ = '2402.4.2' +__version__ = '2402.6.1' diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/calculator_model_framework/Utils/__pycache__/CalcStatus.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/calculator_model_framework/Utils/__pycache__/CalcStatus.cpython-310.pyc index 43f43df798e71139029fee448c5975aeca13b37c..d98dea15d65203bff8613c4aaf7b8900fd3df8af 100644 GIT binary patch delta 20 acmey({F|9OpO=@50SE$}&Tr)Yzz6_4UInTE delta 20 acmey({F|9OpO=@50SK(txNqeCzz6_3kp*=C diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/calculator_model_framework/Utils/__pycache__/ClassManager.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/calculator_model_framework/Utils/__pycache__/ClassManager.cpython-310.pyc index 9a8d80aeb779e2d96aeff4c662814725c9094f2f..cd7dff9a19225d6f17d969168aa7d305889b498c 100644 GIT binary patch delta 20 acmZ1`x=fTipO=@50SE$}&Tr(N%>@83rv%sl delta 20 acmZ1`x=fTipO=@50SK(txNqd1%>@82+61Ej diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/calculator_model_framework/Utils/__pycache__/CustomExceptions.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/calculator_model_framework/Utils/__pycache__/CustomExceptions.cpython-310.pyc index e2fd799ceb5b72ee5b7fb0b60ea1111b9b278af6..71ff43fc5e27a38a4d69b42097f844a29e141650 100644 GIT binary patch delta 20 acmX@ac8HBTpO=@50SE$}&Tr&4X9fT<PjPj>`#1`z-N diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/calculator_model_framework/__pycache__/CalcManager.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/calculator_model_framework/__pycache__/CalcManager.cpython-310.pyc index d68b6799bc7b797df6ed88f34dfd53e41e14396e..0cd1b28236c721b8f04fbd1fa5435a28c59a76aa 100644 GIT binary patch delta 22 ccmZqtz|{DGi94T{mx}=iZd`e}k^9?r09Td>g8%>k delta 22 ccmZqtz|{DGi94T{mx}=itk$@1oD08c6h8vph=`h8$`>vg1!95)r9dnp5D`83 cA)gv=42Wq4Bs6)70w#;_H!{Xdp2lwj0Qboz-~a#s diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/calculator_model_framework/exceptions/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/calculator_model_framework/exceptions/__pycache__/__init__.cpython-310.pyc index 92502fe81a472730b3ed795820a1fa828231b0a4..d7bda06a3cb3011278b456b4a1c6d14a471af04c 100644 GIT binary patch delta 19 ZcmZo-YGUHf=jG*M0D^sQUQXox4ge~B1X9U*( delta 20 acmdnYx|x+bpO=@50SK(txNqcM!2|#=ngpT% diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/calculator_model_framework/interfaces/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/calculator_model_framework/interfaces/__pycache__/__init__.cpython-310.pyc index 84add78bd356fa5ed2812e8d466758920c6a6eee..a6c5b3cb5afb3a745ec9f59ddc7202e347f6562d 100644 GIT binary patch delta 19 ZcmZo-YGUHf=jG*M0D^sQUQXox4ge~B1D=UT)-O5&{4?fppO=@50SE$}&Tr%vW&{8$vIG$T delta 20 acmbQoG>?fppO=@50SK(txNqbZW&{8#vzCWDpO=@50SE$}&Tr&aVgmp#cLY}e delta 20 acmZ3>vzCWDpO=@50SK(txNqcEVgmp!ssthc diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/__pycache__/__init__.cpython-310.pyc index 39be758ea324211743a4c28e95fbdca18989b770..3d3c3abbf20c8d2c71fee54d5580f013da0d3911 100644 GIT binary patch delta 20 acmey*_MeSApO=@50SE$}&Tr%{VFmy@Yz005 delta 20 acmey*_MeSApO=@50SK(txNqbxVFmy?p9Kj3 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/__pycache__/__init__.cpython-310.pyc index 76648698b33a847138ca86b904a3374a6dba1644..9159fb14799597ebbd5afb5317f7b8760ff2cd84 100644 GIT binary patch delta 19 ZcmaFK_>z%3pO=@50SNZLc{!2$9soGR27v$o delta 19 ZcmaFK_>z%3pO=@50SKzk&zs174*)f91=Rom diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/__init__.cpython-310.pyc index 08847f23ab913715d2af153bb29a78cbc910fd16..cb7c9639a1b21cad0f8d9870ad05ce3e1d1c5e8b 100644 GIT binary patch delta 20 ZcmeBS?qTN6=jG*M0D?fL^BcJv838H=1YH0C delta 20 ZcmeBS?qTN6=jG*M00OHu?i;xq838Fd1SkLi diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/calc_agc.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/calc_agc.cpython-310.pyc index 2ebc06bbaf56281607fb7903f7ec147b03d6c66f..020133e11c54da9ed808e394a7ca9977b808ea85 100644 GIT binary patch delta 20 acmdlWyFr#apO=@50SE$}&Tr&i$_D^5TLlUL delta 20 acmdlWyFr#apO=@50SK(txNqcM$_D^4js(>J diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/calc_aox.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/calc_aox.cpython-310.pyc index 155739e1fa74fca07d31e5ddfa6cca4758410d82..bd8cdab14a63f307eee2452fb78e476ce386cd48 100644 GIT binary patch delta 20 acmZn{Xcyql=jG*M0D?fL^BcMUumb=r7zFMB delta 20 acmZn{Xcyql=jG*M00OHu?i;!Pumb=qO9Z(9 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/calc_ber.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/calc_ber.cpython-310.pyc index 8ee00b168b0aa678095eeca165299626cfa4acd0..d9906b454d14edaaaed3666165526f8497e271f9 100644 GIT binary patch delta 20 acmeyw{E3-6pO=@50SE$}&Tr&?&IkZG_63gs delta 20 acmeyw{E3-6pO=@50SK(txNqcs&IkZGDFs>p diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/calc_crc.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/calc_crc.cpython-310.pyc index 7c6d85435cd9c87985433f625e6d0e3270374f33..18478e019f33c7dfbc890bae1677f7bc612c09b1 100644 GIT binary patch delta 20 acmeyw{E3-6pO=@50SE$}&Tr&?&IkZG_63gs delta 20 acmeyw{E3-6pO=@50SK(txNqcs&IkZGDFs>p diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/calc_demodulator.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/calc_demodulator.cpython-310.pyc index a3eddaa36aa728e90309e6f08f73e2b67581e90c..ae7783b446f4654b76eb5f888c44263e18975c9a 100644 GIT binary patch delta 881 zcmZwFO-~a+7zc1i+EQq@KwH{UD44XowDl#T1gVe$mZ&i;STJCHS(dWY>UP&mx3NKk znuvJgFn2$LW{D=A^c#5aVCLkB*m&~5$&2%E@#ZG`+h?AAW-|NC9;Oe|E<=(!Pl)UL zx5j(dgpF`(&bCVeF_9{GiiTdSQL5^uyrHRdlk(TolJU zs82j-lI=S~17{JQ2L9GN39$zx*}5<2;jStzj>}5XtSK6|emcu-js#xE*{VC0#)^#& z-~e`D6VMq!+(D-iPl3z-vJ`V@stNn*j*)40IIaG{(M2QHi(BE#KgFs^}$^v)__0z}vDS4s@s@t1#rF?*PmxP( z#``Xo#Oxplfj-b|Y5>tykYPQ(bgY2z4!8^cH*cJozIk$=ee_*OaOZ|vHRVlJKaTWT zr68%48dQF)(xNzTDr2E_%kR$U3hFrS{UxPjI-?N!0!ZC0jTm-9N3uwRqPr(j&0bYSO JmOQve{sQhg(DncT delta 899 zcmZwG&rcIU6bEoe+EQq@KwC;F6pSrDT2%Z6NE2+S5^w0?qA?Rvqlq7`X6}a1@KrMs$DvTK^bonPKclP86X!*au)$>KlG zT7U<*fr}6sBIOa2h{wT$|5<@KVxo@x;ZL$jdF~(T!-Ph8y%KYF=|_hvC&pz)sfKy` zo>i_Hnq9F>wPKd_Ly?f*m4w2ZrdJnE+(I*VbuRxXp$Km(P{#XcX>Mj^W^qjffIKXI7 zrp!@F9{0qZPmy`%yHDe@c9f;0H)^DLu(0%arl78E=2z-0t`{21K15Lu!Cm>~)deo! zMdR)q#`0Tqu#-32hed(Cx6lLJvBaKcbLVe#lqqOzsQ6IC9nft0u$_mDmZY|zPIcj DLa4@H diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/calc_diversity.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/calc_diversity.cpython-310.pyc index 6935558c35cf9429aa585f5a2af7ada4efde5c2b..f72a57f47a4837fdfcbe83f7fba91554abadcdd7 100644 GIT binary patch delta 294 zcmccSea)LYpO=@50SE$}&Tr&y6=aOsJW()&L*4@@R1^Rr0zpI&hzJ1@p&%k`GK+c{E6Z2(&cw%-pd4I;cjgcpeL1QCoN zLKQ^lg9rx@;Rqs}C$}mZOx~sF%9yc9=>nrbDo8LBM5KX;jL8p_AIaN;n9(324n!n^ Wh-46v0U~lIKUCSkm@;{istW*1ghCwv delta 292 zcmccSea)LYpO=@50SK(txNqcc6=b}%d7@wlhrB0Hs3;Ib1c8WP5D^L@!azj$WEQFA zERjIwWJ7V`$%mw@_@jWFDE7pZtrP->q`hsHj)0y=r>tQMw2mel9I^g z3>jBO#^lZGWSJNlBR6l9OJ-to2ASwLSxQmUDHg;8+W@u@Y`;HP8btVj2yYPK1tJ(h zger*82N8}S!fA4sq5)Hp@8s=@9*mirlrAs|q=Ceh#3PS;z2|b Xh)4kunIIx>@i diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/calc_dsa.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/calc_dsa.cpython-310.pyc index 4a6a8d129ebc9b8493f1a9f506fc7ce410e7353e..47602f6e2360af40d099537ec64c5be70bdc1ec5 100644 GIT binary patch delta 20 acmeyw{E3-6pO=@50SE$}&Tr&?&IkZG_63gs delta 20 acmeyw{E3-6pO=@50SK(txNqcs&IkZGDFs>p diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/calc_fec.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/calc_fec.cpython-310.pyc index 84f50675a7e9acb9db81c121748e3f0b983873f3..5c0b6e104f5a2fd581a28e6ee643bda21e00584a 100644 GIT binary patch delta 20 acmeyw{E3-6pO=@50SE$}&Tr&?&IkZG_63gs delta 20 acmeyw{E3-6pO=@50SK(txNqcs&IkZGDFs>p diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/calc_fpll.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/calc_fpll.cpython-310.pyc index 419c8200540ab1b44ab73ce6352a97900fbb668d..eb1d56789a1e0007e5f7009164a8fa9fc1f04283 100644 GIT binary patch delta 20 acmeyy{EeAApO=@50SE$}&Tr&?%?JQGmIa#t delta 20 acmeyy{EeAApO=@50SK(txNqcs%?JQF$pvNr diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/calc_frame.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/calc_frame.cpython-310.pyc index 68f121ae6735f668259c0fcc41fcfaa9eb702eac..930af1e349f1af86b22f4c5c0316e611e0e7cac9 100644 GIT binary patch delta 20 acmeyx{EL}8pO=@50SE$}&Tr&?&jn7UChM^nCPZ;0 zr52aO=auF{St+S`x0u01QEKrmmXyr2v?#uk%-qbp^!Vb$+=86c;wX{iocv;twu1cf z)S~$OwD^+p{3y=UqN4nwc%aH#tYGF!h9cF?`&nujMb&}sDN;ox)Fub8H3(n`K46mp E04bk7iU0rr delta 199 zcmeyv`-hi1pO=@50SK(txNqb>!^C)N@(rddKyod!IFLNbtOg|CFgr5xPu62GOt{67 zlv-R8pI4d-Wu>I%-C_n4MXANNSW+_6(r)pUWaeh(rN$PW0hb8xN+s>M(&4+0AV=@k^lez delta 22 ccmaEJnDNbFM(%uGUM>b8uv+83k^5mH09efjDgXcg diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/calc_ircal.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/calc_ircal.cpython-310.pyc index 23ebf4d9a37c8606a26f1ff3915263f4ffbd7d58..35c6922ffbd91429f2054c6e06217b345cbf22ac 100644 GIT binary patch delta 20 acmZ3$x`35CpO=@50SE$}&Tr(N$^-x{Zv>tI delta 20 acmZ3$x`35CpO=@50SK(txNqd1$^-x`q6BFG diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/calc_legacy_vars.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/calc_legacy_vars.cpython-310.pyc index 021ef293d40ab3b6164488d6feed01caa001d161..3da0979a9044de347fd94f93072e23dd652023fa 100644 GIT binary patch delta 20 acmbQlGKqydpO=@50SE$}&Tr&qX955!8w2tH delta 20 acmbQlGKqydpO=@50SK(txNqcUX955zP6NFF diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/calc_longrange.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/calc_longrange.cpython-310.pyc index cb7c929a4e02e30d2c4e72899241146a05ff53f4..0ae78135e51ed25eec1f82bc24eeddb8df3db045 100644 GIT binary patch delta 20 acmeBT>0;r|=jG*M0D?fL^BcMUGXelA+637E delta 20 acmeBT>0;r|=jG*M00OHu?i;!PGXelA4FseB diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/calc_mbus.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/calc_mbus.cpython-310.pyc index 514ba89d0e3b8454d95f9854fcd91d17708412c6..fea9cf802ecb57fd13facfaf78ef559cc81386c0 100644 GIT binary patch delta 20 acmeyy{EeAApO=@50SE$}&Tr&?%?JQGmIa#t delta 20 acmeyy{EeAApO=@50SK(txNqcs%?JQF$pvNr diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/calc_misc.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/calc_misc.cpython-310.pyc index 2731f9e498c45b7c7112395427160eb2d5a76db5..a96cb226b558692d2c5302c20a6917948027f00d 100644 GIT binary patch delta 407 zcmX>vcV3P=pO=@50SInfdAX7M8l&_r315E~SKoLae?RviM?ZJhc%L9AA6J)P$6J&C zFv>FCnk>a6C2>m>QwzVnFkX1VIFt1t!ENZ(%N%mjDS$!eubjc(Gg; zzz{TKjU=dXC95o(G|=2CmC5nUVw)earm|odv^kusmkC33@)w>}jIxvG^G0Jzaq$&8 zNr7A|10v)=ggl5)1`+BYLIX(L;*F0_&PgmTPEO6qiH}F}vvcV3P=pO=@50SK(txNqdX#wZ;n;p^|>>KpIl@8=%m=;!Vl?-S(Yp diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/calc_shaping.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/calc_shaping.cpython-310.pyc index a81548a7c52673cd41231cd7af741018bef8bf33..c805566a5e668b731274dd9c6d4590a750520ce9 100644 GIT binary patch delta 26 gcmZo-X=35d=jG*M0D?fL^BcK)85yG{&t%L507)7KNB{r; delta 26 gcmZo-X=35d=jG*M00OHu?i;y#85wU)p2?UA07;JqlK=n! diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/calc_sq.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/calc_sq.cpython-310.pyc index a0edb1527264f5dc409e9fb271f32ab9505bdb67..504f59e0f0ad201d352c3e59f72686c5a605c660 100644 GIT binary patch delta 20 acmaFI{EnGBpO=@50SE$}&Tr&?%m@HERt19q delta 20 acmaFI{EnGBpO=@50SK(txNqcs%m@HDi3Lso diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/calc_synth.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/calc_synth.cpython-310.pyc index 657a340baa016cef1da92ddcfeb684240c0d3166..3c800e3c9cf4192c4d059ca251f6458d272ad710 100644 GIT binary patch delta 20 acmcavezTlApO=@50SInfdAX7MoHYPWHwT#j delta 20 acmcavezTlApO=@50SK(txNqb>XAJ;F%LXw3 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/calc_utilities.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/calc_utilities.cpython-310.pyc index c835adcb2c913872199dd789382e1f6992e816bb..f13d0c9398a22aec4869afba3d73dbaf01ae3faa 100644 GIT binary patch delta 20 acmeBT>0;r|=jG*M0D?fL^BcMUGXelA+637E delta 20 acmeBT>0;r|=jG*M00OHu?i;!PGXelA4FseB diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/calc_viterbi.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/calc_viterbi.cpython-310.pyc index 314a1df7c761b9501119135a18787122808448a1..a7613967d74078c41864742639b702c33de38051 100644 GIT binary patch delta 20 acmX>mdQ6l%pO=@50SE$}&Tr)2%>@88rv*3w delta 20 acmX>mdQ6l%pO=@50SK(txNqd%%>@87+64mu diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/calc_white.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/calc_white.cpython-310.pyc index ed72143dc20c01c6be9736a339bbebf47ce7b525..5096f7569c387345f18daed3da404e2cecdbbb6f 100644 GIT binary patch delta 20 acmey({F|9OpO=@50SE$}&Tr)Yzz6_4UInTE delta 20 acmey({F|9OpO=@50SK(txNqeCzz6_3kp*=C diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/calc_wisun.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/calculators/__pycache__/calc_wisun.cpython-310.pyc index d0f291ded439f1f03878f6c625d64176adcce312..4dae20c48df611bd06e55d00b48f1df6199a9c1d 100644 GIT binary patch delta 93 zcmeys{(+r4pO=@50SE$}&Tr(t!N?f3`3a*Rqks@ls0d65fLOwlotT?+5Q1QqFi_?e ZhfQvNN@-529V3ue%myTQ7z7wam;j=35hnlu delta 93 zcmeys{(+r4pO=@50SK(txNqdX!N_=P^AkotMgd`qqFbFV;FaZF#012L>&jkQC`UO7# diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/phys/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/phys/__pycache__/__init__.cpython-310.pyc index a7f6dafe876e8627927e4a02993667585ff57135..c9816478f2e690b8da298d4752b2fb5dc055ca0f 100644 GIT binary patch delta 20 ZcmZo=Ze`}q=jG*M0D?fL^BcLV7y&5m1V{h? delta 20 ZcmZo=Ze`}q=jG*M00OHu?i;zQ7y&3D1QP%N diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/profiles/__pycache__/Profile_Base.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/profiles/__pycache__/Profile_Base.cpython-310.pyc index 76cdc27ca077708499267ca3a33f53a54ba28996..416aeb991d5c9be4e36727f737bc6adf6e3dcf33 100644 GIT binary patch delta 20 acmca)e#x9WpO=@50SE$}&Tr&CE)4)YUE)4)XlLdSL diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/profiles/__pycache__/Profile_Connect.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/profiles/__pycache__/Profile_Connect.cpython-310.pyc index c87e98879d191d47f7d55d62e59ca5e257862887..0ad9cc0c233f2861fa9388d4dc12cdd8c02352f0 100644 GIT binary patch delta 20 acmbOvF-d|upO=@50SE$}&Tr&q=K%mL^#mjU delta 20 acmbOvF-d|upO=@50SK(txNqcU=K%mLC delta 20 acmaE_@LqvCpO=@50SK(txNqc65dZ)?)CC#< diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/profiles/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/profiles/__pycache__/__init__.cpython-310.pyc index 53d4d647740516e980ad3a8b7d8ad4fcb661e4f0..1ffd6fe8597345c59a766ffbc76952220eec49cb 100644 GIT binary patch delta 20 ZcmeBV?quf9=jG*M0D?fL^BcMA7y&7c1XKV3 delta 20 ZcmeBV?quf9=jG*M00OHu?i;!57y&531RnqZ diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/profiles/__pycache__/profile_wisun_fan_1_1.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/profiles/__pycache__/profile_wisun_fan_1_1.cpython-310.pyc index ac9554da265e81ccc310c24571db5e1a9f12155a..dac9a75c6c9db4f7ba67e1a57e5aab0e8417642c 100644 GIT binary patch delta 20 ZcmeC@?dRpr=jG*M0D?fL^BcKa*Z?c*1b+Yk delta 20 ZcmeC@?dRpr=jG*M00OHu?i;yV*Z?aY1WEt^ diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/profiles/__pycache__/sw_profile_outputs_common.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/profiles/__pycache__/sw_profile_outputs_common.cpython-310.pyc index 8312989ebc9e7846ae903ab56dd463906b3a7038..2d18f33fb84de98ff5a4f2437794a03485cbe659 100644 GIT binary patch delta 20 acmZ3*x{8%MpO=@50SE$}&Tr(N&jbK2{{*}M delta 20 acmZ3*x{8%MpO=@50SK(txNqd1&jbK2G6aVJ diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/targets/__pycache__/Target_FPGA.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/targets/__pycache__/Target_FPGA.cpython-310.pyc index 7d3ef1357eb0e32ac9b5910d000071774d33efcf..39c51f90ec6ccf3dde0386ce32bc79ebe67cb103 100644 GIT binary patch delta 20 acmX@iahQWUpO=@50SE$}&Tr(lU;zL!RRoU! delta 20 acmX@iahQWUpO=@50SK(txNqdPU;zLzhy+>y diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/targets/__pycache__/Target_IC.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/targets/__pycache__/Target_IC.cpython-310.pyc index 9aa66c204b5d13076a277bb1d24784073b427fc4..a08446bb5cc14c21e36c1a2edf26a8668e9d58f9 100644 GIT binary patch delta 20 acmeBV>ty53=jG*M0D?fL^BcMUF#!N7`vltn delta 20 acmeBV>ty53=jG*M00OHu?i;!PF#!N7E(E3k diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/targets/__pycache__/Target_Sim.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/targets/__pycache__/Target_Sim.cpython-310.pyc index b310407e5f050df865f6f1c8b67b23775b8f4ef4..a12383323af457b6d062bcf8c415ce965133cc43 100644 GIT binary patch delta 20 acmX?NbHs)_pO=@50SE$}&Tr(llmh@c=LHl1 delta 20 acmX?NbHs)_pO=@50SK(txNqdPlmh@c8U)_} diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/targets/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/bobcat/targets/__pycache__/__init__.cpython-310.pyc index de1fd67d0e6b419de95679fa004f0375111a33ad..271e13444acb3c9974f26e86dbe87cb9a05042b9 100644 GIT binary patch delta 20 ZcmeBR?qKH5=jG*M0D?fL^BcKq838F~1W^D0 delta 20 ZcmeBR?qKH5=jG*M00OHu?i;yl838Dn1RMYW diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/__pycache__/__init__.cpython-310.pyc index 6eb5af6ecf6885655398fa3044dc8c6792edbdcf..76773df376dcc6eea2d3c0dc97c6f41253502a8b 100644 GIT binary patch delta 19 ZcmaFG_==G`pO=@50SNZLc{!2$J^(oB27~|r delta 19 ZcmaFG_==G`pO=@50SKzk&zs179{@F!1=s)p diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/__init__.cpython-310.pyc index 701aeb1e6574da10168a5b5e172886d3f52bdc81..552670e63abf043562c1b51281824c65bcafde23 100644 GIT binary patch delta 20 ZcmeBW?q%lA=jG*M0D?fL^BcLF7y&9S1YiIF delta 20 ZcmeBW?q%lA=jG*M00OHu?i;zA7y&6^1S
CMg^4s delta 20 acmeyu{Dql2pO=@50SK(txNqcs$p`>Bc?Dnq diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_aox.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_aox.cpython-310.pyc index f7d2b452acfe43111a16f149ca70e448f8c1ed8a..54b880c0edae575254e8614f05b20c6d84052a4d 100644 GIT binary patch delta 20 acmeyu{Dql2pO=@50SE$}&Tr&?$p`>CMg^4s delta 20 acmeyu{Dql2pO=@50SK(txNqcs$p`>Bc?Dnq diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_ber.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_ber.cpython-310.pyc index d799fff0679f571edc4926e3c4177bd7da9a4eb6..882296ff699a589699f77670afcc786d5c43da95 100644 GIT binary patch delta 20 acmeyu{Dql2pO=@50SE$}&Tr&?$p`>CMg^4s delta 20 acmeyu{Dql2pO=@50SK(txNqcs$p`>Bc?Dnq diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_crc.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_crc.cpython-310.pyc index 900612843d1e3de62d83c25b7f34c43c90e8752e..1896133029c13e3f520a66b975fb64f7165f505e 100644 GIT binary patch delta 20 acmeyu{Dql2pO=@50SE$}&Tr&?$p`>CMg^4s delta 20 acmeyu{Dql2pO=@50SK(txNqcs$p`>Bc?Dnq diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_demodulator.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_demodulator.cpython-310.pyc index 1b3a9b56d7c1fff0060c8b2d57b2c2c6dcc9336d..15fa6e0d40feec3c6ccdbe558dce77639e341bc3 100644 GIT binary patch delta 20 acmbQjGKGaZpO=@50SE$}&Tr)AWC8#xYXkTI delta 20 acmbQjGKGaZpO=@50SK(txNqd0#l{=jG*M0D?fL^BcJtnE)v(1K0#l{=jG*M00OHu?i;xonE)tW1FHZ4 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_dsa.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_dsa.cpython-310.pyc index 601125c0beacac5d5f49415766abc3927eacc561..c7cc42ff486a12909908fd502e52fb0f343fc602 100644 GIT binary patch delta 20 acmeyu{Dql2pO=@50SE$}&Tr&?$p`>CMg^4s delta 20 acmeyu{Dql2pO=@50SK(txNqcs$p`>Bc?Dnq diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_fec.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_fec.cpython-310.pyc index 1a9266f84ee73e51fed4f5ccc9751b206a9d7045..2acaff5857012a8deef0a90bb3d6dba69b5c8135 100644 GIT binary patch delta 20 acmeyu{Dql2pO=@50SE$}&Tr&?$p`>CMg^4s delta 20 acmeyu{Dql2pO=@50SK(txNqcs$p`>Bc?Dnq diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_fpll.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_fpll.cpython-310.pyc index 0425cc61b3852147d23e62ed5335611fa82ef96b..aeca28d0b0884d8a3be51c89c50efe9c04e48c07 100644 GIT binary patch delta 20 acmeyt{DYZ0pO=@50SE$}&Tr&?%Lo8E<^`bu delta 20 acmeyt{DYZ0pO=@50SK(txNqcs%Lo8E83k+r diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_frame.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_frame.cpython-310.pyc index d3a0637356f33f9e19d08af20bea4bfb39d808dd..58425955609e7de4065ab31b421faebf485a0967 100644 GIT binary patch delta 20 acmeyv{D+x4pO=@50SE$}&Tr)Y$Or&Ch6Swv delta 20 acmeyv{D+x4pO=@50SK(txNqeC$Or&BxdnIt diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_frame_coding.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_frame_coding.cpython-310.pyc index 99cdb7b096637b869781c17e6143859672d80296..828c8860f49ab5b87e165bfce8eb700d962776d8 100644 GIT binary patch delta 20 acmbQiGJ}OXpO=@50SE$}&Tr)AWdZ;z3j_oJ delta 20 acmbQiGJ}OXpO=@50SK(txNqdpO=@50SE$}&Tr(FWdZ;#iv%

pO=@50SK(txNqc^WdZ;!z61XN diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_global.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_global.cpython-310.pyc index 834c46f03488c1a8a8dfa385068b8de01a66a727..5d93f9f031d1053882cbe724ff55af4c52b08f03 100644 GIT binary patch delta 20 acmZo*X<*^b=jG*M0D?fL^BcLpG6Dc8N(8$A delta 20 acmZo*X<*^b=jG*M00OHu?i;zkG6Dc7eFTO8 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_ircal.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_ircal.cpython-310.pyc index 4c71a6fefd3e64dac3bfaba13b118f24091ca60f..2a93dcac3261ea0bf748ea3571def11746c10e13 100644 GIT binary patch delta 20 acmeyv{D+x4pO=@50SE$}&Tr)Y$Or&Ch6Swv delta 20 acmeyv{D+x4pO=@50SK(txNqeC$Or&BxdnIt diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_legacy_vars.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_legacy_vars.cpython-310.pyc index f30345fcd2e58fc32e30f5d9137c08f274fa3b68..05310c25e68e59ad2b79aa534d6ef6c8ca71edb1 100644 GIT binary patch delta 20 acmbQjGKGaZpO=@50SE$}&Tr)AWC8#xYXkTI delta 20 acmbQjGKGaZpO=@50SK(txNqd0#l{=jG*M0D?fL^BcJtnE)v(1K0#l{=jG*M00OHu?i;xonE)tW1FHZ4 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_mbus.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_mbus.cpython-310.pyc index 5d4be6edad55c61559b214d88ca67dfd88f70561..1970f7ae2616a51506310a7df140b2d224daeae6 100644 GIT binary patch delta 20 acmeyt{DYZ0pO=@50SE$}&Tr&?%Lo8E<^`bu delta 20 acmeyt{DYZ0pO=@50SK(txNqcs%Lo8E83k+r diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_misc.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_misc.cpython-310.pyc index e15eb93e5c8ee23b272eb4b5afb9a2ff2df754c2..203611fd90dcc8705524bcf711e5724db20de94f 100644 GIT binary patch delta 20 acmeyt{DYZ0pO=@50SE$}&Tr&?%Lo8E<^`bu delta 20 acmeyt{DYZ0pO=@50SK(txNqcs%Lo8E83k+r diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_modulator.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_modulator.cpython-310.pyc index d2e9fd5f555b713e978181846f18d34bc537abf3..ecc73ce769043b36f313479cc9f991eb149e0e3a 100644 GIT binary patch delta 20 ZcmeBS>0#l{=jG*M0D?fL^BcJtnE)v(1K0#l{=jG*M00OHu?i;xonE)tW1FHZ4 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_radio.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_radio.cpython-310.pyc index 353002a1e60e5432e1494eb5689b8f16f4ca2416..595e4fa2e19736554c33aa4adfd06df4f47badee 100644 GIT binary patch delta 20 acmeyv{D+x4pO=@50SE$}&Tr)Y$Or&Ch6Swv delta 20 acmeyv{D+x4pO=@50SK(txNqeC$Or&BxdnIt diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_rail.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_rail.cpython-310.pyc index 9435a313b653e83b259da9132d66650b80fe00a7..1faad29d86f32f7fd75343a3cbc5dd4aeb6a444c 100644 GIT binary patch delta 20 acmeyu{Dql2pO=@50SE$}&Tr&?$p`>CMg^4s delta 20 acmeyu{Dql2pO=@50SK(txNqcs$p`>Bc?Dnq diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_shaping.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_shaping.cpython-310.pyc index 5d508b1a0c24b7094f38487a6c8c66325443265d..b0c7da34e99df28c5f7c9044c49d097e412958f9 100644 GIT binary patch delta 20 acmZo+X<^~c=jG*M0D?fL^BcK;G6Dc8>IBCC delta 20 acmZo+X<^~c=jG*M00OHu?i;y(G6Dc89R!j9 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_sq.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_sq.cpython-310.pyc index 447282226661b58d67df625a87e47c1fcb5003d5..2680b6dab333ab9ded0620764dcd6bd078b2637d 100644 GIT binary patch delta 20 acmeys{DGM}pO=@50SE$}&Tr&?$_M~CrUi)r delta 20 acmeys{DGM}pO=@50SK(txNqcs$_M~B*#%Sp diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_synth.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_synth.cpython-310.pyc index c6172ab03b917bcfa5c58680dc56b30dd334cb62..03d229fdee7ce907612f114e1bbc700357a6e897 100644 GIT binary patch delta 20 acmbO#GgXE=pO=@50SE$}&Tr)A;sXFJ{{%Mx delta 20 acmbO#GgXE=pO=@50SK(txNqd<;sXFJG6Vtu diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_utilities.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_utilities.cpython-310.pyc index 68a66d6458c1cf2a310535d0583348115ce7bbb1..f57c2b119eb758e17acfd6bb31d2801cb1fc62f3 100644 GIT binary patch delta 20 ZcmeBS>0#l{=jG*M0D?fL^BcJtnE)v(1K0#l{=jG*M00OHu?i;xonE)tW1FHZ4 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_viterbi.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_viterbi.cpython-310.pyc index 56287c52f92c3318afa5b40ce9f836136d1449ae..cf5b9868cbd9bf64265b9eb0ba4da83eafd477a8 100644 GIT binary patch delta 20 acmZo+X<^~c=jG*M0D?fL^BcK;G6Dc8>IBCC delta 20 acmZo+X<^~c=jG*M00OHu?i;y(G6Dc89R!j9 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_white.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_white.cpython-310.pyc index 69534a38f76190a3324166cf9f4c8c5c16e82f04..af8db908d3a98e6e972eba6d3f5f1e04ff1c5107 100644 GIT binary patch delta 20 acmZo+X<^~c=jG*M0D?fL^BcK;G6Dc8>IBCC delta 20 acmZo+X<^~c=jG*M00OHu?i;y(G6Dc89R!j9 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_wisun.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/calculators/__pycache__/calc_wisun.cpython-310.pyc index 9adb08b5c3b24b99e196daf1122e6958a1d6d673..9c20be9a0153791ecba3c4945838a2a1be412f14 100644 GIT binary patch delta 20 acmeyv{D+x4pO=@50SE$}&Tr)Y$Or&Ch6Swv delta 20 acmeyv{D+x4pO=@50SK(txNqeC$Or&BxdnIt diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/filters/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/filters/__pycache__/__init__.cpython-310.pyc index 6bde54d754a78ea78a623f4f42f47607f7145bf4..89d58f1378d49294832a7ad777383ecf719784c7 100644 GIT binary patch delta 20 ZcmeBV?quf9=jG*M0D?fL^BcMA7y&7c1XKV3 delta 20 ZcmeBV?quf9=jG*M00OHu?i;!57y&531RnqZ diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/filters/__pycache__/phy_filters.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/filters/__pycache__/phy_filters.cpython-310.pyc index 9356abcbbef17018cb66e761fb0f785f53c859c0..73f7b8dbee4b594b7c7891ba6b2156d9456a776b 100644 GIT binary patch delta 20 acmcb>eu14kpO=@50SInfdAX7MC^G;&*9K+) delta 20 acmcb>eu14kpO=@50SK(txNqb>$_xNBYXtrP diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/phys/__pycache__/Phys_Studio_Base.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/phys/__pycache__/Phys_Studio_Base.cpython-310.pyc index 029828311e88a6db91198f53f972990e5edb8a74..d41e219ac7c5d64002a3571a284e2764675b4616 100644 GIT binary patch delta 20 acmZo;X=CBe=jG*M0D?fL^BcK;GXelAIt0xC delta 20 acmZo;X=CBe=jG*M00OHu?i;y(GXel9Z3LJA diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/phys/__pycache__/Phys_Studio_Connect.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/phys/__pycache__/Phys_Studio_Connect.cpython-310.pyc index 02c137e68d5588fa5ac9f9a17735f7cf2d122e1b..1ce7ad0f9b589d0e293bf699a99fc7d19397b50a 100644 GIT binary patch delta 20 acmZ3>vX+HApO=@50SE$}&Tr&aVgdjzQv^c* delta 20 acmZ3>vX+HApO=@50SK(txNqcEVgdjyh6D}( diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/phys/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/phys/__pycache__/__init__.cpython-310.pyc index 36fb8cf55407ffd4525604903d3d9f6d1cd11e14..d8a8549cf8de09160a3b9953495dbd634ad8f8fe 100644 GIT binary patch delta 20 ZcmZo;Ze!-o=jG*M0D?fL^BcLV838F41WNz_ delta 20 ZcmZo;Ze!-o=jG*M00OHu?i;zQ838Cs1Qq}Q diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/profiles/__pycache__/Profile_Base.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/profiles/__pycache__/Profile_Base.cpython-310.pyc index 0527e784c04adffe5a9f5bbf9757e147e09ed40b..acf5237e75c70f7747969fe585ff9f36dbedbd94 100644 GIT binary patch delta 20 acmdnWxs{VUpO=@50SE$}&Tr&i#R32^Nd)Hr delta 20 acmdnWxs{VUpO=@50SK(txNqcM#R32@d<3!p diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/profiles/__pycache__/Profile_Connect.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/profiles/__pycache__/Profile_Connect.cpython-310.pyc index f65c3a37aa7b1c5b4cd90d033b00df54e5ed30b4..d9fdcd528986771cba644eba3923637eb3cb1b6f 100644 GIT binary patch delta 20 acmdlhzE_+(pO=@50SE$}&Tr)2#0>y6hy@}5 delta 20 acmdlhzE_+(pO=@50SK(txNqd%#0>y5y9Dh3 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/profiles/__pycache__/Profile_IEEE802154_OQPSK.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/profiles/__pycache__/Profile_IEEE802154_OQPSK.cpython-310.pyc index 080ae69deb66a7af8b2c1d1ced330ad948de92ba..253c17469053c4be7a9df956eaad5d535f2e66c5 100644 GIT binary patch delta 20 acmZ3@y_%alpO=@50SE$}&Tr&izzP5`0tC(g delta 20 acmZ3@y_%alpO=@50SK(txNqcMzzP5_H3XRe diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/profiles/__pycache__/Profile_Mbus.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/profiles/__pycache__/Profile_Mbus.cpython-310.pyc index 3cb8e9c8ea99c1859ea5bcb7e4025aa74477e669..4c6fd56a44c19a8882112dd35eb1ff62985d0f47 100644 GIT binary patch delta 20 acmcbta9M#npO=@50SE$}&Tr)Q5C8x;K?M5% delta 20 acmcbta9M#npO=@50SK(txNqe45C8x-bOgo# diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/profiles/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/profiles/__pycache__/__init__.cpython-310.pyc index 32c91da80b0ff4ef3661c13d773d15866c981bfa..0fc3a65050a91d1e6f7f8955f1c496ef88a07b97 100644 GIT binary patch delta 20 ZcmeBT?qcT7=jG*M0D?fL^BcMA838G_1Xln6 delta 20 ZcmeBT?qcT7=jG*M00OHu?i;!5838Ei1R?+c diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/profiles/__pycache__/sw_profile_outputs_common.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/profiles/__pycache__/sw_profile_outputs_common.cpython-310.pyc index ffa7f10c15a4696fd9b1f6d6edda9651fecdef91..60303f5d134b9a8a2696ee0e8d459caa7fa5d398 100644 GIT binary patch delta 20 acmdnQvWbN|pO=@50SE$}&Tr&aX955(8w64S delta 20 acmdnQvWbN|pO=@50SK(txNqcEX955&P6QnQ diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/targets/__pycache__/Target_FPGA.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/targets/__pycache__/Target_FPGA.cpython-310.pyc index 1b24e6fb1a108f5d90aa74677ab512732de36316..fc31c95fe75b1b2d59989f3724bc92f4bbb9f72c 100644 GIT binary patch delta 20 acmdnbx}TLhpO=@50SE$}&Tr)2!UO;^M+Ex- delta 20 acmdnbx}TLhpO=@50SK(txNqd%!UO;@dIZJ* diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/targets/__pycache__/Target_IC.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/targets/__pycache__/Target_IC.cpython-310.pyc index 9eafc0b941f2732717059dadc352a57f99936833..35a29720809441c7e61b7dd369ba07156ceb33b3 100644 GIT binary patch delta 20 acmX@ZdWMxdpO=@50SE$}&Tr&C$OHg1PX!_X delta 20 acmX@ZdWMxdpO=@50SK(txNqb>$OHg0f&}dV diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/targets/__pycache__/Target_Sim.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/targets/__pycache__/Target_Sim.cpython-310.pyc index bda11d2cc0749711d45ecaffc618b0077d8d2eea..a59e0947dc1e984bb787a9619fb0392c73a09315 100644 GIT binary patch delta 20 acmcb|dXJSmpO=@50SE$}&Tr(t%me^89|c$d delta 20 acmcb|dXJSmpO=@50SK(txNqdX%me^7QUxOb diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/targets/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/caracal/targets/__pycache__/__init__.cpython-310.pyc index c96780817022c0263d08985aa13efdebae32fb69..fb683a895d215a7bbef70e67791cf184aadf34c2 100644 GIT binary patch delta 20 ZcmeBV?quf9=jG*M0D?fL^BcMA7y&7c1XKV3 delta 20 ZcmeBV?quf9=jG*M00OHu?i;!57y&531RnqZ diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/__pycache__/__init__.cpython-310.pyc index e76cf49f2f1c1c6c81f303783b5ff69a219c831d..623b69e25bb1f0c2558546ba92dc1a848747eca4 100644 GIT binary patch delta 20 acmbQoG>?fppO=@50SE$}&Tr%vW&{8$vIG$T delta 20 acmbQoG>?fppO=@50SK(txNqbZW&{8#V!Z delta 22 ccmZ40#k8u6i94T{mx}=itk$@1?pO=@50SInfdAX7Mh6(^lI0r-k delta 20 acmaFt`Ph>?pO=@50SK(txNqdXp#lIv%mv&4 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/calculators/__pycache__/calc_firmware.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/calculators/__pycache__/calc_firmware.cpython-310.pyc index 2a01952450197c31f5bcc9295fa8c9313b617187..b39e458013e6487598d9d73dea6838f90c530841 100644 GIT binary patch delta 20 acmZ24xL%MupO=@50SE$}&Tr&i!T|s=eFW(M delta 20 acmZ24xL%MupO=@50SK(txNqcM!T|sb8xN+s>M(%T709Nk@<^TWy delta 22 ccmcaPmGS0OM(%uGUM>b8uv+83k^7t%08WDjegFUf diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/calculators/__pycache__/calc_frame_detect.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/calculators/__pycache__/calc_frame_detect.cpython-310.pyc index e3626fadccb775ae912749e835383b6122e364cb..d6387abb6220302bc6b789e4ad93180c91ed4f26 100644 GIT binary patch delta 22 ccmZo#&)Bq{kvpH4mx}=iZd`e}k-Iz`08CW}A^-pY delta 22 ccmZo#&)Bq{kvpH4mx}=itk$@1IS#~ delta 20 acmexZ{jr)mpO=@50SK(txNqcsW(xpH9R`B{ diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/calculators/__pycache__/calc_global.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/calculators/__pycache__/calc_global.cpython-310.pyc index a0a5a936f48cbf21a9d6d087ba0352f9f70fa8da..76de944f801bfcb8cc88b310a82f3ee6579b94b7 100644 GIT binary patch delta 475 zcmeCL>aXI?=jG*M0D>D=UT)-mEW>zf@_U)hKytC{bRcOh2P8LNmRrlnXf?S}p@`9D zvY0{wx1pXU^DX8eSHmJZplHVA9 zl9_*tH77qMv+UO7VqI&XTh{CTX97BGy@9*XE&im$(v^Sl<*7AFgjDQxOkHU=dtBSSMK1q{(Vl9|zSncQZbB)SwNJrP7q0uggT#GJ{0tz8(mPj<373joSJgwX&1 delta 475 zcmeCL>aXI?=jG*M00OHu?i;xu%P>YwelN2bNG_J04kWGRfaK=Oa%&kGEhaZA6fs&& z7E?&zHq_H(zQr8mYFK0q6wR1?T(O?fX|lW0A2ti1QB@w3*C`uJu2j|sDqpD_#byl> zbeZg+YBKqrvhd^p6%|I?$)zemY<3_CU!a7;WL{NWMu*MTs!AMUQ9PMxX_+}C@kNOx znfXzyIr%A>Wl@uhb*+JJS+Dz_3Fxr(2JS*p{7H$WDe(oVMe)Uzxk>psQIk0g<$!9` z4O>}&?pr!=XnzqCh+qa0ogjh* zMD&A*sUU(EPVj+Pt&;^TpBaGlb%6MAeJh!Yct8Tv;OfCT!J678t67yxEd|Le!y-L# v@^-6bnv*~>2s68Jsh%*o%{obRCP=y!M6`j3i6COad{sK1F>JG|%ri#rP>`+&5K%ta ROwOLI8pO=pTrDTg2mp;BA>;r6 delta 161 zcmbPaKgpgupO=@50SK(txNqbZ6=%G)Sy5b*ML8KLl-ZDYkVliL$Q8&giUkWOiE+aO z5+>(L8<~NH859<>1BKH->cAQq#8cn`2|!VpWGa+B`Kok2WB6uQnP-gLVIW7u diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/calculators/__pycache__/calc_misc.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/calculators/__pycache__/calc_misc.cpython-310.pyc index c0846210ac3ef1e0c0bb6b2e7043af2c7865883e..aeec3ca3a1d13eb98a504ac6caac633fc01f5fe8 100644 GIT binary patch delta 20 acmZ3Xxk8gWpO=@50SInfdAX5$t_T1-a0WvF delta 20 acmZ3Xxk8gWpO=@50SK(txNqd1D*^yB1O(dv diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/calculators/__pycache__/calc_modulator.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/calculators/__pycache__/calc_modulator.cpython-310.pyc index 33a8141187c612c527ae416421380235262adf16..269e4f277c0973f8278759c59982c2a7b012a43e 100644 GIT binary patch delta 20 acmdlKxhax6pO=@50SE$}&Tr&it^)u(IR&Nw delta 20 acmdlKxhax6pO=@50SK(txNqcMt^)u&Yz1)u diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/calculators/__pycache__/calc_profile_base_beta1.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/calculators/__pycache__/calc_profile_base_beta1.cpython-310.pyc index dde3ac7d56955b7aadd8030c6bbbbbc28fb2fb2c..fcf687caacc92d81be96ae002c013bd29efef53a 100644 GIT binary patch delta 20 ZcmZqVZ{+9B=jG*M0D?fL^BcL#*a0d81X=(9 delta 20 ZcmZqVZ{+9B=jG*M00OHu?i;zw*a0aw1SJ3f diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/calculators/__pycache__/calc_radio.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/calculators/__pycache__/calc_radio.cpython-310.pyc index 6b434e59d79f969772259c544cbc21ac3d2853be..f2be6d5d17c77764b91f4ee29b634536405cb939 100644 GIT binary patch delta 20 acmZ2eyQY>qpO=@50SInfdAX5$p&bB73I`zo delta 20 acmZ2eyQY>qpO=@50SK(txNqcMXa@j4o&~u8 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/calculators/__pycache__/calc_rail.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/calculators/__pycache__/calc_rail.cpython-310.pyc index 235666f68811da77461d3f67ab13d5eea4f005a6..c903daad1e8a4d13f6f3cbf23222d495ab8a1203 100644 GIT binary patch delta 20 acmcb`cZ-iZpO=@50SE$}&Tr)QX9oZ_$OPj6 delta 20 acmcb`cZ-iZpO=@50SK(txNqe4X9oZ^`vk54 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/calculators/__pycache__/calc_shaping.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/calculators/__pycache__/calc_shaping.cpython-310.pyc index a5ac9daea6ff08bf8f06eb0dcdbbebc730294c3f..a5120b079eb9488b51f14ca9a168cfd4f7a9a8f9 100644 GIT binary patch delta 20 acmezE``ed0pO=@50SE$}&Tr)YpauX%>jq;0 delta 20 acmezE``ed0pO=@50SK(txNqeCpauX%9tJJ| diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/calculators/__pycache__/calc_synth.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/calculators/__pycache__/calc_synth.cpython-310.pyc index 91f8ed36f9becf3e98f944f66ced0e4c6551231b..8a768da00fcece8dfc32f359f4b589ba680665a1 100644 GIT binary patch delta 20 acmcZ~azBJSpO=@50SInfdAX50L<;~(DhAX5 delta 20 acmcZ~azBJSpO=@50SK(txNqbR(EMe+H%i delta 20 acmaE4_sEVrpO=@50SK(txNqbRmj?ho69qm1 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/phys/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/phys/__pycache__/__init__.cpython-310.pyc index a7ba52ce34dfc7d4467a1880ee88428500c09d7c..818684fa82b345dab66efae2c5aed7270e9e8a3f 100644 GIT binary patch delta 19 ZcmaFI_>Pe~pO=@50SNZLc{!2$F#tJz29N*% delta 19 ZcmaFI_>Pe~pO=@50SKzk&zs2o7yvdX1>^t# diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/phys/__pycache__/default_phys.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/phys/__pycache__/default_phys.cpython-310.pyc index 879821a431652d29f20bafa00657eb303a3b443d..eb15e2c8626d245bec9b9689e462297733395cf2 100644 GIT binary patch delta 20 acmZ3%xq_2BpO=@50SE$}&Tr(N%K`u|K?J}6 delta 20 acmZ3%xq_2BpO=@50SK(txNqd1%K`u{bOeh4 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/phys/__pycache__/phy_common.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/phys/__pycache__/phy_common.cpython-310.pyc index ba4521f8f5d3467832cb0809b55269ccd71b7dfc..d0030c067a340d756ce10c6fa9c463d2e91a3ee8 100644 GIT binary patch delta 20 acmeB_>6GEl=jG*M0D?fL^BcMU@d5xY9t9Er delta 20 acmeB_>6GEl=jG*M00OHu?i;!P@d5xXQ3Txp diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/profiles/__pycache__/Profile_Base.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/profiles/__pycache__/Profile_Base.cpython-310.pyc index f825802d78e49a0cb038bee70b633f39784bf551..c1142881880495b7207ec0fe56e1c75b27aa806b 100644 GIT binary patch delta 20 acmbQOHCu~2pO=@50SE$}&Tr%v5Cs4*?gVTA delta 20 acmbQOHCu~2pO=@50SK(txNqbZ5Cs4*Ap|!7 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/profiles/__pycache__/Profile_Connect.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/profiles/__pycache__/Profile_Connect.cpython-310.pyc index d09589931b6a16a837a306c030caebae9eab851e..e1937d7816e6e0797250bfa04fdc0a978fe523b4 100644 GIT binary patch delta 20 acmaDO_C}05pO=@50SE$}&Tr&SD=UT);BGyniS%m!ls delta 20 ZcmZokY)RzK=jG*M00OHu?i;x)4FEM@1p5F0 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/profiles/__pycache__/caracal_regs.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/profiles/__pycache__/caracal_regs.cpython-310.pyc index 793f34f97a74ccd38fa70ac7b7fad11abb9797ea..8c03f07d63dff4123b59a745e1bf5c1366b0bda9 100644 GIT binary patch delta 20 acmaFN{Fs?LpO=@50SE$}&Tr(t!3Y31o&{n6 delta 20 acmaFN{Fs?LpO=@50SK(txNqdX!3Y30(FH94 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/profiles/__pycache__/dumbo_regs.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/profiles/__pycache__/dumbo_regs.cpython-310.pyc index b236f687b98a9ecdf9ff80ee196b8dfabcda818d..936899bb5e8a46215475b77449f385463394cc9d 100644 GIT binary patch delta 20 acmcavezTlApO=@50SE$}&Tr&CXAJ;GmXAJ;F%LXw3 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/profiles/__pycache__/jumbo_regs.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/profiles/__pycache__/jumbo_regs.cpython-310.pyc index ee0a3561d20194be0f6041f3271a8867ba85e307..52599db696203dfd45c7dadc9bc08edce408bad0 100644 GIT binary patch delta 22 ccmezSobm5-M(%uGUM>b82y{BXk^56I0Ad3N>;M1& delta 22 ccmezSobm5-M(%uGUM>b8uv+83k^56I0AV%#RLE}>IDb@ diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/profiles/__pycache__/lynx_regs.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/profiles/__pycache__/lynx_regs.cpython-310.pyc index e5a287c25a50d6a195b0ead4a4b5aa2535aaea0f..a4a5e5af8398d784290da6b501b75c20060838ef 100644 GIT binary patch delta 22 ccmcaTkNNgIX6}4mUM>b8xN+s>M(%*~09bPf2LJ#7 delta 22 ccmcaTkNNgIX6}4mUM>b8uv+83kvrf#08j@8p8x;= diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/profiles/__pycache__/margay_regs.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/profiles/__pycache__/margay_regs.cpython-310.pyc index d1dc968a3a65730635c2e4b0046adf5a2ff3bce5..1855ed6822a0862cea82c4b9f63a6311981f2782 100644 GIT binary patch delta 20 acmaFK{*s+LpO=@50SE$}&Tr(t#|!{DAO(H^ delta 20 acmaFK{*s+LpO=@50SK(txNqdX#|!{CQw2!? diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/profiles/__pycache__/nixi_regs.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/profiles/__pycache__/nixi_regs.cpython-310.pyc index e27514838d2fe5f32de330033ba09099b6a75c52..300fd049f56fb7d77cd35225d1e9fe35505ae880 100644 GIT binary patch delta 22 ccmZqr#MtzSkvpH4mx}=i0-erpb8xN+s>MsCMR09JMfrvLx| delta 22 ccmX@Jgz3x@ChmM*UM>b8uv+83k=t<+08R=9KL7v# diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/profiles/__pycache__/panther_regs.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/profiles/__pycache__/panther_regs.cpython-310.pyc index 2530c25df9b5750b44be6cff8dc99bd8f583722a..0e94d9a9094b3d47bfd7e98b5020441c33ebd9c3 100644 GIT binary patch delta 22 ccmX@w$b7VsnLD4Cmx}=iZd`e}k$cwx08vK=`~Uy| delta 22 ccmX@w$b7VsnLD4Cmx}=itk$@1BKw*^=L delta 20 acmdmHy3Le3pO=@50SK(txNqcMEd>BJ>IEYJ diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/profiles/__pycache__/sol_regs.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/profiles/__pycache__/sol_regs.cpython-310.pyc index b6b0e01da04d0f5d269cf90da63c88d1e9671fe4..65666a66cd319e881800306cfaac3dfd45a5afa3 100644 GIT binary patch delta 22 ccmew}nd#4DChmM*UM>b82y{BXk^5sO098i^SpWb4 delta 22 ccmew}nd#4DChmM*UM>b8uv+83k^5sO091MhBme*a diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/utils/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/utils/__pycache__/__init__.cpython-310.pyc index ebfa502243ae5303384e19f5f805961bc45b96a1..fdd2aac841464f69445ebde585ad05e00b24569a 100644 GIT binary patch delta 20 ZcmeBS>S5x}=jG*M0D?fL^BcJt838Eb1KR)q delta 20 ZcmeBS>S5x}=jG*M00OHu?i;xo838C21Ev4~ diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/utils/__pycache__/units_multiplier.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/utils/__pycache__/units_multiplier.cpython-310.pyc index 42942a76f3007d326036e753318c61d5a8603051..bb9188252b0ae56e276b4644c09f0d45c072d260 100644 GIT binary patch delta 20 acmeyu{Dql2pO=@50SE$}&Tr&?$p`>CMg^4s delta 20 acmeyu{Dql2pO=@50SK(txNqcs$p`>Bc?Dnq diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/utils/tinynumpy/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/utils/tinynumpy/__pycache__/__init__.cpython-310.pyc index afcab321b2b2faeee49f4e37fb9a2d8ed675d058..167e477fb50b3d0474c8a4521ee25b419b60cdb9 100644 GIT binary patch delta 20 acmZ3*w2Fy4pO=@50SE$}&Tr(FX9NH(k_0sX delta 20 acmZ3*w2Fy4pO=@50SK(txNqc^X9NH&#RLEV diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/utils/tinynumpy/__pycache__/tinynumpy.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/common/utils/tinynumpy/__pycache__/tinynumpy.cpython-310.pyc index fc14869e7d06b96d2895c62d6e8e5031973f2b18..7a530bced308a163f06a3369a1b139de445364ed 100644 GIT binary patch delta 22 ccmZqOz|^{di94T{mx}=i0-erpzA_MaP delta 20 acmbQjG=+&fpO=@50SK(txNqdyRRg{N diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/dumbo/calculators/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/dumbo/calculators/__pycache__/__init__.cpython-310.pyc index dff815d4f62e57cf33737f0180db9dd80d2d3114..da8acc708f2556a5b9c3961dc804922670603175 100644 GIT binary patch delta 20 ZcmeBX?q=rB=jG*M0D?fL^BcJv7y&8X1X=(9 delta 20 ZcmeBX?q=rB=jG*M00OHu?i;xq7y&5}1SJ3f diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/dumbo/calculators/__pycache__/calc_rail.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/dumbo/calculators/__pycache__/calc_rail.cpython-310.pyc index 29cbd188f802356dfeb0b4cfda391a2fd4e941a1..b61c9b804aad358c9bd15c0b3b766e3aaa325d6b 100644 GIT binary patch delta 20 acmaFG{EC@7pO=@50SE$}&Tr(t&jzA_MaP delta 20 acmbQjG=+&fpO=@50SK(txNqdyRRg{N diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/jumbo/calculators/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/jumbo/calculators/__pycache__/__init__.cpython-310.pyc index 2a101173a550ef5d224cdbeb4d1eb8fab983b382..16cfe52e5bb794ea67b2ca434b1a748993df2ac3 100644 GIT binary patch delta 20 ZcmeBX?q=rB=jG*M0D?fL^BcJv7y&8X1X=(9 delta 20 ZcmeBX?q=rB=jG*M00OHu?i;xq7y&5}1SJ3f diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/jumbo/calculators/__pycache__/calc_agc.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/jumbo/calculators/__pycache__/calc_agc.cpython-310.pyc index f74b52ad16f52dd22598f35ebff9d2b7dc747e6c..aa1b1163ac5149021627f905e2a40150c9d9e417 100644 GIT binary patch delta 20 acmez5`^lF(pO=@50SE$}&Tr&?t_A=^g9b#{d8T diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/jumbo/calculators/__pycache__/calc_dsa.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/jumbo/calculators/__pycache__/calc_dsa.cpython-310.pyc index b2cab934686402b8b425a03fc206ada138a7a639..248a75a3a096eabd1b724bafc03b72171dab22ea 100644 GIT binary patch delta 20 acmew?_*sxUpO=@50SE$}&Tr&?!2tj~9R;-j delta 20 acmew?_*sxUpO=@50SK(txNqcs!2tj}Pz8Vh diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/jumbo/calculators/__pycache__/calc_freq_offset_comp.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/jumbo/calculators/__pycache__/calc_freq_offset_comp.cpython-310.pyc index 07e9e25c603de59d514e897041f5dd1fe430a747..5dbb40de53fc14a6572589e101f974b450495b5e 100644 GIT binary patch delta 20 acmX@Edt8@0pO=@50SE$}&Tr)2BL)CDI|X+D delta 20 acmX@Edt8@0pO=@50SK(txNqd%BL)CCZUsUB diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/jumbo/calculators/__pycache__/calc_global.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/jumbo/calculators/__pycache__/calc_global.cpython-310.pyc index 6173335dd90e8fa94ceb348f42b87a84a8cccc0d..0363f84bf5983983d5ef77d589646f4a817b530b 100644 GIT binary patch delta 189 zcmZ1+wK$49pO=@50SInfdAX6>SB~-4=193ojEs_#-^klA-kPkba1O}+q2RzMH@Qkt zWpb?INk+-d>PluzjM|&yR6ep9=mIqt>46Al5TOqwG?|JlL2N4!VGk!9KrEff_1e=k swZTjvaf>%TJ~=0`xHvgACnr80NwqCViNj<&oy`IWBfu<&$&9*60C;IFIsgCw delta 189 zcmZ1+wK$49pO=@50SK(txNqe4m1B(B94R-6kx^pu8+jYXsL7fN=YZ@V3J#1ildBX} zCdVqCWR%#fu4Klw|L{@lXDV_i<47xa^mBWR9l0T*iE+6*(`uC0?e|T%&4mb0Mpzmr2qf` diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/jumbo/calculators/__pycache__/calc_misc.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/jumbo/calculators/__pycache__/calc_misc.cpython-310.pyc index 3b657501c353cac643530b47901caa5ac8606475..5c856e51b9f7c06de6774e03394304bae004b69d 100644 GIT binary patch delta 138 zcmX>QdLWcLpO=@50SE$}&Tr(tq|6w#`JVDWM#kNn@2Z{$Qj^!J%QEhnd|KU%asOl{ zjUb2JK($2&fkc#WaY1TwW?E))d_iJSVs2_lYEf~~evtG5kThFCMrC|v$}RRXpm=6} bUePg-)QQPcG>&oa0x|c2h|`->HKQ2;^|~*k delta 138 zcmX>QdLWcLpO=@50SK(txNqdXq|A70^F8H%jEs9W-&H*iq$aObmu1{L`Lwzj(gqO# delta 20 acmcZ-eI=SZpO=@50SK(txNqb>sS5x>1qIvy diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/jumbo/calculators/__pycache__/calc_synth.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/jumbo/calculators/__pycache__/calc_synth.cpython-310.pyc index b3f7f553d7ff517d4e9f52ed41e4f5444371551c..317362b02e0176362ce5ca6a4e75dc35e83f3b27 100644 GIT binary patch delta 20 ZcmeAb?iJ?F=jG*M0D?fL^BcLFH~}nn1c(3t delta 20 ZcmeAb?iJ?F=jG*M00OHu?i;zAH~}lE1XBP2 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/jumbo/calculators/__pycache__/calc_viterbi.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/jumbo/calculators/__pycache__/calc_viterbi.cpython-310.pyc index bc6f141e17f33f7558b44b73472db14cce9b2e32..4dc778cfcc023391e89bf030f91ccb08ab487260 100644 GIT binary patch delta 20 acmaFP`<$0MpO=@50SE$}&Tr(t!v+93s|AMu delta 20 acmaFP`<$0MpO=@50SK(txNqdX!v+92-UU(s diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/jumbo/calculators/__pycache__/calc_wisun.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/jumbo/calculators/__pycache__/calc_wisun.cpython-310.pyc index 40c3762963ad8ee59f76dc9ffb4c769d6413892b..cd4d114fa453ca90abd528a0f4efc2e216ef4736 100644 GIT binary patch delta 20 acmaFj_{5PrpO=@50SE$}&Tr(tsQ>^#ody5^ delta 20 acmaFj_{5PrpO=@50SK(txNqdXsQ>^!&;`o? diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/jumbo/phys/__pycache__/Phys_connect.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/jumbo/phys/__pycache__/Phys_connect.cpython-310.pyc index c25360bbbea20a76d2c0bcaa5743efe1cfcbb854..0c4b5a6dc598503f6afd83fb1e001c74b4a1ec9e 100644 GIT binary patch delta 20 acmcZ;b|;KGpO=@50SE$}&Tr%n)CK@STm_u~ delta 20 acmcZ;b|;KGpO=@50SK(txNqbR)CK@Rj|FG| diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/jumbo/phys/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/jumbo/phys/__pycache__/__init__.cpython-310.pyc index c6668ac38d7959b5550599d28a3d0e05e26a45d9..725ca1154aea6a2fbf26d1a8c67ebd55307c3be1 100644 GIT binary patch delta 20 ZcmZo+Zeixm=jG*M0D?fL^BcJ<838E91VsP< delta 20 ZcmZo+Zeixm=jG*M00OHu?i;x)838Bx1P}lK diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/jumbo/phys/__pycache__/phys_studio_wisun_fan_1_0.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/jumbo/phys/__pycache__/phys_studio_wisun_fan_1_0.cpython-310.pyc index 1e8a6b8ec7f108c07c6fa1ebb64fe7d9f97df0e1..dc0c5c19cc380efe161ac984e629db171508bf06 100644 GIT binary patch delta 22 ccmdn9iE+;+M(%uGUM>b82y{BXk=rm508Q%#B>(^b delta 22 ccmdn9iE+;+M(%uGUM>b8uv+83k=rm508JhR@Bjb+ diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/jumbo/phys/__pycache__/phys_studio_wisun_fan_1_1.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/jumbo/phys/__pycache__/phys_studio_wisun_fan_1_1.cpython-310.pyc index 087e162d9663484fb49766fee0d7c2c9f03378f9..dd1eb4f59270c87ea15eb9fa6369c75332c47559 100644 GIT binary patch delta 20 acmccScg>GGpO=@50SE$}&Tr)QRtEq-NCkHQ delta 20 acmccScg>GGpO=@50SK(txNqe4RtEq+dj&!O diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/jumbo/phys/__pycache__/phys_studio_wisun_fan_1_1_virtual.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/jumbo/phys/__pycache__/phys_studio_wisun_fan_1_1_virtual.cpython-310.pyc index a0c13e48bb65377ba0c8a97dbd295bbad2249e66..f5436eef5e546b571108ecd42c4e37f6626e9cda 100644 GIT binary patch delta 22 ccmZ3|$GD`AkvpH4mx}=i0-erp?07O*k delta 22 ccmZ3|$GD`AkvpH4mx}=itk$@1?07HlcP5=M^ diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/jumbo/phys/__pycache__/phys_studio_wisun_han.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/jumbo/phys/__pycache__/phys_studio_wisun_han.cpython-310.pyc index 86579e56bab51fdf58035ffe25661cd3b43447f6..3c849aa6a4ef2252ae385a9e440e9c8fa4ddcb39 100644 GIT binary patch delta 20 acmZqSY2o3{=jG*M0D?fL^BcK;vH}1r4g}i( delta 20 acmZqSY2o3{=jG*M00OHu?i;y(vH}1qK?J4% diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/jumbo/profiles/__pycache__/Profile_LongRange.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/jumbo/profiles/__pycache__/Profile_LongRange.cpython-310.pyc index a22e714d870cdc47ce54efad263595391b8b826b..db04c97e092904500cf5650e16911e12f44aa6f8 100644 GIT binary patch delta 20 acmZqiYw_dG=jG*M0D?fL^BcK;ssR8rcLjg| delta 20 acmZqiYw_dG=jG*M00OHu?i;y(ssR8qss&2` diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/jumbo/profiles/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/jumbo/profiles/__pycache__/__init__.cpython-310.pyc index 08651afad8066ae47cd29cadf084e30f01fb51b4..db809f95ab54c864d945a843da7df9b132929716 100644 GIT binary patch delta 20 ZcmeBR?qKH5=jG*M0D?fL^BcKq838F~1W^D0 delta 20 ZcmeBR?qKH5=jG*M00OHu?i;yl838Dn1RMYW diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/jumbo/profiles/__pycache__/profile_wisun_fan_1_0.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/jumbo/profiles/__pycache__/profile_wisun_fan_1_0.cpython-310.pyc index f1c57e5ead1791f54971014ee41a76b414747302..3072ec86f35d6fe1b4a89b557abd0732ed8c5cb0 100644 GIT binary patch delta 20 acmZ1)zBHUWpO=@50SE$}&Tr(Nr40Z%=mmNJ delta 20 acmZ1)zBHUWpO=@50SK(txNqd1r40Z%8wEuG diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/jumbo/profiles/__pycache__/profile_wisun_fan_1_1.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/jumbo/profiles/__pycache__/profile_wisun_fan_1_1.cpython-310.pyc index 4fb3554ad4a1aa8c023aabcb669eca2323f2f223..f00579e4236eb82c2f89b9f06ed910980b4d9b1e 100644 GIT binary patch delta 20 acmdmAy1$e=pO=@50SE$}&Tr)2Vg&#~KL!&3 delta 20 acmdmAy1$e=pO=@50SK(txNqd%Vg&#}as}Q1 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/jumbo/profiles/__pycache__/profile_wisun_han.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/jumbo/profiles/__pycache__/profile_wisun_han.cpython-310.pyc index b9f41a07374c8c2579a6ab659d24ba862b855649..3a258ad0b6618d2cffa2252f517238b50687ebd9 100644 GIT binary patch delta 19 YcmeB<>5k#f=jG*M0D?fL^9#B405H@9sQ>@~ delta 19 YcmeB<>5k#f=jG*M00OHu?hCo~05CiRbN~PV diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/leopard/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/leopard/__pycache__/__init__.cpython-310.pyc index 36d0f6a9193035a6b696e0c7e86889d39c67ec98..64fb80cf3f61163100658217c6e549afcfd9892d 100644 GIT binary patch delta 19 ZcmaFG_==G`pO=@50SNZLc{!2$J^(oB27~|r delta 19 ZcmaFG_==G`pO=@50SKzk&zs179{@F!1=s)p diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/leopard/calculators/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/leopard/calculators/__pycache__/__init__.cpython-310.pyc index d0254bc0d5ad6f398198a03c227e2ec69656846a..34380b80db914adc742967ea9d4f4d00e82b01b0 100644 GIT binary patch delta 20 ZcmeBW?q%lA=jG*M0D?fL^BcLF7y&9S1YiIF delta 20 ZcmeBW?q%lA=jG*M00OHu?i;zA7y&6^1S

jWqO delta 20 acmZ3&vV?^@pO=@50SK(txNqc^WC8#z9s~0L diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/leopard/calculators/__pycache__/calc_global.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/leopard/calculators/__pycache__/calc_global.cpython-310.pyc index 9dd7de9234acc5c49161178f4165da6a595e4c64..dea5128563ae30dd5c0fb1d37138d5215bac1efa 100644 GIT binary patch delta 20 acmey#{F9kGpO=@50SInfdAX7M9U}ljtp?Ws delta 20 acmey#{F9kGpO=@50SK(txNqcs#|QvAK?QFB diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/leopard/calculators/__pycache__/calc_misc.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/leopard/calculators/__pycache__/calc_misc.cpython-310.pyc index 83e4e7a1475cc282de8daa2911e0faed7b22b6f5..f5a5d093315719e1b6a56b369886bec92c8e820d 100644 GIT binary patch delta 20 acmeys@qvRopO=@50SE$}&Tr&SWdQ&=T?G~Z delta 20 acmeys@qvRopO=@50SK(txNqc6WdQ&0sf`=jG*M0D?fL^BcMUG6Dc9iUiXD delta 20 acmeBR>0sf`=jG*M00OHu?i;!PG6Dc8y#$^B diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/leopard/calculators/__pycache__/calc_radio.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/leopard/calculators/__pycache__/calc_radio.cpython-310.pyc index 6f75ef47c2d339f3fafd181a4f57913cff67c321..b79a1c1418f943df45f97f2b0039afe6c7031fde 100644 GIT binary patch delta 20 acmeyt{DYZ0pO=@50SE$}&Tr&?%Lo8E<^`bu delta 20 acmeyt{DYZ0pO=@50SK(txNqcs%Lo8E83k+r diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/leopard/calculators/__pycache__/calc_rail.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/leopard/calculators/__pycache__/calc_rail.cpython-310.pyc index fe8a42cabcad88c5586671723a852bca6b052aba..97e74157990733f98a4f5d1126d8bf511bf03e17 100644 GIT binary patch delta 20 acmeys{DGM}pO=@50SE$}&Tr&?$_M~CrUi)r delta 20 acmeys{DGM}pO=@50SK(txNqcs$_M~B*#%Sp diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/leopard/calculators/__pycache__/calc_shaping.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/leopard/calculators/__pycache__/calc_shaping.cpython-310.pyc index 771b3a134f764700febec330cb23108fcd4c5b97..4ffdaaddcfda63bd2ca8c3182cf35eb1e371282f 100644 GIT binary patch delta 20 acmZo*X<*^b=jG*M0D?fL^BcLpG6Dc8N(8$A delta 20 acmZo*X<*^b=jG*M00OHu?i;zkG6Dc7eFTO8 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/leopard/calculators/__pycache__/calc_synth.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/leopard/calculators/__pycache__/calc_synth.cpython-310.pyc index 8e31a36e742cb88a53dbb4f7750b6230b928b94c..f2d5c877ab6af4bdbce25fa4345d4880a4072d44 100644 GIT binary patch delta 20 acmX>lcuJ5vpO=@50SE$}&Tr)2&jA26wFNo= delta 20 acmX>lcuJ5vpO=@50SK(txNqd%&jA25=miA; diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/leopard/calculators/__pycache__/calc_viterbi.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/leopard/calculators/__pycache__/calc_viterbi.cpython-310.pyc index 96d53791b6c0b9b47f6f962f60fd552772583c31..0da5a7722df27b20412fb1a51c7f60efeff86c1b 100644 GIT binary patch delta 20 acmZo*X<*^b=jG*M0D?fL^BcLpG6Dc8N(8$A delta 20 acmZo*X<*^b=jG*M00OHu?i;zkG6Dc7eFTO8 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/leopard/filters/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/leopard/filters/__pycache__/__init__.cpython-310.pyc index 0d7ae283c04a56b9398f668a6315179eedb58ee5..fb9db91ee9857febd6e09ef1c570a327f4618663 100644 GIT binary patch delta 20 ZcmeBV?quf9=jG*M0D?fL^BcMA7y&7c1XKV3 delta 20 ZcmeBV?quf9=jG*M00OHu?i;!57y&531RnqZ diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/leopard/filters/__pycache__/phy_filters.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/leopard/filters/__pycache__/phy_filters.cpython-310.pyc index 3d03e36e202fd23f5f04013716a23ada38b3beea..987ad615ce1cf7f7d10a5aa9e1c9e8f432df8512 100644 GIT binary patch delta 20 acmdnYwwaAPpO=@50SInfdAX5WgBbufD+P@J delta 20 acmdnYwwaAPpO=@50SK(txNqdvUp diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/leopard/phys/__pycache__/Phys_Datasheet.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/leopard/phys/__pycache__/Phys_Datasheet.cpython-310.pyc index e1924755771ab189b8c3a6db795e5a4b6914c665..d5ccc6eebd2d9e34add81398cbb0adf03b79158d 100644 GIT binary patch delta 20 acmey#{F9kGpO=@50SE$}&Tr&?#|QvB4h5tD delta 20 acmey#{F9kGpO=@50SK(txNqcs#|QvAK?QFB diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/leopard/phys/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/leopard/phys/__pycache__/__init__.cpython-310.pyc index 7ca0d1a41a82e6022a291986933c4f44e17ab94a..d76f1957645158d55f7eeef7ebb44d65051f6482 100644 GIT binary patch delta 20 ZcmZo;Ze!-o=jG*M0D?fL^BcLV838F41WNz_ delta 20 ZcmZo;Ze!-o=jG*M00OHu?i;zQ838Cs1Qq}Q diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/leopard/profiles/__pycache__/Profile_Base.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/leopard/profiles/__pycache__/Profile_Base.cpython-310.pyc index 97a1bb23a9ccc0077bef4968a8a8a809aac95661..d07a276a7500415659adf9eae88f7715b0c977cf 100644 GIT binary patch delta 20 acmZ2(u-t$ diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/leopard/profiles/__pycache__/Profile_Connect.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/leopard/profiles/__pycache__/Profile_Connect.cpython-310.pyc index 1deb19f0eabcf9f38651e0767f1e8de6bf187dbe..79eb711954c87ca40c26f8662327b4bf5ee3239a 100644 GIT binary patch delta 20 acmbO)K3|+WpO=@50SE$}&Tr(N!VLf~*aXM` delta 20 acmbO)K3|+WpO=@50SK(txNqd1!VLf~3j~t@ diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/leopard/profiles/__pycache__/Profile_IEEE802154_OQPSK.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/leopard/profiles/__pycache__/Profile_IEEE802154_OQPSK.cpython-310.pyc index a579e1324948c69c77f2031b4d56c64e61ade14f..7365379422f92a4fe851ea39d3899a3703b3909e 100644 GIT binary patch delta 20 acmbQtGnt1wpO=@50SInfdAX6BgAD*P1_e9- delta 20 acmbQtGnt1wpO=@50SK(txNqdt*B4=jG*M0D?fL^BcLDm;ouA1Lyz% delta 20 ZcmeBW>t*B4=jG*M00OHu?i;z8m;ory1G4}C diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/leopard/targets/__pycache__/Target_Sim.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/leopard/targets/__pycache__/Target_Sim.cpython-310.pyc index 5369e8c6ed338a12fec278c1aaf3e746652cb795..545775c0043ab4de7da22be59204814d3b9f0e17 100644 GIT binary patch delta 20 acmdnQvx$d0pO=@50SE$}&Tr&aX9EB*KLlm~ delta 20 acmdnQvx$d0pO=@50SK(txNqcEX9EB)as)8| diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/leopard/targets/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/leopard/targets/__pycache__/__init__.cpython-310.pyc index ab42fed3066ac8c48bea8b5bad2f256a5a3d336c..3b856726b42505f78ad5c61c284fe2c23d1250cd 100644 GIT binary patch delta 20 ZcmeBV?quf9=jG*M0D?fL^BcMA7y&7c1XKV3 delta 20 ZcmeBV?quf9=jG*M00OHu?i;!57y&531RnqZ diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/__pycache__/__init__.cpython-310.pyc index b398046a7176fcc2a5d0eee650973c2fae1e7a59..335da5c3adb89f7098d187685ad6aa86bbd3817a 100644 GIT binary patch delta 20 acmbQlG>M5jpO=@50SE$}&Tr&qX9NH#(gW=P delta 20 acmbQlG>M5jpO=@50SK(txNqcUX9NH#1p~MM diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/calculators/__pycache__/.nfs000000002ed7ef470002bff5 b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/calculators/__pycache__/.nfs000000002ed7ef470002bff5 deleted file mode 100644 index 6f3246b72f9ff52552d873d22472e07f0ad65c39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 496 zcmY+Au};G<5Qgofh^R`%!UM2&sRe8Zp-K#05JE6i%3_(=NlY9&*omM66TAb@fW#AJ zW#Sc>I6DH$Nq4!soIm@1Gn-8j*vb2~&r?e8d#1)eZ^-TfDTJ?AQkh1O+g>UzbSbqEmfQ(lOYO*m zv9)ViF33vcwV~_Zx^%oItzunaY(p&L(hyPD<0IPis*`QCp}En8EPKm3V@bOSGh>gm z%yy0_crwXh`5rjNx{y-~N-SVJh9`P=Ue*LnaOl8_+2KFfBETR9@fKUWkO!WP{Jx&{ WxA~YQ&>ND|QK&Pobhs}?`_VU|UWM-f diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/calculators/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/calculators/__pycache__/__init__.cpython-310.pyc index f63629e00da1cfe71a603f52539bfe4e47fa9696..9fecbfb9150df57447e3ba9c23f0292bf76b5ab2 100644 GIT binary patch delta 20 ZcmeBT?qcT7=jG*M0D?fL^BcMA838G_1Xln6 delta 20 ZcmeBT?qcT7=jG*M00OHu?i;!5838Ei1R?+c diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/calculators/__pycache__/calc_agc.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/calculators/__pycache__/calc_agc.cpython-310.pyc index 932adde24c900fd06aea12b815550b0ebb6ebf8e..207c3baff3dc9419c0a4464fa97f8efa80c344d6 100644 GIT binary patch delta 20 acmbPcI?a?jpO=@50SE$}&Tr)ImI44Ww*>eA delta 20 acmbPcI?a?jpO=@50SK(txNqd{mI44V>IB08 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/calculators/__pycache__/calc_crc.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/calculators/__pycache__/calc_crc.cpython-310.pyc index f8d77d9db24b54896fae7bfd7303f4c33c7a7201..cff1d54a9946a84082cbc2ae7ed980d93f13a91e 100644 GIT binary patch delta 20 acmZ3)wup^8pO=@50SE$}&Tr%vX9fT)^G?e0ci1Aa!?&362(d|b>xL1!Q?PMh3l;V`*hR#K{# wqlTk~F^eIKBc3URA(%mv$*(99s6>-<@&#v+$v0$0CV!NzW0cukAU9D90Mo1)>Hq)$ delta 111 zcmew{k+E?SBX2%0FBbz4SgmnSd$5t$fS*xnvmHMx9~TQy&>4t}vnDqhNlcz#q0Uso zF}X)pN~W2ymZOHFhB1pFi!+`ng&~+hlgY0r5~x;_Yw`hE4W=Tg$xme)SrnM~m?t~B L$ZhVBE6@S}(EJ+h diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/calculators/__pycache__/calc_dsa.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/calculators/__pycache__/calc_dsa.cpython-310.pyc index cbb0be6ffb1904fe1fee0776882891ff4b3c02b8..392c66605b898375aa996ef2bcd3baef67405525 100644 GIT binary patch delta 19 YcmeC?=;q+g=jG*M0D?fL^9#9I040J0*8l(j delta 19 YcmeC?=;q+g=jG*M00OHu?hCnD03_-Iq5uE@ diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/calculators/__pycache__/calc_fec.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/calculators/__pycache__/calc_fec.cpython-310.pyc index 8008cf02affe2cd547aef6fe175241b2730a46d1..8d061c836383e2d5d135b5f0674fb57f91d615e6 100644 GIT binary patch delta 20 acmcc5cAt$qpO=@50SE$}&Tr%nVFmy;Yy{o_ delta 20 acmcc5cAt$qpO=@50SK(txNqbRVFmy-p9HA@ diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/calculators/__pycache__/calc_frame.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/calculators/__pycache__/calc_frame.cpython-310.pyc index 856a2ed5ec949ddafc39eeb84e3202556e2d4d35..2d1148ed3fa2bfbfe0295288809943ed51c18088 100644 GIT binary patch delta 20 acmZ24xn7bxpO=@50SInfdAX5$2@e1|Kn5@X delta 20 acmZ24xn7bxpO=@50SK(txNqcM!UF&?)C9-? diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/calculators/__pycache__/calc_freq_offset_comp.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/calculators/__pycache__/calc_freq_offset_comp.cpython-310.pyc index 5a1f6d6e524a9bc1dbe3646e3daf9a165344945c..b4a874957f5f79f17b21291ed569e0522eec525e 100644 GIT binary patch delta 20 acmbQhKY^b+pO=@50SE$}&Tr&yWd{H(Tm**z delta 20 acmbQhKY^b+pO=@50SK(txNqccWd{H&j|5Tx diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/calculators/__pycache__/calc_global.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/calculators/__pycache__/calc_global.cpython-310.pyc index 0e0a57d2f91a6337d88c7a72857e921f31b539ca..a72129d0d9da9ec9e088863d7c53631278a93b59 100644 GIT binary patch delta 461 zcmX@>dDfFVpO=@50SInfdAX6Bn}hcjS8-)ta$<5}d1l_N&B`49T#Wpii-pn{HKl>7 ziUdIfGl-A@5wajc2~H@3SfZPmL>4egso;_qo4iMK25xEb$$4V_jH;9Oi79K~G(!St z_)L%mYCxh&dGZE%vB~n{>OgJo;_AvcwMhb1&jD-OJW+fvndDfFVpO=@50SK(txNqd<=HQLuDz3~+PE0N=&&-S3tjyuh#mKw4SSXEAQxd4E zh#y2Sg9s@QAq^rF;DjQGCA^tQWC5d;5{QjWUS#qf(HXdm{*xr?hScXR-7!P(l4L@QjH)KCvQ}d0RY>$Q91ws diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/calculators/__pycache__/calc_misc.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/calculators/__pycache__/calc_misc.cpython-310.pyc index a5eb65a2174a058e8231122c07c46034f8b6926f..074449a1d441afcabbf340533fd0fb10a13c7398 100644 GIT binary patch delta 20 acmdm|woi>apO=@50SInfdAX6>SQr33a|QkY delta 20 acmdm|woi>apO=@50SK(txNqb(76t${2LzS? diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/calculators/__pycache__/calc_modulator.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/calculators/__pycache__/calc_modulator.cpython-310.pyc index bc15e410dc3cefbc71590e0b5d4737a4ed09866a..bcb13345aca89604ce594a5f9cef6f438d3fb5e0 100644 GIT binary patch delta 20 acmdnUvXO;5pO=@50SE$}&Tr&aV*&s!^8`-- delta 20 acmdnUvXO;5pO=@50SK(txNqcEV*&s!CIlJ) diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/calculators/__pycache__/calc_radio.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/calculators/__pycache__/calc_radio.cpython-310.pyc index 37985b1f557de46bc2b944ff10df37bc162d4dfe..b11529c1dd67abff08830f1f5d4113ce2ab815c0 100644 GIT binary patch delta 20 acmZ3)wup^8pO=@50SE$}&Tr%vX9fT)_9pO=@50SE$}&Tr&iBm)38;RQzk delta 20 acmZ2$xz>_9pO=@50SK(txNqcMBm)386a^9h diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/calculators/__pycache__/calc_synth.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/calculators/__pycache__/calc_synth.cpython-310.pyc index f5a46979a815babeba38cd8e78941f4e9d2b967b..2ee55fd70314887a2f2ddd728ba6a1c188cae97f 100644 GIT binary patch delta 20 acmdn$xYdz6pO=@50SE$}&Tr&ir2qgqMFn#J delta 20 acmdn$xYdz6pO=@50SK(txNqcMr2qgpcm+NH diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/calculators/__pycache__/calc_viterbi.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/calculators/__pycache__/calc_viterbi.cpython-310.pyc index c6b667736eacf9ef30a016103518f9aaf7c6d147..6644ce2288d09eaa83af365eb22163b33c3038a7 100644 GIT binary patch delta 20 acmey7@FRgcpO=@50SE$}&Tr(-H2?rdDFzAv delta 20 acmey7@FRgcpO=@50SK(txNqdnH2?rcTm{tt diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/calculators/calc_demodulator.py b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/calculators/calc_demodulator.py index 25726b3447..327ac55ba4 100644 --- a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/calculators/calc_demodulator.py +++ b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/calculators/calc_demodulator.py @@ -133,7 +133,7 @@ def get_alpha(self, model, modulation_index, shaping_filter, shaping_filter_para return alpha def _add_demod_rate_variable(self, model): - self._addModelActual(model, 'demod_rate', int, ModelVariableFormat.DECIMAL) + self._addModelActual(model, 'demod_rate', float, ModelVariableFormat.DECIMAL) def calc_fxo_or_fdec8(self, model): # We can not use rx_synth_freq_actual in these calculations due to circular dependency @@ -282,7 +282,7 @@ def calc_demod_rate_actual(self,model): src1_actual = model.vars.src1_ratio_actual.value src2_actual = model.vars.src2_ratio_actual.value - demod_rate_actual = int(adc_freq_actual * src1_actual * src2_actual / (8 * dec0_actual * dec1_actual * dec2_actual)) + demod_rate_actual = adc_freq_actual * src1_actual * src2_actual / (8 * dec0_actual * dec1_actual * dec2_actual) #Load local variables back into model variables model.vars.demod_rate_actual.value = demod_rate_actual diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/filters/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/filters/__pycache__/__init__.cpython-310.pyc index 932ad1a6af1ade43669d58ba0bbd72c07c33c08e..45e0e5aac86fea108e61f8f8cc15840b58e43048 100644 GIT binary patch delta 20 ZcmZo;Ze!-o=jG*M0D?fL^BcLV838F41WNz_ delta 20 ZcmZo;Ze!-o=jG*M00OHu?i;zQ838Cs1Qq}Q diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/filters/__pycache__/phy_filters.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/filters/__pycache__/phy_filters.cpython-310.pyc index fdb13bf6067ac66564a500b385e618c59e190e21..a5d0faf897069bb227cf06611b3528cbdc140476 100644 GIT binary patch delta 20 acmcb?c7u&OpO=@50SInfdAX6>ml*&&^9B3> delta 20 acmcb?c7u&OpO=@50SK(txNqe4Wd;B=hXj-W diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/phys/__pycache__/PHY_internal_base.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/phys/__pycache__/PHY_internal_base.cpython-310.pyc index b99228b2b5c81120f1967cf323e25bef93ced846..eb17cf1bb1f5e5578b85152125c3cf398ad654a6 100644 GIT binary patch delta 20 acmZ2!ztWyNpO=@50SE$}&Tr(NCl3HO90f`M delta 20 acmZ2!ztWyNpO=@50SK(txNqd1Cl3HNPX!eK diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/phys/__pycache__/Phys_Connect.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/phys/__pycache__/Phys_Connect.cpython-310.pyc index 5cc32d894d2328a70027f09886d03849dfbb9599..e66ee1f8affbfba18db15a68c8588e522acb0e3a 100644 GIT binary patch delta 20 acmbQsHkXY%pO=@50SE$}&Tr%vVg>*#90V8u delta 20 acmbQsHkXY%pO=@50SK(txNqbZVg>*!PXprs diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/phys/__pycache__/Phys_Datasheet.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/phys/__pycache__/Phys_Datasheet.cpython-310.pyc index 705ba0db06febe5eb81a131e1eff369e2d0ec150..b6aa57821aad5a30f165cb30accbbefe9a51115b 100644 GIT binary patch delta 20 acmdlZxJQsXpO=@50SE$}&Tr)2$N>N|g#{1* delta 20 acmdlZxJQsXpO=@50SK(txNqd%$N>N{xCGk( diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/phys/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/phys/__pycache__/__init__.cpython-310.pyc index cc725cfdb832fc2fd6bd10453f541056a6b4fdd2..d56a22e10a6877340c34d97bc3110a61ad28637d 100644 GIT binary patch delta 20 ZcmZo>Zf54r=jG*M0D?fL^BcJ<7y&4r1VR7+ delta 20 ZcmZo>Zf54r=jG*M00OHu?i;x)7y&2I1PuTH diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/profiles/__pycache__/Profile_Base.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/profiles/__pycache__/Profile_Base.cpython-310.pyc index 78a53eba36e697ba4319dc08855b5a5901bc52a1..aa37a74227f164535a6f93c091f8a80319bc28fa 100644 GIT binary patch delta 20 acmaFL`IM78pO=@50SE$}&Tr(t#R330$pv=+ delta 20 acmaFL`IM78pO=@50SK(txNqdX#R32~`~^Y) diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/profiles/__pycache__/Profile_Connect.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/profiles/__pycache__/Profile_Connect.cpython-310.pyc index e5bcacad4ea6547d519554330d74cf26ca459a62..bb5993a12ef420c35db8fea1a8644c3e89fc0a90 100644 GIT binary patch delta 20 acmX@Xae{+8pO=@50SE$}&Tr(lWdQ&)9R!{L delta 20 acmX@Xae{+8pO=@50SK(txNqdPWdQ&(Py}fJ diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/profiles/__pycache__/Profile_IEEE802154_OQPSK.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/profiles/__pycache__/Profile_IEEE802154_OQPSK.cpython-310.pyc index 4a54c6ec48eb41c3087a3dfa7bc0c688a5bd824e..c518db7304ff1ef27758d4bcda451d3e1a9b411c 100644 GIT binary patch delta 20 acmX>tc3O-(pO=@50SInfdAX6>fg1olGX?zs delta 20 acmX>tc3O-(pO=@50SK(txNqck;06FR#{`uC diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/profiles/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/profiles/__pycache__/__init__.cpython-310.pyc index e3d085824a9793419f23f45c9676b4ca32dc12ad..fd40c57749e3c24683f7401ee940d9fdf2a314f4 100644 GIT binary patch delta 20 ZcmZo?ZfEAs=jG*M0D?fL^BcKq7y&6h1Wo_| delta 20 ZcmZo?ZfEAs=jG*M00OHu?i;yl7y&481Q`GT diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/targets/__pycache__/Target_IC.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/targets/__pycache__/Target_IC.cpython-310.pyc index ce0c06e32f24c72489828f550e3571909d3ebf2c..ea297f229850e76e33bfa75bdbc06b7e6df39fd2 100644 GIT binary patch delta 20 acmZofj=jG*M0D?fL^BcLpF#!N6y9C1k delta 20 acmZofj=jG*M00OHu?i;zkF#!N5?gWki diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/targets/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/lynx/targets/__pycache__/__init__.cpython-310.pyc index e4057618b98e8798022f5f7f158a6113a1920500..2601d2bd773529d21b27ce7255af3d6124e6bea8 100644 GIT binary patch delta 20 ZcmZo;Ze!-o=jG*M0D?fL^BcLV838F41WNz_ delta 20 ZcmZo;Ze!-o=jG*M00OHu?i;zQ838Cs1Qq}Q diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/__pycache__/__init__.cpython-310.pyc index d4bad602f9eacac862ab7b08ca3aa3fda83555eb..1bfed3d443f6a07c41e666210b14405f42e4d96c 100644 GIT binary patch delta 20 acmbQnG>wTnpO=@50SE$}&Tr)AW&{8#as&AQ delta 20 acmbQnG>wTnpO=@50SK(txNqdMYNki;7*ojbQcnLOEB%UZM z6R*I;*^wZeKA$46vyXND2K%Q^#x{Xu3CkUU6G&i%G|n(aYa}8OzaSAy z{2XVInB1bp-WQxg3)~;9F0WQ}bKg07!=*AU_l>b(NS3hN44gz676>31Akp~thS`Gc zt`~8iP+BuBDeb3}Y9l)3;~Axo9aBT+9oc=L1^4|*wnj^G-<3+px+rTYEqRc2Ro0F? z8C$uAaY@#aSBBpG=7kd#X%uU7V>Pi%l!nOMo}N(MskUskJIYO+mqlk;YbrKpO=@50SE$}&Tr(N&IAB0zXYTJ delta 20 acmZ3)x`>rKpO=@50SK(txNqd1&IAA~@&s=H diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/calc_ber.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/calc_ber.cpython-310.pyc index 5d616845084611b43308fbe0e873437b77a29ba8..b063f6a6ae5db524d125092cdba5ea8fce1efcc3 100644 GIT binary patch delta 20 acmeyw{E3-6pO=@50SE$}&Tr&?&IkZG_63gs delta 20 acmeyw{E3-6pO=@50SK(txNqcs&IkZGDFs>p diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/calc_crc.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/calc_crc.cpython-310.pyc index 3387367dd66ec4dd2f5f15ea56c71f6d04a2b91d..90f4b56c787bf4362ec28acc9ea517322761689e 100644 GIT binary patch delta 20 acmeyw{E3-6pO=@50SE$}&Tr&?&IkZG_63gs delta 20 acmeyw{E3-6pO=@50SK(txNqcs&IkZGDFs>p diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/calc_demodulator.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/calc_demodulator.cpython-310.pyc index 142c40c24be6d1567c8997b013218ef0a36ea3d5..25d7d0e087dd49dc4e24ea036f54f61d47123e26 100644 GIT binary patch delta 20 acmX>pa#DmlpO=@50SE$}&Tr(l;{pIQ`vkuL delta 20 acmX>pa#DmlpO=@50SK(txNqdP;{pIQE(D4I diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/calc_diversity.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/calc_diversity.cpython-310.pyc index dfd667941aaf7d1d46f6b31f461800ed791b5dee..5a00894becb8f2b69836cc2e4066350291c6747b 100644 GIT binary patch delta 20 acmeBT>0;r|=jG*M0D?fL^BcMUGXelA+637E delta 20 acmeBT>0;r|=jG*M00OHu?i;!PGXelA4FseB diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/calc_dsa.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/calc_dsa.cpython-310.pyc index 85f38a29c2a958507a7c7e092c4c264df258d5c0..1c18ac595f7583e101c258697fca2f8405662083 100644 GIT binary patch delta 20 acmeyw{E3-6pO=@50SE$}&Tr&?&IkZG_63gs delta 20 acmeyw{E3-6pO=@50SK(txNqcs&IkZGDFs>p diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/calc_fec.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/calc_fec.cpython-310.pyc index 3209d90ae43f48a83b0d99b35f65ca311005d14c..ca76d9f84232c2e4cf4468a931153750b0894736 100644 GIT binary patch delta 20 acmaFD`h=A`pO=@50SE$}&Tr(t$pip64+Uxf delta 20 acmaFD`h=A`pO=@50SK(txNqdX$pip5LIpJd diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/calc_fpll.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/calc_fpll.cpython-310.pyc index 291cbafd406cde52a2be8e59751739bb8ffc5c6e..9c92dd7280403764894b50e8077a2c8011a294a4 100644 GIT binary patch delta 20 acmeyy{EeAApO=@50SE$}&Tr&?%?JQGmIa#t delta 20 acmeyy{EeAApO=@50SK(txNqcs%?JQF$pvNr diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/calc_frame.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/calc_frame.cpython-310.pyc index fc07b80dd77311a9282a3b5fda91a47a004c073a..630aadd7174785a391fa1490cd2c09c3a679c122 100644 GIT binary patch delta 20 acmeyx{EL}8pO=@50SE$}&Tr&?&jD=UT)+rX9fT;rv-cf delta 20 ZcmZo-Z(`@p=jG*M00OHu?i;zwnE@y}1QY-O diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/calc_ircal.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/calc_ircal.cpython-310.pyc index 6cdff8a791b08e8fefc2c1398695b2173bdd2177..428634d4a760453362e6367c41abe66409a2cc62 100644 GIT binary patch delta 20 acmX@jcAAYlpO=@50SE$}&Tr&)U0;r|=jG*M0D?fL^BcMUGXelA+637E delta 20 acmeBT>0;r|=jG*M00OHu?i;!PGXelA4FseB diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/calc_mbus.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/calc_mbus.cpython-310.pyc index d00e0259f1ccd401a427acbc495630ef62a27ac6..683f13c6e9de61f8b4e29374060ea535380869e7 100644 GIT binary patch delta 20 acmeyy{EeAApO=@50SE$}&Tr&?%?JQGmIa#t delta 20 acmeyy{EeAApO=@50SK(txNqcs%?JQF$pvNr diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/calc_misc.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/calc_misc.cpython-310.pyc index dd0870ed6c25547020dcca3098620d787eae0902..4ff5ddd3341ecb04d7422c6e42b74d005aac8024 100644 GIT binary patch delta 20 acmeyy{EeAApO=@50SE$}&Tr&?%?JQGmIa#t delta 20 acmeyy{EeAApO=@50SK(txNqcs%?JQF$pvNr diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/calc_modulator.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/calc_modulator.cpython-310.pyc index cff8630c783b28691da03c80d587b13053edcaea..609c838f448e55a34379f310c500cb1b4bc033e2 100644 GIT binary patch delta 20 acmeBT>0;r|=jG*M0D?fL^BcMUGXelA+637E delta 20 acmeBT>0;r|=jG*M00OHu?i;!PGXelA4FseB diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/calc_pro2_demod.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/calc_pro2_demod.cpython-310.pyc index e9bbb670fcc08e76c7890c14e2e6a95964c8f4c1..c662c4bb3c927f80d80cb82563cd2c9773978340 100644 GIT binary patch delta 20 ZcmeBU>0{x}=jG*M0D?fL^BcLDnE)w!1Lgn# delta 20 ZcmeBU>0{x}=jG*M00OHu?i;z8nE)uR1F--A diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/calc_radio.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/calc_radio.cpython-310.pyc index d09a6ebd0d22f7eca7ea06727bdd6a7227f462b2..1e73a8a172c160ab3ab344501d63009a89ebe711 100644 GIT binary patch delta 20 acmZ3+zKoqapO=@50SE$}&Tr(N%?to8s06hD delta 20 acmZ3+zKoqapO=@50SK(txNqd1%?to7+XR3B diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/calc_rail.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/calc_rail.cpython-310.pyc index b46a85c186ad3eadf15b0c7450adde720194ed0a..787e396d6b51ef5507d8ff80a9d8df40e06e48c9 100644 GIT binary patch delta 20 acmeyw{E3-6pO=@50SE$}&Tr&?&IkZG_63gs delta 20 acmeyw{E3-6pO=@50SK(txNqcs&IkZGDFs>p diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/calc_shaping.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/calc_shaping.cpython-310.pyc index 67cf74479df4ec02de3a37f5b4493a5e3d6c9aa1..9eab4bb99d5a476b26c13348ee18c45f3e06d4ed 100644 GIT binary patch delta 20 acmZo-X=35d=jG*M0D?fL^BcLpGXel9ngqcB delta 20 acmZo-X=35d=jG*M00OHu?i;zkGXel8%>;}9 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/calc_sidewalk.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/calc_sidewalk.cpython-310.pyc index cc59ce55336b1b833d1250f1f5cbeeb8eed6470d..1c605b96816aece3c5dc03dbb5423f1204bc998b 100644 GIT binary patch delta 20 acmZo-X=35d=jG*M0D?fL^BcLpGXel9ngqcB delta 20 acmZo-X=35d=jG*M00OHu?i;zkGXel8%>;}9 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/calc_sq.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/calc_sq.cpython-310.pyc index 2729e7d7cf7dfd199a6612a382b31288e0955694..b56f2c6af89d1569c2fa896fd070cd31172b87d0 100644 GIT binary patch delta 20 acmaFI{EnGBpO=@50SE$}&Tr&?%m@HERt19q delta 20 acmaFI{EnGBpO=@50SK(txNqcs%m@HDi3Lso diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/calc_synth.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/calc_synth.cpython-310.pyc index c417ade29bdef0638ae08f1c8ca1d8258ec9be7a..79323a0099374b2e96ac571f58ce7cea36bf2606 100644 GIT binary patch delta 20 acmeyx{EL}8pO=@50SE$}&Tr&?&j0;r|=jG*M0D?fL^BcMUGXelA+637E delta 20 acmeBT>0;r|=jG*M00OHu?i;!PGXelA4FseB diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/calc_viterbi.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/calc_viterbi.cpython-310.pyc index 6a2634a108ff9c355e8114304c08b32d3e72437c..c50a08d830179599b0ddc06fc5be1c4b02435a86 100644 GIT binary patch delta 20 acmcc5f1jT_pO=@50SE$}&Tr(t!VUm9v;}kk delta 20 acmcc5f1jT_pO=@50SK(txNqdX!VUm8=LJ6i diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/calc_white.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/calc_white.cpython-310.pyc index 1039178c28ed700b857338b9c3f226ce72b90cb4..5e0e26c9b23987a32e5bfb607d0e7fb26aaf10f9 100644 GIT binary patch delta 20 acmZo-X=35d=jG*M0D?fL^BcLpGXel9ngqcB delta 20 acmZo-X=35d=jG*M00OHu?i;zkGXel8%>;}9 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/calc_wisun.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/calculators/__pycache__/calc_wisun.cpython-310.pyc index b8c57704ee69da78b16a38eb5b6ebfa4ab7c2142..249f01c697d7c1ce21bf0ebbf116cc191ea73f24 100644 GIT binary patch delta 20 acmeyx{EL}8pO=@50SE$}&Tr&?&jmJI+qP6gWl delta 20 acmX@XbApFEpO=@50SK(txNqdPWdi^*;skR5 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/phys/__pycache__/.nfs000000002ed7fad60005a6dc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/phys/__pycache__/.nfs000000002ed7fad60005a6dc deleted file mode 100644 index c0f35e61c31d683cc0ddf5fdb62a2305fd84b352..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 528 zcmZvZy-ve05XbGLh^T5e21eE{u>@j42z4t9A5w=(Su7JfA0)AZ9jnR=&%utwBk&|y znRo>z&W;2{aFYM=oiD%m{!#P!6hWN5uCh0HzPn^MCXg&)nIjO6IIdBH6O7Rc@qmX< zh=&3{hDpFDYqZ$=fG)Ja!{Kewn{{V-sWzpt@{-A$RMe_VUBhl*NS3h73`C#=a|AF9 zu;4$+71KHEuNUDEQ7Ty@C>^GhHj3NY?PrueSXPfGFG%kL)ywBIDO4lKoh@rFWL`=k zG`SbDDy1P?r7P32RFIWOD@8Zod2V<`+M0El(hboJCL$u!C&#q0byv1UPg5ncGPjy_ zN|UztJ!6fuOm~Jf{?Y_`jTdUXGj!{$p#_sMycNPto!iDqgeHNnz@*9PFJ|nSvGR7t hj_KtOQwMHzNBuEj+(l3uqVv(S3-<&3H)rS|`~rz&lxF|{ diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/phys/__pycache__/Phys_Default.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/phys/__pycache__/Phys_Default.cpython-310.pyc index ae9c888b91b90a2ce3a8b7480e4ade102a5150b2..b9d08c159b8cad4c171f0a0500a429ec5898215d 100644 GIT binary patch delta 20 acmaFO{+gXTpO=@50SE$}&Tr&?zzhI6a0P?_ delta 20 acmaFO{+gXTpO=@50SK(txNqcszzhI5qXka@ diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/phys/__pycache__/Phys_Studio_Base.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/phys/__pycache__/Phys_Studio_Base.cpython-310.pyc index b70791c5d6f30233ec37434aeaf29ae1113058e7..6d41ef56dc5ed2c556024173cfc114ec79edc3fe 100644 GIT binary patch delta 20 acmaFH@{EN$pO=@50SE$}&Tr(7W&!{=I|S|k delta 20 acmaFH@{EN$pO=@50SK(txNqc+W&!{ja1Z delta 20 acmX@Ya)gCDpO=@50SK(txNqdPWC8#&9t2YW diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/phys/__pycache__/Phys_Studio_Connect.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/phys/__pycache__/Phys_Studio_Connect.cpython-310.pyc index fc866bf6a25bf700c67e4a8e1f2d771fb1df3c8a..e172aa5e36976ad5cd4c52c87e65ded775fdc6b1 100644 GIT binary patch delta 20 acmZo-X=35d=jG*M0D?fL^BcLpGXel9ngqcB delta 20 acmZo-X=35d=jG*M00OHu?i;zkGXel8%>;}9 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/phys/__pycache__/Phys_Studio_LongRange.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/phys/__pycache__/Phys_Studio_LongRange.cpython-310.pyc index 797a6711a2defc7feeeeacde1605599c3d30651f..12cdfab936bfbd7a0f24ab5838eff3586c80ac1a 100644 GIT binary patch delta 20 ZcmeBS>0#l{=jG*M0D?fL^BcJtnE)v(1K0#l{=jG*M00OHu?i;xonE)tW1FHZ4 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/phys/__pycache__/Phys_Studio_MBus.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/phys/__pycache__/Phys_Studio_MBus.cpython-310.pyc index 5b26fc740d2259968ed1a4fcadb6a413ea1f1366..a0bd6a039c106444ac732ae1191833c724fa50a4 100644 GIT binary patch delta 20 acmZo+X<^~c=jG*M0D?fL^BcK;G6Dc8>IBCC delta 20 acmZo+X<^~c=jG*M00OHu?i;y(G6Dc89R!j9 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/phys/__pycache__/Phys_Studio_Sidewalk.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/phys/__pycache__/Phys_Studio_Sidewalk.cpython-310.pyc index 211367cddb7963f178b29295b2c0a6e380ad3d84..99e8af87c892d61829845b61549aa73a5a166df4 100644 GIT binary patch delta 20 ZcmeBU>0{x}=jG*M0D?fL^BcLDnE)w!1Lgn# delta 20 ZcmeBU>0{x}=jG*M00OHu?i;z8nE)uR1F--A diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/phys/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/phys/__pycache__/__init__.cpython-310.pyc index 8bb778cb0af30edb8ad9d5a9d081fef325326f2f..4e41656b304e1496b0e6a78ffa819c3a13cf6b1c 100644 GIT binary patch delta 20 ZcmZo=Ze`}q=jG*M0D?fL^BcLV7y&5m1V{h? delta 20 ZcmZo=Ze`}q=jG*M00OHu?i;zQ7y&3D1QP%N diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/phys/__pycache__/phys_studio_wisun_fan_1_0.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/phys/__pycache__/phys_studio_wisun_fan_1_0.cpython-310.pyc index d7e3b22992019e00ada73938f906116680bf63de..3b4f022ee4fbaaf80201168fe470ae71601fd12b 100644 GIT binary patch delta 20 acmbQiGJ}OXpO=@50SE$}&Tr)AWdZ;z3j_oJ delta 20 acmbQiGJ}OXpO=@50SK(txNqd delta 20 acmX@jdYY9xpO=@50SK(txNqb>zyts@S_J9< diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/phys/__pycache__/phys_studio_wisun_fan_1_1_virtual.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/phys/__pycache__/phys_studio_wisun_fan_1_1_virtual.cpython-310.pyc index 5513406c4a961882e212d1a01d77873a90afb77f..d59a5ca9567979ae7174939024287aebdf4b5b32 100644 GIT binary patch delta 20 acmZ3+x{Q@OpO=@50SE$}&Tr(N%>)20Uj(oK delta 20 acmZ3+x{Q@OpO=@50SK(txNqd1%>)1~k_3AI diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/phys/__pycache__/phys_studio_wisun_han.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/phys/__pycache__/phys_studio_wisun_han.cpython-310.pyc index c0f35e61c31d683cc0ddf5fdb62a2305fd84b352..212b01a441dbb415beb0d32403a2d35ed1387a31 100644 GIT binary patch delta 20 acmbQhGJ%CVpO=@50SE$}&Tr&qWdZ;x%LD8H delta 20 acmbQhGJ%CVpO=@50SK(txNqcUWdZ;w{sXrF diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/profiles/__pycache__/.nfs000000002ed7f4580005a6b4 b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/profiles/__pycache__/.nfs000000002ed7f4580005a6b4 deleted file mode 100644 index 0afa5cc7c74ef7ad0f21b2ddb5ebf54ed524e1a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 568 zcmaKpy-ve05XbGLh^T5e9ssd*i6z(&f^OYd7?8T0Ozfm4@dtJy)EOQIB%UZMEW82} z=Y-FtC;99}?VDJ3f+5|KUC@T^pdVT3Z9Qkd1ANSo+r}21^`ahE9?-6$G&q zvB_?p=DyNn1Nt7e< Xe}x%W8Rq)zY}D~Qe$UW-Mh?sa#(~rpO=@50SE$}&Tr(l-~s?N3k0nI delta 20 acmX>sa#(~rpO=@50SK(txNqdP-~s?MJ_L9G diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/profiles/__pycache__/Profile_Connect.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/profiles/__pycache__/Profile_Connect.cpython-310.pyc index 2618b11f0cbd8896b3395ab353d157ab10f5c7cc..ef6a95234d9c28203d77768d5049be0073987140 100644 GIT binary patch delta 20 acmdljvs;EcpO=@50SE$}&Tr&4-~#|N?*yp; delta 20 acmdljvs;EcpO=@50SK(txNqb(-~#|NA_Q~* diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/profiles/__pycache__/Profile_IEEE802154_BPSK.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/profiles/__pycache__/Profile_IEEE802154_BPSK.cpython-310.pyc index 1627dc8e23e19aff8f3600879f0e18c17904c651..729d86fe7047471cfb67450bfc45e491d5652356 100644 GIT binary patch delta 20 ZcmeC>?d9dp=jG*M0D?fL^BcLF*Z?b=1bF}e delta 20 ZcmeC>?d9dp=jG*M00OHu?i;zA*Z?Zd1VjJ; diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/profiles/__pycache__/Profile_IEEE802154_OQPSK.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/profiles/__pycache__/Profile_IEEE802154_OQPSK.cpython-310.pyc index 858930afc94e025f0032e204dddf934f6d2cc3c3..7b043fe35783f3f2873dbcf357f00d7543442903 100644 GIT binary patch delta 20 acmcc4d!3g%pO=@50SInfdAX7M3>yGG$_9!6 delta 20 acmcc4d!3g%pO=@50SK(txNqb>!v+90UIiim diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/profiles/__pycache__/Profile_LongRange.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/profiles/__pycache__/Profile_LongRange.cpython-310.pyc index 1c0ce566c9e3ea81645dfc9e9f0b0164b0c77556..cd31c61beaa2205d3954af2b2c09ff6cd610b154 100644 GIT binary patch delta 20 acmX@eeUO_wpO=@50SE$}&Tr)2#tHy4as?0o delta 20 acmX@eeUO_wpO=@50SK(txNqd%#tHy3r3Bjm diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/profiles/__pycache__/Profile_Mbus.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/profiles/__pycache__/Profile_Mbus.cpython-310.pyc index e54cb40a28a884421869111ebd8f46b8dcb90e67..2ad14952f177b16ba3b95f83cd4c923f6d005991 100644 GIT binary patch delta 20 acmdnSwT+8ApO=@50SE$}&Tr(_W(5E+mIQ48 delta 20 acmdnSwT+8ApO=@50SK(txNqdvW(5E*$pkn6 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/profiles/__pycache__/Profile_Sigfox_TX.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/profiles/__pycache__/Profile_Sigfox_TX.cpython-310.pyc index 7ad2f26f5528d4f86fbbd4863ddd3a1689f1ea05..9c39214c0c10aedfba0371b99409d40dacdcc0ef 100644 GIT binary patch delta 20 acmdnQxrviIpO=@50SE$}&Tr&i&H?~1(FEQA delta 20 acmdnQxrviIpO=@50SK(txNqcM&H?~11O%x7 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/profiles/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/profiles/__pycache__/__init__.cpython-310.pyc index 964f2393aa5bbd7581c63e6121407de25cdb91a8..a5ef71770acf9854b0d07f3f11b9ed93080cc6ef 100644 GIT binary patch delta 20 ZcmeBV?quf9=jG*M0D?fL^BcMA7y&7c1XKV3 delta 20 ZcmeBV?quf9=jG*M00OHu?i;!57y&531RnqZ diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/profiles/__pycache__/frame_profile_inputs_common.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/profiles/__pycache__/frame_profile_inputs_common.cpython-310.pyc index 0afa5cc7c74ef7ad0f21b2ddb5ebf54ed524e1a7..591843d98fc0ca213dbda3e55a88843532892a3e 100644 GIT binary patch delta 20 acmdnNvV(;?pO=@50SE$}&Tr(_WdZ;&3j|~U delta 20 acmdnNvV(;?pO=@50SK(txNqdvWdZ;%J_IiS diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/profiles/__pycache__/profile_mbus_modes.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/profiles/__pycache__/profile_mbus_modes.cpython-310.pyc index 0efd5016a0ec1c9a7731725b80861aa9d7ddfd52..b9ccb399ded7b89d5b3cb7b7bcdcd2d2da845f65 100644 GIT binary patch delta 20 ZcmeBW>1E;0=jG*M0D?fL^BcLDm;fnL1LFVy delta 20 ZcmeBW>1E;0=jG*M00OHu?i;z8m;fk-1Fir7 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/profiles/__pycache__/profile_sidewalk.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/profiles/__pycache__/profile_sidewalk.cpython-310.pyc index be0d98ecd387f45c5ec821680a6dfbeb0393e56c..ae068e464fa6f9a800ab7fba954cbf12ec10780e 100644 GIT binary patch delta 20 ZcmZqTZQ|w5=jG*M0D?fL^BcL#*#Ify1Xut7 delta 20 ZcmZqTZQ|w5=jG*M00OHu?i;zw*#IdP1S0?d diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/profiles/__pycache__/profile_wisun_fan_1_0.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/profiles/__pycache__/profile_wisun_fan_1_0.cpython-310.pyc index db1817aa4d198eb71efee61cd4fc68da2fbe21ee..44fbd9fe36f981755aac963d510dd2358d9c2b82 100644 GIT binary patch delta 20 acmbQuJ)4_5pO=@50SE$}&Tr(NzzP5@f&`ub delta 20 acmbQuJ)4_5pO=@50SK(txNqd1zzP5?wFGGZ diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/profiles/__pycache__/profile_wisun_fan_1_1.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/profiles/__pycache__/profile_wisun_fan_1_1.cpython-310.pyc index 78dc9061049f20d5401b4a203e34653b088f4613..758d2cda822d734803b891215097504e63564c23 100644 GIT binary patch delta 20 acmZ3^y_}mnpO=@50SE$}&Tr(N!wLW|Vg$kf delta 20 acmZ3^y_}mnpO=@50SK(txNqd1!wLW{l?06d diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/profiles/__pycache__/profile_wisun_han.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/profiles/__pycache__/profile_wisun_han.cpython-310.pyc index 38f040bc1b520c4daa341d0988cecd7ec8a6e2db..3445f009e19b08a85bb94b712b6dd8e9b38ab662 100644 GIT binary patch delta 20 acmbQtJ(-(3pO=@50SE$}&Tr)IUzO#}!4 delta 20 acmbQnF^z*epO=@50SK(txNqdyfCJM2 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/targets/__pycache__/Target_IC.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/targets/__pycache__/Target_IC.cpython-310.pyc index d2cf60e88fb3bf8ea8820f9778be39ea6741e377..74df7cee3e84745321550c09396c2713f429268f 100644 GIT binary patch delta 20 acmeBV>ty53=jG*M0D?fL^BcMUF#!N7`vltn delta 20 acmeBV>ty53=jG*M00OHu?i;!PF#!N7E(E3k diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/targets/__pycache__/Target_Sim.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/targets/__pycache__/Target_Sim.cpython-310.pyc index c8294d90a4a0d19e43080ca10c5fba8e01887ac5..cd2a25d8100b4472ff47d6989d114368e773293d 100644 GIT binary patch delta 20 acmaE3`NonvpO=@50SE$}&Tr&?C<6dMxdsFP delta 20 acmaE3`NonvpO=@50SK(txNqcsC<6dL>;=yN diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/targets/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/margay/targets/__pycache__/__init__.cpython-310.pyc index a699cfb2d54e05d8ae28e7d9b1ee925e591b1021..d978b04c18a2a4e13aa0ceeb26262184c75f10ce 100644 GIT binary patch delta 20 ZcmeBR?qKH5=jG*M0D?fL^BcKq838F~1W^D0 delta 20 ZcmeBR?qKH5=jG*M00OHu?i;yl838Dn1RMYW diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/nerio/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/nerio/__pycache__/__init__.cpython-310.pyc index 1e54035858a6e45b4ba27c524ec7a5b461f62b4d..747bd8d388aff3f3ce0ad02b28b753a56e07dfe5 100644 GIT binary patch delta 20 acmbQjG=+&fpO=@50SE$}&Tr)AWCQ>zA_MaP delta 20 acmbQjG=+&fpO=@50SK(txNqdyRRg{N diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/nerio/calculators/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/nerio/calculators/__pycache__/__init__.cpython-310.pyc index 09f6c27615c760b7454136d7c123c49ee6703f75..0c66f5444e5ee0240930a7300c52b48eec81a129 100644 GIT binary patch delta 20 ZcmeBX?q=rB=jG*M0D?fL^BcJv7y&8X1X=(9 delta 20 ZcmeBX?q=rB=jG*M00OHu?i;xq7y&5}1SJ3f diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/nerio/calculators/__pycache__/calc_global.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/nerio/calculators/__pycache__/calc_global.cpython-310.pyc index 361a39e1c25c24e354f67164b4bbd736611f0e87..800270f690188318310d5f95b4cc093228d774b0 100644 GIT binary patch delta 20 acmca4bxDdlpO=@50SInfdAX6>ofiN;-3A;0 delta 20 acmca4bxDdlpO=@50SK(txNqck=LG;ZaRjsg diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/nerio/calculators/__pycache__/calc_rail.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/nerio/calculators/__pycache__/calc_rail.cpython-310.pyc index 42a7e23e8ed2b03c911e62ec826eec364ee5d932..f857c811d0aa25ac8acf1b46bcd82bc02778376d 100644 GIT binary patch delta 20 acmaFI{EnGBpO=@50SE$}&Tr&?%m@HERt19q delta 20 acmaFI{EnGBpO=@50SK(txNqcs%m@HDi3Lso diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/nerio/calculators/__pycache__/calc_shaping.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/nerio/calculators/__pycache__/calc_shaping.cpython-310.pyc index 69e2007a8db72fe7a5078034b733f6df68a8cda7..7bd0fb69f2735767241ec8c8a7ef5b001c1c25c4 100644 GIT binary patch delta 20 acmX>ibwr9gpO=@50SE$}&Tr(libwr9gpO=@50SK(txNqdPrUn2$js>s) diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/nixi/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/nixi/__pycache__/__init__.cpython-310.pyc index 5b26e9190c823c754323bea972d12de33e2d39b0..9e776d9a8a1c1b4e9f31dabc2dbee034dcade597 100644 GIT binary patch delta 20 acmbQlG>M5jpO=@50SE$}&Tr&qX9NH#(gW=P delta 20 acmbQlG>M5jpO=@50SK(txNqcUX9NH#1p~MM diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/nixi/calculators/__pycache__/.nfs000000002ed7f19000058df5 b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/nixi/calculators/__pycache__/.nfs000000002ed7f19000058df5 deleted file mode 100644 index b8fa598ce35407e65cbd968f0b09cc07b8b10461..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 502 zcmY+Au};G<5J2suh^R^jBtC$(ODvTQAym|%3t~Y6DU0RCPU|MIgPi~!5qt%IfYdL_ z%ET`)adrfRlkR+XzI*nao=nCF+nDQH4{C(Gu~1hp&i- z0>6Z5z(+S|dhiKVXo|adae1|%x3UptB{P>C3Wi_~YGW`0rI;fCU;qT&(Xf*$`6REW zVHZ)VSS2X!#*|i?x25xAO7B}%_BZdy90JapuQ#&Ml_0BDmRzW{R6-cC6{?WRl1FU{ zTeD1%rN|0R?|$R80#l{=jG*M0D?fL^BcJtnE)v(1K0#l{=jG*M00OHu?i;xonE)tW1FHZ4 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/nixi/calculators/__pycache__/calc_dsa.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/nixi/calculators/__pycache__/calc_dsa.cpython-310.pyc index 8e3806cbcc9f6770f59b9152b9faacca825af090..595cbb03c2d035b026c111c94ab8e51fa36145d2 100644 GIT binary patch delta 20 acmaFH{EV49pO=@50SE$}&Tr(t%?JQE76oen delta 20 acmaFH{EV49pO=@50SK(txNqdX%?JQDNd-0l diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/nixi/calculators/__pycache__/calc_freq_offset_comp.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/nixi/calculators/__pycache__/calc_freq_offset_comp.cpython-310.pyc index d60b208861941407570551cd372b18e3d0cc2540..5b6afb3dc75080ae91f0e096c933bb2765e198ec 100644 GIT binary patch delta 20 acmZ3$vVes9z}- delta 38 rcmezE{@a~9pO=@50SK(txNqcUQ)0ZeSx8BXk!>qbsA$_{C*_?0(1{AQ diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/nixi/calculators/__pycache__/calc_rail.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/nixi/calculators/__pycache__/calc_rail.cpython-310.pyc index 558975f98e56a3b2e9f605e8b3cd401f5dbd6797..267a3d5ab8323735455ba4c505cde5ffe0000ab1 100644 GIT binary patch delta 20 acmaFE{Dzr3pO=@50SE$}&Tr&?$Or&A1_gZp delta 20 acmaFE{Dzr3pO=@50SK(txNqcs$Or&9IR!`n diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/nixi/calculators/__pycache__/calc_shaping.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/nixi/calculators/__pycache__/calc_shaping.cpython-310.pyc index ecf7c62bb29f06a05618bed883b26bff9f6ba593..fd427c2eb95116bb01b1b2bf968e91cb8cc84235 100644 GIT binary patch delta 20 acmeyv{D+x4pO=@50SE$}&Tr)Y$Or&Ch6Swv delta 20 acmeyv{D+x4pO=@50SK(txNqeC$Or&BxdnIt diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/nixi/calculators/__pycache__/calc_synth.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/nixi/calculators/__pycache__/calc_synth.cpython-310.pyc index 1dd19856233fc2155be8553378b7a6e3eb06e786..90dfc064c39e74f1e0fdd074978cd3c9c583c835 100644 GIT binary patch delta 20 acmeyu{Dql2pO=@50SE$}&Tr&?$p`>CMg^4s delta 20 acmeyu{Dql2pO=@50SK(txNqcs$p`>Bc?Dnq diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/nixi/calculators/__pycache__/calc_viterbi.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/nixi/calculators/__pycache__/calc_viterbi.cpython-310.pyc index b8fa598ce35407e65cbd968f0b09cc07b8b10461..c98558edb09a9017baed1d30b09d259d3261f6dd 100644 GIT binary patch delta 20 acmeyy{EeAApO=@50SE$}&Tr&?%?JQGmIa#t delta 20 acmeyy{EeAApO=@50SK(txNqcs%?JQF$pvNr diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/nixi/phys/__pycache__/Phys_connect.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/nixi/phys/__pycache__/Phys_connect.cpython-310.pyc index 6dd9b65227fade659f84d59426f12a904c439368..6c889b88a0f5fd14137dafc543d13db5bd2b0f12 100644 GIT binary patch delta 20 acmaFC{DPS~pO=@50SE$}&Tr(t%Lo8CW(9Eo delta 20 acmaFC{DPS~pO=@50SK(txNqdX%Lo8BnFTxm diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/nixi/phys/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/nixi/phys/__pycache__/__init__.cpython-310.pyc index b0927dcd50e8794158a3ae23fd04b96c92820f81..a48add0082a0fb5ae6fa823fc8fbf86f513df5cd 100644 GIT binary patch delta 20 ZcmZo>Zf54r=jG*M0D?fL^BcJ<7y&4r1VR7+ delta 20 ZcmZo>Zf54r=jG*M00OHu?i;x)7y&2I1PuTH diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/nixi/profiles/__pycache__/Profile_LongRange.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/nixi/profiles/__pycache__/Profile_LongRange.cpython-310.pyc index ac79eb3745a115632f2de9630d41d75760028986..ac2114e70bb40b0f1053653ef4d645280fd266e0 100644 GIT binary patch delta 20 acmcc1eV3a%pO=@50SE$}&Tr(t#0mg6(gkDy delta 20 acmcc1eV3a%pO=@50SK(txNqdX#0mg61qCkv diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/nixi/profiles/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/nixi/profiles/__pycache__/__init__.cpython-310.pyc index ab858a1630968476db116368952b0f0d92efb569..f86073b040903fe8a9cce9857aa682e68d97ccc6 100644 GIT binary patch delta 20 ZcmZo?ZfEAs=jG*M0D?fL^BcKq7y&6h1Wo_| delta 20 ZcmZo?ZfEAs=jG*M00OHu?i;yl7y&481Q`GT diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/__pycache__/__init__.cpython-310.pyc index 4587f91dd1fdda992b35d90956ef7efa4a44dbed..52daede672dbc1221dd22ba14761a1f78c8eb31c 100644 GIT binary patch delta 20 acmbQnG>wTnpO=@50SE$}&Tr)AW&{8#as&AQ delta 20 acmbQnG>wTnpO=@50SK(txNqdO>f*b5G6(KTC1*8*KyGpMT??E4hysv;9QELD3Y#Yqkyw5oB%C!A!L#AYF8^M zBPssC`qcc2p4wx9{vus_%3tWIGt_!*$D0t~Xeg3H&U=rOudjOy+jsvQ#M>@o|I*-Q zlQ?*cz5D`=W}2sL#skjT0n?5aubCEx|1JVY%jay+d4sFifH#}NCx=6|58=$HBFw6> zfrzGVHU|ffv6o+?F)ZMkVHmER*DMfPXo+8`JGzVCj$YF)e!IGd$9T<0H{$1!N%JbA za953d>O<`1muNJf^9h@9g$GzqEIo-H!=TP+f6!^2(fgpu(NOf=2augmdCsi%IChE<%y%!g1Xxo={4w5w)y zS|!E!Tt#^nCnq(8RSte}Zr8N`{33*^^jpmQC`_XoBjr$9U&X}OPI2CRN>i%H%Q87m zjf(5427`DMbycnrs+55zJnnJnTzqqfj-B`HzeQCC<1DHA76&a+6X(*IJJ8qsQec;v z)DC*irJRc^0_W0tR|JaD3uF*TvCZ}|vWNIYbmut9lFFzQF|Niy2R5HASTtvr;Iclp znV&{kg;X}5Us1Vw9#83F6d)kr12TOw>tqO**7VR@;J7->1}-SccpWJu?;?_td*U8{ zC!VY0+`>~}Jc7VV{{cFPo-=2E60UrLnEvH(e8^Vtz;S*c8c%^aQKx_?S@?p@{iC58 zzBoEmhrc}gdGG1oPtOP9I_IF57NlgIlyB$ziRC@2AXUpX6#Xkasib>Jxg{ zPFySpD2RI2xQM}%9}l1I!H2jp*dkb-S&Vko(Qk+sVI;3Hf=ycH!dVQ_3Y_jQaoWYh z+BH-MODe~n+;B(@Th7J9_aJq>b2M0MT%|H9w+iW0m_&`wRyBR4Ue;mS&Hx36dt^v< z@G+Td!CH@03nU_XC-ycja~-$m-tYJ9|It7MySHk}j;$$ZZJoC-e^FH0Dqx=$&?C12 UR-M?m-?vx(foQQp>9Z~QKiu}V&j0`b diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/__pycache__/__init__.cpython-310.pyc index fdcd379332390cdf3149648a23ddb69bc11c0966..6661677bc373d10a1cc1ed6848a0dafeea3f1d3f 100644 GIT binary patch delta 20 ZcmeBS?qTN6=jG*M0D?fL^BcJv838H=1YH0C delta 20 ZcmeBS?qTN6=jG*M00OHu?i;xq838Fd1SkLi diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/__pycache__/calc_agc.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/__pycache__/calc_agc.cpython-310.pyc index d9764cde720e731645c02823f47ff562c7daf7cc..72d69317fe74bb526bed834ff3315fae4f223ba5 100644 GIT binary patch delta 22 ccmca~gz?f5M(%uGUM>b8xN+s>MsD{c09*qH#{d8T delta 22 ccmca~gz?f5M(%uGUM>b8uv+83k=s2908^I+UjP6A diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/__pycache__/calc_ber.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/__pycache__/calc_ber.cpython-310.pyc index 434e5d30ee92e47607ba648bfd931809e44df814..0420f12c9f69136e5881f0a5c09a7e15a9aae17a 100644 GIT binary patch delta 20 acmZ3)wup^8pO=@50SE$}&Tr%vX9fT)_%f$c$H?F))^V-NO%g<=CS)2b^3X=%KWd83Go3%@BvvM&56*vQN zam3_{no5%$M1-Ykm}=NW7*ZH(m_-b^z$BAX5MU delta 130 zcmey-%F@`z!kf>_%f$c$R%_hTd^hsS@-rH3*5-ef!YI92sN@SP7Yk6%8HkHxCSTN4 zn(QDVrpHvnCc==ySi>yBP{RVmtRf8349$$S>^1B)j9Cm>9Pvyk48aUVw}IL;IVbC% bmzw;4Gb>v;kXvLlc~Vslqs-?2RX^JS_b?&i diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/__pycache__/calc_diversity.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/__pycache__/calc_diversity.cpython-310.pyc index 111073b857c0629c1ad29fe8c78c3371ef47a306..1eccade1e35bc48e258bac2023a211fa8e435bb9 100644 GIT binary patch delta 20 ZcmeCR?zQI5=jG*M0D?fL^BcLFWC1cN1nd9+ delta 20 ZcmeCR?zQI5=jG*M00OHu?i;zAWC1Z<1h)VH diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/__pycache__/calc_dsa.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/__pycache__/calc_dsa.cpython-310.pyc index 33620117ca7e686f5abfc7db41a8eacdf2d99799..3be25db292f45cda1579d09cd42af190ae0d55cb 100644 GIT binary patch delta 20 acmca@a@&MEpO=@50SE$}&Tr%nkOBZaTLnb` delta 20 acmca@a@&MEpO=@50SK(txNqbRkOBZZjs*|^ diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/__pycache__/calc_fec.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/__pycache__/calc_fec.cpython-310.pyc index d65c73eb238c0340cfa84fdb22028604b881710c..7f7f2d21c106e9c4ebe1890dab573d62995fadd8 100644 GIT binary patch delta 243 zcmbQEI7g8?pO=@50SE$}&Tr&?$j*3c^IP^yOpLcCAK+2|k`K95!EDjVGThuux0EIy z)SA4A u_lLM6kgv&6qymx?1re$sLTmCyJ_n$RPkdVhv_S$6Ai^0$xJ=&0{|o?{(MYcV delta 243 zcmbQEI7g8?pO=@50SK(txNqcs$j%tG`7Qe;CdR1A2e=e~ diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/__pycache__/calc_frame.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/__pycache__/calc_frame.cpython-310.pyc index 8089fbd8308d1bd5577417413793f6c2b4fc525d..c337fc2c17214fffd0f542896fe34a1bf2207728 100644 GIT binary patch delta 20 acmbQwJD-<3pO=@50SE$}&Tr(N!Ug~?YXq+V delta 20 acmbQwJD-<3pO=@50SK(txNqd1!Ug~>o&F delta 20 acmZ3HvLb~$pO=@50SK(txNqc^H39%SZUpZD diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/__pycache__/calc_global.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/__pycache__/calc_global.cpython-310.pyc index 92221f9aa66c1a778c4e3544b93d00522edc41cc..3a8e9d9deb58a4df95087a10c8c7a72e2d32103e 100644 GIT binary patch delta 1167 zcmccog7NYTM(%uGUM>b8xN+s>M(&sLBDVxnQp++EOEUBG;!E;#;tL9LZ*AsK$kky~ z++60fmD#`+sJKWKL@N`;A=>rKlkm~{`uZwkI^q%}VHXFBU1E6XpkZPaJjd96%oMt%rUwqW$_4%xu zV-v&}aT{m^G*Ay@p#S8?IN8biL9CN^B&q;|^lqXG?l?99>au_bsR}qq9h206+A@+< zaa(2z)MgFVHhDvmD^T^fBz-xYA!7zqZ8tf$NNI9v@*CWtY(6GTIOCfBD(O}03lIUyXGO*!!guo1 zBK0ss5EB%gMWEOz0)=%ECb8uv+83k^7~*NR(hoYFTDtNoIatd`W&zd_h5O)MgHaTpdRF z&1F7YnGLLgii?y%1T%=R0TL^jitIpadl2CaCtN@*v&qo`;f$`6HwUO{xPb)R;qqXW zU`6IYv3ra_Ne>{S%5-vLio|4zz>88iH5hJY4&r4N#VWs9HB^@gw^ohGIpOg@2b~GW z;~-6-JD8YY4zdJ0=&`5by%R&&i)-vvI4|1FBX6srK637?+I4Y5J4@#YZvvY>rHj zV#IBn0nj)-ka50~8{=dr>j$w;-jS#R4A8rYD!60V2&l^f9-u1V0Ch}K18U1iQpIhV zF;JT|Sli?cNv=TE-;(szaE6NsP_-S*lF13FQj=4Y-{1~w)5+N>D^wJKnvl}75{QeQ zMmL+MPUFO$+9p5BI}41j4f)}?J#PUtvlZkne;}g@;(7N1HDFNZ6=*Ty_Ky`%c_&Dp zFOV_0K1FKsjY3smbpI<1#I4B^q!y&f3&a2gLVuCDygZOoWCkKYd9BD0M0kS;4G^I@ z`F4@I4=9d`Kp|cP3dkZ;5D^3-fm5N# rTqZ{ppEf`g1@NqXi^C>2KczG$)ee~58Hzzg4-W$mBL|}ZqX-iKDIe*} diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/__pycache__/calc_ircal.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/__pycache__/calc_ircal.cpython-310.pyc index 5606312069b9030cbfbfaa52c1efd39fe0c14880..60617aba6734e1855b15d2b57c5fa04e3dd6ace3 100644 GIT binary patch delta 20 acmX>rd{&q{pO=@50SE$}&Tr&C#0da4b_GZP delta 20 acmX>rd{&q{pO=@50SK(txNqb>#0da3sRa`N diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/__pycache__/calc_legacy_vars.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/__pycache__/calc_legacy_vars.cpython-310.pyc index 084e89d34cadbf77c472a71f7f611ee557219302..70cac21cbac51fe12400c8de03556a99c1719ee6 100644 GIT binary patch delta 20 acmbQtGMR-tpO=@50SE$}&Tr)AU;+RtLj&~y delta 20 acmbQtGMR-tpO=@50SK(txNqdSF+iZwVs+ diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/__pycache__/calc_modulator.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/__pycache__/calc_modulator.cpython-310.pyc index 701067c5d3a89a9cb20a123b40a7027f1b3cd830..e71670933559aa917a87c9e29735fa4a55fee9ba 100644 GIT binary patch delta 162 zcmccbcHfOVpO=@50SE$}&Tr(tC?XWapOjdd5?_#76klAKo0OjuwfUV0I}=+GP)$+s z=HFsIjEp6lJtVd;sYbE*ItCcr0+EJbwh@?Z3}%~v*``sG6{S^y8r-E>Sb&s|{B}mh h_Q@=YH{=UJ29|<|auCr7BAP%%D~Raa{97@F5de)ME=~Xd delta 162 zcmccbcHfOVpO=@50SK(txNqdXC?a%=KPj;^CB7iFD89HdHz_~o*5-F2>`ZJWKs80B zn}3V>Ffx{H_K?`Zq8;6%(yBlW?$RtQK*~pcJ0oN7 gWERC6^2Hzn%RxjXh-e299U!6`MD%a|t(d|H0GZ}7M*si- diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/__pycache__/calc_pro2_demod.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/__pycache__/calc_pro2_demod.cpython-310.pyc index 82dc3bb0737b7337a258ff7eb0d0571180785252..654d868eed5ae4b6302ddfe6831b1a9bc530cdb6 100644 GIT binary patch delta 3762 zcmZwJd301)9S87v1Tx8F0g{=dZ6KLUCds@kkc1E^1hPX`vVoNc;pNTbB{L?oaAzO^ zttoo6t*BUU#j3T2qQ%zI7GD>um9|>kXr;Cuv2%{%QHza=R4cUBp4Q*@zHHFWAD?sQ zF2B3Hd+&Sa&q(LbNGaj8G@FHfy^Uv2rW{R{6yrp4SwfqKvRDZy1!bTdtOBVZ4Xg&~ zgktwc)S?U#&!&Z9LxFw4@Q}`AKAdqvsxj=D zr=>N`sNV^?h)MiT!#-Fk;T2tn##jocF^E3IyJgaSP3<`fY&z+)JBmRnL;D8=q zA*$3n>0$DAXE{0HEGDO%CFB{WOkNggXMP!_yYh=t6SO#Cr-R>_@1>$Q z^Lxlv7n(3vxg_%`my^=Zy4>UimorI8Y>34)-zb+{_N4ya?Jb>6tqLzGK!<$=qvWZA zT=Mq?8_66uTGt8(+y#_A=tiXbglF9Ol)fm^8HI(EURQ`XgM}XQ_CgHy@xn^-wL(lQ zs|e$&FG3xEQ4x7qq@NI;7g~!;)0C8ONRRr%F;yG(@n?!0w*HQ`o}RAemTd~(U5p^N z70c<0jf&M_uNoN}i?8Gj#hLu2;$|w$_MrcIPZ#+GPX`(IjMI|QrmKnsv3vMYkApM0 zl#1?=F_653&y+g5%=o&rfaU~<-_l1KIbwmq<)ansxQlTuP*@&bniu90@d36pQ@j%$z?t^?; zWwqqx0Z#$4jFW5zHT_6mqwxL#GAr6l|4kcu7@YqTmNM)x<&Y0--o z!dgu!39TSFWT<|<6r{p2M0h9guutZ$HC3u6JQeD0uF*tf=_`@gU^6l!ENAn zF!@<{2z(BF9vlW=1Oaddhyp+O65!xY@MUlWdtWuXzX zqe$Khj)A{`Z-H-v`@pN=dsegK{VKLj5Iqu@v26nGju1D*vx20sDMfz#lpL_DXfySb%HZEWgm z=3RCxudDTx{0yZ(2fqNn1ZTkW;05q2aMrvk>x}zrBhrn}t_}|cE6f)P#>95=bM>ok5N*P<)!7xK zy1;T8SFW+KAzLa%N9-~v01_eFKDbLh*|@S&gntuN-vUcf-@0Jl*Yx?eg}=~vEK?l6 z1T$3E8QcQm{)t)|rCMgSN&i}r7 zP5<1Y#k18BdaXwT!N{0ScWxvY(PA`;(1O==8e$|b=vJ&oGA$~z0W+AfXG>CoWaS6i zcS$MyT>Ej?Khe%=_Khbyzq^=%zi(OiREK>DiWK9?4u>Qa^Rt}}dUd|qS-Ea4s^owS z;;R1b=+yzTh-ly6Mw2Abbv)ZVFx&cCn#7At?P=|AYUpe+ zS3hwy8dx*#HG66|`nKjs884&t5_8~UU&?&4yF>~b4|JzWN#d!~X5y!Mu5*jMD^7)Y zpkg1rjzJFsaTs#MM@Cxj%0#msujsv0C)UQ?k@1Y67V`ON^=aSJ8wh*BT&mTGAsUIe z>+n|u_wwC+WvK;Nftfn|NZ*C}cTs^dXZLzMoj%=s+L%7OIAXN+tD}m5Vx7G_y!$%- zoBpCjmn_CR{Wa2BG0K_U<3qFg=}zIVxS;3fET(IIQytjeL{a$D+h3=L`pAc~D@Dsn zG!lKaQflE=jwcV(H!kh|FcV+2taav+N#x6Ky1TZNW<}qC;;t#fw66)*c1<`|j!L4t zw%I_A`7dd0qC0`gS5qY}?aJkyH`#dIM~;;yQO5K+3=+p^x)!{L&@RfC7KrIeK6eh>!1wK#+3o!Bj%@l$IljXynGa3eQkfVt zZj0HgYB{CNnTmxL??hb5<_rHKQva~_rT>99h5u!97IDAtQIxAMtJv8X;KVf z12RPK7>u0ufxU~x6hpXX8Rw^1jW}Xd@4Jj;6wQTDk|IIPw`V+H93Heu>;Hqn&&__} zkuX2}#HhvOMAx`%nMF*3zpQOe6i0aj&-1=A*@B|=U=z?l1E>ctf;#Xo@CNuV_#b!& zBp_@mNC6q(dawdGfeW~S2b6$Sph9wyHAt=p8^I<}2kLi3Yo{`fgPl&T%JeyvPMu<7hpA4jI-O4S{Lc#{ z#AYVHIeYK9=bU@qIrrWh*Tju$A~)%BITz92wx@Sq$~~VWEc0T{`V8TdH}Y22-AfZj z9^eA%fP8{gG^`$p7;0Km(#dhf&?XdJj~flL%vF)K30jS2x9caO-3#Ts5hz5oqe?uM zF#HRK)G4C@LzzbMNFw6PHr8VOI-nEilI=?e#CG#*OMkw&fbBWeL^={X8c#+v!!Jh) zE{ZK?QQ=kL>wx|qpqF4}lZKK$rfUb5>d}-Q8`CI=w33cSWL|N(!#DuVgK~XwwP-f? z7FUYRFwbi_N}~@y`+*R_$_g8)@#Lhj1tWvN5D<~itf*ebzTwuG0MgP^TPVWvgB3sW zq-emGWkfK}9yCZJz$g%vk2S3nt>&90w;Z{5w5)sN2~VNCwa($33qgLgt|HfR=+U}V z?6_vFW|bBdpuQnmQ#-^sj#7>v~l?vcd>lj zGfY$e_Vf{Vm0^idRxAAST$!8X7s@J#H_P1FR#qULR>Nabloe$U^zRFHx9zf|zZ?!j z%GVNKFW*5dt-$Ig=3qrR$tNmc=?Uhw3J=M*ST3lnBzbEk>>RH25>Hhk*q>I` z6W^}HwpLUju9hn3M60TZXIQ?%yuox-*SM_QWI{_tlW9dA3Cmwr6*~vIcK7x5vlEN7H<#nQEwN~@=j99sNx#*IG4_O zZ?QCdH8k~Y9|F1RLxAu35VG4JfU;pIMk=jn2^lCV&IyD~1IO(a?QBdIYZbu2zijTl$; z*?N_i>WaE7$Ec>#hn}hD<6uJ&QM ztbUV-$e6cWM(h8)j;p;L?j6)*=rIGq821RmDj~IoO*K|dm^zd_SdLVK&e3gvf*Yy~ z52R(n{8hu0W19OUKCe$EF?$U76z~u*4V(ayfDU{Xco;YdoB~b*Uj)7cJPJGpdk$Y81Mve1b7hmKJXOqL*OFt3~&iBff#TZxB@&2{0#U7 z@I3GW@ZuucnQ;~3uYunHUO~79=_TN0z=yF{AiWCw0Z0JXf!6>F_!HoV^6QXp0M+>U z2BaED>w#L}O&Xgv{(_mefSbTyfwzIb0q+2}fOmoSfPVnvKpgld@Gsy$zz4vGz(>F$ zcv=iB0Wt|zX-{u^ut#Za3$@FhB8O~l^7z7K~?*1EY~7-;#OvOCzi_%2!$o<+;O7nY{mGA-5S6?Zr5a z`H)=OTq11ETl*YlU-M4UQb4O`a3%Wk>|>offV&fSBws{U{;*~!BS|ByDI<}1oqf3= zBx6usZ`rVl*G$}2H+CSRUi@56VXZZH1WH5=92reOIc7*$5;5B+9f zDfAulw!Oe-K**O`FBEY1W!Pr<%Jz5 zm7j{LdMq)jjKs#%nqeOvDrPbQ16{_D6v4tZ!}Ob<5x&fMQE?JFgjpZdh1e~>+u`-F zOWyr1S~7!v_2tgrxO}H$#GiUk`w$m)+xvrv2Oj+i$UByCp z<;&g0bdA2%UB7iRR7!yY!d?Ck!RsI}M6hyGMz}#y!|5aHxDk|ldVafgD_m!@YpcX= zm%X828((Tl->!kSKzER<)yf)6#Wqe3+n&13(4JCJP>9u;cHmr=emULi7Zc_Wdha;1bm%S}A`&P_?*Gm>&*o7L6R`Z1reZHn-gu@$(8Ww`bn2{k}TBuZ^t8=lA`c zKI)G@QBuz<@o2R(-AU5?QnqqN=&?)HpEUSsYjn;YF=_J>dm0}Nm7#H&|2C3fKxVq@3-y7pK4dFykh24}IG^sRh)-;XLOHLXka{sWf zKN=rW2N5$)i`ysFa+2+xa-uKeC!e!Ow6PKD4MOfdxPeM@>R?Q4>%tI+&Y5DXC<^Kx z9^l61)UiQsT-%^59jsdOIjCkWZ1f2j-67=A;QOn45Z&x|m^<-LLL*`(ht7*>4&n0{ zVDAXV=lWRhoJ=NAPlqu0bm){v_RSdX&e6pT7fp86BqzO zzyUx7B0v;)5Eut^03B=`1*Sw9@dU(&fk%K-z!!kifEy29^XYIxEVj1D{z$Fdt)2ZJ DBiM#* diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/__pycache__/calc_radio.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/__pycache__/calc_radio.cpython-310.pyc index 936e08a2e13acc8c7d7bb6c03d6f682c9d2074bf..2beb6c1dd5c222c2e8ec65eb790d3803df17c5e6 100644 GIT binary patch delta 20 acmX>id_id_Jq0=d delta 20 acmeyv@rQ#upO=@50SK(txNqbxWB~v=a0LYb diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/__pycache__/calc_shaping.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/__pycache__/calc_shaping.cpython-310.pyc index 6be875966959d1d9392b232664bd467f5d198c3a..e57f236e25d5d68d91d02c234c227609779cb865 100644 GIT binary patch delta 20 acmaFt|Ja{9pO=@50SInfdAX7MhB^RB69-cO delta 20 acmaFt|Ja{9pO=@50SK(txNqdXp$-5+rv>W( diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/__pycache__/calc_sidewalk.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/__pycache__/calc_sidewalk.cpython-310.pyc index 9ea392ff691335888cf692fce8b28f395fd4082d..36ebb575be42fd124b79e16cc1b998b303483ec8 100644 GIT binary patch delta 20 acmZo*X<*^b=jG*M0D?fL^BcLpG6Dc8N(8$A delta 20 acmZo*X<*^b=jG*M00OHu?i;zkG6Dc7eFTO8 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/__pycache__/calc_sq.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/__pycache__/calc_sq.cpython-310.pyc index a4a7540cce2abd082052e6cb640f682eb33d76fa..d60570e92a65b75de92f3e53aec545328a75bea1 100644 GIT binary patch delta 20 acmdm?zC)cmpO=@50SE$}&Tr&iD+~ZO2n9O; delta 20 acmdm?zC)cmpO=@50SK(txNqcMD+~ZNI|T*+ diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/__pycache__/calc_synth.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/__pycache__/calc_synth.cpython-310.pyc index 485973c2f82c81474f9d8366f3d1425a3c1a40db..3b1d91cd326f5a1e4c62451f482670e3a7344a20 100644 GIT binary patch delta 160 zcmZ2~nQ{GPM(%uGUM>b8xN+s>M()Rfj8U842hL(;=3-=++#jYid0n^(BlqOT;Zqse zCs#&9O@0(EviW($MMg%R%{!xlSs0}!^Tww!N^LHQm*H??VPs$^VgnHzAc7M_@PY_F l5Fr2}1VMxhh>!viS|Gw0M3{gG)6JLC=Q1)%OfJZ@2LS7^D2)IB delta 158 zcmZ2~nQ{GPM(%uGUM>b8uv+83k^6BVl7Yq;^IHvoOj`=8aEdl-^ttFT>%)%E-V_#10}jK?E0w-~$o-AVLsC h2!RM$5FrgBv_XUkh%f~aW}7di&t+tkoLrD;4*-ReCFlSE diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/__pycache__/calc_utilities.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/__pycache__/calc_utilities.cpython-310.pyc index 56f27229b5e4c9bb2b6e71ae32e864ed3d5534c7..987ce8f1365948a663b222aca226a2b0bade292b 100644 GIT binary patch delta 20 acmbOvGf9R!pO=@50SE$}&Tr&q=K}yOhXgJF delta 20 acmbOvGf9R!pO=@50SK(txNqcU=K}yNx&!$D diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/__pycache__/calc_viterbi.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/__pycache__/calc_viterbi.cpython-310.pyc index 6695d13002f278ce165b092b3369dc9d7ce58d13..9516d81bd54a4ec8b36423b9bfc6aaa9fe360e70 100644 GIT binary patch delta 1168 zcmYk*X-r&I6bJC05gss45(*9jMQCJehJoT>pwdxBrWDFRp``tU4I|5tL6!-R8H&X% zalu;JQjWHWhOkr;V;A5WYobZh1ezwcDH1e_1eXMhc1ckXIl7BVs8`JvbII0!bah0|MHm*t`%9?8nK4x|2E@E#bE*i6PK|B#hw9+D3eB(vkZ*&fi( zpx}Kl$w%!OG|1C-kNs^V;v}|k;}qgia2kw(3GfgY5SiI#qJH7XNg#P&&-VSKPB!S$ z#Kr9qa!H+YA=j@3@Ir%l>d_9OUU9(@5k{Y25vB9_L}c(nLAvHgSr7kJutV=fs5uB`0`8woW1Ht+>gzHC|ah02BnmxtNf4dne#)?fu=lG1+;%G(m6xwCW&t#Nj% zA#UBfk3#&}-U(XbXR2JZ%%fHHbdpWgsV~)|t{FTFIzT6Q5gY@@!3n@%0GtI=U{BoXiPjBx% z=jqT04ULcSF^ke`w<=eT||n&!lGbQbANGG#Oa58JY%xh5`5B**AP9?pn$N{!el z@`_^1K@+v|M0^2x`9b`i#E|^TT!ay9Z)|A|G&LI?*rF5oMP0&-N%J7~a$b^yI@n0M zU{wh}vWLOD;61Pwqyn``50@stOh>pr`4JrvyHomBQV-ut>y7O}NtmQIBG}U8_IX>q zL8D)t`bvc+PNz?ixxY9|SIt))4Dqev{FrGh?FIi^5igeHVYUu?m97Rdi-M)Y)x>Fh z$^P@kFOix8n#3Am#3NSKiHOvw(h#MC4!-e9ew14NZ-~p64;RUsEfk}6tVeMSP=}sk z*Os2d@8olBczc(>(d}#Y%fSYM4L*cRXS(XBG|^RdmD>MpXSf(HH4$Cn^JRAGgx#?Q)1R^z5~X2aw57|m_&mIFqJE4L;sH~+xaYt+Ss~*fw|G?(z+PysJ+(dthS!bOb9OqUZU9CpxlNHt%j2$S9 z=eKRK;+IMnY3h%)zy(!hQ7T--x@u6jdKHGM29{n0pUB&hN|yWB#=O+)?@_CMG{pOM z?xGN1-#JP@@axqMy2~F|H_!l^YEloqfx0)rJ`ex~I0TM@_rWo60vrby!8j1$b1(rW u!EJB{%z&@JH((CTgCD`KD{Ru=5dIDxfQR4_cntmmPry^~xA?lIf}R6dNI3xj diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/__pycache__/calc_white.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/__pycache__/calc_white.cpython-310.pyc index ed28f05768268e9cdc987f39069c0557c9dea802..760187491b37b196ffd37d25b408b9d3f657baf6 100644 GIT binary patch delta 20 acmeyy{f(PDpO=@50SE$}&Tr&?%?bcJx&^NQ delta 20 acmeyy{f(PDpO=@50SK(txNqcs%?bcI?FD)O diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/__pycache__/calc_wisun.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/__pycache__/calc_wisun.cpython-310.pyc index b1b619c1c01e1a3717acc9864ef14bdc3aa95f92..23d7124f5a5836bde7b8ba950f4348b4996766d4 100644 GIT binary patch delta 20 acmaFK^^%J_pO=@50SE$}&Tr(7V+8;>js*q) delta 20 acmaFK^^%J_pO=@50SK(txNqc+V+8;=!35C& diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/calc_demodulator.py b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/calc_demodulator.py index 60b049ca44..68bc2eaedd 100644 --- a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/calc_demodulator.py +++ b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/calculators/calc_demodulator.py @@ -90,7 +90,7 @@ def buildVariables(self, model): self._addModelVariable(model, 'maximize_bwsel_range', bool, ModelVariableFormat.DECIMAL) def _add_demod_rate_variable(self, model): - self._addModelActual(model, 'demod_rate', int, ModelVariableFormat.DECIMAL) + self._addModelActual(model, 'demod_rate', float, ModelVariableFormat.DECIMAL) def _add_demod_select_variable(self, model): model.vars.demod_select.var_enum = CreateModelVariableEnum( @@ -1171,7 +1171,7 @@ def calc_digmix_res_actual(self,model): def calc_iq_rate_actual(self, model): demod_rate_actual = model.vars.demod_rate_actual.value dec2_actual = model.vars.dec2_actual.value - model.vars.iq_rate_actual.value = demod_rate_actual / dec2_actual + model.vars.iq_rate_actual.value = demod_rate_actual * dec2_actual def calc_digmixfreq_val(self,model): digmix_res = model.vars.digmix_res_actual.value @@ -1235,7 +1235,7 @@ def calc_demod_rate_actual(self,model): dec2_actual = model.vars.dec2_actual.value src2_actual = model.vars.src2_ratio_actual.value - demod_rate_actual = int(adc_freq_actual * src2_actual / (8 * dec0_actual * dec1_actual * dec2_actual)) + demod_rate_actual = adc_freq_actual * src2_actual / (8 * dec0_actual * dec1_actual * dec2_actual) #Load local variables back into model variables model.vars.demod_rate_actual.value = demod_rate_actual diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/filters/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/filters/__pycache__/__init__.cpython-310.pyc index 8d6b9b0c191c2f154730d0e79d0e4f2bc393d903..a6cc12cff13cd5278eec030a2138b2e3569d4a2b 100644 GIT binary patch delta 20 ZcmeBR?qKH5=jG*M0D?fL^BcKq838F~1W^D0 delta 20 ZcmeBR?qKH5=jG*M00OHu?i;yl838Dn1RMYW diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/filters/__pycache__/phy_filters.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/filters/__pycache__/phy_filters.cpython-310.pyc index 8ec228f8b884008909d106552d46159a3eccc300..23179216a36a1710637e65c9849f19eb031dda02 100644 GIT binary patch delta 20 acmZ3=yOftZpO=@50SInfdAX5$78?LI`UUg= delta 20 acmZ3=yOftZpO=@50SK(txNqd1#RdQ_js%PV diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/phys/__pycache__/Phys_Default.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/phys/__pycache__/Phys_Default.cpython-310.pyc index a61adc2c5f0d9b73ac56aefb40fff8b567e731af..ad9e2a954da8656a5007fa1dae666a4350498f32 100644 GIT binary patch delta 20 acmaFO{+gXTpO=@50SE$}&Tr&?zzhI6a0P?_ delta 20 acmaFO{+gXTpO=@50SK(txNqcszzhI5qXka@ diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/phys/__pycache__/Phys_Internal_WiSUN.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/phys/__pycache__/Phys_Internal_WiSUN.cpython-310.pyc index e22b4eeb963beea5f1c8cba2bca5ee0831979c98..917505d96acbdb2f35576067967e7f1dae003fcc 100644 GIT binary patch delta 20 acmaE=@l=C5pO=@50SE$}&Tr(75&-}_H3dZg delta 20 acmaE=@l=C5pO=@50SK(txNqc+5&-}^Xax`e diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/phys/__pycache__/Phys_Studio_Base.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/phys/__pycache__/Phys_Studio_Base.cpython-310.pyc index d9b8863aa336f6022f955f807ed11af508439864..36dc5aaaa76cfdf69bfd1863d9571fc50228838e 100644 GIT binary patch delta 20 acmZ1zye61CpO=@50SE$}&Tr&is0jc%ZUuz^ delta 20 acmZ1zye61CpO=@50SK(txNqcMs0jc$p#@L? diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/phys/__pycache__/Phys_Studio_Base_Sigfox.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/phys/__pycache__/Phys_Studio_Base_Sigfox.cpython-310.pyc index 742aaf75de2a82572117c15ee06202cd9e8011a4..547e1ebe2042918a6641375580d461e9cb86a456 100644 GIT binary patch delta 20 acmcaCc3F%&pO=@50SE$}&Tr)Q;06FT)CA%H delta 20 acmcaCc3F%&pO=@50SK(txNqe4;06FT2L!DE diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/phys/__pycache__/Phys_Studio_Base_Standard_SUNFSK.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/phys/__pycache__/Phys_Studio_Base_Standard_SUNFSK.cpython-310.pyc index 3ec612e8406e643a8da4508c0d3bec06945ff7fc..47bc0af9310e15fc8932da4b137f3d65556d5d20 100644 GIT binary patch delta 20 acmeyW{#BhjpO=@50SE$}&Tr&?B@6&RkOlGp delta 20 acmeyW{#BhjpO=@50SK(txNqcsB@6&Q!v(zn diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/phys/__pycache__/Phys_Studio_Connect.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/phys/__pycache__/Phys_Studio_Connect.cpython-310.pyc index d66d0a372ceee9371a526902ef6c7848998133de..dbfb8ad40948d96ff789855978bed667febdb844 100644 GIT binary patch delta 20 ZcmeCt>CxfN=jG*M0D?fL^BcJt#Q-kf1VjJ; delta 20 ZcmeCt>CxfN=jG*M00OHu?i;xo#Q-i61P=fJ diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/phys/__pycache__/Phys_Studio_LongRange.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/phys/__pycache__/Phys_Studio_LongRange.cpython-310.pyc index c5afaae5893692b65860d91f3148c6e1aae149a2..683a80c1d8806714a88df1e75a2a0d94fb08c4c4 100644 GIT binary patch delta 20 acmX>ke@LD?pO=@50SE$}&Tr)2&JO@KbOl8K delta 20 acmX>ke@LD?pO=@50SK(txNqd%&JO@Jrv(rI diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/phys/__pycache__/Phys_Studio_MBus.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/phys/__pycache__/Phys_Studio_MBus.cpython-310.pyc index e376b31ce9f1ed3e804bfaea567e82d609253c67..9586c9eedf18cee6a17e827e6311c5418093d0f4 100644 GIT binary patch delta 20 ZcmeA->o?=h=jG*M0D?fL^BcKYqyaF*1ZDsL delta 20 ZcmeA->o?=h=jG*M00OHu?i;yTqyaDY1Tg>r diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/phys/__pycache__/Phys_Studio_Sidewalk.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/phys/__pycache__/Phys_Studio_Sidewalk.cpython-310.pyc index 398e24694c55e83a0481e2b7bc48caca1b180f1d..89b92940a2ddfafc16c61bdf004285568811b060 100644 GIT binary patch delta 20 ZcmeBS>0#l{=jG*M0D?fL^BcJtnE)v(1K0#l{=jG*M00OHu?i;xonE)tW1FHZ4 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/phys/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/phys/__pycache__/__init__.cpython-310.pyc index de209059fa71d516fbd73f3ebe2c9ea98a100f42..eba7daa92d96c2249d9bee298bbd4a5eba746ce4 100644 GIT binary patch delta 20 ZcmZo=Ze`}q=jG*M0D?fL^BcLV7y&5m1V{h? delta 20 ZcmZo=Ze`}q=jG*M00OHu?i;zQ7y&3D1QP%N diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/phys/__pycache__/phys_studio_wisun_fan_1_0.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/phys/__pycache__/phys_studio_wisun_fan_1_0.cpython-310.pyc index f38018c8166c041a0d705564341b42e06f4efd7a..8d031135217b881c072ce6ac366e34b690a13f68 100644 GIT binary patch delta 20 acmaFF_K1x;pO=@50SE$}&Tr%nX9fT^jgsq delta 20 acmbR3JKL8#pO=@50SK(txNqd1pauXo9t92n diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/phys/__pycache__/phys_studio_wisun_fan_1_1_virtual.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/phys/__pycache__/phys_studio_wisun_fan_1_1_virtual.cpython-310.pyc index 58941ea0c09433ff9f22bd555053ba314e10aaa0..4d561087af989bbe4b5604337f5ba73e78c5194e 100644 GIT binary patch delta 22 ccmX>!h4Ii7M(%uGUM>b82y{BXk=xu007^^+>;M1& delta 22 ccmX>!h4Ii7M(%uGUM>b8uv+83k=xu007-uZw*UYD diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/phys/__pycache__/phys_studio_wisun_han.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/phys/__pycache__/phys_studio_wisun_han.cpython-310.pyc index 443cc6c0c38c5b62c1336dde36e3fdfb7b151b45..7afb3c3cb36b288bb8f0dc38f4dfa1ebf51cce57 100644 GIT binary patch delta 20 acmaFO`I?hEpO=@50SE$}&Tr&?zybg{xdn*; delta 20 acmaFO`I?hEpO=@50SK(txNqcszybg`>;+T+ diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/profiles/__pycache__/.nfs000000002ed7f6bd0002bffd b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/profiles/__pycache__/.nfs000000002ed7f6bd0002bffd deleted file mode 100644 index 50d43fb2b6584e8f6e76662e53ce59f701c0ee0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7035 zcmb_h&2JmW72jPhmmgY@k}b)O?Kq1zUu+vGb`mrVlESh+Y_+m%NKT!yACnblDK53# zWoDPQMaWG78%-|hp}qBF_f!M@7YY<;|9~EP+DilUq+5Ypf&hv8d$UW5q(r9yN`kX* z-(5u}kG`uY|E8D0kB*m1_=O${u5i^;T545QiPk)=m8oVV zo$>Tmwwi4jRil-w=34n`Uh;LX&?;7olFoV)EwgI2CaaV3-SA4Sa&Rb&40ZluGdcJt`G7p1C1{y6ZW&+_2-X+WwC^t?dB(Q`;Tab8RoE@3S0`cJYPeC4g-*)v`fe0n>v)md_FP9) zw0Pngdh`;lxIFN3bFb|{#R~7Rb~0oZB>l5m&}s#KI=~uDZ19swU&4<;I7(IJN>%$v zsjFP&+Jk&G!!ulepj36q%W?y}tfa|o`KrMSya;)YPjC~@JfGwxJPWc;nNOikkx%mz z;7#z8d*v?qosO`hKrFQPWSxY! z(6&VsE+n&BNY_2=5$p~*E#~F33+&Z-XqGWIlZ<7cD5{2Ps@?O)+IhZbm>Lg~R(>!S&@%OvOPvas%J?#)xfx+xBZmwa+GvH(bsg ze^mFmM97`CaB6mRRQr5yXgh8gIijzh?$S7w-?oKoZ+p%W`I$uD_3Oc?OiW`b;u%?C zE9$_7)`OiSMm)}l6C})1r1Iii>LX$n%%qqjaT0z~E6S)sO@<^ZYG%fSqsXtMN}8^9 zUpn4xf_fV=)qx47by$*k3tC4|UH;n-Z7&_{rcbKI%h*h-b0D4|Dj21R_5oQC!N zK)Oe)!}ei3S$AqIy2~8dW}F8Tbf*>Pm)EuyFR!mGi*HdoC#jHTBrC~gUjPwON-Jrl zjHVXV;#b|*o?@rN0kqSQo%rbyo6&ZaL2eVo(`^Pz>9hm;mdwJEdXI~JnOM~TH~R=R zrA>{EIKP;BeRporj~w5(E$-fSMCe9)7CFyjRlJ1WyXThs>@CN0YSAl~oiMV5({}8r z`-81rw{2bYxn-xV)EbC*)*Ux$SnY-#IuPP7aPe9#CM2U zM3bmagNe%to%G7xFwTeQ_#(K+t`0Rik6)NaQPSozbLwgJ>1#743Jk3c#lix9G9JE# zbOgIA(!y#}BME1iIJ?#K*GaFMksWAn4r<3M|pkexfCQ3Chb zBiu5$=M%2^EGRsq7Mk{;LljHJj+v_;Yb6Y?FE!Q7m*mvVx zZzwNpIT0K;q@-fqjcm_~0uO^kny>=j+I-InUG5xkbk_Zvx;K-$g50rNS*29v__aOj zdc7W^lck{5cKpz$3}wB%xVlua)@gvQ^(cqnCr2*64_)ylig>C+5HZCHgc03;{NY8V z`|M&384!DyT1lg&b=mg$9hXOquDP~q^?P>P)2iZr`sF#LYob4Ev*TNo0=h4w>;Rci z8?MityH+Q}^tbn{-O#mawpUA~I~a-lq{Pgn140c)M>~y0tEIV@yE_)~ zq3+>diMOx_h&i4fbRZVOW8!IXm(db4M~DDJRDo%_s|#t1A>q=d00r< zrle`A@uZ{~RO-5lx35Z>!zcJ(>DiL115J{|APP^ZMJ2uI^fs3%LA&^*d*Nv*@mO?q zBs{XaE56TT;8PKW)x9KOTz-ho((~BPWy7 z?t-9c4`Ob-$%#t@t~E0c^$1gK8qFM6qkOZFWTQtoKJO1oi>Xv%gd@_4RGOtoP0}7- zP`c$??$)~-){Vv<;)JudEaP%_HsKP>+CtW^HLM#~H@h!fUb>3C8|-%4RwTh1+}x5o z%&G+fo=#z*VkS`bM2eMd*Xx~P;koj}?Fs~*J~P)t&xYMb*yMt;ak|-)(@z@*DB5Vu z<$|DDJh8dBw$7HWZ>+9eiD#2avO*|F%i0Zr9b9WLuM;tDM|J`zMppVcG}XXQLgbQK zQfJ`X`6n~jElFuUdHR}Yu{L_~A?qHHtX>YpPBWqWj|iFbXLAAG^o7=D|1W9tuO$f9X$$V+l1MiIA&`uurSIruB6%3Oj^jP$0aco>-D0v*9+C=$3OPQttR9;i6CvLR38 zu|fIff*t3!-3a$&j`$gg3;mE5KXdK+^2#-~xw5!^bM4yF>I&PuxwUll*4jpVE)m__ zTv@ttZF%J;yK!yl`qs^#pyt)(xQzQ8yG0i=32aQe+D@Jq?ew`FXK4tpC9kii?AKHF z8Q$MYmnJIv(9>|!| zh%Tw$^r?S2HYOfFhVfBh0|SG%97Y9-3p(YdrU4(D1!l>~^J(s$?i+Z^_ulr&w{?mG z`xFOs83+0R&6M6DDB~tR&?Jg(1*9X0S3t#c$n{&er4M(v>YTmGI(`iX!~S=3Ct<&beHf(%P2v29umt-SSkpy z2ujc5msGq@1vaQ62uq3&QN)w!eKu~|J;nxRDwDjt<|1HAFiKvx=aJ#_S#!oL&;$^9fK*@F^KEe&@KRlZhNoZ0x@f@^1=hMFsQ# diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/profiles/__pycache__/Profile_Connect.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/profiles/__pycache__/Profile_Connect.cpython-310.pyc index 17b19a5db56b19c89de4e38d242400ddcbe59c92..6a465393191b202fe9e395c184dba704ea1cd032 100644 GIT binary patch delta 213 zcmaDa^InEKpO=@50SE$}&Tr)QU}BDviJ!PYdU7F?4x{kqc}!JIj53oYS^XL1CTFs? zG73(9&nm+xG?|A@gIgG=t4IVyC~dZ9>t|xrntYzaf>C=i2WKmz&gMSOY9>)3khC6% z0IP;*nJmY1OivW75kzDFiCet!@yR)f#l^{~IXUt1NU9A%N<=0L@y=z8n!JJ6l_|=0 V@hiXcrp*02Db=MSCJ@)P~L3M*3ZPKJ^4I`1*6Vn4$f9a-OYWR)l8zoAZdLN z0agvsGFgu2n4TC|BZ$ZZ61RBcD+d5QUIm>1 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/profiles/__pycache__/Profile_IEEE802154_OQPSK.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/profiles/__pycache__/Profile_IEEE802154_OQPSK.cpython-310.pyc index f703730e041ae5a4e28012a5a2b7302466a4ba51..a0ec7613f8fbf80a42abb075704221a08a605aa8 100644 GIT binary patch delta 20 acmdm%u`Po;pO=@50SInfdAX5W+XMhboCb>k delta 20 acmdm%u`Po;pO=@50SK(txNqdvHUR)VFa;w3 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/profiles/__pycache__/Profile_LongRange.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/profiles/__pycache__/Profile_LongRange.cpython-310.pyc index f53c4db60b4eea72bd56e9a225433f1b96640b57..5eaaec6586ad54ca83918e15803f3db4f5bb60be 100644 GIT binary patch delta 34 ocmZ4Bu)u*kpO=@50SE$}&Tr&4m1VrO*-=)Gk#Ya#1i1r@0Gvt*i~s-t delta 34 ocmZ4Bu)u*kpO=@50SK(txNqb(m1T_D>?kY8$hdEFg4_W{0Fn_1)&Kwi diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/profiles/__pycache__/Profile_Mbus.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/profiles/__pycache__/Profile_Mbus.cpython-310.pyc index f61a1e4dc6d76fd401d6771ac09163a1168178ce..ed908667f3fee8fe253c879a1ba4869ca3a998df 100644 GIT binary patch delta 880 zcmX>aa5R8BpO=@50SE$}&Tr(t%*Yru`99-bMxo7fnT%N(#V226?-Y;%N*9TP2ni4& zIXR0XQUHk$5|o*InM0QiqH;1Dr>lTGx~6DOB~h?EhRh^RU7$?|IE^uE+RV&#k&zq8 zs>%1cD;YUANAlcYVicHc#J`(SaPm8T8EzqvZD2xpv#3Biqr4zUAQ40)!=)hdAa4BT z*@99`oN7RJh^9`F{^Wha`HViB^+ed1!kmGEx7b|#0^$wLip)S9j^v``_~O*mlp+_9 zW>*m51|r-+ga?q&WG+Hj2=*V6gMjk46ebJENN-*$=FZHhKKZR=kUz*(x7afC3Q9|g zi;O@V&a%X!__D;D($pe-AipRZB*@{H@0MSbn^(cKv7KvNLWt>sW1c) zQ$Pg7Gm}>+xB(;Xy~1rqX}GIyvE=3h{e*1VQ>A!DDR7j5jWI?yCQe0)F=KM2iniiv zpcG2DgViFLHTkH@X#=psSc|$q=Bxz~J3+*85OEenpnGTX0o6uZ5s*v@h=>OfI5nRG X$s%k7vxGO-sZC}SKo^~?sG$M?K4!f4 delta 880 zcmX>aa5R8BpO=@50SK(txNqdX%*c3a@_oj=jKZ7eG8wZnN=&}U-YFmrlrEA05t1N6 zYH}7wqyQ2hBq%%iGKVf3MCD{QPFDd1kSLO($xi&}g++bo9oNUCun^9=;JAN5%VUTTLLS(b3Ksuwm5J(^iM5Mr_Ao3t? z!sgk6QcRrcKz4|xPLaXneZu*SzMJ(#*qFjxfP%N!T>Jv!4b6(oK^%_cqU8AE)YOzB zSCD2m5aA9YJV1mekkDimOqpc`NCKW^^fC!wL Z&x2$UHiB6qo9omjGYX)KPFB=V0RS5Iy~_Xq diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/profiles/__pycache__/Profile_Sigfox_TX.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/profiles/__pycache__/Profile_Sigfox_TX.cpython-310.pyc index dae43ff2c2c29f44d14ed09da0d6242ac298b05f..3a6dacbc03cc35827661921167baf532237eb8c5 100644 GIT binary patch delta 20 acmew+@lAp|pO=@50SE$}&Tr(-<^cdal?6}$ delta 20 acmew+@lAp|pO=@50SK(txNqdn<^cdZ$ORh! diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/profiles/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/profiles/__pycache__/__init__.cpython-310.pyc index dc40a561517a749dd5234ccabe23bc337e7055ae..6649eae107ac900d5ed0395b85e49b56a9a8fd5b 100644 GIT binary patch delta 20 ZcmeBV?quf9=jG*M0D?fL^BcMA7y&7c1XKV3 delta 20 ZcmeBV?quf9=jG*M00OHu?i;!57y&531RnqZ diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/profiles/__pycache__/frame_profile_inputs_common.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/profiles/__pycache__/frame_profile_inputs_common.cpython-310.pyc index 7154b899f08fb19103b0e59475d84944af85f7a0..1ac43ce528e66699265959690c37cf50cc3bde8f 100644 GIT binary patch delta 20 acmaE(`bL#IpO=@50SE$}&Tr&?Cty53=jG*M0D?fL^BcMUF#!N7`vltn delta 20 acmeBV>ty53=jG*M00OHu?i;!PF#!N7E(E3k diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/targets/__pycache__/Target_Sim.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/targets/__pycache__/Target_Sim.cpython-310.pyc index ec975305f22efae3e56034314b95d167fd7d74fb..ba022110bff748f27b4a9aac31f251e60a4b8481 100644 GIT binary patch delta 20 acmX@iewdv*pO=@50SE$}&Tr)2!3+R1Fa-<% delta 20 acmX@iewdv*pO=@50SK(txNqd%!3+R0V+7X# diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/targets/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/ocelot/targets/__pycache__/__init__.cpython-310.pyc index 7d9250d9110764c7afae20ca76ebfcdd12df5af9..af2317baaeebabe3e4f6181a2eba211a6d38a5d3 100644 GIT binary patch delta 20 ZcmeBR?qKH5=jG*M0D?fL^BcKq838F~1W^D0 delta 20 ZcmeBR?qKH5=jG*M00OHu?i;yl838Dn1RMYW diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/panther/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/panther/__pycache__/__init__.cpython-310.pyc index 5ef0554dd638766ee6ceae45b4495118d09879fa..71fa85aa2e7d524f2ec9298b1a5a6475de1c11e7 100644 GIT binary patch delta 20 acmbQiG=qsdpO=@50SE$}&Tr)AWdr~!!UO*R delta 20 acmbQiG=qsdpO=@50SK(txNqdht2x=jG*M0D>D=UT)-ORs{e%6$Quu delta 20 ZcmeD4>ht2x=jG*M00OHu?i;z8RRJ=o1YiIF diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/panther/calculators/__pycache__/calc_dsa.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/panther/calculators/__pycache__/calc_dsa.cpython-310.pyc index 3341dd32a0a1555f50b2c55c430b7418584781fb..962771377f920ac822da3632f59350e7204fb3fa 100644 GIT binary patch delta 20 acmeys{DGM}pO=@50SE$}&Tr&?$_M~CrUi)r delta 20 acmeys{DGM}pO=@50SK(txNqcs$_M~B*#%Sp diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/panther/calculators/__pycache__/calc_frame.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/panther/calculators/__pycache__/calc_frame.cpython-310.pyc index 3881011e705f663d3740576c8acf130c794000d1..92c5fa8e00789cffe4614dbd63bd5069ba233b3e 100644 GIT binary patch delta 20 acmcbWa4Ug3pO=@50SInfdAX6>-v9tg7zX12 delta 20 acmcbWa4Ug3pO=@50SK(txNqe4Hvj-ZtOa`j diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/panther/calculators/__pycache__/calc_freq_offset_comp.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/panther/calculators/__pycache__/calc_freq_offset_comp.cpython-310.pyc index 6df3f69471bc3ca7ac149ee3f59ec36dd75f0082..3d5189ed9fdc4acd69af028165adcaf759b83590 100644 GIT binary patch delta 20 acmZ3&vV?^@pO=@50SE$}&Tr(FWC8#z>jWqO delta 20 acmZ3&vV?^@pO=@50SK(txNqc^WC8#z9s~0L diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/panther/calculators/__pycache__/calc_global.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/panther/calculators/__pycache__/calc_global.cpython-310.pyc index ef2e71f09a7b5531c7e5a6fe45b0cff884173d6e..1c0af84fa13bbfc9912df486196154bf83eaa064 100644 GIT binary patch delta 22 ccmex7gX!}OChmM*UM>b8xN+s>M(&Ir09z>s{r~^~ delta 22 ccmex7gX!}OChmM*UM>b8uv+83kvpRY08+gMmH+?% diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/panther/calculators/__pycache__/calc_misc.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/panther/calculators/__pycache__/calc_misc.cpython-310.pyc index f43953ab441010733e8b52d081c20fb37908fe50..ef60e93c1930aa8f19f9ad4a85802f06658750bc 100644 GIT binary patch delta 20 acmaED_}Y*=pO=@50SInfdAX7Mfdl|Y3{R{x_sSbDm delta 70 zcmeB`=#}8k=jG*M00OHu?i;yXIT>$l4&*do6fgz~6`6ntJ`iC#c_Nnvqxs}rTuIzU OAOSNFVKG^q`xyZJpAO0Z diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/panther/calculators/__pycache__/calc_viterbi.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/panther/calculators/__pycache__/calc_viterbi.cpython-310.pyc index ac3bc72e3e5d586fa8ad0390ff190eb30509b5be..a6a44fe2b38f30031995216609998f70a31a607e 100644 GIT binary patch delta 20 acmZo*X<*^b=jG*M0D?fL^BcLpG6Dc8N(8$A delta 20 acmZo*X<*^b=jG*M00OHu?i;zkG6Dc7eFTO8 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/panther/phys/__pycache__/PHY_internal_base.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/panther/phys/__pycache__/PHY_internal_base.cpython-310.pyc index fba4e789abbb13b146d6a4b8b7aafc6af5011ec5..1f909198a87e18d75412e9023306e4e374a2d816 100644 GIT binary patch delta 20 acmX?LbHIi>pO=@50SInfdAX6>R1N?@<_0?e delta 20 acmX?LbHIi>pO=@50SK(txNqb(l>-1cdIZw| diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/panther/phys/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/panther/phys/__pycache__/__init__.cpython-310.pyc index d4cadb7e822c585e30a6ff6578314b926971d1a3..bb5b422cbd30eac3b4e22caa174e1ad658e67be2 100644 GIT binary patch delta 20 ZcmZo;Ze!-o=jG*M0D?fL^BcLV838F41WNz_ delta 20 ZcmZo;Ze!-o=jG*M00OHu?i;zQ838Cs1Qq}Q diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/panther/profiles/__pycache__/Profile_IEEE802154_OQPSK.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/panther/profiles/__pycache__/Profile_IEEE802154_OQPSK.cpython-310.pyc index e4eff41596dede60fbfd60974e1104a2e4ab1183..ff186b9e3b0e33ce05b0d4a4a72a62c231b398f4 100644 GIT binary patch delta 580 zcmYk1J4*vW6oq$o<7(V&b`2JiV4?`o!bS+Poz*Im5G5qhL>n6=7&XRMk-}df1P6q~ z2ZE0!U1VCZQR1T$EGz^oi!H@Mi-6AAG*0nx=A3(H?zQT~suN{RRXYWKUSI4hMGTWH z^M;4K;;%rBh@t%Oq*wvISt-(xluKv=)M(6z5sOufFPRXwH@4JfxOrlGcxn%z!~)P^ zcSBL2#*w?>U*?1$5BlLLblB|GWi(IoyX}Li(~LQyYuqe)kThYcv}!JpPuetBWgnsd zD~vz4D=Fw%AVXvEsGNqJp~vxS;$qpUf;f?dGslrT)wtq9u%mbq-?m0`cEbueN#~w3 zJ;p7rphN{U+LiDt1;}-vNJkTcyBm;;sN95FhRQpQKmgtrunp`0CE(xCxZVPHKx=xa z25=8N0FS^EP{zxl7U)}|gNW=SVUm!ujkCx;LS8D^^H9zrZaSG9R4(wqIdDcx$)NuP fvI-mmN5BD4rYxB!675U9>jZ`i5CMs4=^pV93CDoi delta 580 zcmYk1y-Pw-7{>3peudYMYc+(J7J)Xj1QM5)rkjLfA!cbVErn!ew@)zWF9@nLgq74# zDbiq^HJbWvYK@?&;jXn5ICP%t(iwg{=Xu`qp7*UbNVP$vC8yIa@H2cFxst>nd1J0% zze^MdRlMZ%9O|@X{K;&b^ z(N~+4f=&Y&8jDA*Q;^fN62B%EmKiUKkr_Byj@+r6D=q{*ikA4cHJY&-R>+xT?itf# zT&;i-7a&tl!YeI9qJ_3XhZ3RfRmeG1u0bt8<$*=O2X7tN05*Xw;NQ@=-U4?(YkH^$ z;1PHNo`Dx&7o7tw(Dy_eF|p5tN&?0<#v=O&d8wdhp^QcBbSxQ?F3{i{IHRSc-+Kai f1RMhu-~ia8ESV=}+B5kfi!dyJ2{1Evs!RL>Fo1tR diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/panther/profiles/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/panther/profiles/__pycache__/__init__.cpython-310.pyc index 61372035ea6997570cbc374225942bc54453ba46..a9c35c5ceaed2430fdc9dc867f9f0e1a486cf8d8 100644 GIT binary patch delta 20 ZcmeBT?qcT7=jG*M0D?fL^BcMA838G_1Xln6 delta 20 ZcmeBT?qcT7=jG*M00OHu?i;!5838Ei1R?+c diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/__pycache__/__init__.cpython-310.pyc index 39011fb76cbc9fb2e5751b35e4cce0084161c306..d1d50ecab86541017778cecf7247b162b931f388 100644 GIT binary patch delta 19 ZcmaFH_>7S|pO=@50SNZLc{!2$HUKzP26zAf delta 19 ZcmaFH_>7S|pO=@50SIc&&zs178vr#11D+K^NIt7UU diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/calculators/__pycache__/calc_ber.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/calculators/__pycache__/calc_ber.cpython-310.pyc index 0efc080f84d1a064e7561dd85be46b93444874b4..2e7f74d4378ad5e8668de8ccf1840754aef5462a 100644 GIT binary patch delta 20 acmaFE{Dzr3pO=@50SE$}&Tr&?$Or&A1_gZp delta 20 acmaFE{Dzr3pO=@50SK(txNqcs$Or&9IR!`n diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/calculators/__pycache__/calc_crc.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/calculators/__pycache__/calc_crc.cpython-310.pyc index 006a0516e9389df2dfe45c65001ad253b21ffffb..cdd0137b167452b32599898e336b824622f04d0e 100644 GIT binary patch delta 20 acmaFE{Dzr3pO=@50SE$}&Tr&?$Or&A1_gZp delta 20 acmaFE{Dzr3pO=@50SK(txNqcs$Or&9IR!`n diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/calculators/__pycache__/calc_demodulator.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/calculators/__pycache__/calc_demodulator.cpython-310.pyc index cc9cf6ab1a2fe1830c4b428814b4eb4f7d552929..684f30bf24ef308621fe6a72193f36e98327133f 100644 GIT binary patch delta 22 ccmaF-pYid3M(%uGUM>b82y{BXk^4qH0AX1N+5i9m delta 22 ccmaF-pYid3M(%uGUM>b8uv+83k^4qH0AP#D4 delta 20 acmX@WbAX3CpO=@50SK(txNqb(Wdi^)q6Aw2 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/calculators/__pycache__/calc_dsa.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/calculators/__pycache__/calc_dsa.cpython-310.pyc index 7bf135d640acef44f54a643185f5dd4ca9e3d1d5..3653a850d3008dae496360d1bd3bfb7b61bbdf88 100644 GIT binary patch delta 20 acmaFE{Dzr3pO=@50SE$}&Tr&?$Or&A1_gZp delta 20 acmaFE{Dzr3pO=@50SK(txNqcs$Or&9IR!`n diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/calculators/__pycache__/calc_fec.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/calculators/__pycache__/calc_fec.cpython-310.pyc index 9ef9c40acacba8f8217fae53633f63e4e8309eb2..f484e5383b1c36e323d68183c93e01bcc59c88c3 100644 GIT binary patch delta 20 acmdlcv`vURpO=@50SE$}&Tr(_<^%vSx&(m$ delta 20 acmdlcv`vURpO=@50SK(txNqdv<^%vR?F38! diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/calculators/__pycache__/calc_fpll.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/calculators/__pycache__/calc_fpll.cpython-310.pyc index 5947411e5d6cdd7420e8d55b2ea7e637a44c4879..18094e90a385812004114a897f24f85bb585eaed 100644 GIT binary patch delta 20 acmZ2(wA_e0pO=@50SE$}&Tr(FkpuuU@&u#+ delta 20 acmZ2(wA_e0pO=@50SK(txNqc^kpuuUB?NB( diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/calculators/__pycache__/calc_frame.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/calculators/__pycache__/calc_frame.cpython-310.pyc index be60e2d02f60888a575639637a7e1fdf8508719c..11b9548987e60febeb4c2a4fce1de2e71c770c00 100644 GIT binary patch delta 20 acmbOsIzyB@pO=@50SE$}&Tr)Ib8xN+s>MsABR09DEdUH||9 delta 22 ccmX@ShVk$kM(%uGUM>b8uv+83k=r5+08L&6_5c6? diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/calculators/__pycache__/calc_ircal.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/calculators/__pycache__/calc_ircal.cpython-310.pyc index d041d78e4a5ed23ad88026843811c8941d13ad3a..201cddaf899aa4540d6d338f8a2fdccd7af14fb6 100644 GIT binary patch delta 20 acmcc1dY6?upO=@50SE$}&Tr(t!~_5~_XSk| delta 20 acmcc1dY6?upO=@50SK(txNqdX!~_5~Dg___ diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/calculators/__pycache__/calc_legacy_vars.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/calculators/__pycache__/calc_legacy_vars.cpython-310.pyc index 4a02aaf11058f1d8a6b05602c60d70ee47f6a6c6..58382a07646e074d06b5ab7e0c117c69e0a3c569 100644 GIT binary patch delta 20 ZcmeBS>0#l{=jG*M0D?fL^BcJtnE)v(1K0#l{=jG*M00OHu?i;xonE)tW1FHZ4 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/calculators/__pycache__/calc_longrange.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/calculators/__pycache__/calc_longrange.cpython-310.pyc index 5122e7fdd6528ecfad22e581c989506c1eb78dd3..4691fdfb12889cf70806165c9aa507a5f96db385 100644 GIT binary patch delta 20 acmZo+X<^~c=jG*M0D?fL^BcK;G6Dc8>IBCC delta 20 acmZo+X<^~c=jG*M00OHu?i;y(G6Dc89R!j9 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/calculators/__pycache__/calc_mbus.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/calculators/__pycache__/calc_mbus.cpython-310.pyc index 47a5cb56861ed0162c0943a4bb03ef79655e00ba..fe06f10553f3f68a6ff4341b65fca50424fb8931 100644 GIT binary patch delta 20 acmeys{DGM}pO=@50SE$}&Tr&?$_M~CrUi)r delta 20 acmeys{DGM}pO=@50SK(txNqcs$_M~B*#%Sp diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/calculators/__pycache__/calc_misc.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/calculators/__pycache__/calc_misc.cpython-310.pyc index e6b3f9ae65904e64d68b10a61e2d948752df7b5c..2c517d1b4210720742f281334154d12a838d9526 100644 GIT binary patch delta 20 ZcmeB_?v&=v=jG*M0D?fL^BcMAcmXW>1dsp# delta 20 ZcmeB_?v&=v=jG*M00OHu?i;!5cmXUe1X}Wt#f=jG*M0D?fL^BcMM$umYxJ|zz%H@}kq$;j3KlqhQ4{8I5A6J!166Dr<} zjO~*})XK%XK@zz@;uc#@YF>It#x3ULlA@^1i`0Uc7~3{~)!4_#IB)V6t%KanAeD1K L#JtT7+MSF5l$<7E delta 117 zcmeB->Wt#f=jG*M00OHu?i;!H$ur)Xd`ccjZhj^IlaZ|nC{fhB`K97LCdS6iCse!{ z89OJ7sFjQNf+TW*#4Wa*)V%bPj9bjfB}KP3FH#F)V(i%bRbw9`h22 M5eqjrXm>IK0P;;I!vFvP diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/calculators/__pycache__/calc_pro2_demod.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/calculators/__pycache__/calc_pro2_demod.cpython-310.pyc index b68ce85c1c3474c9e167c28f9c7fa51d36860a39..405a2ccdab46881d457e0ed8818aa8b770c6d611 100644 GIT binary patch delta 20 acmcbba5aHDpO=@50SE$}&Tr)QG5`QUu?3+3 delta 20 acmcbba5aHDpO=@50SK(txNqe4G5`QT+o$2s&ChmM*UM>b82y{BXk$Xos08CN_xBvhE delta 22 ccmX>+o$2s&ChmM*UM>b8uv+83k$Xos0851ig8%>k diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/calculators/__pycache__/calc_sq.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/calculators/__pycache__/calc_sq.cpython-310.pyc index b9197e2bba5aa20684ed4a634f241355155f078e..e5695f826b81cdd8a6adbb704e92999359a46a94 100644 GIT binary patch delta 20 ZcmZpYZj$EC=jG*M0D?fL^BcL#c>ycp1bYAg delta 20 ZcmZpYZj$EC=jG*M00OHu?i;zwc>yaG1V#V= diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/calculators/__pycache__/calc_synth.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/calculators/__pycache__/calc_synth.cpython-310.pyc index 769364217ee92a6c0051a22dd159540997cf553d..4bb5631e98082a35fbbe8920825bd3228e101b9c 100644 GIT binary patch delta 20 acmaE<`BIZRpO=@50SE$}&Tr(tCjtOH`32Je delta 20 acmaE<`BIZRpO=@50SK(txNqdXCjtOHECrqb diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/calculators/__pycache__/calc_utilities.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/calculators/__pycache__/calc_utilities.cpython-310.pyc index b30ff3c8c49a0ffc6a8ff334014efafca565a6d4..dd6c3b8f718e79df16a16e1a5e56ee3b73586373 100644 GIT binary patch delta 20 acmX>vcwUe@pO=@50SE$}&Tr&C!T|s_eFaGX delta 20 acmX>vcwUe@pO=@50SK(txNqb>!T|s^umuzV diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/calculators/__pycache__/calc_viterbi.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/calculators/__pycache__/calc_viterbi.cpython-310.pyc index ad2b7c9428ef46bd6127ec29e85c707ab71734e6..a2e7bd0c77407cacdd1b9fd9f0001b87d8d96157 100644 GIT binary patch delta 20 acmdn0yj7VypO=@50SE$}&Tr&iB?tgC{skxi delta 20 acmdn0yj7VypO=@50SK(txNqcMB?tgCF$D7f diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/calculators/__pycache__/calc_white.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/calculators/__pycache__/calc_white.cpython-310.pyc index ad1f07d9ddc441a7d83bcdff0ab48c64afef5e3c..e1062a1da063a2d2ca1b0df999505b4386b60c3d 100644 GIT binary patch delta 20 acmX@edXSYnpO=@50SE$}&Tr)2#smN|mjwX; delta 20 acmX@edXSYnpO=@50SK(txNqd%#smN{$^^^+ diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/calculators/__pycache__/calc_wisun.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/calculators/__pycache__/calc_wisun.cpython-310.pyc index 926feeab0b5fef8138c6d3e19de468143a9d5c06..e97dc5e58c1d4ca075539008bdea0ee8adce8cdb 100644 GIT binary patch delta 20 acmexp`q7j-pO=@50SE$}&Tr&?CItXM?*<6~ delta 20 acmexp`q7j-pO=@50SK(txNqcsCItXMA_dd{ diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/filters/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/filters/__pycache__/__init__.cpython-310.pyc index 72c98ec6237d99767410ec7d32f1727aa504d73a..a7998c8e1eba58762414752489425d47af94205b 100644 GIT binary patch delta 20 ZcmZo=Ze`}q=jG*M0D?fL^BcLV7y&5m1V{h? delta 20 ZcmZo=Ze`}q=jG*M00OHu?i;zQ7y&3D1QP%N diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/filters/__pycache__/phy_filters.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/filters/__pycache__/phy_filters.cpython-310.pyc index 0a659b485b00d31914e64b9e8ee6cc31ebecddd4..e8a84c4e00da117bfe2df1f0822316bf92e2bf55 100644 GIT binary patch delta 20 acmdnTvyX>6pO=@50SInfdAX6>m<<3qz6HGi delta 20 acmdnTvyX>6pO=@50SK(txNqb(W&;2*QUp~1 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/phys/__pycache__/Phys_Studio_Base.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/phys/__pycache__/Phys_Studio_Base.cpython-310.pyc index f0ac724c94bed11832606fa69a4cb965d43d32da..756a10eab2da22e71ad038b97bb8230344539e1c 100644 GIT binary patch delta 20 ZcmZpcZI(_7H3d@u delta 20 acmX@AcvO))pO=@50SK(txNqd%B>(_6Xaybs diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/phys/__pycache__/Phys_Studio_Connect_OFDM.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/phys/__pycache__/Phys_Studio_Connect_OFDM.cpython-310.pyc index 3b3574025b464c81a140ed82df482481c52a898d..b76fab71e13174a24c9f94456483722dd2a78516 100644 GIT binary patch delta 19 YcmeAc=oaA4=jG*M0D?fL^9#8-04A0L>i_@% delta 19 YcmeAc=oaA4=jG*M00OHu?hCm&044qdwg3PC diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/phys/__pycache__/Phys_Studio_LongRange.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/phys/__pycache__/Phys_Studio_LongRange.cpython-310.pyc index 99a66b5dd1fbb6484f0c852ac7849a83051b83b2..0e2dca076f15805caf930f452c7bb65f97582049 100644 GIT binary patch delta 20 acmX>jdPbBxpO=@50SE$}&Tr&C$OQm4mjy}y delta 20 acmX>jdPbBxpO=@50SK(txNqb>$OQm3$^{hw diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/phys/__pycache__/Phys_Studio_MBus.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/phys/__pycache__/Phys_Studio_MBus.cpython-310.pyc index c102b8cff562811671ec8a2bd4da94a314e42835..dc6d66f3ddb95973f395d127aac42673b0e0f6a7 100644 GIT binary patch delta 20 acmZ22vRZ^YpO=@50SE$}&Tr&a-~s?JO9W*A delta 20 acmZ22vRZ^YpO=@50SK(txNqcE-~s?IegrT8 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/phys/__pycache__/Phys_Studio_SUN_OQPSK.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/phys/__pycache__/Phys_Studio_SUN_OQPSK.cpython-310.pyc index 315fdca1e6679240dd995936cd20b101ad7457f2..bfb7c48a2495c54a07f7066d5d87a3f49cc62d14 100644 GIT binary patch delta 20 acmew;@KJy}pO=@50SE$}&Tr&S;{X6UsRb0sf`=jG*M0D?fL^BcMUG6Dc9iUiXD delta 20 acmeBR>0sf`=jG*M00OHu?i;!PG6Dc8y#$^B diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/phys/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/phys/__pycache__/__init__.cpython-310.pyc index 7e267c8b16b4e5d2ca69b11e1e8a9e1297680489..81b807dab13d92e65f304704bcc1e52b00bea95d 100644 GIT binary patch delta 20 ZcmZo-Zer%n=jG*M0D?fL^BcL#838DE1U~=( delta 20 ZcmZo-Zer%n=jG*M00OHu?i;zw838A$1PTBE diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/phys/__pycache__/phys_studio_wisun_fan_1_0.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/phys/__pycache__/phys_studio_wisun_fan_1_0.cpython-310.pyc index 3243b84123694cd10e32599ee015a2507280c76b..3ec54fe362fb97672012e0a8784af660dc9f1c27 100644 GIT binary patch delta 20 acmbQlGKqydpO=@50SE$}&Tr&qX955!8w2tH delta 20 acmbQlGKqydpO=@50SK(txNqcUX955zP6NFF diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/phys/__pycache__/phys_studio_wisun_fan_1_1.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/phys/__pycache__/phys_studio_wisun_fan_1_1.cpython-310.pyc index 2ec82f3a66c47fb58962d9864a26129a8c0a56fa..09ff47f41d3ad1588b1f0dac3a0093e6bef2f34c 100644 GIT binary patch delta 26 gcmcbtaan^qpO=@50SE$}&Tr&CBg_~z`G#;c0Am#g<^TWy delta 26 gcmcbtaan^qpO=@50SK(txNqb>Bg}Yf@(tl?0Aq>>F#rGn diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/phys/__pycache__/phys_studio_wisun_fan_1_1_virtual.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/phys/__pycache__/phys_studio_wisun_fan_1_1_virtual.cpython-310.pyc index bf857d88915199af14e847bb6d7b20ea61f2ed0c..a83529810b6f0e18ccc5df7687d711fc6ca41123 100644 GIT binary patch delta 20 acmey&`k9qGpO=@50SE$}&Tr&?!2|$0X9br4 delta 20 acmey&`k9qGpO=@50SK(txNqcs!2|#~ngwD2 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/phys/__pycache__/phys_studio_wisun_han.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/phys/__pycache__/phys_studio_wisun_han.cpython-310.pyc index bac1747aa0c3649790fd81a1b0a4e46b9d9776f4..1a31723117e465a5a952465a5eaf39d185b53fb5 100644 GIT binary patch delta 20 acmbQqIg^t+pO=@50SE$}&Tr)IV*vmx=>(Gi delta 20 acmbQqIg^t+pO=@50SK(txNqd{V*vmx90Xnf diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/profiles/__pycache__/Profile_Base.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/profiles/__pycache__/Profile_Base.cpython-310.pyc index ea23b14e7c7544d4e3ffbcd3f083a54facf79b0b..4d4a09966b90a1eb677ec1ced663382c7e12f823 100644 GIT binary patch delta 20 acmX>lc1nyppO=@50SE$}&Tr(l=LP^ZYy`&u delta 20 acmX>lc1nyppO=@50SK(txNqdP=LP^Yp9GQs diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/profiles/__pycache__/Profile_Connect.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/profiles/__pycache__/Profile_Connect.cpython-310.pyc index bcb3c4669e6628776cdd73491d2a73005096be7e..2af1312a8eb5dd2a0a229ce3936d2788b4842866 100644 GIT binary patch delta 20 acmbQMJXe`JpO=@50SE$}&Tr(NBnSX8J_O(Z delta 20 acmbQMJXe`JpO=@50SK(txNqd1BnSX7aRjRX diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/profiles/__pycache__/Profile_IEEE802154_OQPSK.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/profiles/__pycache__/Profile_IEEE802154_OQPSK.cpython-310.pyc index 4ae69cc47e17a0f10f14c5e257dad27af1d623c1..156bff625bd221ad60eafb2427e6b38f15608224 100644 GIT binary patch delta 20 acmX>mcubHxpO=@50SInfdAX5$HwOSbv<6`S delta 20 acmX>mcubHxpO=@50SK(txNqd%%>e*3NCf!+ diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/profiles/__pycache__/Profile_LongRange.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/profiles/__pycache__/Profile_LongRange.cpython-310.pyc index c881e683a29731317e256fb2dd1ee1db0bac7969..877c808d98678b737bbdfc09a89b25d95351d83c 100644 GIT binary patch delta 20 acmaDW@>Ya9pO=@50SE$}&Tr&S;sO9Vn*}QX delta 20 acmaDW@>Ya9pO=@50SK(txNqc6;sO9U&II-V diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/profiles/__pycache__/Profile_Mbus.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/profiles/__pycache__/Profile_Mbus.cpython-310.pyc index 22efa8d62e798cf99731cf322239ee15d1c82013..9eec640aad4c0e2d891cbb013b6eb9380c29a2a8 100644 GIT binary patch delta 20 ZcmeC@?&s#t=jG*M0D?fL^BcKaSOF`d1bP4f delta 20 ZcmeC@?&s#t=jG*M00OHu?i;yVSOF^41VsP< diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/profiles/__pycache__/Profile_SUN_OQPSK.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/profiles/__pycache__/Profile_SUN_OQPSK.cpython-310.pyc index 7eca8b4c7250f722fc825f22b069a72d19b2b92e..0ed1a4c6e5afa7c59d14a1114412222e8cf1131f 100644 GIT binary patch delta 20 acmccNaKnK+pO=@50SE$}&Tr)QRR91znFU$^ delta 20 acmccNaKnK+pO=@50SK(txNqe4RR91y%mpO? diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/profiles/__pycache__/__init__.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/profiles/__pycache__/__init__.cpython-310.pyc index 5803d2392a9df4f9a3cb298fafe1e6a8952d235b..7b815cc58438077a74eedead9d9853624e3080ca 100644 GIT binary patch delta 20 ZcmZo;Ze!-o=jG*M0D?fL^BcLV838F41WNz_ delta 20 ZcmZo;Ze!-o=jG*M00OHu?i;zQ838Cs1Qq}Q diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/profiles/__pycache__/frame_profile_inputs_common.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/profiles/__pycache__/frame_profile_inputs_common.cpython-310.pyc index 85e525b8ed4b54cce8b08f14b7f3dd1d1568bc4b..2ca71907fb26010a560df65177e67d9a2ead4062 100644 GIT binary patch delta 20 acmdnQvWbN|pO=@50SE$}&Tr&aX955(8w64S delta 20 acmdnQvWbN|pO=@50SK(txNqcEX955&P6QnQ diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/profiles/__pycache__/profile_OFDM.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/profiles/__pycache__/profile_OFDM.cpython-310.pyc index 496b0ae4fa4ec1ab94dfdfc346743b1bb8611409..8a4eeddee4355aaacbab2c0822a62d2b3dc199ce 100644 GIT binary patch delta 20 acmbQ~HPeebpO=@50SE$}&Tr)AQw0DuE(Ep! delta 20 acmbQ~HPeebpO=@50SK(txNqd!~Gx1i8{uljGA8lS}f8z;@r_NJ=bCDM~C!g*sp| thfX2m)6G>nEsXNvKpjO9AR-<_B8RwOaV=P>$aIlp51v9LP2xBuVA0BH}A5i23ZF5RUcH9 z*?iaJl=pp+aiZ|&8NX2|A;7Y>_c0d`@{mcO#Z19@QsklFkHLQiCkyEP|3|cWda-3R z>uUwZL-#@vQ)!^YIuknAC}pqV>cR*U z(|`^5#H{07q8*XSJ>^1CTl9-(R}RU<3nHu9lPOi|GHtV`NNfr1LwiH6i4CdNQK{ZN sv{t2Vok|_~?*L|vw#kTJMsLXMF=}!^1!w{a&<5N*5Zf^j3v0wPzZ>Ln1poj5 diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/profiles/__pycache__/profile_wisun_han.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/profiles/__pycache__/profile_wisun_han.cpython-310.pyc index 8693f0be9f3a54667a8c006ec2026043f4def3ef..59a1a0e387f278a9796f61e8a26d6f47d64717e6 100644 GIT binary patch delta 20 acmca8a8ZCepO=@50SE$}&Tr&);{X6PsRYdc delta 20 acmca8a8ZCepO=@50SK(txNqck;{X6O+ys~a diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/profiles/__pycache__/sw_profile_outputs_common.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/profiles/__pycache__/sw_profile_outputs_common.cpython-310.pyc index ea07a76cb3ead93d1f223429de66baa76936b93e..e3241732309fd100044aa7ece40beb5b8f5fe472 100644 GIT binary patch delta 20 acmca-cF&AEpO=@50SE$}&Tr%nmIeSl90gMV delta 20 acmca-cF&AEpO=@50SK(txNqbRmIeSkPX!(T diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/profiles/__pycache__/wisun_profile_outputs_common.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/profiles/__pycache__/wisun_profile_outputs_common.cpython-310.pyc index 01f47b5c309c282ada6aa0b5d002d289d81da18e..f1ad2fd2e69a77ab1912225be2513641dc576764 100644 GIT binary patch delta 20 acmcc4b)AblpO=@50SE$}&Tr)QVFds+z68(! delta 20 acmcc4b)AblpO=@50SK(txNqe4VFds*@dTRy diff --git a/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/targets/__pycache__/Target_FPGA.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/pyradioconfig/parts/sol/targets/__pycache__/Target_FPGA.cpython-310.pyc index d266f24f5974d74fc740d9e69e1ca2b8b048edab..faa391d0d4a238cd362c6ce11b38480c86c5a8aa 100644 GIT binary patch delta 20 acmeyx`HPb~pO=@50SE$}&Tr&?&jJ8E5e2pY delta 20 acmeyx`HPb~pO=@50SK(txNqcs&jJ8DLzA_MaP delta 20 acmbQjG=+&fpO=@50SK(txNqdyRRg{N diff --git a/platform/radio/efr32_multiphy_configurator/rail_scripts/__pycache__/_version.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/rail_scripts/__pycache__/_version.cpython-310.pyc index b8c0b22f31b5f4ce9e2652998cf8e46daf250993..10f99fdeb1b94eb5f36cb7d6877f59768c1a6fbf 100644 GIT binary patch delta 20 acmbQqJd>F_pO=@50SE$}&Tr)IV*~&!4g`b% delta 20 acmbQqJd>F_pO=@50SK(txNqd{V*~&zK?F|# diff --git a/platform/radio/efr32_multiphy_configurator/rail_scripts/__pycache__/config.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/rail_scripts/__pycache__/config.cpython-310.pyc index 1e788f357941a73c9471853c316c0d67265c9b2e..f3422a59fd854812fdb2e1f58941f3f56f93c2cc 100644 GIT binary patch delta 20 acmaE%@Irw*pO=@50SInfdAX50RsaA)Cb8xN+s>M(!h109d>TJOBUy delta 22 ccmX@VlIi?PChmM*UM>b8uv+83k^9IL08mf{)Bpeg diff --git a/platform/radio/efr32_multiphy_configurator/rail_scripts/__pycache__/rail_model.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/rail_scripts/__pycache__/rail_model.cpython-310.pyc index 2c530d3006554208cc3aa146d94f792d451c9f3a..e5fe5c11c0e18a26c57b20b1d93f2a7be9e51e56 100644 GIT binary patch delta 20 acmcc3b(@PjpO=@50SE$}&Tr%nU7S|pO=@50SE$}&QIjN4FEC+1x5e> delta 19 ZcmaFH_>7S|pO=@50SK(txKHH14FEB31rY!M diff --git a/platform/radio/efr32_multiphy_configurator/rail_scripts/generators/__pycache__/railConfig_sourceCodeGenerator.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/rail_scripts/generators/__pycache__/railConfig_sourceCodeGenerator.cpython-310.pyc index 746240cc984996d939dd6132f5ba0a4c5c88a147..9e110ead21f12304fc01139e79733620f90a2a1c 100644 GIT binary patch delta 20 acmZ3hzE+((pO=@50SE$}&Tr&iBn$vFPz4$Q delta 20 acmZ3hzE+((pO=@50SK(txNqcMBn$vEg9POO diff --git a/platform/radio/efr32_multiphy_configurator/rail_scripts/generators/__pycache__/railTest_rmrCommandGenerator.cpython-310.pyc b/platform/radio/efr32_multiphy_configurator/rail_scripts/generators/__pycache__/railTest_rmrCommandGenerator.cpython-310.pyc index dce5607b38f9c1fc2fdd828917d4048c3d8e729c..0b2742b2555f6fc8044548f1d344f863d23dc01e 100644 GIT binary patch delta 20 acmbPbGs}iMpO=@50SE$}&Tr)AmjeJZR|J*- delta 20 acmbPbGs}iMpO=@50SK(txNqd